Bedankt voor uw aanvraag! Een van onze medewerkers neemt binnenkort contact met u op
Bedankt voor uw boeking! Een van onze medewerkers neemt binnenkort contact met u op.
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.
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