Takk for at du sendte din henvendelse! En av våre teammedlemmer vil kontakte deg straks.
Takk for at du sendte din bestilling! En av våre teammedlemmer vil kontakte deg straks.
Kursplan
GPU-databehandling og CUDA-arkitektur
- Forskjeller i arkitektur mellom CPU og GPU
- NVIDIA GPU streaming multiprocessor-modell
- Oversikt over CUDA-programmeringsmodell
- Heterogen databehandling og vert-enhet-paradigmet
Oppsetting av CUDA-utviklingsmiljøet
- Installasjon av CUDA Toolkit 13.x
- NVCC-kompilator og byggingsarbeidsflyt
- Bekreftelse av miljøet med enhetsforespørsler
- IDE-integrasjon og utviklingsverktøy
Skrive og lansere CUDA-kerneler
- Syntaks og kvalifisatorer for kernel-funksjoner
- Lanseringskonfigurasjon og utførelse
- Vektoraddisjon og grunnleggende data-parallellmønster
- MACRO'er for feilsjekking i CUDA
CUDA-trådhierarki og utføringsmodell
- Inndeling av grid, blokk og tråd
- Trådindeksering og beregning av global ID
- Uførelse av warps og SIMT-modell
- Ocupancy og ressursutnyttelse
GPU-minnearkitur og håndtering
- Minnetyper: global, shared, konstant, register
- Tildeling og fjerning av minne på enheten
- Dataoverføring fra vert til enhet og omvendt
- Shared-minne for samarbeid innenfor blokker
Samlet minne og datamigrering
- Modellen for samlet minne og styrte tildelinger
- Sidesbytte og on-demand pageing
- Asynkron forhåndsutfylling med cudaMemPrefetchAsync
- Minneadviseringshint for tilgangsmønstre
Systembred profilering med Nsight Systems
- Tidslinjeanalyse i Nsight Systems
- Identifisering av synkroniseringspunkter mellom CPU og GPU
- Visualisering av kernel-utførelse og dataoverføringer
- Tolkning av systemnivå ytelsesdata
Kernel-optimalisering med Nsight Compute
- Interaktiv profilering av kerneler i Nsight Compute
- Minnegjennomstrømning og båndbreddeanalyse
- Bereggningsutnyttelse og statistikk over warp-tilstander
- Guidet analyse og optimaliseringsregler
Parallelle strammer og asynkrone operasjoner
- CUDA-strammer og standardstram
- Overlapping av kernel-utførelse med dataoverføringer
- Synkronisering av strammer og CUDA-events
- Mønster for multi-stram pipeline
Feilhåndtering og feilsøkingsverktøy
- CUDA-API-feilkoder og gjenopprettingsstrategier
- Compute-sanitizer for minnetilgangsjekk
- cuda-gdb for kernel-feilsøking
- Assertioner og synkron feiloppdagelse
Profil-drevet optimaliseringsprosess
- Itrativ profileringsmetodikk
- Identifisering og prioritering av flaskehalser
- Prestasjonsregresjonstest
- Dokumentering av optimaliseringsbeslutninger
Gjennomføring av en fullstendig akselerert applikasjonsprosjekt
- Designe en komplett GPU-akselerert løsning
- Integrasjon av profilering gjennom utviklingen
- Prestasjonsbenchmarking og rapportering
- Dekompilering overveielser for produksjon
Krav
- Grunnleggende kompetanse i C/C++-programmering, inkludert variabeltyper, løkker, vilkårlige setninger, funksjoner og array-manipulasjon
- Kunnskap om å kompilere og kjøre programmer fra kommandolinjen
- Ingen tidligere erfaring med GPU- eller CUDA-programmering er påkrevd
Målgruppe
- Programvareutviklere og ingeniører som søker å akselerere C/C++-applikasjoner med GPU-er
- Vitenskapelige forskere og HPC-fagfolk som overgår fra kun CPU-basert til heterogen databehandling
- Tekniske ledere som evaluerer GPU-akselerering for produksjonsarbeidsbelastninger
8 Timer