Dziękujemy za wysłanie zapytania! Jeden z członków naszego zespołu skontaktuje się z Państwem wkrótce.
Dziękujemy za wysłanie rezerwacji! Jeden z członków naszego zespołu skontaktuje się z Państwem wkrótce.
Plan Szkolenia
Wprowadzenie
-
Co to jest programowanie GPU?
-
Dlaczego używać programowania GPU?
-
Jakie są wyzwania i kompromisy związane z programowaniem GPU?
-
Jakie frameworki służą do programowania GPU?
-
Wybieranie odpowiedniego frameworka dla swojej aplikacji
OpenCL
-
Co to jest OpenCL?
-
Jakie są zalety i wady OpenCL?
-
Skonfigurowanie środowiska deweloperskiego dla OpenCL
-
Stworzenie podstawowego programu OpenCL wykonującego dodawanie wektorów
-
Używanie API OpenCL do zapytania informacji o urządzeniu, alokacji i dealokacji pamięci urządzenia, kopiowania danych między hostem a urządzeniem, uruchamiania kerneli i synchronizacji wątków
-
Używanie języka OpenCL C do pisania kerneli wykonujących na urządzeniu i manipulowania danymi
-
Używanie wbudowanych funkcji, zmiennych i bibliotek OpenCL do wykonywania standardowych zadań i operacji
-
Używanie przestrzeni pamięci OpenCL, takich jak globalna, lokalna, stała i prywatna, w celu optymalizacji transferów danych i dostępów do pamięci
-
Używanie modelu wykonywania OpenCL do kontrolowania work-items, work-groups i ND-ranges definiujących równoległość
-
Debugowanie i testowanie programów OpenCL przy użyciu narzędzi takich jak CodeXL
-
Optymalizacja programów OpenCL za pomocą technik takich jak koalescencja, buforowanie, prefetching i profilowanie
CUDA
-
Co to jest CUDA?
-
Jakie są zalety i wady CUDA?
-
Skonfigurowanie środowiska deweloperskiego dla CUDA
-
Stworzenie podstawowego programu CUDA wykonującego dodawanie wektorów
-
Używanie API CUDA do zapytania informacji o urządzeniu, alokacji i dealokacji pamięci urządzenia, kopiowania danych między hostem a urządzeniem, uruchamiania kerneli i synchronizacji wątków
-
Używanie języka CUDA C/C++ do pisania kerneli wykonujących na urządzeniu i manipulowania danymi
-
Używanie wbudowanych funkcji, zmiennych i bibliotek CUDA do wykonywania standardowych zadań i operacji
-
Używanie przestrzeni pamięci CUDA, takich jak globalna, współdzielona, stała i lokalna, w celu optymalizacji transferów danych i dostępów do pamięci
-
Używanie modelu wykonywania CUDA do kontrolowania wątków, bloków i siatek definiujących równoległość
-
Debugowanie i testowanie programów CUDA przy użyciu narzędzi takich jak CUDA-GDB, CUDA-MEMCHECK i NVIDIA Nsight
-
Optymalizacja programów CUDA za pomocą technik takich jak koalescencja, buforowanie, prefetching i profilowanie
ROCm
-
Co to jest ROCm?
-
Jakie są zalety i wady ROCm?
-
Skonfigurowanie środowiska deweloperskiego dla ROCm
-
Stworzenie podstawowego programu ROCm wykonującego dodawanie wektorów
-
Używanie API ROCm do zapytania informacji o urządzeniu, alokacji i dealokacji pamięci urządzenia, kopiowania danych między hostem a urządzeniem, uruchamiania kerneli i synchronizacji wątków
-
Używanie języka ROCm C/C++ do pisania kerneli wykonujących na urządzeniu i manipulowania danymi
-
Używanie wbudowanych funkcji, zmiennych i bibliotek ROCm do wykonywania standardowych zadań i operacji
-
Używanie przestrzeni pamięci ROCm, takich jak globalna, lokalna, stała i prywatna, w celu optymalizacji transferów danych i dostępów do pamięci
-
Używanie modelu wykonywania ROCm do kontrolowania wątków, bloków i siatek definiujących równoległość
-
Debugowanie i testowanie programów ROCm przy użyciu narzędzi takich jak ROCm Debugger i ROCm Profiler
-
Optymalizacja programów ROCm za pomocą technik takich jak koalescencja, buforowanie, prefetching i profilowanie
Porównanie
-
Porównanie cech, wydajności i zgodności OpenCL, CUDA i ROCm
-
Ocena programów GPU przy użyciu benchmarków i metryk
-
Nauczenie się najlepszych praktyk i porad dla programowania GPU
-
Eksploracja bieżących i przyszłych trendów oraz wyzwań związanych z programowaniem GPU
Podsumowanie i dalsze kroki
Wymagania
-
Zrozumienie języka C/C++ i koncepcji programowania równoległego
-
Podstawowa wiedza o architekturze komputera i hierarchii pamięci
-
Doświadczenie z narzędziami linii poleceń i edytorami kodu
Publikacja
-
Programiści, którzy chcą nauczyć się korzystania z różnych frameworków dla programowania GPU i porównywania ich cech, wydajności i zgodności
-
Programiści, którzy chcą pisać przenośny i skalowalny kod, który może działać na różnych platformach i urządzeniach
-
Programiści, którzy chcą poznać kompromisy i wyzwania związane z programowaniem GPU i optymalizacją
28 godzin