CONTACT ONS
 Duur 28 uren

Cursusaanbod

Inleiding

  • Wat is CUDA?
  • CUDA vs. OpenCL vs. SYCL
  • Overzicht van CUDA-functies en architectuur
  • Inrichten van de ontwikkelomgeving

Starten met CUDA

  • Een nieuw CUDA-project aanmaken met Visual Studio Code
  • De projectstructuur en bestanden verkennen
  • Programma compileren en uitvoeren
  • Uitvoer tonen met printf en fprintf

CUDA API

  • De rol van de CUDA API in het host-programma begrijpen
  • De CUDA API gebruiken om apparaatgegevens en capaciteiten op te vragen
  • De CUDA API gebruiken om device-geheugen toe te wijzen en vrij te geven
  • De CUDA API gebruiken om data over te kopiëren tussen host en device
  • De CUDA API gebruiken om kernels te starten en threads te synchroniseren
  • De CUDA API gebruiken om fouten en uitzonderingen af te handelen

CUDA C/C++

  • De rol van CUDA C/C++ in het device-programma begrijpen
  • CUDA C/C++ gebruiken om kernels te schrijven die op de GPU worden uitgevoerd en data manipuleren
  • CUDA C/C++ datatypes, kwalificatoren, operators en expressies gebruiken
  • Ingebouwde CUDA C/C++-functies gebruiken, zoals wiskunde, atomair, warp, etc.
  • Ingebouwde CUDA C/C++-variabelen gebruiken, zoals threadIdx, blockIdx, blockDim, etc.
  • CUDA C/C++-bibliotheken gebruiken, zoals cuBLAS, cuFFT, cuRAND, etc.

CUDA-geheugenmodel

  • Het verschil tussen de geheugenmodellen van host en device begrijpen
  • CUDA-geheugenspaces gebruiken, zoals globale, gedeelde, constante en lokale geheugens
  • CUDA-geheugenobjecten gebruiken, zoals pointers, arrays, texturen en oppervlakken
  • CUDA-geheugentoegangsmodi gebruiken, zoals alleen-lezen, alleen-schrijven, lezen-schrijven, etc.
  • Het CUDA-geheugenconsistentiemodel en synchronisatiemechanismen gebruiken

CUDA-uitvoeringsmodel

  • Het verschil tussen de uitvoeringsmodellen van host en device begrijpen
  • CUDA-threads, blokken en roosters gebruiken om de parallelisme te definiëren
  • CUDA-threadfuncties gebruiken, zoals threadIdx, blockIdx, blockDim, etc.
  • CUDA-blokfuncties gebruiken, zoals __syncthreads, __threadfence_block, etc.
  • CUDA-roosterfuncties gebruiken, zoals gridDim, gridSync, cooperative groups, etc.

Debugging

  • Gangbare fouten en bugs in CUDA-programma's begrijpen
  • De debugger van Visual Studio Code gebruiken om variabelen, breakpoints en call stacks te inspecteren
  • CUDA-GDB gebruiken om CUDA-programma's te debuggen op Linux
  • CUDA-MEMCHECK gebruiken om geheugenfouten en lekken te detecteren
  • NVIDIA Nsight gebruiken om CUDA-programma's te debuggen en te analyseren op Windows

Optimalisatie

  • Factoren begrijpen die de prestaties van CUDA-programma's beïnvloeden
  • CUDA-coalescingtechnieken gebruiken om het geheugendebiet te verbeteren
  • CUDA-caching- en prefetchingtechnieken gebruiken om geheugentranslatentie te verlagen
  • CUDA gedeeld en lokaal geheugen gebruiken om geheugentoegang en bandbreedte te optimaliseren
  • CUDA-profiling en profieltools gebruiken om de uitvoertijd en bronbenutting te meten en te verbeteren

Vereisten

  • Een begrip van de C/C++-taal en concepten van parallelle programmering
  • Basis kennis van computerarchitectuur en geheughenhierarchie
  • Ervaring met command line tools en code editors

Publiek

  • Ontwikkelaars die willen leren hoe CUDA kan worden gebruikt om NVIDIA GPU's te programmeren en hun parallelle capaciteiten te benutten
  • Ontwikkelaars die hoogpresterende en schaalbare code willen schrijven die op verschillende CUDA-apparaten kan draaien
  • Programmeurs die de laag-niveau aspecten van GPU-programmering willen verkennen en de prestaties van hun code willen optimaliseren

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