Cursusaanbod
Invoering
- Wat is CUDA?
- CUDA versus OpenCL versus SYCL
- Overzicht van CUDA-functies en architectuur
- Het opzetten van de ontwikkelomgeving
Aan de slag
- Een nieuw CUDA-project maken met behulp van Visual Studio Code
- Het verkennen van de projectstructuur en bestanden
- Het compileren en uitvoeren van het programma
- De uitvoer weergeven met printf en fprintf
CUDA-API
- Inzicht in de rol van CUDA API in het hostprogramma
- CUDA API gebruiken om apparaatinformatie en -mogelijkheden op te vragen
- CUDA API gebruiken om apparaatgeheugen toe te wijzen en de toewijzing ongedaan te maken
- CUDA API gebruiken om gegevens tussen host en apparaat te kopiëren
- CUDA API gebruiken om kernels te starten en threads te synchroniseren
- CUDA API gebruiken om fouten en uitzonderingen af te handelen
CUDA C/C++
- Inzicht in de rol van CUDA C/C++ in het apparaatprogramma
- CUDA C/C++ gebruiken om kernels te schrijven die op de GPU worden uitgevoerd en gegevens manipuleren
- Gebruik van CUDA C/C++-gegevenstypen, kwalificaties, operators en expressies
- Gebruik van ingebouwde CUDA C/C++-functies, zoals wiskunde, atomic, warp, etc.
- Met behulp van CUDA C/C++ ingebouwde variabelen, zoals threadIdx, blockIdx, blockDim, enz.
- Gebruik van CUDA C/C++-bibliotheken, zoals cuBLAS, cuFFT, cuRAND, enz.
CUDA-geheugenmodel
- Het verschil begrijpen tussen host- en apparaatgeheugenmodellen
- CUDA-geheugenruimten gebruiken, zoals globaal, gedeeld, constant en lokaal
- CUDA-geheugenobjecten gebruiken, zoals pointers, arrays, texturen en oppervlakken
- Gebruik van CUDA-geheugentoegangsmodi, zoals alleen-lezen, alleen-schrijven, lezen-schrijven, enz.
- Gebruik van CUDA-geheugenconsistentiemodel en synchronisatiemechanismen
CUDA-uitvoeringsmodel
- Het verschil begrijpen tussen host- en apparaatuitvoeringsmodellen
- Het gebruik van CUDA-threads, blokken en rasters om het parallellisme te definiëren
- Gebruik van CUDA-threadfuncties, zoals threadIdx, blockIdx, blockDim, enz.
- Gebruik van CUDA-blokfuncties, zoals __syncthreads, __threadfence_block, enz.
- Gebruik van CUDA-rasterfuncties, zoals gridDim, gridSync, coöperatieve groepen, enz.
Foutopsporing
- Inzicht in de veelvoorkomende fouten en bugs in CUDA-programma's
- Gebruik Visual Studio Code debugger om variabelen, breekpunten, call-stack, enz. 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 op Windows te debuggen en analyseren
Optimalisatie
- Inzicht in de factoren die de prestaties van CUDA-programma's beïnvloeden
- Het gebruik van CUDA-coalescentietechnieken om de geheugendoorvoer te verbeteren
- Het gebruik van CUDA-caching en prefetching-technieken om de geheugenlatentie te verminderen
- Gebruik van CUDA gedeeld geheugen en lokale geheugentechnieken om geheugentoegang en bandbreedte te optimaliseren
- Gebruik van CUDA-profilering en profileringstools om de uitvoeringstijd en het gebruik van middelen te meten en te verbeteren
Samenvatting en volgende stappen
Vereisten
- Een goed begrip van de C/C++-taal en parallelle programmeerconcepten
- Basiskennis van computerarchitectuur en geheugenhiërarchie
- Ervaring met opdrachtregelprogramma's en code-editors
Publiek
- Ontwikkelaars die willen leren hoe ze CUDA kunnen gebruiken om NVIDIA GPU's te programmeren en hun parallelliteit te exploiteren
- Ontwikkelaars die hoogwaardige en schaalbare code willen schrijven die op verschillende CUDA-apparaten kan worden uitgevoerd
- Programmeurs die de lagere aspecten van GPU programmeren willen verkennen en hun codeprestaties willen optimaliseren
Leveringsopties
PRIVÉGROEPSTRAINING
Onze identiteit draait om het leveren van precies wat onze klanten nodig hebben.
- Pre-cursusgesprek met uw trainer
- Aanpassing van de leerervaring om uw doelen te bereiken -
- Op maat gemaakte overzichten
- Praktische, praktische oefeningen met gegevens / scenario's die herkenbaar zijn voor de cursisten
- Training gepland op een datum naar keuze
- Gegeven online, op locatie/klaslokaal of hybride door experts die ervaring uit de echte wereld delen
Private Group Prices RRP from €9120 online delivery, based on a group of 2 delegates, €2880 per additional delegate (excludes any certification / exam costs). We recommend a maximum group size of 12 for most learning events.
Neem contact met ons op voor een exacte offerte en om onze laatste promoties te horen
OPENBARE TRAINING
Kijk op onze public courses
Reviews (2)
Zeer interactief met diverse voorbeelden, met een goede progressie in complexiteit tussen start en einde van de training.
Jenny - Andheo
Cursus - GPU Programming with CUDA and Python
Automatisch vertaald
Trainers, energie en humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Cursus - NVIDIA GPU Programming - Extended
Automatisch vertaald