CONTACT ONS

Cursusaanbod

Inleiding

  • Wat is GPU-programmeren?
  • Waarom zou je GPU-programmeren gebruiken?
  • Wat zijn de uitdagingen en afwegingen bij GPU-programmeren?
  • Welke frameworks en hulpmiddelen zijn er voor GPU-programmeren beschikbaar?
  • Het kiezen van het juiste framework en hulpmiddel voor uw applicatie.

OpenCL

  • Wat is OpenCL?
  • Wat zijn de voordelen en nadelen van OpenCL?
  • Het opzetten van een ontwikkelomgeving voor OpenCL.
  • Een eenvoudig OpenCL-programma schrijven dat vectoroptelling uitvoert.
  • OpenCL API gebruiken om informatie over apparaten op te vragen, geheugen toe te wijzen en vrij te geven, data tussen host en device te kopiëren, kernels te starten en threads te synchroniseren.
  • De OpenCL C-taal gebruiken om kernels te schrijven die op het device worden uitgevoerd en data bewerken.
  • Ingebouwde functies, variabelen en bibliotheken van OpenCL benutten voor veelvoorkomende taken.
  • OpenCL-geheugens zoals globaal, lokaal, constant en privaat gebruiken om dataoverdracht en geheugentoegang te optimaliseren.
  • Het uitvoeringsmodel van OpenCL gebruiken voor het bepalen van work-items, work-groups en ND-ranges die de parallelle verwerking definiëren.
  • OpenCL-programma’s debuggen en testen met behulp van tools zoals CodeXL.
  • OpenCL-programma’s optimaliseren door gebruik te maken van technieken als coalescing, caching, prefetching en profiling.

CUDA

  • Wat is CUDA?
  • Wat zijn de voordelen en nadelen van CUDA?
  • Het opzetten van een ontwikkelomgeving voor CUDA.
  • Een eenvoudig CUDA-programma schrijven dat vectoroptelling uitvoert.
  • CUDA API gebruiken om informatie over apparaten op te vragen, geheugen toe te wijzen en vrij te geven, data tussen host en device te kopiëren, kernels te starten en threads te synchroniseren.
  • De CUDA C/C++-taal gebruiken om kernels te schrijven die op het device worden uitgevoerd en data bewerken.
  • Ingebouwde functies, variabelen en bibliotheken van CUDA benutten voor veelvoorkomende taken.
  • CUDA-geheugens zoals globaal, gedeeld, constant en lokaal gebruiken om dataoverdracht en geheugentoegang te optimaliseren.
  • Het uitvoeringsmodel van CUDA gebruiken voor het bepalen van threads, blocks en grids die de parallelle verwerking definiëren.
  • CUDA-programma’s debuggen en testen met behulp van tools zoals CUDA-GDB, CUDA-MEMCHECK en NVIDIA Nsight.
  • CUDA-programma’s optimaliseren door gebruik te maken van technieken als coalescing, caching, prefetching en profiling.

ROCm

  • Wat is ROCm?
  • Wat zijn de voordelen en nadelen van ROCm?
  • Het opzetten van een ontwikkelomgeving voor ROCm.
  • Een eenvoudig ROCm-programma schrijven dat vectoroptelling uitvoert.
  • ROCm API gebruiken om informatie over apparaten op te vragen, geheugen toe te wijzen en vrij te geven, data tussen host en device te kopiëren, kernels te starten en threads te synchroniseren.
  • De ROCm C/C++-taal gebruiken om kernels te schrijven die op het device worden uitgevoerd en data bewerken.
  • Ingebouwde functies, variabelen en bibliotheken van ROCm benutten voor veelvoorkomende taken.
  • ROCm-geheugens zoals globaal, lokaal, constant en privaat gebruiken om dataoverdracht en geheugentoegang te optimaliseren.
  • Het uitvoeringsmodel van ROCm gebruiken voor het bepalen van threads, blocks en grids die de parallelle verwerking definiëren.
  • ROCm-programma’s debuggen en testen met behulp van tools zoals ROCm Debugger en ROCm Profiler.
  • ROCm-programma’s optimaliseren door gebruik te maken van technieken als coalescing, caching, prefetching en profiling.

HIP

  • Wat is HIP?
  • Wat zijn de voordelen en nadelen van HIP?
  • Het opzetten van een ontwikkelomgeving voor HIP.
  • Een eenvoudig HIP-programma schrijven dat vectoroptelling uitvoert.
  • De HIP-taal gebruiken om kernels te schrijven die op het device worden uitgevoerd en data bewerken.
  • Ingebouwde functies, variabelen en bibliotheken van HIP benutten voor veelvoorkomende taken.
  • HIP-geheugens zoals globaal, gedeeld, constant en lokaal gebruiken om dataoverdracht en geheugentoegang te optimaliseren.
  • Het uitvoeringsmodel van HIP gebruiken voor het bepalen van threads, blocks en grids die de parallelle verwerking definiëren.
  • HIP-programma’s debuggen en testen met behulp van tools zoals ROCm Debugger en ROCm Profiler.
  • HIP-programma’s optimaliseren door gebruik te maken van technieken als coalescing, caching, prefetching en profiling.

Vergelijking

  • De kenmerken, prestaties en compatibiliteit van OpenCL, CUDA, ROCm en HIP vergelijken.
  • GPU-programma’s evalueren aan de hand van benchmarks en meetwaarden.
  • Beste praktijken en tips voor GPU-programmeren leren.
  • Huidige en toekomstige ontwikkelingen en uitdagingen binnen het gebied van GPU-programmeren verkennen.

Samenvatting en volgende stappen

Vereisten

  • Grondige kennis van de C/C++-taal en concepten uit het parallelle programmeren
  • Basiskennis van computerarchitectuur en geheugenhiërarchie
  • Ervaring met commandoregeltools en code-editors

Doelgroep

  • Ontwikkelaars die de basisprincipes van GPU-programmeren willen leren, evenals de belangrijkste frameworks en hulpmiddelen voor het ontwikkelen van GPU-applicaties.
  • Ontwikkelaars die code willen schrijven die draagbaar en schaalbaar is op verschillende platforms en apparaten.
  • Programmeurs die de voordelen en uitdagingen van GPU-programmeren en -optimalisatie nader willen verkennen.
 21 Uren

Aangepaste bedrijfsopleiding

Opleidingsoplossingen ontworpen exclusief voor bedrijven.

  • Aangepaste inhoud: We passen de syllabus en praktijkopdrachten aan naar de echte doelen en behoeften van uw project.
  • Voor flexibel schema: Datums en tijden aangepast aan het rooster van uw team.
  • Formaat: Online (live), In-company (bij uw kantoren) of Hybride.
Investering

Prijs per privégroep, online live training, startend vanaf 4800 € + BTW*

Neem contact met ons op voor een exacte offerte en om onze laatste promoties te horen

Voorlopige Aankomende Cursussen

Gerelateerde categorieën