CONTACT ONS

Cursusaanbod

Inleiding

  • Wat is CUDA?
  • CUDA versus OpenCL en SYCL.
  • Een overzicht van de belangrijkste kenmerken en architectuur van CUDA.
  • Opzetten van een ontwikkelomgeving.

Aan de slag

  • Een nieuw CUDA-project aanmaken in Visual Studio Code.
  • De structuur en bestanden van het project verkennen.
  • Het programma compileren en uitvoeren.
  • Resultaten weergeven met printf en fprintf.

CUDA API

  • De rol van CUDA API binnen de host-programmering.
  • Systeemgegevens verzamelen via CUDA API.
  • Geheugen toewijzen en vrijgeven door middel van CUDA API-functies.
  • Data overbrengen tussen host en device met behulp van CUDA API.
  • Kernels starten en threads synchroniseren via CUDA API.
  • Fouten en uitzonderingen afhandelen in het kader van CUDA API.

CUDA C/C++

  • Rol van CUDA C/C++ binnen de device-programmering.
  • Kernels schrijven die op de GPU draaien en data verwerken met behulp van CUDA C/C++.
  • Gebruikmaken van typen, operators en expressies in CUDA C/C++.
  • Math-, atomic- en warp-functies uitvoeren via ingebouwde CUDA C/C++-methodes.
  • Built-in variabelen zoals threadIdx, blockIdx en blockDim gebruiken binnen het kader van CUDA C/C++.
  • Bibliotheken als cuBLAS, cuFFT en cuRAND implementeren in codes.

CUDA Geheugenmodel

  • Onderscheid maken tussen host- en device-geheugentypen.
  • Gebruikmaken van verschillende geheugengebieden: globaal, gedeeld, constant en lokaal.
  • Pointers, arrays, textures of surfaces beheren binnen het CUDA-geheugenmodel.
  • Toegangsrechten bepalen voor data via opties zoals lezen/schrijven en restricties daarop.
  • Geheugenconsistentie regelen en synchronisatiemechanismes toepassen.

CUDA Uitvoeringsmodel

  • Het verschil tussen host- en device-uitvoering begrijpen.
  • Threads, blokken en grids samenstellen om parallelle processen te vormen.
  • Functies zoals threadIdx, blockIdx of blockDim gebruiken binnen CUDA-structures.
  • Gebruikmaken van speciale functies zoals __syncthreads en __threadfence_block voor synchronisatie.
  • Grid-gerelateerde acties uitvoeren waaronder gridDim, gridSync of groepsvorming met behulp van cooperative groups.

Debuggen

  • Geliefde fouttypes en bugs binnen CUDA-programma’s onderkennen.
  • Variabelen analyseren, breakpoints zetten of call stacks controleren met de debugger in Visual Studio Code.
  • Linux-gebruikers kunnen gebruikmaken van CUDA-GDB voor gedetailleerde debug-informatie.
  • Mogelijke geheugenproblemen ontdekken via CUDA-MEMCHECK.
  • Windows-ontwikkelaars beschikken over NVIDIA Nsight om codes te monitoren en af te handelen.

Optimalisatie

  • Performance-beperkende elementen identificeren binnen CUDA-programma’s.
  • Gebruikmaken van coalescing technieken voor verhoging van data-transmissiesnelheid.
  • Caching en prefetching toepassen om vermindering van geheugenlatentie te realiseren.
  • Optimaliseer dataverwerking via gebruikmaking van gedeeld en lokaal geheugen.
  • Instrumentatie-tools benutten voor het monitoren en verbeteren van uitvoertijd en systeemgebruik.

Afsluiting en vervolgstappen

Vereisten

  • Basiskennis van de C/C++-taal en concepten rond parallel programmeren.
  • Een elementaire kennis van computerarchitectuur en geheugenhiërarchie.
  • Ervaring met commandoregeltools en code-editors.

Doelgroep

  • Ontwikkelaars die willen leren CUDA te gebruiken voor het programmeren van NVIDIA-GPU’s.
  • Ontwikkelaars die efficiënte, schaalbare code wensen te ontwikkelen voor diverse CUDA-systemen.
  • Programmeurs die graag de onderliggende aspecten van GPU-programmeren leren en hun codes willen optimaliseren.
 28 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 6400 € + BTW*

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

Voorlopige Aankomende Cursussen

Gerelateerde categorieën