NVIDIA GPU Programming Träningskurs
Denna kurs behandlar hur man programmerar GPU er för parallell databehandling. Vissa av applikationerna inkluderar djup inlärnings-, analys- och teknikapplikationer.
Kursplan
Dag 1 - Introduktion och grunder
- Varför Parallell Computing? Behov av parallell beräkning av flerkärniga processorer - arkitektur och design Introduktion till trådar, trådgrunder och grundläggande koncept för parallell programmering OpenMP- En standard för direktivbaserad parallell Programming Hands on / Demonstration av olika program på flerkärniga maskiner
Dag 2 – GPU Programming
- GPU:er för parallell beräkning GPU:er Programming Modell Hands on/Demonstration av olika program på GPU SDK, Toolkit och installation av miljö för GPU Arbeta med olika bibliotek Demonstration av GPU och verktyg med exempelprogram och OpenACC
Krav
C Programming, Linux GCC
Open Training Courses require 5+ participants.
NVIDIA GPU Programming Träningskurs - Booking
NVIDIA GPU Programming Träningskurs - Enquiry
NVIDIA GPU Programming - Consultancy Enquiry
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
Upcoming Courses
Relaterade Kurser
GPU Programming with CUDA and Python
14 timmarDenna instruktörsledda, liveutbildning i Sverige (online eller på plats) riktar sig till utvecklare som vill använda CUDA för att bygga Python applikationer som körs parallellt på NVIDIA GPU:er.
I slutet av denna utbildning kommer deltagarna att kunna:
- Använd Numba-kompilatorn för att accelerera Python applikationer som körs på NVIDIA GPU:er.
- Skapa, kompilera och starta anpassade CUDA-kärnor.
- Hantera GPU-minne.
- Konvertera en CPU-baserad applikation till en GPU-accelererad applikation.
Administration of CUDA
35 timmarDen här instruktörsledda, liveutbildningen i Sverige (online eller på plats) riktar sig till systemadministratörer på nybörjarnivå och IT-proffs som vill installera, konfigurera, hantera och felsöka CUDA-miljöer.
I slutet av denna utbildning kommer deltagarna att kunna:
- Förstå arkitekturen, komponenterna och funktionerna i CUDA.
- Installera och konfigurera CUDA-miljöer.
- Hantera och optimera CUDA-resurser.
- Felsöka och felsöka vanliga CUDA-problem.
NVIDIA GPU Programming
14 timmarDenna kurs behandlar hur man programmerar GPU er för parallell databehandling. Vissa av applikationerna inkluderar djup inlärnings-, analys- och teknikapplikationer.
NVIDIA GPU Programming - Extended
21 timmarDenna instruktörsledda, liveutbildning i Sverige täcker hur man programmerar GPUs för parallell beräkning, hur man använder olika plattformar, hur man arbetar med CUDA-plattformen och dess funktioner och hur man utför olika optimeringstekniker med CUDA . Några av applikationerna inkluderar djupinlärning, analys, bildbehandling och ingenjörsapplikationer.
Hardware-Accelerated Video Analytics
14 timmarDenna instruktörsledda, liveutbildning i Sverige (online eller på plats) riktar sig till utvecklare som vill bygga hårdvaruaccelererade objektdetekterings- och spårningsmodeller för att analysera strömmande videodata.
I slutet av denna utbildning kommer deltagarna att kunna:
- Installera och konfigurera nödvändig utvecklingsmiljö, programvara och bibliotek för att börja utveckla.
- Bygg, träna och implementera modeller för djupinlärning för att analysera livevideoflöden.
- Identifiera, spåra, segmentera och förutsäga olika objekt inom videoramar.
- Optimera objektdetekterings- och spårningsmodeller.
- Implementera ett intelligent videoanalysprogram (IVA).
GPU Programming with OpenCL
28 timmarDenna instruktörsledda, liveutbildning i Sverige (online eller på plats) riktar sig till utvecklare på nybörjarnivå till medelnivå som vill använda OpenCL för att programmera heterogena enheter och utnyttja deras parallellitet.
I slutet av denna utbildning kommer deltagarna att kunna:
- Konfigurera en utvecklingsmiljö som inkluderar OpenCL SDK, en enhet som stöder OpenCL och Visual Studio kod.
- Skapa ett grundläggande OpenCL-program som utför vektortillägg på enheten och hämtar resultaten från enhetens minne.
- Använd OpenCL API för att fråga enhetsinformation, skapa sammanhang, kommandoköer, buffertar, kärnor och händelser.
- Använd språket OpenCL C för att skriva kärnor som körs på enheten och manipulerar data.
- Använd OpenCL inbyggda funktioner, tillägg och bibliotek för att utföra vanliga uppgifter och operationer.
- Använd OpenCL värd- och enhetsminnesmodeller för att optimera dataöverföringar och minnesåtkomster.
- Använd exekveringsmodellen OpenCL för att styra arbetsobjekt, arbetsgrupper och ND-intervall.
- Felsöka och testa OpenCL program med hjälp av verktyg som CodeXL, Intel VTune och NVIDIA Nsight.
- Optimera OpenCL program med hjälp av tekniker som vektorisering, slingupprullning, lokalt minne och profilering.
GPU Programming with CUDA
28 timmarDenna instruktörsledda, liveutbildning i Sverige (online eller på plats) riktar sig till utvecklare på nybörjarnivå till medelnivå som vill använda CUDA för att programmera NVIDIA GPU och utnyttja deras parallellitet.
I slutet av denna utbildning kommer deltagarna att kunna:
- Konfigurera en utvecklingsmiljö som inkluderar CUDA Toolkit, en NVIDIA GPU och Visual Studio kod.
- Skapa ett grundläggande CUDA-program som utför vektortillägg på GPU och hämtar resultaten från GPU-minnet.
- Använd 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änd språket CUDA C/C++ för att skriva kärnor som körs på GPU och manipulerar data.
- Använd CUDA inbyggda funktioner, variabler och bibliotek för att utföra vanliga uppgifter och operationer.
- Använd CUDA-minnesutrymmen, såsom globala, delade, konstanta och lokala, för att optimera dataöverföringar och minnesåtkomster.
- Använd CUDA-exekveringsmodellen för att styra trådarna, blocken och rutnäten som definierar parallelliteten.
- Felsöka och testa CUDA-program med hjälp av verktyg som CUDA-GDB, CUDA-MEMCHECK och NVIDIA Nsight.
- Optimera CUDA-program med hjälp av tekniker som koalescing, cachning, förhämtning och profilering.
GPU Programming - OpenCL vs CUDA vs ROCm
28 timmarDenna instruktörsledda, liveutbildning i Sverige (online eller på plats) riktar sig till utvecklare på nybörjarnivå till medelnivå som vill använda olika ramverk för GPU programmering och jämföra deras funktioner, prestanda och kompatibilitet.
I slutet av denna utbildning kommer deltagarna att kunna:
- Konfigurera en utvecklingsmiljö som inkluderar OpenCL SDK, CUDA Toolkit, ROCm Platform, en enhet som stöder OpenCL, CUDA eller ROCm och Visual Studio kod.
- Skapa ett grundläggande GPU-program som utför vektortillägg med OpenCL, CUDA och ROCm, och jämför syntaxen, strukturen och exekveringen av varje ramverk.
- Använd respektive API:er 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änd respektive språk för att skriva kärnor som körs på enheten och manipulera data.
- Använd respektive inbyggda funktioner, variabler och bibliotek för att utföra vanliga uppgifter och operationer.
- Använd respektive minnesutrymme, som globalt, lokalt, konstant och privat, för att optimera dataöverföringar och minnesåtkomster.
- Använd respektive exekveringsmodell för att styra de trådar, block och rutnät som definierar parallelliteten.
- Felsöka och testa GPU program med hjälp av verktyg som CodeXL, CUDA-GDB, CUDA-MEMCHECK och NVIDIA Nsight.
- Optimera GPU program med hjälp av tekniker som koalescing, cachning, förhämtning och profilering.
AMD GPU Programming
28 timmarDenna instruktörsledda, liveutbildning i Sverige (online eller på plats) riktar sig till utvecklare på nybörjarnivå till medelnivå som vill använda ROCm och HIP för att programmera AMD GPU och utnyttja deras parallellitet.
I slutet av denna utbildning kommer deltagarna att kunna:
- Konfigurera en utvecklingsmiljö som inkluderar ROCm Platform, en AMD GPU och Visual Studio kod.
- Skapa ett grundläggande ROCm-program som utför vektortillägg på GPU och hämtar resultaten från GPU-minnet.
- Använd 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änd HIP-språk för att skriva kärnor som körs på GPU och manipulerar data.
- Använd HIP inbyggda funktioner, variabler och bibliotek för att utföra vanliga uppgifter och operationer.
- Använd ROCm- och HIP-minnesutrymmen, såsom globala, delade, konstanta och lokala, för att optimera dataöverföringar och minnesåtkomster.
- Använd ROCm- och HIP-exekveringsmodeller för att styra de trådar, block och rutnät som definierar parallelliteten.
- Felsöka och testa ROCm- och HIP-program med hjälp av verktyg som ROCm Debugger och ROCm Profiler.
- Optimera ROCm- och HIP-program med hjälp av tekniker som koalescing, caching, förhämtning och profilering.
ROCm for Windows
21 timmarDenna instruktörsledda, liveutbildning i Sverige (online eller på plats) riktar sig till utvecklare på nybörjarnivå till medelnivå som vill installera och använda ROCm på Windows för att programmera AMD GPU och utnyttja deras parallellitet.
I slutet av denna utbildning kommer deltagarna att kunna:
- Konfigurera en utvecklingsmiljö som inkluderar ROCm Platform, en AMD GPU och Visual Studio Code på Windows.
- Skapa ett grundläggande ROCm-program som utför vektortillägg på GPU och hämtar resultaten från GPU-minnet.
- Använd 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änd HIP-språk för att skriva kärnor som körs på GPU och manipulerar data.
- Använd HIP inbyggda funktioner, variabler och bibliotek för att utföra vanliga uppgifter och operationer.
- Använd ROCm- och HIP-minnesutrymmen, såsom globala, delade, konstanta och lokala, för att optimera dataöverföringar och minnesåtkomster.
- Använd ROCm- och HIP-exekveringsmodeller för att styra de trådar, block och rutnät som definierar parallelliteten.
- Felsöka och testa ROCm- och HIP-program med hjälp av verktyg som ROCm Debugger och ROCm Profiler.
- Optimera ROCm- och HIP-program med hjälp av tekniker som koalescing, caching, förhämtning och profilering.
Introduction to GPU Programming
21 timmarDenna instruktörsledda, liveutbildning i Sverige (online eller på plats) riktar sig till utvecklare på nybörjarnivå till medelnivå som vill lära sig grunderna i GPU programmering och de viktigaste ramverken och verktygen för att utveckla GPU applikationer .
- I slutet av denna utbildning kommer deltagarna att kunna:
Förstå skillnaden mellan CPU och GPU-datorer och fördelarna och utmaningarna med GPU programmering. - Välj rätt ramverk och verktyg för deras GPU applikation.
- Skapa ett grundläggande GPU-program som utför vektortillägg med ett eller flera av ramverken och verktygen.
- Använd respektive API:er, språk och bibliotek 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änd respektive minnesutrymme, som globalt, lokalt, konstant och privat, för att optimera dataöverföringar och minnesåtkomster.
- Använd respektive exekveringsmodeller, såsom arbetsobjekt, arbetsgrupper, trådar, block och rutnät, för att kontrollera parallelliteten.
- Felsöka och testa GPU program med hjälp av verktyg som CodeXL, CUDA-GDB, CUDA-MEMCHECK och NVIDIA Nsight.
- Optimera GPU program med hjälp av tekniker som koalescing, cachning, förhämtning och profilering.
GPU Programming with OpenACC
28 timmarDenna instruktörsledda, live-utbildning i Sverige (online eller på plats) riktar sig till utvecklare på nybörjarnivå till mellannivå som vill använda OpenACC för att programmera heterogena enheter och utnyttja deras parallellitet.
I slutet av denna utbildning kommer deltagarna att kunna:
- Konfigurera en utvecklingsmiljö som innehåller OpenACC SDK, en enhet som stöder OpenACC och Visual Studio-kod.
- Skapa ett grundläggande OpenACC-program som utför vektoraddition på enheten och hämtar resultaten från enhetens minne.
- Använd OpenACC-direktiv och -satser för att kommentera koden och ange alternativ för parallella regioner, dataflytt och optimering.
- Använd OpenACC API för att fråga efter enhetsinformation, ställa in enhetsnummer, hantera fel och synkronisera händelser.
- Använd OpenACC-bibliotek och interoperabilitetsfunktioner för att integrera OpenACC med andra programmeringsmodeller, till exempel CUDA, OpenMP och MPI.
- Använd OpenACC-verktyg för att profilera och felsöka OpenACC-program och identifiera flaskhalsar och möjligheter i prestandan.
- Optimera OpenACC-program med hjälp av tekniker som datalokalitet, loopfusion, kärnfusion och automatisk justering.