Neem contact met ons op

Cursusaanbod

GPU-computing en CUDA-architectuur

  • Verschillen tussen CPU- en GPU-architecturen
  • Het model van NVIDIA’s streaming multiprocessors
  • Inleiding tot het CUDA-programmeermodel
  • Heterogene computing en het host-device-principe

Opzetten van de CUDA-ontwikkelomgeving

  • Installatie van het CUDA Toolkit 13.x
  • De NVCC-compiler en werkwijze bij bouwen
  • Controleren of de omgeving correct is geïnstalleerd via device queries
  • Integratie met IDE’s en ontwikkeltools

Het schrijven en starten van CUDA-kernels

  • Syntaxis en specifiers voor kernel-functies
  • Configuratie en uitvoering van kernels
  • Vectoradditie en andere basismatige parallelle bewerkingen
  • Gebruik van macros voor CUDA-foutcontrole

Thread-hiërarchie en uitvoeringsmodel in CUDA

  • Aufbouw van grids, blokken en threads
  • Berekenen van thread-indexen en globale ID’s
  • Uitvoering binnen warps volgens het SIMT-model
  • Occupancy en efficiënt gebruik van bronnen

GPU-geheugenstructuur en beheer

  • Soorten geheugen: globaal, gedeeld, constant en registers
  • Toewijzen en vrijgeven van device-geheugen
  • Overdragen van data tussen host en device
  • Gebruik van shared memory voor samenwerking binnen blokken

Unified Memory en datamigratie

  • Model van unified memory en toegewezen managed geheugenblokken
  • Migratie van pagina’s en on-demand paging
  • Asynchrone prefetching via cudaMemPrefetchAsync
  • Aanbevelingen voor geheugengebruik afhankelijk van toegangspatroon

Systematische profiling met Nsight Systems

  • Tijdslijnanalyse met Nsight Systems
  • Het identificeren van synchronisatiepunten tussen CPU en GPU
  • Visualisering van kerneluitvoering en geheugenoverdrachten
  • Interpretatie van systeemgerelateerde performance-gegevens

Optimization van kernels met Nsight Compute

  • Interactief profileren van kernels via Nsight Compute
  • Analyse van geheugendoorvoer en bandbreedtegebruik
  • Berekeningsefficiëntie en statistieken over warp-activiteit
  • Gebruiksvriendelijke richtlijnen voor analyse en optimalisatie

Geconcurrentie tussen streams en asynchrone bewerkingen

  • CUDA-streams en de standaard stream configureren
  • Gelijktijdige uitvoering van kernels en overdracht van data realiseren
  • Synchronisatie tussen streams en gebruik van CUDA-events
  • Ontwerppatronen voor multi-stream gebaseerde pipelines

Foutafhandeling en debugging-tools

  • CUDA-API-foutcodes en strategieën om daarop te reageren
  • Compute-sanitizer voor detectie van problemen met geheugentoegang
  • cuda-gdb ter ondersteuning bij kernel-debugging
  • Gebruik van asserties en synchronisatievoorzieningen om fouten te identificeren

Optimalisatiestrategie gebaseerd op profiling-data

  • Het iteratief toepassen van profileringstechnieken
  • Bottleneck-identificatie en prioritering van verbeteringen
  • Uitvoeren van prestatietests om regressies te voorkomen
  • Documenteren van gemaakte optimalisatieve beslissingen

Globaal project: ontwikkeling van een geaccelererde applicatie

  • Ontwerp van een volledige GPU-versnelde oplossing van A tot Z
  • Geïntegreerd gebruik van profilingtools gedurende het hele ontwikkelproces
  • Prestatieanalyse en rapportage opleveren
  • Overwegingen betreffende implementatie in productieomgevingen

Vereisten

  • Basisvaardigheden in C/C++-programmeren, waaronder het werken met variabelen, lussen, conditionele bewerkingen, functies en arrays
  • Vertrouwdheid met het compileren en uitvoeren van programma’s via de commandoregel
  • Eerder ervaring met GPU- of CUDA-programmeren is niet vereist

Doelgroep

  • Softwareontwikkelaars en -ingenieurs die hun C/C++-applicaties willen versnellen met behulp van GPU’s
  • Wetenschappelijk onderzoekers en HPC-experts die overstappen op heterogene computing naast gebruik van alleen CPU’s
  • Tech Lead-professionals die GPU-acceleratie evalueren voor productieomgevingen
 8 Uren

Aantal deelnemers


Prijs per deelnemer

Voorlopige Aankomende Cursussen

Gerelateerde categorieën