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

Aantal deelnemers


Prijs Per Deelnemer

Voorlopige Aankomende Cursussen

Gerelateerde categorieën