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
Inleiding
- Wat is GPU-programmering?
- Waarom gebruik je GPU-programmering?
- Welke uitdagingen en trade-offs heeft GPU-programmering?
- Welke frameworks zijn er voor GPU-programmering?
- Het juiste framework kiezen voor je toepassing
OpenCL
- Wat is OpenCL?
- Wat zijn de voordelen en nadelen van OpenCL?
- De ontwikkelomgeving voor OpenCL opzetten
- Een basis OpenCL-programma maken dat vectoroptelling uitvoert
- De OpenCL-API gebruiken om apparaatinformatie op te vragen, geheugen toe te wijzen en vrij te geven, gegevens tussen host en apparaat te kopiëren, kernels te starten en threads te synchroniseren
- De OpenCL C-taal gebruiken om kernels te schrijven die op het apparaat worden uitgevoerd en gegevens manipuleren
- De ingebouwde functies, variabelen en bibliotheken van OpenCL gebruiken om veelvoorkomende taken en bewerkingen uit te voeren
- De geheugenruimtes van OpenCL, zoals globaal, lokaal, constant en privé, gebruiken om gegevensoverdrachten en geheugentoegang te optimaliseren
- Het uitvoeringsmodel van OpenCL gebruiken om de work-items, work-groups en ND-ranges die parallelisme definiëren te beheren
- GPU-programma's met hulpmiddelen zoals CodeXL debuggen en testen
- GPU-programma's optimaliseren met technieken zoals coalescing, caching, prefetching en profiling
CUDA
- Wat is CUDA?
- Wat zijn de voordelen en nadelen van CUDA?
- De ontwikkelomgeving voor CUDA opzetten
- Een basis CUDA-programma maken dat vectoroptelling uitvoert
- De CUDA-API gebruiken om apparaatinformatie op te vragen, geheugen toe te wijzen en vrij te geven, gegevens tussen host en apparaat te kopiëren, kernels te starten en threads te synchroniseren
- De CUDA C/C++-taal gebruiken om kernels te schrijven die op het apparaat worden uitgevoerd en gegevens manipuleren
- De ingebouwde functies, variabelen en bibliotheken van CUDA gebruiken om veelvoorkomende taken en bewerkingen uit te voeren
- De geheugenruimtes van CUDA, zoals globaal, gedeeld, constant en lokaal, gebruiken om gegevensoverdrachten en geheugentoegang te optimaliseren
- Het uitvoeringsmodel van CUDA gebruiken om de threads, blokken en grids die parallelisme definiëren te beheren
- GPU-programma's met hulpmiddelen zoals CUDA-GDB, CUDA-MEMCHECK en NVIDIA Nsight debuggen en testen
- GPU-programma's optimaliseren met technieken zoals coalescing, caching, prefetching en profiling
ROCm
- Wat is ROCm?
- Wat zijn de voordelen en nadelen van ROCm?
- De ontwikkelomgeving voor ROCm opzetten
- Een basis ROCm-programma maken dat vectoroptelling uitvoert
- De ROCm-API gebruiken om apparaatinformatie op te vragen, geheugen toe te wijzen en vrij te geven, gegevens tussen host en apparaat te kopiëren, kernels te starten en threads te synchroniseren
- De ROCm C/C++-taal gebruiken om kernels te schrijven die op het apparaat worden uitgevoerd en gegevens manipuleren
- De ingebouwde functies, variabelen en bibliotheken van ROCm gebruiken om veelvoorkomende taken en bewerkingen uit te voeren
- De geheugenruimtes van ROCm, zoals globaal, lokaal, constant en privé, gebruiken om gegevensoverdrachten en geheugentoegang te optimaliseren
- Het uitvoeringsmodel van ROCm gebruiken om de threads, blokken en grids die parallelisme definiëren te beheren
- GPU-programma's met hulpmiddelen zoals ROCm Debugger en ROCm Profiler debuggen en testen
- GPU-programma's optimaliseren met technieken zoals coalescing, caching, prefetching en profiling
Vergelijking
- De kenmerken, prestaties en compatibiliteit van OpenCL, CUDA en ROCm vergelijken
- GPU-programma's evalueren met behulp van benchmarks en metrieken
- De beste praktijken en tips voor GPU-programmering leren
- Huidige en toekomstige trends en uitdagingen van GPU-programmering verkennen
Samenvatting en volgende stappen
Vereisten
- Inzicht in de C/C++-taal en concepten van parallelle programmering
- Basiswetenschap van computerarchitectuur en geheiemhiërarchie
- Ervaring met command-line tools en code-editors
Doelgroep
- Ontwikkelaars die willen leren hoe ze verschillende frameworks voor GPU-programmering kunnen gebruiken en hun kenmerken, prestaties en compatibiliteit vergelijken
- Ontwikkelaars die portable en schaalbare code willen schrijven die op verschillende platforms en apparaten kan draaien
- Programmeurs die de trade-offs en uitdagingen van GPU-programmering en optimalisatie willen onderzoeken
28 Uren