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 (1)

Cursuri înrudite

GPU Programming with OpenCL

28 ore

GPU Programming with CUDA

28 ore

GPU Programming - OpenCL vs CUDA vs ROCm

28 ore

AMD GPU Programming

28 ore

Introduction to GPU Programming

21 ore

Categorii înrudite