Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
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
Testimonials (2)
Veldig interaktiv med ulike eksempler, med god progresjon i kompleksitet mellom start og slutt på treningen.
Jenny - Andheo
Kurs - GPU Programming with CUDA and Python
Machine Translated
Trener energi og humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Kurs - NVIDIA GPU Programming - Extended
Machine Translated