Neem contact met ons op

Cursusaanbod

Inleiding

  • Wat houdt GPU-programmeren in?
  • Waarom kiezen voor GPU-programmeren?
  • Wat zijn de uitdagingen en afwegingen bij GPU-programmeren?
  • Welke frameworks bieden ondersteuning voor GPU-programmeren?
  • Hoe kiest u het juiste framework voor uw toepassing?

OpenCL

  • Wat is OpenCL precies?
  • Welke voordelen en nadelen heeft het gebruik van OpenCL?
  • Hoe zet u een ontwikkelomgeving voor OpenCL op?
  • Een eenvoudig OpenCL-programma schrijven dat vectoradditie bewerkt.
  • Met OpenCL-API apparaatinformatie opvragen, geheugen toewijzen en vrijgeven, data overdragen tussen host en device, kernels starten en threads synchroniseren.
  • Kernels schrijven in OpenCL C die op het device worden uitgevoerd en data bewerken.
  • Gebruikmaken van ingebouwde functies, variabelen en bibliotheken om veelvoorkomende bewerkingen te doen.
  • Verschillende geheugengebieden zoals globaal, lokaal, constant of privaat inzetten voor efficiënte databeheer.
  • Het OpenCL-uitvoeringsmodel gebruiken om work-items, work-groups en ND-ranges te regelen die de parallelle verwerking bepalen.
  • OpenCL-programma’s testen en debuggen via hulpmiddelen zoals CodeXL.
  • Optimaal presteren: technieken als coalescing, caching, prefetching en profilering toepassen om code te verbeteren.

CUDA

  • Wat is CUDA en waar dient het voor?
  • Wat zijn de sterke punten en tekortkomingen van CUDA?
  • Installeren van een ontwikkelomgeving specifiek voor CUDA.
  • Een eenvoudig CUDA-programma maken dat vectoradditie bewerkt.
  • Via CUDA-API apparaatinformatie verkrijgen, geheugen beheren, data overdragen tussen host en device, kernels activeren en threads synchroniseren.
  • Kernels ontwikkelen in de programmeertaal CUDA C/C++ zodat ze op het GPU draaien.
  • Gebruik van ingebouwde functies, variabelen en bibliotheken om typische bewerkingen te implementeren.
  • Effectieve toepassing van geheugenlocaties zoals globaal, gedeeld, constant of lokaal om prestaties te vergroten.
  • Het CUDA-uitvoeringsmodel hanteren om threads, blokken en grids te bepalen die parallelle berekeningen regelen.
  • Debuggen en testen van CUDA-programma’s met hulpmiddelen als CUDA-GDB, CUDA-MEMCHECK en NVIDIA Nsight.
  • Code verbeteren door optimalisatiestrategieën zoals coalescing, caching, prefetching en profilering toe te passen.

ROCm

  • Wat is ROCm en welk doel vervult het?
  • Wat zijn de voordelen en beperkingen van ROCm?
  • Installeren van een ontwikkelomgeving voor ROCm.
  • Een eenvoudig ROCm-programma schrijven dat vectoradditie bewerkt.
  • Met ROCm-API apparaatinformatie opvragen, geheugen toewijzen of vrijgeven, data overdragen en kernels starten.
  • Kernels ontwerpen met ROCm C/C++-taal zodat deze op het device kunnen draaien.
  • Ingebouwde functies, variabelen en bibliotheken gebruiken om routinebewerkingen te automatiseren.
  • Verschillende geheugenruimtes toepassen zoals globaal, lokaal, constant of privaat voor optimale datastromen.
  • Het ROCm-uitvoeringsmodel benutten om threads, blokken en grids te sturen die de parallelle berekeningen bepalen.
  • Programma’s debuggen en testen met hulpmiddelen zoals ROCm Debugger en ROCm Profiler.
  • Verbeter de codekwaliteit door coalescing, caching, prefetching en profilering te gebruiken als optimalisatiestrategieën.

Vergelijking

  • OpenCL, CUDA en ROCm met elkaar vergelijken: functies, prestaties en ondersteuning.
  • GPU-programma's beoordelen op basis van benchmarks en meetgegevens.
  • Richtlijnen en tips voor effectief GPU-programmeren leren kennen.
  • Actuele ontwikkelingen en uitdagingen binnen het vakgebied verkennen.

Samenvatting en vervolgstappen

Vereisten

  • Kennis van de C/C++-programmeertaal en begrip van parallelle programmeerconcepten
  • Basiskennis van computerarchitectuur en geheugenhiërarchie
  • ervaring met commandoregeltools en code-editors

Doelgroep

  • Ontwikkelaars die meer willen leren over het gebruik van diverse frameworks voor GPU-programmeren en hun verschillen in functies, prestaties en compatibiliteit begrijpen
  • Programmeurs die code wensen te schrijven die zowel draagbaar als schaalbaar is voor gebruik op verschillende platforms en apparaten
  • IT-professionals die de voordelen, beperkingen en uitdagingen van GPU-programmeren willen verkennen
 28 Uren

Aantal deelnemers


Prijs per deelnemer

Voorlopige Aankomende Cursussen

Gerelateerde categorieën