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 GPU programmering?
- Hvorfor bruke GPU programmering?
- Hva er utfordringene og avveiningene ved GPU programmering?
- Hva er rammene for GPU programmering?
- Velge riktig rammeverk for søknaden din
OpenCL
- Hva er OpenCL?
- Hva er fordelene og ulempene med OpenCL?
- Sette opp utviklingsmiljøet for OpenCL
- Opprette et grunnleggende OpenCL program som utfører vektoraddisjon
- Bruke OpenCL API til å spørre etter enhetsinformasjon, tildele og deallokere enhetsminne, kopiere data mellom vert og enhet, starte kjerner og synkronisere tråder
- Bruke OpenCL C-språk for å skrive kjerner som kjører på enheten og manipulerer data
- Bruke OpenCL innebygde funksjoner, variabler og biblioteker for å utføre vanlige oppgaver og operasjoner
- Bruk av OpenCL minneplasser, for eksempel global, lokal, konstant og privat, for å optimalisere dataoverføringer og minnetilgang
- Bruke OpenCL utførelsesmodell for å kontrollere arbeidselementene, arbeidsgruppene og ND-områdene som definerer parallelliteten
- Feilsøking og testing av OpenCL programmer ved hjelp av verktøy som CodeXL
- Optimalisere OpenCL programmer ved hjelp av teknikker som koalescing, caching, forhåndshenting og profilering
CUDA
- Hva er CUDA?
- Hva er fordelene og ulempene med CUDA?
- Sette opp utviklingsmiljøet for CUDA
- Opprette et grunnleggende CUDA-program som utfører vektoraddisjon
- Bruke CUDA API til å spørre etter enhetsinformasjon, allokere og deallokere enhetsminne, kopiere data mellom vert og enhet, starte kjerner og synkronisere tråder
- Bruker CUDA C/C++-språket til å skrive kjerner som kjører på enheten og manipulerer data
- Bruk av CUDA innebygde funksjoner, variabler og biblioteker for å utføre vanlige oppgaver og operasjoner
- Bruk av CUDA-minneplasser, for eksempel globale, delte, konstante og lokale, for å optimalisere dataoverføringer og minnetilgang
- Bruk av CUDA-utførelsesmodell for å kontrollere trådene, blokkene og rutenettene som definerer parallelliteten
- 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 koalescing, caching, forhåndshenting og profilering
ROCm
- Hva er ROCm?
- Hva er fordelene og ulempene med ROCm?
- Sette opp utviklingsmiljøet for ROCm
- Opprette et grunnleggende ROCm-program som utfører vektoraddisjon
- Bruke ROCm API til å spørre etter enhetsinformasjon, allokere og deallokere enhetsminne, kopiere data mellom vert og enhet, starte kjerner og synkronisere tråder
- Bruke ROCm C/C++-språket til å skrive kjerner som kjører på enheten og manipulerer data
- Bruke ROCm innebygde funksjoner, variabler og biblioteker for å utføre vanlige oppgaver og operasjoner
- Bruk av ROCm-minneplasser, for eksempel globale, lokale, konstante og private, for å optimalisere dataoverføringer og minnetilgang
- Bruke ROCm-utførelsesmodellen for å kontrollere trådene, blokkene og rutenettene som definerer parallelliteten
- 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 koalescing, caching, forhåndshenting og profilering
Sammenligning
- Sammenligning av funksjonene, ytelsen og kompatibiliteten til OpenCL, CUDA og ROCm
- Evaluering av GPU programmer ved hjelp av benchmarks og beregninger
- Lær de beste fremgangsmåtene og tipsene for GPU programmering
- Utforske nåværende og fremtidige trender og utfordringer ved GPU programmering
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 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 avveiningene og utfordringene ved GPU programmering og optimalisering
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