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
- ROCm dla ROCm for Windows vs ROCm dla Linux
Instalacja
- Instalacja ROCm w systemie Windows
- Weryfikacja instalacji i sprawdzenie kompatybilności urządzenia
- Aktualizacja lub odinstalowanie ROCm w systemie Windows
- Rozwiązywanie typowych problemów z instalacją
Pierwsze kroki
- Tworzenie nowego projektu ROCm przy użyciu Visual Studio Code w systemie Windows
- Przeglądanie struktury projektu i plików
- Kompilowanie i uruchamianie programu
- Wyświetlanie danych wyjściowych przy użyciu printf i fprintf
ROCm API
- Korzystanie z interfejsu API ROCm w programie hosta
- Sprawdzanie informacji o urządzeniu i jego możliwościach
- Przydzielanie i zwalnianie pamięci urządzenia
- Kopiowanie danych między hostem a urządzeniem
- Uruchamianie jądra i synchronizacja wątków
- Obsługa błędów i wyjątków
Język HIP
- Używanie języka HIP w programie urządzenia
- Pisanie jąder, które wykonują się na GPU i manipulują danymi
- Korzystanie z typów danych, kwalifikatorów, operatorów i wyrażeń
- Korzystanie z wbudowanych funkcji, zmiennych i bibliotek
Model pamięci ROCm i HIP
- Korzystanie z różnych przestrzeni pamięci, takich jak globalna, współdzielona, stała i lokalna
- Korzystanie z różnych obiektów pamięci, takich jak wskaźniki, tablice, tekstury i powierzchnie
- Korzystanie z różnych trybów dostępu do pamięci, takich jak tylko do odczytu, tylko do zapisu, odczyt-zapis itp.
- Korzystanie z modelu spójności pamięci i mechanizmów synchronizacji
Model wykonania ROCm i HIP
- Korzystanie z różnych modeli wykonania, takich jak wątki, bloki i siatki
- Używanie funkcji wątków, takich jak hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x itp.
- Używanie funkcji blokowych, takich jak __syncthreads, __threadfence_block itp.
- Korzystanie z funkcji siatki, takich jak hipGridDim_x, hipGridSync, grupy współpracy itp.
Debugowanie
- Debugowanie programów ROCm i HIP w systemie Windows
- Używanie debuggera Visual Studio Code do sprawdzania zmiennych, punktów przerwania, stosu wywołań itp.
- Używanie debugera 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
- Optymalizacja programów ROCm i HIP w systemie Windows
- Korzystanie z technik koalescencji w celu poprawy przepustowości pamięci
- Korzystanie z technik buforowania i pobierania wstępnego w celu zmniejszenia opóźnień pamięci
- Korzystanie z technik pamięci współdzielonej i lokalnej w celu optymalizacji dostępu do pamięci i przepustowości
- Korzystanie z profilowania i narzędzi do profilowania w celu pomiaru i poprawy czasu wykonywania 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
- Znajomość systemu operacyjnego Windows i PowerShell
Odbiorcy
- Programiści, którzy chcą dowiedzieć się, jak zainstalować i używać ROCm w systemie Windows 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
21 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