Mulțumim pentru trimiterea solicitării! Un membru al echipei noastre vă va contacta în curând.
Mulțumim pentru trimiterea rezervării! Un membru al echipei noastre vă va contacta în curând.
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