Plan Szkolenia

Wprowadzenie

  • Czym jest programowanie GPU?
  • Dlaczego warto używać CUDA z Pythonem?
  • Kluczowe pojęcia: Wątki, Bloki, Siatki

Przegląd funkcji i architektury CUDA

  • Architektura GPU vs CPU
  • Zrozumienie SIMT (Single Instruction, Multiple Threads)
  • Model programowania CUDA

Konfiguracja środowiska programistycznego

  • Instalacja CUDA Toolkit i sterowników
  • Instalacja Pythona i Numba
  • Konfiguracja i weryfikacja środowiska

Podstawy programowania równoległego

  • Wprowadzenie do wykonywania równoległego
  • Zrozumienie wątków i hierarchii wątków
  • Praca z warpami i synchronizacją

Praca z kompilatorem Numba

  • Wprowadzenie do Numba
  • Pisanie jąder CUDA z użyciem Numba
  • Zrozumienie dekoratorów @cuda.jit

Tworzenie własnego jądra CUDA

  • Pisanie i uruchamianie podstawowego jądra
  • Wykorzystanie wątków do operacji elementowych
  • Zarządzanie wymiarami siatki i bloków

Zarządzanie pamięcią

  • Rodzaje pamięci GPU (globalna, współdzielona, lokalna, stała)
  • Transfer pamięci między hostem a urządzeniem
  • Optymalizacja wykorzystania pamięci i unikanie wąskich gardeł

Zaawansowane tematy przyspieszania GPU

  • Pamięć współdzielona i synchronizacja
  • Wykorzystanie strumieni do asynchronicznego wykonywania
  • Podstawy programowania wieloprocesorowego GPU

Przekształcanie aplikacji opartych na CPU na GPU

  • Profilowanie kodu CPU
  • Identyfikacja sekcji nadających się do równoległości
  • Przenoszenie logiki do jąder CUDA

Rozwiązywanie problemów

  • Debugowanie aplikacji CUDA
  • Typowe błędy i sposoby ich rozwiązywania
  • Narzędzia i techniki testowania i walidacji

Podsumowanie i kolejne kroki

  • Przegląd kluczowych pojęć
  • Najlepsze praktyki w programowaniu GPU
  • Źródła do dalszej nauki

Wymagania

  • Doświadczenie w programowaniu w Pythonie
  • Doświadczenie z NumPy (ndarrays, ufuncs, itp.)

Grupa docelowa

  • Programiści
 14 godzin

Liczba uczestników


Cena za uczestnika

Opinie uczestników (1)

Propozycje terminów

Powiązane Kategorie