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
Introduktion
- Vad är GPU programmering?
- Varför använda GPU programmering?
- Vilka är utmaningarna och kompromisserna med GPU programmering?
- Vilka är ramarna för GPU programmering?
- Att välja rätt ram för din ansökan
OpenCL
- Vad är OpenCL?
- Vilka är fördelarna och nackdelarna med OpenCL?
- Konfigurera utvecklingsmiljön för OpenCL
- Skapa ett grundläggande OpenCL program som utför vektortillägg
- Använda OpenCL API för att fråga enhetsinformation, allokera och avallokera enhetsminne, kopiera data mellan värd och enhet, starta kärnor och synkronisera trådar
- Använder OpenCL C-språk för att skriva kärnor som körs på enheten och manipulerar data
- Använda OpenCL inbyggda funktioner, variabler och bibliotek för att utföra vanliga uppgifter och operationer
- Använda OpenCL minnesutrymmen, såsom globala, lokala, konstanta och privata, för att optimera dataöverföringar och minnesåtkomster
- Använder OpenCL exekveringsmodell för att styra arbetsobjekt, arbetsgrupper och ND-intervall som definierar parallelliteten
- Felsökning och testning av OpenCL program med hjälp av verktyg som CodeXL
- Optimera OpenCL program med tekniker som koalescering, cachning, förhämtning och profilering
CUDA
- Vad är CUDA?
- Vilka är fördelarna och nackdelarna med CUDA?
- Att sätta upp utvecklingsmiljön för CUDA
- Skapa ett grundläggande CUDA-program som utför vektortillägg
- Använda CUDA API för att fråga enhetsinformation, allokera och avallokera enhetsminne, kopiera data mellan värd och enhet, starta kärnor och synkronisera trådar
- Använder språket CUDA C/C++ för att skriva kärnor som körs på enheten och manipulerar data
- Använda CUDA inbyggda funktioner, variabler och bibliotek för att utföra vanliga uppgifter och operationer
- Använda CUDA-minnesutrymmen, såsom globala, delade, konstanta och lokala, för att optimera dataöverföringar och minnesåtkomster
- Använder CUDA exekveringsmodell för att styra trådar, block och rutnät som definierar parallelliteten
- Felsökning och testning av CUDA-program med hjälp av verktyg som CUDA-GDB, CUDA-MEMCHECK och NVIDIA Nsight
- Optimera CUDA-program med hjälp av tekniker som koalescering, cachning, förhämtning och profilering
ROCm
- Vad är ROCm?
- Vilka är fördelarna och nackdelarna med ROCm?
- Sätta upp utvecklingsmiljön för ROCm
- Skapa ett grundläggande ROCm-program som utför vektortillägg
- Använda ROCm API för att fråga enhetsinformation, allokera och avallokera enhetsminne, kopiera data mellan värd och enhet, starta kärnor och synkronisera trådar
- Använda ROCm C/C++-språket för att skriva kärnor som körs på enheten och manipulerar data
- Använda ROCm inbyggda funktioner, variabler och bibliotek för att utföra vanliga uppgifter och operationer
- Använda ROCm-minnesutrymmen, såsom globala, lokala, konstanta och privata, för att optimera dataöverföringar och minnesåtkomster
- Använder ROCm exekveringsmodell för att styra trådar, block och rutnät som definierar parallelliteten
- Felsökning och testning av ROCm-program med hjälp av verktyg som ROCm Debugger och ROCm Profiler
- Optimera ROCm-program med hjälp av tekniker som koalescing, caching, förhämtning och profilering
Jämförelse
- Jämför funktioner, prestanda och kompatibilitet för OpenCL, CUDA och ROCm
- Utvärdera GPU program med hjälp av riktmärken och mått
- Lär dig de bästa metoderna och tipsen för GPU programmering
- Utforska nuvarande och framtida trender och utmaningar inom GPU programmering
Sammanfattning och nästa steg
Krav
- En förståelse för C/C++ språk och parallella programmeringskoncept
- Grundläggande kunskaper om datorarkitektur och minneshierarki
- Erfarenhet av kommandoradsverktyg och kodredigerare
Publik
- Utvecklare som vill lära sig att använda olika ramverk för GPU programmering och jämföra deras funktioner, prestanda och kompatibilitet
- Utvecklare som vill skriva bärbar och skalbar kod som kan köras på olika plattformar och enheter
- Programmerare som vill utforska avvägningarna och utmaningarna med GPU programmering och optimering
28 timmar
Vittnesmål (2)
Väldigt interaktiv med olika exempel, med en bra progression i komplexitet mellan start och slut av träningen.
Jenny - Andheo
Kurs - GPU Programming with CUDA and Python
Machine Translated
Tränarnas energi och humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Kurs - NVIDIA GPU Programming - Extended
Machine Translated