Bedankt voor uw aanvraag! Een van onze medewerkers neemt binnenkort contact met u op
Bedankt voor uw boeking! Een van onze medewerkers neemt binnenkort contact met u op.
Cursusaanbod
Invoering
- Wat is ROCm?
- Wat is HIP?
- ROCm versus CUDA versus OpenCL
- Overzicht van ROCm- en HIP-functies en architectuur
- Het opzetten van de ontwikkelomgeving
Aan de slag
- Een nieuw ROCm-project maken met behulp van Visual Studio Code
- Het verkennen van de projectstructuur en bestanden
- Het compileren en uitvoeren van het programma
- De uitvoer weergeven met printf en fprintf
ROCm-API
- Inzicht in de rol van ROCm API in het hostprogramma
- ROCm API gebruiken om apparaatinformatie en -mogelijkheden op te vragen
- ROCm API gebruiken om apparaatgeheugen toe te wijzen en de toewijzing ongedaan te maken
- ROCm API gebruiken om gegevens tussen host en apparaat te kopiëren
- ROCm API gebruiken om kernels te starten en threads te synchroniseren
- ROCm API gebruiken om fouten en uitzonderingen af te handelen
HIP-taal
- Inzicht in de rol van HIP-taal in het apparaatprogramma
- HIP-taal gebruiken om kernels te schrijven die worden uitgevoerd op de GPU en gegevens manipuleren
- HIP-gegevenstypen, kwalificaties, operators en expressies gebruiken
- Gebruik van ingebouwde HIP-functies, variabelen en bibliotheken om algemene taken en bewerkingen uit te voeren
ROCm- en HIP-geheugenmodel
- Het verschil begrijpen tussen host- en apparaatgeheugenmodellen
- ROCm- en HIP-geheugenruimten gebruiken, zoals globaal, gedeeld, constant en lokaal
- ROCm- en HIP-geheugenobjecten gebruiken, zoals pointers, arrays, texturen en oppervlakken
- ROCm- en HIP-geheugentoegangsmodi gebruiken, zoals alleen-lezen, alleen-schrijven, lezen-schrijven, enz.
- Gebruik van ROCm- en HIP-geheugenconsistentiemodel en synchronisatiemechanismen
ROCm- en HIP-uitvoeringsmodel
- Het verschil begrijpen tussen host- en apparaatuitvoeringsmodellen
- ROCm- en HIP-threads, blokken en rasters gebruiken om het parallellisme te definiëren
- ROCm- en HIP-threadfuncties gebruiken, zoals hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, enz.
- ROCm- en HIP-blokfuncties gebruiken, zoals __syncthreads, __threadfence_block, enz.
- Met behulp van ROCm- en HIP-rasterfuncties, zoals hipGridDim_x, hipGridSync, coöperatieve groepen, enz.
Foutopsporing
- Inzicht in de veelvoorkomende fouten en bugs in ROCm- en HIP-programma's
- Gebruik Visual Studio Code debugger om variabelen, breekpunten, call-stack, enz. te inspecteren.
- ROCm Debugger gebruiken om ROCm- en HIP-programma's op AMD-apparaten te debuggen
- ROCm Profiler gebruiken om ROCm- en HIP-programma's op AMD-apparaten te analyseren
Optimalisatie
- Inzicht in de factoren die de prestaties van ROCm- en HIP-programma's beïnvloeden
- ROCm- en HIP-coalescentietechnieken gebruiken om de geheugendoorvoer te verbeteren
- ROCm- en HIP-caching en prefetching-technieken gebruiken om de geheugenlatentie te verminderen
- Gebruik van ROCm en HIP gedeeld geheugen en lokale geheugentechnieken om geheugentoegang en bandbreedte te optimaliseren
- ROCm- en HIP-profilering en profileringstools gebruiken om de uitvoeringstijd en het gebruik van middelen te meten en te verbeteren
Samenvatting en volgende stap
Vereisten
- Een goed begrip van de C/C++-taal en parallelle programmeerconcepten
- Basiskennis van computerarchitectuur en geheugenhiërarchie
- Ervaring met opdrachtregelprogramma's en code-editors
Publiek
- Ontwikkelaars die willen leren hoe ze ROCm en HIP kunnen gebruiken om AMD GPU's te programmeren en hun parallellisme te exploiteren
- Ontwikkelaars die hoogwaardige en schaalbare code willen schrijven die op verschillende AMD-apparaten kan draaien
- Programmeurs die de lagere aspecten van GPU programmeren willen verkennen en hun codeprestaties willen optimaliseren
28 Uren