Bądźmy w kontakcie

Plan Szkolenia

Wprowadzenie

  • Czym jest ROCm?
  • Czym jest HIP?
  • Porównanie ROCm, CUDA i OpenCL
  • Przegląd funkcji i architektury ROCm i HIP
  • ROCm dla Windows vs ROCm dla Linux

Instalacja

  • Instalacja ROCm w systemie Windows
  • Weryfikacja instalacji i sprawdzenie zgodności urządzenia
  • Aktualizacja lub odinstalowanie ROCm w systemie Windows
  • Rozwiązywanie typowych problemów z instalacją

Rozpoczęcie pracy

  • Tworzenie nowego projektu ROCm za pomocą Visual Studio Code w systemie Windows
  • Eksploracja struktury i plików projektu
  • Kompilacja i uruchomienie programu
  • Wyświetlanie wyników za pomocą printf i fprintf

Interfejs ROCm API

  • Korzystanie z interfejsu ROCm API w programie hosta
  • Pozyskiwanie informacji o urządzeniu i jego możliwościach
  • Alokowanie i zwalnianie pamięci urządzenia
  • Kopiowanie danych między hostem a urządzeniem
  • Uruchamianie jąder i synchronizacja wątków
  • Obsługa błędów i wyjątków

Język HIP

  • Korzystanie z 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
  • Korzystanie z funkcji wątkowych, takich jak hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x itp.
  • Korzystanie z funkcji blokowych, takich jak __syncthreads, __threadfence_block itp.
  • Korzystanie z funkcji siatkowych, takich jak hipGridDim_x, hipGridSync, grupy współpracujące itp.

Debugowanie

  • Debugowanie programów ROCm i HIP w systemie Windows
  • Korzystanie z debuggera Visual Studio Code do inspekcji zmiennych, punktów przerwania, stosu wywołań itp.
  • Korzystanie z ROCm Debugger do debugowania programów ROCm i HIP na urządzeniach AMD
  • Korzystanie z ROCm Profiler do analizy programów ROCm i HIP na urządzeniach AMD

Optymalizacja

  • Optymalizacja programów ROCm i HIP w systemie Windows
  • Korzystanie z technik łączenia w celu poprawy przepustowości pamięci
  • Korzystanie z technik buforowania i pobierania z wyprzedzeniem 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 narzędzi profilowania do pomiaru i poprawy czasu wykonania oraz wykorzystania zasobów

Podsumowanie i kolejne kroki

Wymagania

  • Znajomość języka C/C++ oraz koncepcji programowania równoległego
  • Podstawowa wiedza na temat architektury komputerów i hierarchii pamięci
  • Doświadczenie w korzystaniu z narzędzi wiersza poleceń i edytorów kodu
  • Znajomość systemu operacyjnego Windows i PowerShell

Grupa docelowa

  • Programiści, którzy chcą nauczyć się instalować i korzystać z ROCm w systemie Windows, aby programować karty graficzne AMD i wykorzystywać ich możliwości równoległego przetwarzania
  • Programiści, którzy chcą pisać wydajny i skalowalny kod, który może działać na różnych urządzeniach AMD
  • Programiści, którzy chcą zgłębić niskopoziomowe aspekty programowania GPU i optymalizować wydajność swojego kodu
 21 godzin

Liczba uczestników


Cena za uczestnika (netto)

Propozycje terminów

Powiązane Kategorie