Intrati in legatura

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 pentru Windows vs ROCm pentru Linux

Instalare

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

Începutul

  • Crearea unui nou proiect ROCm folosind Visual Studio Code pe Windows
  • Explorarea structurii și fișierelor proiectului
  • Compilarea și rularea programului
  • Afisarea rezultatului folosind printf și fprintf

API ROCm

  • Folosirea API-ului ROCm în programul gazdă
  • Interogarea informațiilor și capacităților dispozitivului
  • Alocarea și eliberarea memoriei dispozitivului
  • Copierea datelor între gazdă și dispozitiv
  • Lansarea nucleelor și sincronizarea firelor
  • Gestionarea erorilor și excepțiilor

Limbajul HIP

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

Modelul de memorie ROCm și HIP

  • Folosirea diferitelor spații de memorie, cum ar fi global, partajat, constant și local
  • Folosirea diferitelor obiecte de memorie, cum ar fi pointeri, tablouri, texturi și suprafețe
  • Folosirea diferitelor moduri de acces la memorie, cum ar fi read-only, write-only, read-write, etc.
  • Folosirea modelului de consistență a memoriei și a mecanismelor de sincronizare

Modelul de execuție ROCm și HIP

  • Folosirea diferitelor modele de execuție, cum ar fi fire, blocuri și grile
  • Folosirea funcțiilor de fire, cum ar fi hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
  • Folosirea funcțiilor de bloc, cum ar fi __syncthreads, __threadfence_block, etc.
  • Folosirea funcțiilor de grilă, cum ar fi hipGridDim_x, hipGridSync, grupurile cooperative, etc.

Depanare

  • Depanarea programelor ROCm și HIP pe Windows
  • Folosirea debugger-ului Visual Studio Code pentru a inspecta variabile, puncte de întrerupere, stivă de apeluri, etc.
  • Folosirea ROCm Debugger pentru a depana programe ROCm și HIP pe dispozitive AMD
  • Folosirea ROCm Profiler pentru a analiza programe ROCm și HIP pe dispozitive AMD

Optimizare

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

Rezumat și Pași Următori

Cerințe

  • Înțelegerea limbajului C/C++ și a conceptelor de programare paralelă
  • Cunoștințe de bază despre arhitectura computerelor și ierarhia memoriei
  • Experiență cu instrumente de linie de comandă și editori de cod
  • Familiaritate cu sistemul de operare Windows și PowerShell

Publicul țintă

  • Dezvoltatori care doresc să învețe cum să instaleze și să folosească ROCm pe Windows pentru a programa GPU-uri AMD și să exploateze paralelismul acestora
  • Dezvoltatori care doresc să scrie cod performant ș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 codului
 21 Ore

Numărul de participanți


Pret per participant

Cursuri viitoare

Categorii înrudite