Kursplan

Introduksjon

  • Hva er ROCm?
  • Hva er HIP?
  • ROCm vs CUDA vs OpenCL
  • Oversikt over ROCm og HIP funksjoner og arkitektur
  • Sette opp utviklingsmiljøet

Starter

  • Opprette et nytt ROCm-prosjekt ved å bruke Visual Studio-kode
  • Utforske prosjektstrukturen og filene
  • Kompilere og kjøre programmet
  • Viser utdata ved hjelp av printf og fprintf

ROCm API

  • Forstå rollen til ROCm API i vertsprogrammet
  • Bruke ROCm API for å spørre etter enhetsinformasjon og -funksjoner
  • Bruke ROCm API for å tildele og deallokere enhetsminne
  • Bruker ROCm API for å kopiere data mellom vert og enhet
  • Bruke ROCm API for å starte kjerner og synkronisere tråder
  • Bruke ROCm API for å håndtere feil og unntak

HIP-språk

  • Forstå rollen til HIP-språket i enhetsprogrammet
  • Bruke HIP-språk til å skrive kjerner som kjøres på GPU og manipulere data
  • Bruke HIP-datatyper, kvalifikatorer, operatorer og uttrykk
  • Bruke HIP innebygde funksjoner, variabler og biblioteker for å utføre vanlige oppgaver og operasjoner

ROCm og HIP minnemodell

  • Forstå forskjellen mellom verts- og enhetsminnemodeller
  • Bruk av ROCm- og HIP-minneplasser, for eksempel globale, delte, konstante og lokale
  • Bruke ROCm- og HIP-minneobjekter, for eksempel pekere, arrays, teksturer og overflater
  • Bruk av ROCm- og HIP-minnetilgangsmodi, for eksempel skrivebeskyttet, skrivebeskyttet, lese-skrive osv.
  • Bruker ROCm og HIP minnekonsistensmodell og synkroniseringsmekanismer

ROCm og HIP utførelsesmodell

  • Forstå forskjellen mellom verts- og enhetsutførelsesmodeller
  • Bruke ROCm og HIP tråder, blokker og rutenett for å definere parallelliteten
  • Bruk av ROCm- og HIP-trådfunksjoner, som hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
  • Bruk av ROCm- og HIP-blokkfunksjoner, for eksempel __syncthreads, __threadfence_block, etc.
  • Bruke ROCm og HIP grid funksjoner, som hipGridDim_x, hipGridSync, samarbeidsgrupper, etc.

Feilsøking

  • Forstå de vanlige feilene og feilene i ROCm- og HIP-programmer
  • Bruk av Visual Studio kodefeilsøker for å inspisere variabler, bruddpunkter, anropsstack, etc.
  • Bruke ROCm Debugger til å feilsøke ROCm- og HIP-programmer på AMD-enheter
  • Bruke ROCm Profiler til å analysere ROCm- og HIP-programmer på AMD-enheter

Optimalisering

  • Forstå faktorene som påvirker ytelsen til ROCm- og HIP-programmer
  • Bruke ROCm og HIP koalesceringsteknikker for å forbedre minnegjennomstrømningen
  • Bruke ROCm og HIP caching og forhåndshentingsteknikker for å redusere minnelatens
  • Bruk av ROCm og HIP delt minne og lokale minneteknikker for å optimalisere minnetilgang og båndbredde
  • Bruke ROCm og HIP profilerings- og profileringsverktøy for å måle og forbedre utførelsestiden og ressursutnyttelsen

Sammendrag og neste trinn

Krav

  • En forståelse av C/C++ språk og parallellprogrammeringskonsepter
  • Grunnleggende kunnskap om dataarkitektur og minnehierarki
  • Erfaring med kommandolinjeverktøy og koderedigerere

Publikum

  • Utviklere som ønsker å lære å bruke ROCm og HIP til å programmere AMD GPU og utnytte deres parallellitet
  • Utviklere som ønsker å skrive høyytelses og skalerbar kode som kan kjøres på forskjellige AMD-enheter
  • Programmerere som ønsker å utforske lavnivåaspektene ved GPU programmering og optimalisere kodeytelsen
 28 timer

Antall deltakere



Price per participant

Testimonials (1)

Relaterte kurs

GPU Programming - OpenCL vs CUDA vs ROCm

28 timer

Related Categories