Kursplan

Introduksjon

  • Hva er GPU-programmering?
  • Hvorfor bruke CUDA med Python?
  • Nøkkelbegreper: Tråder, blokker, rutenett

Oversikt over CUDA-egenskaper og -arkitektur

  • GPU vs CPU-arkitektur
  • Forklaring av SIMT (Single Instruction, Multiple Threads)
  • CUDA-programmeringsmodell

Oppsett av utviklingsmiljøet

  • Installasjon av CUDA Toolkit og drivere
  • Installasjon av Python og Numba
  • Oppsett og verifisering av miljøet

Fundament for parallell programmering

  • Introduksjon til parallelt kjøring
  • Forklaring av tråder og tråd-hierarki
  • Arbeid med warps og synkronisering

Arbeid med Numba-kompilatoren

  • Introduksjon til Numba
  • Skrive CUDA-kerneler med Numba
  • Forklaring av @cuda.jit-direktiver

Lage en egendefinert CUDA-kernel

  • Skrive og starte en grunnleggende kernel
  • Bruke tråder for element-for-element-operasjoner
  • Håndtering av rutenett- og blokk-dimensjoner

Minnebehandling

  • Type GPU-minne (globalt, delt, lokalt, konstant)
  • Minnetransfer mellom vert og enhet
  • Optimalisering av minnebruk og unngåing av bottlenekker

Fremadvendte emner i GPU-akselerasjon

  • Delt minne og synkronisering
  • Bruk av strømmer for asynkront kjøring
  • Grunnleggende fler-GPU-programmering

Konvertere CPU-baserte applikasjoner til GPU

  • Profilering av CPU-kode
  • Identifisering av parallelliserbare deler
  • Overføring av logikk til CUDA-kerneler

Felsøking

  • Feilsøking av CUDA-applikasjoner
  • Vanlige feil og hvordan løse dem
  • Værktøy og teknikker for testing og validering

Sammendrag og neste skritt

  • Gjennomgang av nøkkelbegreper
  • Beste praksis i GPU-programmering
  • Ressurser for videre læring

Krav

  • Erfaring med Python-programmering
  • Erfaring med NumPy (ndarrays, ufuncs, etc.)

Målgruppe

  • Utviklere
 14 Timer

Antall deltakere


Pris per deltaker

Referanser (1)

Kommende kurs

Relaterte kategorier