Kursplan

Innledning

  • Hva er GPU-programmering?
  • Hvorfor bruke GPU-programmering?
  • Hva er utfordringene og avveiningene ved GPU-programmering?
  • Hvilke rammeverk er det for GPU-programmering?
  • Å velge det riktige rammeverket for din applikasjon

OpenCL

  • Hva er OpenCL?
  • Hvilke fordelene og ulemper har OpenCL?
  • Oppsett av utviklingsmiljøet for OpenCL
  • Opprette et grunnleggende OpenCL-program som utfører vektoraddisjon
  • Bruke OpenCL API til å hente enhetsinformasjon, allokere og frigjøre enhetsminne, kopiere data mellom vert og enhet, starte kjerner og synkronisere tråder
  • Bruke OpenCL C-språket til å skrive kjerner som kjører på enheten og manipulerer data
  • Bruke OpenCLs innebygde funksjoner, variabler og biblioteker til å utføre vanlige oppgaver og operasjoner
  • Bruke OpenCLs minneområder, som global, lokal, konstant og privat, til å optimalisere datatransfer og minneadgang
  • Bruke OpenCLs utførelsesmodell for å kontrollere arbeidsenheter, arbeidsgrupper og ND-ranger som definerer parallelismen
  • Feilsøking og testing av OpenCL-programmer ved hjelp av verktøy som CodeXL
  • Optimalisering av OpenCL-programmer ved hjelp av teknikker som samling, caching, prefetching og profilerings

CUDA

  • Hva er CUDA?
  • Hvilke fordelene og ulemper har CUDA?
  • Oppsett av utviklingsmiljøet for CUDA
  • Opprette et grunnleggende CUDA-program som utfører vektoraddisjon
  • Bruke CUDA API til å hente enhetsinformasjon, allokere og frigjøre enhetsminne, kopiere data mellom vert og enhet, starte kjerner og synkronisere tråder
  • Bruke CUDA C/C++ språk til å skrive kjerner som kjører på enheten og manipulerer data
  • Bruke CUDAs innebygde funksjoner, variabler og biblioteker til å utføre vanlige oppgaver og operasjoner
  • Bruke CUDAs minneområder, som global, delt, konstant og lokal, til å optimalisere datatransfer og minneadgang
  • Bruke CUDAs utførelsesmodell for å kontrollere tråder, blokker og rutenett som definerer parallelismen
  • Feilsøking og testing av CUDA-programmer ved hjelp av verktøy som CUDA-GDB, CUDA-MEMCHECK og NVIDIA Nsight
  • Optimalisering av CUDA-programmer ved hjelp av teknikker som samling, caching, prefetching og profilerings

ROCm

  • Hva er ROCm?
  • Hvilke fordelene og ulemper har ROCm?
  • Oppsett av utviklingsmiljøet for ROCm
  • Opprette et grunnleggende ROCm-program som utfører vektoraddisjon
  • Bruke ROCm API til å hente enhetsinformasjon, allokere og frigjøre enhetsminne, kopiere data mellom vert og enhet, starte kjerner og synkronisere tråder
  • Bruke ROCm C/C++ språk til å skrive kjerner som kjører på enheten og manipulerer data
  • Bruke ROCms innebygde funksjoner, variabler og biblioteker til å utføre vanlige oppgaver og operasjoner
  • Bruke ROCms minneområder, som global, lokal, konstant og privat, til å optimalisere datatransfer og minneadgang
  • Bruke ROCms utførelsesmodell for å kontrollere tråder, blokker og rutenett som definerer parallelismen
  • Feilsøking og testing av ROCm-programmer ved hjelp av verktøy som ROCm Debugger og ROCm Profiler
  • Optimalisering av ROCm-programmer ved hjelp av teknikker som samling, caching, prefetching og profilerings

Sammenligning

  • Sammenligne funksjonene, ytelsen og kompatibiliteten til OpenCL, CUDA og ROCm
  • Vurdere GPU-programmer ved hjelp av benchmarks og metrikker
  • Lære best practices og tips for GPU-programmering
  • Undersøke nåværende og fremtidige trender og utfordringer innen GPU-programmering

Oppsummering og neste steg

Krav

  • En forståelse av C/C++-språket og parallelle programmeringskonsepter
  • Grunnleggende kunnskap om datamaskinarkitektur og minnehierarki
  • Erfaring med kommando-linjeverktøy og kodeeditorer

Målgruppe

  • Utviklere som ønsker å lære å bruke forskjellige rammeverk for GPU-programmering og sammenligne deres funksjoner, ytelse og kompatibilitet
  • Utviklere som ønsker å skrive bærbar og skalerbar kode som kan kjøres på forskjellige plattformer og enheter
  • Programmerere som ønsker å utforske kompromissene og utfordringene med GPU-programmering og optimalisering
 28 timer

Antall deltakere


Pris per deltaker

Kommende kurs

Relaterte kategorier