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.
Kursplan
Introduktion
- Vad är ROCm?
- Vad är HIP?
- ROCm vs CUDA vs OpenCL
- Översikt över ROCm och HIP funktioner och arkitektur
- Att sätta upp utvecklingsmiljön
Komma igång
- Skapa ett nytt ROCm-projekt med Visual Studio-koden
- Utforska projektstrukturen och filerna
- Kompilera och köra programmet
- Visar utdata med printf och fprintf
ROCm API
- Förstå rollen för ROCm API i värdprogrammet
- Använder ROCm API för att fråga enhetsinformation och funktioner
- Använder ROCm API för att allokera och avallokera enhetsminne
- Använder ROCm API för att kopiera data mellan värd och enhet
- Använder ROCm API för att starta kärnor och synkronisera trådar
- Använder ROCm API för att hantera fel och undantag
HIP-språk
- Förstå HIP-språkets roll i enhetsprogrammet
- Använder HIP-språk för att skriva kärnor som körs på GPU och manipulerar data
- Använda HIP-datatyper, kvalificerare, operatorer och uttryck
- Använda HIP inbyggda funktioner, variabler och bibliotek för att utföra vanliga uppgifter och operationer
ROCm och HIP minnesmodell
- Förstå skillnaden mellan värd- och enhetsminnesmodeller
- Använda ROCm och HIP minnesutrymmen, såsom globala, delade, konstanta och lokala
- Använda ROCm och HIP minnesobjekt, såsom pekare, arrayer, texturer och ytor
- Använda ROCm och HIP minnesåtkomstlägen, såsom skrivskyddad, skrivskyddad, läs-skriv, etc.
- Använder ROCm och HIP minne konsistensmodell och synkroniseringsmekanismer
ROCm och HIP Execution Model
- Förstå skillnaden mellan värd- och enhetsexekveringsmodeller
- Användning av ROCm- och HIP-trådar, block och rutnät för att definiera parallelliteten
- Använda ROCm och HIP trådfunktioner, såsom hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
- Använda ROCm- och HIP-blockfunktioner, såsom __syncthreads, __threadfence_block, etc.
- Använda ROCm- och HIP-rutnätsfunktioner, såsom hipGridDim_x, hipGridSync, kooperativa grupper, etc.
Felsökning
- Förstå vanliga fel och buggar i ROCm- och HIP-program
- Användning av Visual Studio kodfelsökning för att inspektera variabler, brytpunkter, anropsstack, etc.
- Använda ROCm Debugger för att felsöka ROCm- och HIP-program på AMD-enheter
- Använda ROCm Profiler för att analysera ROCm- och HIP-program på AMD-enheter
Optimering
- Förstå de faktorer som påverkar prestandan för ROCm- och HIP-program
- Använder ROCm och HIP koalescerande tekniker för att förbättra minneskapaciteten
- Användning av ROCm- och HIP-cache- och förhämtningstekniker för att minska minneslatens
- Användning av ROCm och HIP delat minne och lokala minnestekniker för att optimera minnesåtkomst och bandbredd
- Använda ROCm och HIP profilerings- och profileringsverktyg för att mäta och förbättra exekveringstiden och resursutnyttjandet
Sammanfattning och nästa steg
Krav
- En förståelse för C/C++ språk och parallella programmeringskoncept
- Grundläggande kunskaper om datorarkitektur och minneshierarki
- Erfarenhet av kommandoradsverktyg och kodredigerare
Publik
- Utvecklare som vill lära sig hur man använder ROCm och HIP för att programmera AMD GPU och utnyttja deras parallellitet
- Utvecklare som vill skriva högpresterande och skalbar kod som kan köras på olika AMD-enheter
- Programmerare som vill utforska lågnivåaspekterna av GPU programmering och optimera sin kodprestanda
28 timmar
Vittnesmål (2)
Väldigt interaktiv med olika exempel, med en bra progression i komplexitet mellan start och slut av träningen.
Jenny - Andheo
Kurs - GPU Programming with CUDA and Python
Machine Translated
Tränarnas energi och humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Kurs - NVIDIA GPU Programming - Extended
Machine Translated