Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Plan Szkolenia
Wprowadzenie
- Co to jest ROCm?
- Czym jest HIP?
- ROCm vs CUDA vs OpenCL
- Przegląd funkcji i architektury ROCm i HIP
- Konfiguracja środowiska programistycznego
Pierwsze kroki
- Tworzenie nowego projektu ROCm przy użyciu Visual Studio Kodu
- Przeglądanie struktury projektu i plików
- Kompilowanie i uruchamianie programu
- Wyświetlanie danych wyjściowych przy użyciu printf i fprintf
ROCm API
- Zrozumienie roli interfejsu API ROCm w programie hosta
- Używanie interfejsu API ROCm do wyszukiwania informacji o urządzeniu i jego możliwościach
- Używanie ROCm API do przydzielania i zwalniania pamięci urządzenia
- Używanie ROCm API do kopiowania danych między hostem a urządzeniem
- Używanie ROCm API do uruchamiania jądra i synchronizowania wątków
- Używanie ROCm API do obsługi błędów i wyjątków
Język HIP
- Zrozumienie roli języka HIP w programie urządzenia
- Używanie języka HIP do pisania jąder, które wykonują się na GPU i manipulują danymi
- Korzystanie z typów danych, kwalifikatorów, operatorów i wyrażeń HIP
- Używanie wbudowanych funkcji, zmiennych i bibliotek HIP do wykonywania typowych zadań i operacji
Model pamięci ROCm i HIP
- Zrozumienie różnicy między modelami pamięci hosta i urządzenia
- Korzystanie z przestrzeni pamięci ROCm i HIP, takich jak globalna, współdzielona, stała i lokalna
- Korzystanie z obiektów pamięci ROCm i HIP, takich jak wskaźniki, tablice, tekstury i powierzchnie
- Korzystanie z trybów dostępu do pamięci ROCm i HIP, takich jak tylko do odczytu, tylko do zapisu, odczyt-zapis itp.
- Korzystanie z modelu spójności pamięci ROCm i HIP oraz mechanizmów synchronizacji
Model wykonania ROCm i HIP
- Zrozumienie różnicy między modelem wykonania hosta i urządzenia
- Używanie wątków, bloków i siatek ROCm i HIP do definiowania równoległości
- Korzystanie z funkcji wątków ROCm i HIP, takich jak hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x itp.
- Używanie funkcji blokowych ROCm i HIP, takich jak __syncthreads, __threadfence_block itp.
- Korzystanie z funkcji siatki ROCm i HIP, takich jak hipGridDim_x, hipGridSync, grupy współpracy itp.
Debugowanie
- Zrozumienie typowych błędów i usterek w programach ROCm i HIP
- Używanie debuggera Visual Studio Code do sprawdzania zmiennych, punktów przerwania, stosu wywołań itp.
- Używanie debuggera ROCm do debugowania programów ROCm i HIP na urządzeniach AMD
- Używanie ROCm Profiler do analizowania programów ROCm i HIP na urządzeniach AMD
Optymalizacja
- Zrozumienie czynników wpływających na wydajność programów ROCm i HIP
- Korzystanie z technik koalescencji ROCm i HIP w celu poprawy przepustowości pamięci
- Korzystanie z technik buforowania i pobierania wstępnego ROCm i HIP w celu zmniejszenia opóźnień pamięci
- Korzystanie z technik pamięci współdzielonej i lokalnej ROCm i HIP w celu optymalizacji dostępu do pamięci i przepustowości
- Korzystanie z narzędzi do profilowania i profilowania ROCm i HIP w celu pomiaru i poprawy czasu wykonania i wykorzystania zasobów.
Podsumowanie i następny krok
Wymagania
- Zrozumienie języka C/C++ i koncepcji programowania równoległego
- Podstawowa znajomość architektury komputera i hierarchii pamięci
- Doświadczenie z narzędziami wiersza poleceń i edytorami kodu
Odbiorcy
- Programiści, którzy chcą dowiedzieć się, jak używać ROCm i HIP do programowania procesorów AMD GPU i wykorzystywania ich równoległości.
- Programiści, którzy chcą pisać wysokowydajny i skalowalny kod, który może działać na różnych urządzeniach AMD
- Programiści, którzy chcą poznać niskopoziomowe aspekty programowania GPU i zoptymalizować wydajność swojego kodu
28 godzin
Opinie uczestników (2)
Bardzo interaktywne z różnymi przykładami, z dobrym postępem złożoności między początkiem a końcem szkolenia.
Jenny - Andheo
Szkolenie - GPU Programming with CUDA and Python
Przetłumaczone przez sztuczną inteligencję
Spójny sposob prezentacji, duża wiedza trenera, odpowiedni poziom wejscia