OpenCL. Akceleracja GPU w praktyce - ebook

Oceń:
Format ebooka:
EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(2w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
ISBN:
978-83-01-18045-4
Język:
Polski
Rok wydania:
2014
Rozmiar pliku:
2,0 MB
Zabezpieczenie:
Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
Cena Virtualo
37,50 zł
39,90 zł
Cena w punktach Virtualo:
3750 pkt.

Pełny opis

Książka jest skierowana do programistów, którzy chcą się zapoznać z technologią OpenCL W publikacji duży nacisk został położony na przedstawienie konkretnych przykładów (wraz z komentarzem opisującym sposób implementacji danego przykładu oraz techniczne aspekty danego problemu). Zaprezentowane zostały także sposoby wykorzystywania OpenCL do realizacji różnych zadań obliczeniowych. Praktyczne przykłady obejmują zagadnienia m.in. z algebry liniowej. W książce znajdują się także przykłady przetwarzania grafiki. Ze względu na charakter OpenCL opisano również sposoby korzystania z możliwości OpenCL oferowanych przez różne dodatkowe biblioteki, a także pakiety ułatwiające współpracę z technologią OpenCL. Uzupełnieniem publikacji są bardziej zaawansowane przykłady rozwiązywania równań różniczkowych czy też przedstawienie metody Black Scholes.
Z książki można nauczyć się, jak: – korzystać z technologii OpenCL; – tworzyć własne jądra obliczeniowe; – przetwarzać grafikę za pomocą wbudowanych możliwości OpenCL.
Dobrze jest znać: – wybrane pojęcia algebry liniowej, m.in. macierze, wektory; – podstawy języków C, C++ oraz Python; – środowisko IDE, np. Visual Studio. Choć nie jest to książka przeznaczona dla początkującego czytelnika i wymaga umiejętności programowania na poziomie średnim, to zawarte w niej informacje z pewnością pozwolą na zapoznanie się z technologią OpenCL i możliwościami obliczeniowymi, jakie ona oferuje.

Spis treści

1. Wprowadzenie

1.1. Obliczenia równoległe
1.2. Zawartość książki

2. Standard OpenCL

2.1. Model platformy
2.2. Model pamięci
2.3. Model wykonawczy
2.3.1. Siatka obliczeniowa – NDRange
2.3.2. Kontekst obliczeń oraz kolejka poleceń
2.4. Model programowania

3. Język programowania dostępny w OpenCL

3.1. Typy danych
3.1.1. Typy podstawowe (typy skalarne)
3.1.2. Typy wektorowe
3.1.3. Typy do obsługi obrazów
3.1.4. Inne typy oraz nazwy zarezerwowane
3.2. Dostępne operatory
3.3. Funkcje wbudowane
3.4. Dodatkowe kwalifikatory oraz atrybuty
3.5. Operacje na typach wektorowych OpenCL
3.5.1. Dane typu wektorowego – dostęp do składowych
3.5.2. Operacje na typach wektorowych
3.5.3. Funkcje obsługujące dane typu wektorowego
3.6. Obsługa siatki obliczeniowej
3.7. Funkcje synchronizacji i funkcje atomowe
3.8. Funkcje do obsługi obrazów
3.9. Preprocesor OpenCL C
3.10. Ograniczenia OpenCL C

4. OpenCL – łatwe przykłady na początek

4.1. Informacje o urządzeniu obliczeniowym
4.1.1. Wersja dla API w języku C
4.1.2. Informacje o urządzeniu obliczeniowym obiektowo i w C++
4.2. Witaj Świecie!
4.2.1. Przygotowania
4.2.2. Uruchomienie jądra obliczeniowego
4.3. Dodawanie wektorów
4.3.1. Jądro obliczeniowe
4.3.2. Wersja dla C++
4.3.3. Inne operacje na wektorach do ćwiczeń
4.4. Siatka lokalna oraz globalna
4.5. Zlecanie i wykonywanie zadań
4.6. Uwagi o kompilacji jądra obliczeniowego

5. Przykłady obliczeń w OpenCL

5.1. Obsługa printf w OpenCL
5.2. Operacja redukcji
5.2.1. Operacja redukcji – wersja szeregowa
5.2.2. Operacja redukcji – jądro obliczeniowe podejście pierwsze
5.2.3. Operacja redukcji – jądro obliczeniowe podejście drugie
5.2.4. Operacja redukcji – jądro obliczeniowe poddane optymalizacji
5.3. Wyznaczanie histogramu
5.3.1. Wersja szeregowa
5.3.2. Wersja dla OpenCL
5.4. Równoległe szukanie prawie binarne
5.4.1. Wersja równoległa dla OpenCL
5.5. Przybliżanie wartości liczby ?
5.5.1. Wersja szeregowa
5.5.2. Wersja OpenCL – podejście bezpośrednie
5.5.3. Wersja OpenCL – podejście o wyższej wydajności
5.6. Gra w życie
5.6.1. Gra w życie – procedura obliczeniowa
5.6.2. Gra w życie – obsługa symulacji
5.7. Zbiór Mandelbrota
5.7.1. Zbiór Julii
5.7.2. Tworzenie obrazu zbioru Mandelbrota – wersja szeregowa
5.7.3. Tworzenie obrazu zbioru Mandelbrota – wersja OpenCL
5.7.4. Tworzenie obrazu zbioru Julii
5.7.5. Kolorowanie zbioru fraktalnego
5.8. Algorytm sortowania bitonicznego
5.8.1. Sieci sortujące
5.8.2. Bitoniczna sieć sortująca
5.8.3. Szeregowa wersja algorytmu sortowania bitonicznego
5.8.4. Równoległa wersja algorytmu sortowania bitonicznego dla OpenCL
5.9. Przetwarzanie obrazów
5.9.1. Podstawy – wypełnienie obrazu
5.9.2. Skalowanie obrazu
5.9.3. Rozmywanie obrazu – filtr Gaussa
5.9.4. Wykrywanie krawędzi w obrazie za pomocą filtru Sobela
5.10. Współpraca OpenCL z OpenGL
5.10.1. Procedury obliczeniowe OpenCL
5.10.2. Czynności wykonywane w programie gospodarza

6. OpenCL w innych językach programowania

6.1. Język Python
6.1.1. Przegląd API pakietu PyOpenCL
6.1.2. Znów dodawanie wektorów, ale w Pythonie
6.1.3. Skrypt do testowania siatki obliczeniowej
6.1.4. Stosowanie typów użytkownika
6.1.5. Klasa w Pythonie dla łatwiejszej współpracy z OpenCL
6.2. Pakiet APARAPI dla języka Java
6.2.1. Dodawanie wektorów
6.2.2. Przegląd API pakietu APARAPI
6.2.3. Algorytm Blacka-Sholesa
6.2.4. Mechanizm rozszerzeń
6.3. Inne rozwiązania, VexCL i nie tylko

7. Zamiast zakończenia

7.1.1. Analiza wydajności symulacji przykładu „Gra w życie”

Dodatek A. Kompilacja przykładów

Dodatek B. Instalacja pakietu OpenCL dla języka Python

Dodatek C. Opis funkcji pomocniczych

C.1. Zapis do formatu PPM
C.2. Konwersja kodów formatu koloru do wartości znakowych
C.3. Zapis i odczyt danych w formacie PNG
C.4. Konwersja z modelu kolorów HSV do RGB
C.5. Utworzenie macierzy dla filtru rozmywającego

Dodatek D. Zestawianie używanych funkcji API OpenCL

D.1. Funkcja clGetPlatformIDs
D.2. Funkcja clGetPlatformInfo
D.3. Funkcja clGetDeviceInfo
D.4. Funkcja clGetSupportedImageFormats
D.5. Funkcja clGetDeviceIDs
D.6. Funkcja clCreateContext
D.7. Funkcja clBuildProgram
D.8. Funkcja clGetProgramBuildInfo
D.9. Funkcja clCreateCommandQueue
D.10. Funkcja clCreateBuffer
D.11. Funkcja clEnqueueReadBuffer
D.12. Funkcja clEnqueueWriteBuffer
D.13. Funkcja clCreateProgramWithSource
D.14. Funkcja clCreateKernel
D.15. Funkcja clSetKernelArg
D.16. Funkcja clEnqueueNDRangeKernel
D.17. Funkcja clEnqueueTask
D.18. Funkcja clGetKernelWorkGroupInfo
D.19. Funkcja clCreateImage2D
D.20. Funkcja clEnqueueReadImage
D.21. Funkcja clEnqueueWriteImage
D.22. Funkcja clFinish
D.23. Funkcja clReleaseKernel
D.24. Funkcja clReleaseProgram
D.25. Funkcja clReleaseCommandQueue
D.26. Funkcja clReleaseMemObject
D.27. Funkcja clReleaseContext
D.28. Funkcja clCreateFromGLBuffer
D.29. Funkcja clCreateFromGLTexture2D
D.30. Funkcja clEnqueueAcquireGLObjects
D.31. Funkcja clEnqueueReleaseGLObjects

Dodatek E. Spis kodów błędów API OpenCL

Dodatek F. Najczęściej spotykane nazwy rozszerzeń

Literatura
Indeks