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
  • Afișarea rezultatului folosind printf și fprintf

API ROCm

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

Limbajul HIP

  • Folosirea limbajului HIP în programul dispozitivului
  • Scrierea kernel-urilor care se execută pe GPU și manipulează date
  • Folosirea tipurilor de date, calificatorilor, 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, shared, constant și local
  • Folosirea diferitelor obiecte de memorie, cum ar fi pointeri, array-uri, 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, grupuri cooperative, etc.

Depanare

  • Depanarea programelor ROCm și HIP pe Windows
  • Folosirea debugger-ului Visual Studio Code pentru a inspecta variabile, breakpoints, stiva 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 shared și local pentru a optimiza accesul 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 calculatoarelor ș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 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ă optimizeze performanța codului lor
 21 Ore

Numărul de participanți


Pret per participant

Cursuri viitoare

Categorii înrudite