Cursuri de pregatire NVIDIA GPU Programming
Acest curs acoperă modul de programare a GPU urilor pentru calcul paralel. Unele dintre aplicații includ învățare profundă, analize și aplicații de inginerie.
Schița de curs
Ziua 1 - Introducere și elemente de bază
- De ce calcul paralel? Nevoia de procesoare multi-core de calcul paralele - Arhitectură și proiectare Introducere în fire, noțiuni de bază pentru fire și concepte de bază ale programării paralele OpenMP- Un standard pentru paralel bazat pe directive Programming Hands on / Demonstration of different programs on multicore machines
Ziua 2 - GPU Programming
- GPU-uri pentru calcule paralele GPU-uri Programming Model Hands on /Demonstrația diferitelor programe pe GPU SDK, Toolkit și Instalarea mediului pentru GPU Lucrul cu diferite biblioteci Demonstrarea GPU și instrumente cu exemple de programe și OpenACC
Cerințe
C Programming, Linux GCC
Cursurile publice necesita 5+ participanti
Cursuri de pregatire NVIDIA GPU Programming - Booking
Cursuri de pregatire NVIDIA GPU Programming - Enquiry
NVIDIA GPU Programming - Cerere de consultanta
Mărturii (2)
Foarte interactiv, cu exemple variate, cu o bună progresie în complexitate între începutul și sfârșitul cursului.
Jenny - Andheo
Curs - GPU Programming with CUDA and Python
Tradus de catre o masina
Formatorii energie și umor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Curs - NVIDIA GPU Programming - Extended
Tradus de catre o masina
Upcoming Courses
Cursuri înrudite
Administration of CUDA
35 oreAcest curs de instruire live, condus de un instructor în Moldova (online sau la fața locului) se adresează administratorilor de sistem și profesioniștilor IT începători care doresc să instaleze, să configureze, să gestioneze și să depaneze mediile CUDA.
La sfârșitul acestui curs de formare, participanții vor putea să:
- Să înțeleagă arhitectura, componentele și capacitățile CUDA.
- Să instaleze și să configureze mediile CUDA.
- Să gestioneze și să optimizeze resursele CUDA.
- să depaneze și să rezolve problemele comune CUDA.
GPU Programming with CUDA and Python
14 oreAcest curs de instruire live, condus de un instructor în Moldova (online sau la fața locului) se adresează dezvoltatorilor care doresc să utilizeze CUDA pentru a construi Python aplicații care rulează în paralel pe GPU-urile NVIDIA.
La sfârșitul acestui curs de formare, participanții vor fi capabili să:
- Utilizați compilatorul Numba pentru a accelera Python aplicațiile care rulează pe GPU-urile NVIDIA. .
- Creați, compilați și lansați nuclee CUDA personalizate. .
- Gestionați memoria GPU. .
- Convertiți o aplicație bazată pe CPU într-o aplicație accelerată de GPU. .
AMD GPU Programming
28 oreAcest curs de instruire live, condus de un instructor în Moldova (online sau la fața locului) se adresează dezvoltatorilor de nivel începător și intermediar care doresc să utilizeze ROCm și HIP pentru a programa AMD GPUs și a exploata paralelismul acestora.
La sfârșitul acestui curs de instruire, participanții vor fi capabili să:
- Să configureze un mediu de dezvoltare care include platforma ROCm, un AMD GPU și un cod Visual Studio.
- Să creeze un program ROCm de bază care să efectueze adunarea vectorială pe GPU și să recupereze rezultatele din memoria GPU.
- Utilizați API ROCm pentru a interoga informații despre dispozitiv, pentru a aloca și a dezaloca memoria dispozitivului, pentru a copia date între gazdă și dispozitiv, pentru a lansa nuclee și pentru a sincroniza fire de execuție.
- Utilizați limbajul HIP pentru a scrie nuclee care se execută pe GPU și manipulează date.
- Utilizați funcțiile, variabilele și bibliotecile integrate HIP pentru a efectua sarcini și operații comune.
- Utilizați spațiile de memorie ROCm și HIP, cum ar fi spațiile de memorie globală, partajată, constantă și locală, pentru a optimiza transferurile de date și accesările de memorie.
- Utilizarea modelelor de execuție ROCm și HIP pentru a controla firele, blocurile și grilele care definesc paralelismul.
- Depanarea și testarea programelor ROCm și HIP cu ajutorul unor instrumente precum ROCm Debugger și ROCm Profiler.
- Optimizarea programelor ROCm și HIP utilizând tehnici precum coalescența, caching, prefetching și profilarea.
Introduction to GPU Programming
21 oreAcest curs de instruire live, condus de un instructor în Moldova (online sau la fața locului) se adresează dezvoltatorilor de nivel începător și intermediar care doresc să învețe elementele de bază ale programării GPU și principalele cadre și instrumente pentru dezvoltarea de aplicații GPU.
- La finalul acestui curs de formare, participanții vor fi capabili să:
Să înțeleagă diferența dintre calculul cu procesor și calculul GPU, precum și beneficiile și provocările programării GPU. - Să aleagă cadrul și instrumentul potrivit pentru aplicația lor GPU.
- Să creeze un program GPU de bază care efectuează adunarea vectorială folosind unul sau mai multe dintre cadrele și instrumentele prezentate.
- Să utilizeze API-urile, limbajele și bibliotecile respective pentru a interoga informații despre dispozitiv, pentru a aloca și a dezaloca memoria dispozitivului, pentru a copia date între gazdă și dispozitiv, pentru a lansa nuclee și pentru a sincroniza fire de execuție.
- Utilizați spațiile de memorie respective, cum ar fi cele globale, locale, constante și private, pentru a optimiza transferurile de date și accesările de memorie.
- Utilizați modelele de execuție respective, cum ar fi work-items, work-groups, fire, blocuri și grile, pentru a controla paralelismul.
- Depanarea și testarea programelor GPU cu ajutorul unor instrumente precum CodeXL, CUDA-GDB, CUDA-MEMCHECK și NVIDIA Nsight.
- Optimizarea programelor GPU utilizând tehnici precum coalescența, caching, prefetching și profilarea.
GPU Programming with CUDA
28 oreAcest curs de instruire live, condus de un instructor în Moldova (online sau la fața locului) se adresează dezvoltatorilor de nivel începător și intermediar care doresc să utilizeze CUDA pentru a programa NVIDIA GPUs și a exploata paralelismul acestora.
La sfârșitul acestui curs de instruire, participanții vor fi capabili să:
- Să configureze un mediu de dezvoltare care include CUDA Toolkit, un NVIDIA GPU și un cod Visual Studio.
- Să creeze un program CUDA de bază care să efectueze adunarea vectorială pe GPU și să recupereze rezultatele din memoria GPU.
- Utilizați API CUDA pentru a interoga informații despre dispozitiv, pentru a aloca și a dezaloca memoria dispozitivului, pentru a copia date între gazdă și dispozitiv, pentru a lansa nuclee și pentru a sincroniza fire de execuție.
- Utilizați limbajul CUDA C/C++ pentru a scrie nuclee care se execută pe GPU și manipulează date.
- Utilizați funcțiile încorporate, variabilele și bibliotecile CUDA pentru a efectua sarcini și operații comune.
- Utilizați spațiile de memorie CUDA, cum ar fi spațiile de memorie globală, partajată, constantă și locală, pentru a optimiza transferurile de date și accesările de memorie.
- Utilizați modelul de execuție CUDA pentru a controla firele, blocurile și grilele care definesc paralelismul.
- Depanarea și testarea programelor CUDA utilizând instrumente precum CUDA-GDB, CUDA-MEMCHECK și NVIDIA Nsight.
- Optimizarea programelor CUDA utilizând tehnici precum coalescența, caching, prefetching și profilarea.
GPU Programming with OpenACC
28 oreAcest curs de instruire live, condus de un instructor în Moldova (online sau la fața locului) se adresează dezvoltatorilor de nivel începător și intermediar care doresc să utilizeze OpenACC pentru a programa dispozitive eterogene și a exploata paralelismul acestora.
La sfârșitul acestui curs de formare, participanții vor fi capabili să:
- Să configureze un mediu de dezvoltare care include OpenACC SDK, un dispozitiv care suportă OpenACC și Visual Studio Cod.
- Să creeze un program OpenACC de bază care efectuează adunarea vectorială pe dispozitiv și recuperează rezultatele din memoria dispozitivului.
- Utilizați directivele și clauzele OpenACC pentru a adnota codul și pentru a specifica regiunile paralele, mișcarea datelor și opțiunile de optimizare.
- Utilizați API OpenACC pentru a interoga informații despre dispozitiv, a seta numărul dispozitivului, a gestiona erorile și a sincroniza evenimentele.
- Utilizați bibliotecile OpenACC și caracteristicile de interoperabilitate pentru a integra OpenACC cu alte modele de programare, cum ar fi CUDA, OpenMP și MPI.
- Utilizați instrumentele OpenACC pentru a realiza profilul și depanarea programelor OpenACC și pentru a identifica blocajele și oportunitățile de performanță.
- Optimizarea programelor OpenACC utilizând tehnici precum localitatea datelor, fuziunea buclelor, fuziunea nucleului și auto-tuning.
GPU Programming with OpenCL
28 oreAcest curs de instruire live, condus de un instructor în Moldova (online sau la fața locului) se adresează dezvoltatorilor de nivel începător și intermediar care doresc să utilizeze OpenCL pentru a programa dispozitive eterogene și a exploata paralelismul acestora.
La sfârșitul acestui curs de formare, participanții vor fi capabili să:
- Să configureze un mediu de dezvoltare care include OpenCL SDK, un dispozitiv care suportă OpenCL și Visual Studio Code.
- Să creeze un program de bază OpenCL care să efectueze adunarea vectorială pe dispozitiv și să recupereze rezultatele din memoria dispozitivului.
- Utilizați OpenCL API pentru a interoga informații despre dispozitiv, a crea contexte, cozi de comenzi, tampoane, nuclee și evenimente.
- Utilizarea limbajului OpenCL C pentru a scrie nuclee care se execută pe dispozitiv și manipulează date.
- Utilizarea OpenCL a funcțiilor încorporate, a extensiilor și a bibliotecilor pentru a efectua sarcini și operații comune.
- Să utilizeze OpenCL modelele de memorie ale gazdei și dispozitivului pentru a optimiza transferurile de date și accesările de memorie.
- Utilizați modelul de execuție OpenCL pentru a controla elementele de lucru, grupurile de lucru și domeniile ND.
- Depanarea și testarea programelor OpenCL utilizând instrumente precum CodeXL, Intel VTune și NVIDIA Nsight.
- Optimizarea programelor OpenCL utilizând tehnici precum vectorizarea, derularea buclelor, memoria locală și profilarea.
GPU Programming - OpenCL vs CUDA vs ROCm
28 oreAcest curs de instruire live, condus de un instructor în Moldova (online sau la fața locului) se adresează dezvoltatorilor de nivel începător și intermediar care doresc să utilizeze diferite cadre de lucru pentru programare GPU și să compare caracteristicile, performanța și compatibilitatea acestora.
La sfârșitul acestui curs de formare, participanții vor putea să:
- Să configureze un mediu de dezvoltare care include OpenCL SDK, CUDA Toolkit, platforma ROCm, un dispozitiv care acceptă OpenCL, CUDA sau ROCm și Visual Studio Cod.
- Să creeze un program de bază GPU care efectuează adunarea vectorială utilizând OpenCL, CUDA și ROCm și să compare sintaxa, structura și execuția fiecărui cadru.
- Utilizați API-urile respective pentru a interoga informații despre dispozitiv, pentru a aloca și a dezaloca memoria dispozitivului, pentru a copia date între gazdă și dispozitiv, pentru a lansa nuclee și pentru a sincroniza fire de execuție.
- Utilizați limbajele respective pentru a scrie nuclee care se execută pe dispozitiv și manipulează date.
- Să utilizeze funcțiile, variabilele și bibliotecile încorporate respective pentru a efectua sarcini și operații comune.
- Utilizați spațiile de memorie respective, cum ar fi cele globale, locale, constante și private, pentru a optimiza transferurile de date și accesările de memorie.
- Utilizați modelele de execuție respective pentru a controla firele, blocurile și grilele care definesc paralelismul.
- Depanarea și testarea programelor GPU cu ajutorul unor instrumente precum CodeXL, CUDA-GDB, CUDA-MEMCHECK și NVIDIA Nsight.
- Optimizarea programelor GPU utilizând tehnici precum coalescența, caching, prefetching și profilarea.
NVIDIA GPU Programming - Extended
21 oreAcest curs de instruire live, condus de un instructor, în Moldova acoperă modul de programare a GPUs pentru calcul paralel, cum se utilizează diverse platforme, cum se lucrează cu platforma CUDA și caracteristicile acesteia și cum se realizează diverse tehnici de optimizare cu ajutorul CUDA. Unele dintre aplicații includ învățarea profundă, analiza, procesarea imaginilor și aplicațiile inginerești.
ROCm for Windows
21 oreAcest curs de instruire live, condus de un instructor în Moldova (online sau la fața locului) se adresează dezvoltatorilor de nivel începător și intermediar care doresc să instaleze și să utilizeze ROCm pe Windows pentru a programa AMD GPUs și a exploata paralelismul acestora.
La sfârșitul acestui curs de instruire, participanții vor fi capabili să:
- Să configureze un mediu de dezvoltare care include platforma ROCm, un AMD GPU și un cod Visual Studio pe Windows.
- Să creeze un program ROCm de bază care să efectueze adunarea vectorială pe GPU și să recupereze rezultatele din memoria GPU.
- Utilizați API ROCm pentru a interoga informații despre dispozitiv, pentru a aloca și a dezaloca memoria dispozitivului, pentru a copia date între gazdă și dispozitiv, pentru a lansa nuclee și pentru a sincroniza fire de execuție.
- Utilizați limbajul HIP pentru a scrie nuclee care se execută pe GPU și manipulează date.
- Utilizați funcțiile, variabilele și bibliotecile integrate HIP pentru a efectua sarcini și operații comune.
- Utilizați spațiile de memorie ROCm și HIP, cum ar fi spațiile de memorie globală, partajată, constantă și locală, pentru a optimiza transferurile de date și accesările de memorie.
- Utilizarea modelelor de execuție ROCm și HIP pentru a controla firele, blocurile și grilele care definesc paralelismul.
- Depanarea și testarea programelor ROCm și HIP cu ajutorul unor instrumente precum ROCm Debugger și ROCm Profiler.
- Optimizarea programelor ROCm și HIP utilizând tehnici precum coalescența, caching, prefetching și profilarea.
Hardware-Accelerated Video Analytics
14 oreAcest curs de instruire live, condus de un instructor în Moldova (online sau la fața locului) se adresează dezvoltatorilor care doresc să construiască modele de detectare și urmărire a obiectelor accelerate de hardware pentru a analiza datele video în flux.
La sfârșitul acestui curs de formare, participanții vor fi capabili să:
- Instalați și configurați mediul de dezvoltare, software-ul și bibliotecile necesare pentru a începe dezvoltarea. .
- Construiți, antrenați și implementați modele de învățare profundă pentru a analiza fluxurile video în direct. .
- Identificați, urmăriți, segmentați și preziceți diferite obiecte în cadrul cadrelor video. .
- Optimizați modelele de detectare și urmărire a obiectelor. .
- Desfășurați o aplicație de analiză video inteligentă (IVA). .