Bądźmy w kontakcie

Plan Szkolenia

Obliczenia GPU i architektura CUDA

  • Różnice architektoniczne między CPU a GPU
  • Model strumieniowego multiprocesora (streaming multiprocessor) w procesorach NVIDIA GPU
  • Wprowadzenie do modelu programowania CUDA
  • Obliczenia heterogeniczne oraz model host-device

Konfigurowanie środowiska programistycznego CUDA

  • Instalacja pakietu narzędziowego CUDA 13.x
  • Kompilator NVCC oraz proces budowania projektu
  • Weryfikacja środowiska przy użyciu zapytań dotyczących urządzenia (device queries)
  • Integracja z IDE oraz narzędzia developerskie

Pisanie i wywoływanie funkcji jądrowych CUDA

  • Składnia funkcji jądrowych (kernelów) i kwalifikatory
  • Konfiguracja wywołania oraz wykonanie
  • Dodawanie wektorów oraz podstawowe wzorce równoległości danych
  • Makra do sprawdzania błędów w CUDA

Hierarchia wątków i model wykonania CUDA

  • Organizacja siatki (grid), bloku (block) i wątku (thread)
  • Indeksowanie wątków oraz obliczanie globalnego ID
  • Wykonywanie wewnątrz warp'a oraz model SIMT
  • Zajętość (occupancy) i wykorzystanie zasobów

Architektura pamięci GPU i zarządzanie nią

  • Typy pamięci: globalna, współdzielona (shared), stała oraz rejestry
  • Rezerwowanie i zwalnianie pamięci urządzenia
  • Transfer danych z hosta na urządzenie i odwrotnie
  • Pamięć współdzielona dla współpracy wewnątrz bloku

Ujednolicona pamięć (Unified Memory) i migracja danych

  • Model ujednoliconej pamięci oraz alokacje zarządzane
  • Migracja stron (page migration) oraz paging na żądanie
  • Asynchroniczna prefetcja za pomocą cudaMemPrefetchAsync
  • Wskazówki dotyczące zachowań pamięci (memory advice) w zależności od wzorców dostępu

Profilowanie systemowe z użyciem Nsight Systems

  • Analiza osi czasu w Nsight Systems
  • Identyfikacja punktów synchronizacji CPU-GPU
  • Wizualizacja wykonania funkcji jądrowych oraz transferów pamięci
  • Interpretacja danych wydajnościowych na poziomie systemu

Optymalizacja funkcji jądrowych z użyciem Nsight Compute

  • Interaktywne profilowanie kernelów w Nsight Compute
  • Analiza przepustowości i szerokości pasma pamięci
  • Wykorzystanie mocy obliczeniowej oraz statystyki stanów warp'a
  • Wodze analizy oraz zasady optymalizacji

Sterowniki strumieniowe i operacje asynchroniczne (Concurrent Streams)

  • Sterowniki strumieniowe CUDA oraz domyślny strumień
  • Nakładanie wykonania kernelów na transfer danych
  • Synchronizacja strumieni i zdarzenia CUDA
  • Wzorce projektowe dla wielostrumieniowego potoku

Obsługa błędów i narzędzia debugowania

  • Kody błędów interfejsu API CUDA oraz strategie radzenia sobie z nimi
  • Compute-sanitizer do sprawdzania dostępu do pamięci
  • cuda-gdb do debugowania funkcji jądrowych
  • Asertie i wykrywanie błędów synchronicznych

Kierowany profilowaniem cykl optymalizacji

  • Iteracyjna metoda profilowania
  • Identyfikacja wąskich gardeł i ich priorytetyzacja
  • Testowanie regresji wydajności
  • Dokumentowanie decyzji optymalizacyjnych

Kompleksowy projekt aplikacji przyspieszanej (End-to-End)

  • Projektowanie kompletnej rozwiązania przyspieszanego przez GPU
  • Integracja profilowania na każdym etapie rozwoju
  • Pomiar wydajności i sporządzanie raportów
  • Rozważania wdrożeniowe dla środowiska produkcyjnego

Wymagania

  • Podstawowa wiedza i umiejętności programowania w C/C++, obejmujące typy zmiennych, pętle, instrukcje warunkowe, funkcje oraz manipulację tablicami
  • Znajomość procesu kompilacji i uruchamiania programów z poziomu linii poleceń
  • Wiedza na temat procesorów GPU ani wcześniejsze doświadczenie w programowaniu CUDA nie są wymagane

Grupa docelowa

  • Programiści i inżynierowie dążący do przyspieszenia aplikacji C/C++ przy użyciu GPU
  • Badacze naukowy oraz specjalistci zajmujący się obliczeniami wysoką wydajności (HPC), przechodzący z architektur wyłącznie CPU na architektury heterogeniczne
  • Kierownicy techniczni oceniający możliwość przyspieszenia procesów przy użyciu GPU w środowisku produkcyjnym
 8 godzin

Liczba uczestników


Cena za uczestnika (netto)

Propozycje terminów

Powiązane Kategorie