Schița de curs

Introducere

  • Ce este ROCm?
  • Ce este HIP?
  • ROCm vs CUDA vs OpenCL
  • Prezentare generală a caracteristicilor și arhitecturii ROCm și HIP
  • ROCm for Windows vs ROCm pentru Linux

Instalare

  • Instalarea ROCm pe Windows
  • Verificarea instalării și verificarea compatibilității dispozitivelor
  • Actualizarea sau dezinstalarea ROCm pe Windows
  • Rezolvarea problemelor comune de instalare

Noțiuni introductive

  • Crearea unui nou proiect ROCm utilizând Visual Studio Code pe Windows
  • Explorarea structurii proiectului și a fișierelor
  • Compilarea și rularea programului
  • Afișarea ieșirii utilizând printf și fprintf

API ROCm

  • Utilizarea API ROCm în programul gazdă
  • Interogarea informațiilor și a capacităților dispozitivului
  • Alocarea și dezalocarea memoriei dispozitivului
  • Copierea datelor între gazdă și dispozitiv
  • Lansarea kernelurilor și sincronizarea firelor de execuție
  • Gestionarea erorilor și a excepțiilor

Limbajul HIP

  • Utilizarea limbajului HIP în programul dispozitivului
  • Scrierea de nuclee care se execută pe GPU și manipulează date
  • Utilizarea tipurilor de date, a calificatorilor, a operatorilor și a expresiilor
  • Utilizarea funcțiilor încorporate, a variabilelor și a bibliotecilor

ROCm și modelul de memorie HIP

  • Utilizarea diferitelor spații de memorie, cum ar fi cele globale, partajate, constante și locale
  • Utilizarea diferitelor obiecte de memorie, cum ar fi pointeri, matrici, texturi și suprafețe.
  • Utilizarea diferitelor moduri de acces la memorie, cum ar fi read-only, write-only, read-write etc.
  • Utilizarea modelului de coerență a memoriei și a mecanismelor de sincronizare.

Modelul de execuție ROCm și HIP

  • Utilizarea diferitelor modele de execuție, cum ar fi firele, blocurile și grilele.
  • Utilizarea funcțiilor de tip thread, cum ar fi hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
  • Utilizarea funcțiilor de bloc, cum ar fi __syncthreads, __threadfence_block etc.
  • Utilizarea funcțiilor de grilă, cum ar fi hipGridDim_x, hipGridSync, grupuri cooperative etc.

Depanarea

  • Depanarea programelor ROCm și HIP pe Windows
  • Utilizarea depanatorului de cod Visual Studio Code debugger pentru a inspecta variabilele, punctele de întrerupere, stiva de apeluri etc.
  • Utilizarea ROCm Debugger pentru depanarea programelor ROCm și HIP pe dispozitive AMD
  • Utilizarea ROCm Profiler pentru a analiza programele ROCm și HIP pe dispozitive AMD

Optimizare

  • Optimizarea programelor ROCm și HIP pe Windows
  • Utilizarea tehnicilor de coalescență pentru a îmbunătăți debitul de memorie
  • Utilizarea tehnicilor de caching și prefetching pentru a reduce latența memoriei
  • Utilizarea tehnicilor de memorie partajată și de memorie locală pentru a optimiza accesele la memorie și lățimea de bandă
  • Utilizarea instrumentelor de profilare și a instrumentelor de profilare pentru a măsura și îmbunătăți timpul de execuție și utilizarea resurselor

Rezumat și pasul următor

Cerințe

  • Înțelegerea limbajului C/C++ și a conceptelor de programare paralelă
  • Cunoștințe de bază privind arhitectura calculatoarelor și ierarhia memoriei
  • experiență în utilizarea instrumentelor de linie de comandă și a editorilor de cod
  • Familiaritate cu sistemul de operare Windows și PowerShell

Publicul

  • Dezvoltatorii care doresc să învețe cum să instaleze și să utilizeze ROCm pe Windows pentru a programa AMD GPUs și a exploata paralelismul acestora
  • Dezvoltatorii care doresc să scrie cod de înaltă performanță și scalabil care poate rula pe diferite dispozitive AMD
  • Programatori care doresc să exploreze aspectele de nivel scăzut ale programării GPU și să își optimizeze performanța codurilor lor
 21 ore

Numărul de participanți


Pret per participant

Mărturii (2)