- 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
ROCm to platforma open source do programowania GPU, która obsługuje procesory AMD GPU, a także zapewnia kompatybilność z CUDA i OpenCL. ROCm ujawnia programiście szczegóły sprzętowe i daje pełną kontrolę nad procesem zrównoleglania. Wymaga to jednak również dobrego zrozumienia architektury urządzenia, modelu pamięci, modelu wykonania i technik optymalizacji.
ROCm for Windows to najnowsze osiągnięcie, które pozwala użytkownikom instalować i używać ROCm w systemie operacyjnym Windows, który jest szeroko stosowany do celów osobistych i zawodowych. ROCm for Windows umożliwia użytkownikom wykorzystanie mocy procesorów AMD GPU do różnych zastosowań, takich jak sztuczna inteligencja, gry, grafika i obliczenia naukowe.
Szkolenie na żywo prowadzone przez instruktora (na miejscu lub zdalnie) jest przeznaczone dla początkujących i średnio zaawansowanych programistów, którzy chcą zainstalować i używać ROCm w systemie Windows do programowania procesorów AMD GPU i wykorzystywania ich równoległości.
Pod koniec tego szkolenia uczestnicy będą w stanie
- Skonfigurować środowisko programistyczne, które obejmuje platformę ROCm, procesor AMD GPU i Visual Studio Code w systemie Windows.
- Stworzyć podstawowy program ROCm, który wykonuje dodawanie wektorowe na GPU i pobiera wyniki z pamięci GPU.
- Użyj interfejsu API ROCm, aby uzyskać informacje o urządzeniu, przydzielić i zwolnić pamięć urządzenia, skopiować dane między hostem a urządzeniem, uruchomić jądra i zsynchronizować wątki.
- Używanie języka HIP do pisania jąder, które wykonują się na GPU i manipulują danymi.
- Używanie wbudowanych funkcji, zmiennych i bibliotek HIP do wykonywania typowych zadań i operacji.
- Używanie przestrzeni pamięci ROCm i HIP, takich jak globalna, współdzielona, stała i lokalna, w celu optymalizacji transferu danych i dostępu do pamięci.
- Używanie modeli wykonania ROCm i HIP do kontrolowania wątków, bloków i siatek, które definiują równoległość.
- Debugowanie i testowanie programów ROCm i HIP przy użyciu narzędzi takich jak ROCm Debugger i ROCm Profiler.
- Optymalizacja programów ROCm i HIP przy użyciu technik takich jak koalescencja, buforowanie, wstępne pobieranie i profilowanie.
Format kursu
- Interaktywny wykład i dyskusja.
- Wiele ćwiczeń i praktyki.
- Praktyczna implementacja w środowisku laboratoryjnym na żywo.
Opcje dostosowywania kursu
- Aby poprosić o spersonalizowane szkolenie dla tego kursu, skontaktuj się z nami w celu ustalenia szczegółów.
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
United Arab Emirates - ROCm for Windows
Saudi Arabia - ROCm for Windows
South Africa - ROCm for Windows
Deutschland - ROCm for Windows
Czech Republic - ROCm for Windows
Magyarország - ROCm for Windows
New Zealand - ROCm for Windows
Philippines - ROCm for Windows
United Kingdom - ROCm for Windows