Ta kontakt

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

Antall deltakere


Pris per deltaker

Kommende kurs

Relaterte kategorier