Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
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
Mărturii (2)
Foarte interactiv, cu exemple variate, cu o bună progresie în complexitate între începutul și sfârșitul cursului.
Jenny - Andheo
Curs - GPU Programming with CUDA and Python
Tradus de catre o masina
Formatorii energie și umor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Curs - NVIDIA GPU Programming - Extended
Tradus de catre o masina