Cursusaanbod

Inleiding

  • Wat is GPU-programmeren?
  • Waarom GPU-programmeren gebruiken?
  • Wat zijn de uitdagingen en compromissen van GPU-programmeren?
  • Wat zijn de frameworks voor GPU-programmeren?
  • Kiezend de juiste framework voor uw toepassing

OpenCL

  • Wat is OpenCL?
  • Wat zijn de voordelen en nadelen van OpenCL?
  • Het opzetten van de ontwikkelomgeving voor OpenCL
  • Het creëren van een basiskernel OpenCL programma dat vectoroptelling uitvoert
  • Het gebruiken van OpenCL API om informatie over de apparatuur op te vragen, apparaatgeheugen toe te wijzen en vrij te geven, gegevens over te zetten tussen host en apparaat, kernels te starten en threads te synchroniseren
  • Het gebruik van OpenCL C-taal om kernels te schrijven die op het apparaat worden uitgevoerd en gegevens manipuleren
  • Het gebruik van ingebouwde functies, variabelen en bibliotheken van OpenCL om veelvoorkomende taken en bewerkingen uit te voeren
  • Het gebruik van OpenCL geheugenspaces, zoals globaal, lokaal, constant en privé, om gegevensoverdrachten en geheugen-toegangen te optimaliseren
  • Het gebruik van het OpenCL uitvoeringsmodel om de werk-items, werk-groepen en ND-ranges te sturen die de parallelisme definieren
  • Het debuggen en testen van OpenCL programma's met behulp van tools zoals CodeXL
  • Het optimaliseren van OpenCL programma's met behulp van technieken zoals samensmelting, caching, vooraf laden en profileren

CUDA

  • Wat is CUDA?
  • Wat zijn de voordelen en nadelen van CUDA?
  • Het opzetten van de ontwikkelomgeving voor CUDA
  • Het creëren van een basiskernel CUDA programma dat vectoroptelling uitvoert
  • Het gebruiken van CUDA API om informatie over de apparatuur op te vragen, apparaatgeheugen toe te wijzen en vrij te geven, gegevens over te zetten tussen host en apparaat, kernels te starten en threads te synchroniseren
  • Het gebruik van CUDA C/C++ taal om kernels te schrijven die op het apparaat worden uitgevoerd en gegevens manipuleren
  • Het gebruik van ingebouwde functies, variabelen en bibliotheken van CUDA om veelvoorkomende taken en bewerkingen uit te voeren
  • Het gebruik van CUDA geheugenspaces, zoals globaal, gedeeld, constant en lokaal, om gegevensoverdrachten en geheugen-toegangen te optimaliseren
  • Het gebruik van het CUDA uitvoeringsmodel om de threads, blokken en rastern te sturen die de parallelisme definieren
  • Het debuggen en testen van CUDA programma's met behulp van tools zoals CUDA-GDB, CUDA-MEMCHECK en NVIDIA Nsight
  • Het optimaliseren van CUDA programma's met behulp van technieken zoals samensmelting, caching, vooraf laden en profileren

ROCm

  • Wat is ROCm?
  • Wat zijn de voordelen en nadelen van ROCm?
  • Het opzetten van de ontwikkelomgeving voor ROCm
  • Het creëren van een basiskernel ROCm programma dat vectoroptelling uitvoert
  • Het gebruiken van ROCm API om informatie over de apparatuur op te vragen, apparaatgeheugen toe te wijzen en vrij te geven, gegevens over te zetten tussen host en apparaat, kernels te starten en threads te synchroniseren
  • Het gebruik van ROCm C/C++ taal om kernels te schrijven die op het apparaat worden uitgevoerd en gegevens manipuleren
  • Het gebruik van ingebouwde functies, variabelen en bibliotheken van ROCm om veelvoorkomende taken en bewerkingen uit te voeren
  • Het gebruik van ROCm geheugenspaces, zoals globaal, lokaal, constant en privé, om gegevensoverdrachten en geheugen-toegangen te optimaliseren
  • Het gebruik van het ROCm uitvoeringsmodel om de threads, blokken en rastern te sturen die de parallelisme definieren
  • Het debuggen en testen van ROCm programma's met behulp van tools zoals ROCm Debugger en ROCm Profiler
  • Het optimaliseren van ROCm programma's met behulp van technieken zoals samensmelting, caching, vooraf laden en profileren

Vergelijking

  • Het vergelijken van de functies, prestaties en compatibiliteit van OpenCL, CUDA en ROCm
  • Het evalueren van GPU programma's met behulp van benchmarks en metrische waarden
  • Het leren van de beste praktijken en tips voor GPU programmeren
  • Het verkennen van de huidige en toekomstige trends en uitdagingen van GPU programmeren

Samenvatting en volgende stappen

Vereisten

  • Een begrip van de C/C++ taal en parallel programmeringsconcepten
  • Basis kennis van computer architectuur en geheugenhiërarchie
  • Ervaring met command-line gereedschappen en code-editors

Doelgroep

  • Ontwikkelaars die willen leren hoe ze verschillende frameworks voor GPU programmering kunnen gebruiken en hun functies, prestaties en compatibiliteit kunnen vergelijken
  • Ontwikkelaars die willen schrijven voor draagbare en schaalbare code die op verschillende platforms en apparaten kan draaien
  • Programmeurs die willen verkennen de voordelen en uitdagingen van GPU programmering en optimalisatie
 28 Uren

Aantal deelnemers


Prijs Per Deelnemer

Voorlopige Aankomende Cursussen

Gerelateerde categorieën