Course Code: rocmwindows
Duration: 21 hours
Prerequisites:
  • 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
Overview:

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.
Course Outline:

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

Sites Published:

United Arab Emirates - ROCm for Windows

Qatar - ROCm for Windows

Egypt - ROCm for Windows

Saudi Arabia - ROCm for Windows

South Africa - ROCm for Windows

Brasil - ROCm for Windows

Canada - ROCm for Windows

中国 - ROCm for Windows

香港 - ROCm for Windows

澳門 - ROCm for Windows

台灣 - ROCm for Windows

USA - ROCm for Windows

Österreich - ROCm for Windows

Schweiz - ROCm for Windows

Deutschland - ROCm for Windows

Czech Republic - ROCm for Windows

Denmark - ROCm for Windows

Estonia - ROCm for Windows

Finland - ROCm for Windows

Greece - ROCm for Windows

Magyarország - ROCm for Windows

Ireland - ROCm for Windows

Luxembourg - ROCm for Windows

Latvia - ROCm for Windows

España - ROCm for Windows

Italia - ROCm for Windows

Lithuania - ROCm for Windows

Nederland - ROCm for Windows

Norway - ROCm for Windows

Portugal - ROCm for Windows

România - ROCm for Windows

Sverige - ROCm for Windows

Türkiye - ROCm for Windows

Malta - ROCm for Windows

Belgique - ROCm for Windows

France - ROCm for Windows

日本 - ROCm for Windows

Australia - ROCm for Windows

Malaysia - ROCm for Windows

New Zealand - ROCm for Windows

Philippines - ROCm for Windows

Singapore - ROCm for Windows

Thailand - ROCm for Windows

Vietnam - ROCm for Windows

India - ROCm for Windows

Argentina - ROCm for Windows

Chile - ROCm for Windows

Costa Rica - ROCm for Windows

Ecuador - ROCm for Windows

Guatemala - ROCm for Windows

Colombia - ROCm for Windows

México - ROCm for Windows

Panama - ROCm for Windows

Peru - ROCm for Windows

Uruguay - ROCm for Windows

Venezuela - ROCm for Windows

Polska - ROCm for Windows

United Kingdom - ROCm for Windows

South Korea - ROCm for Windows

Pakistan - ROCm for Windows

Sri Lanka - ROCm for Windows

Bulgaria - ROCm for Windows

Bolivia - ROCm for Windows

Indonesia - ROCm for Windows

Kazakhstan - ROCm for Windows

Moldova - ROCm for Windows

Morocco - ROCm for Windows

Tunisia - ROCm for Windows

Kuwait - ROCm for Windows

Oman - ROCm for Windows

Slovakia - ROCm for Windows

Kenya - ROCm for Windows

Nigeria - ROCm for Windows

Botswana - ROCm for Windows

Slovenia - ROCm for Windows

Croatia - ROCm for Windows

Serbia - ROCm for Windows

Bhutan - ROCm for Windows

Nepal - ROCm for Windows

Uzbekistan - ROCm for Windows