Corso di formazione NVIDIA GPU Programming
Questo corso illustra come programmare GPU per il calcolo parallelo. Alcune delle applicazioni includono l'apprendimento profondo, l'analisi e le applicazioni di ingegneria.
Struttura del corso
Giorno 1 - Introduzione e nozioni di base
-
Perché il calcolo parallelo? Necessità di elaborazione parallela
Processori multi-core - Architettura e design
Introduzione ai thread, nozioni di base sui thread e concetti di base della programmazione parallela
OpenMP- Uno standard per la direttiva basata su parallelo Programming
Hands-on / Dimostrazione di vari programmi su macchine multicore
Giorno 2 - GPU Programming
-
GPU per l'elaborazione parallela
Modello di GPU Programming
Hands-on / Dimostrazione di vari programmi su GPU
SDK, Toolkit e Installazione dell'ambiente per GPU
Utilizzo di varie librerie
Dimostrazione di GPU e strumenti con programmi di esempio e OpenACC
Requisiti
C Programming, Linux GCC
I corsi di formazione pubblici richiedono più di 5 partecipanti.
Corso di formazione NVIDIA GPU Programming - Booking
Corso di formazione NVIDIA GPU Programming - Enquiry
NVIDIA GPU Programming - Richiesta di consulenza
Recensioni (2)
Molto interattivo con vari esempi, con una buona progressione di complessità tra l'inizio e la fine della formazione.
Jenny - Andheo
Corso - GPU Programming with CUDA and Python
Traduzione automatica
Allenatori, energia e umorismo.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Corso - NVIDIA GPU Programming - Extended
Traduzione automatica
Corsi in Arrivo
Corsi relativi
Administration of CUDA
35 oreQuesto corso di formazione dal vivo con istruttore in Italia (online o in loco) è rivolto agli amministratori di sistema principianti e ai professionisti IT che desiderano installare, configurare, gestire e risolvere i problemi degli ambienti CUDA.
Al termine di questa formazione, i partecipanti saranno in grado di:
- Comprendere l'architettura, i componenti e le funzionalità di CUDA.
- Installare e configurare gli ambienti CUDA.
- Gestisci e ottimizza le risorse CUDA.
- Esegui il debug e risolvi i problemi comuni di CUDA.
GPU Programming with CUDA and Python
14 oreQuesto corso di formazione dal vivo con istruttore in Italia (online o in loco) è rivolto agli sviluppatori che desiderano utilizzare CUDA per creare Python applicazioni che vengono eseguite in parallelo su GPU NVIDIA.
Al termine di questa formazione, i partecipanti saranno in grado di:
- Utilizzate il compilatore Numba per accelerare Python le applicazioni in esecuzione su GPU NVIDIA.
- Crea, compila e avvia kernel CUDA personalizzati.
- Gestire la memoria della GPU.
- Convertire un'applicazione basata su CPU in un'applicazione accelerata da GPU.
AMD GPU Programming
28 oreQuesto corso di formazione dal vivo con istruttore in Italia (online o in loco) è rivolto a sviluppatori di livello principiante e intermedio che desiderano utilizzare ROCm e HIP per programmare AMD GPU e sfruttarne il parallelismo.
Al termine di questa formazione, i partecipanti saranno in grado di:
- Configurare un ambiente di sviluppo che includa la piattaforma ROCm, un codice AMD GPU e Visual Studio.
- Creare un programma ROCm di base che esegua l'addizione vettoriale su GPU e recuperi i risultati dalla memoria GPU.
- Utilizza l'API ROCm per interrogare le informazioni sul dispositivo, allocare e deallocare la memoria del dispositivo, copiare i dati tra host e dispositivo, avviare kernel e sincronizzare i thread.
- Utilizzare il linguaggio HIP per scrivere kernel che vengono eseguiti su GPU e manipolano i dati.
- Utilizzare le funzioni, le variabili e le librerie predefinite di HIP per eseguire attività e operazioni comuni.
- Utilizzare gli spazi di memoria ROCm e HIP, ad esempio globale, condiviso, costante e locale, per ottimizzare i trasferimenti di dati e gli accessi alla memoria.
- Utilizzare i modelli di esecuzione ROCm e HIP per controllare i thread, i blocchi e le griglie che definiscono il parallelismo.
- Esegui il debug e il test dei programmi ROCm e HIP utilizzando strumenti come ROCm Debugger e ROCm Profiler.
- Ottimizza i programmi ROCm e HIP utilizzando tecniche come la coalescenza, la memorizzazione nella cache, il prefetching e la profilazione.
Introduction to GPU Programming
21 oreQuesto corso di formazione dal vivo con istruttore in Italia (online o in loco) è rivolto a sviluppatori di livello principiante e intermedio che desiderano apprendere le basi della programmazione GPU e i principali framework e strumenti per lo sviluppo di applicazioni GPU.
- Al termine di questa formazione, i partecipanti saranno in grado di:
Comprendere la differenza tra CPU e GPU computing e i vantaggi e le sfide della programmazione GPU. - Scegliere il framework e lo strumento giusti per l'applicazione GPU.
- Creare un programma di base GPU che esegua l'addizione vettoriale utilizzando uno o più framework e strumenti.
- Utilizzare le rispettive API, linguaggi e librerie per eseguire query sulle informazioni sul dispositivo, allocare e deallocare la memoria del dispositivo, copiare i dati tra host e dispositivo, avviare kernel e sincronizzare i thread.
- Utilizzare i rispettivi spazi di memoria, ad esempio globale, locale, costante e privato, per ottimizzare i trasferimenti di dati e gli accessi alla memoria.
- Utilizzare i rispettivi modelli di esecuzione, ad esempio elementi di lavoro, gruppi di lavoro, thread, blocchi e griglie, per controllare il parallelismo.
- Esegui il debug e il test di GPU programmi utilizzando strumenti come CodeXL, CUDA-GDB, CUDA-MEMCHECK e NVIDIA Nsight.
- Ottimizza GPU i programmi utilizzando tecniche quali coalescenza, memorizzazione nella cache, prelettura e profilatura.
GPU Programming with CUDA
28 oreQuesto corso di formazione dal vivo con istruttore in Italia (online o in loco) è rivolto a sviluppatori di livello principiante e intermedio che desiderano utilizzare CUDA per programmare NVIDIA GPU e sfruttarne il parallelismo.
Al termine di questa formazione, i partecipanti saranno in grado di:
- Configura un ambiente di sviluppo che includa CUDA Toolkit, un codice NVIDIA GPU e Visual Studio.
- Creare un programma CUDA di base che esegua l'addizione vettoriale su GPU e recuperi i risultati dalla memoria GPU.
- Utilizza l'API CUDA per eseguire query sulle informazioni sul dispositivo, allocare e deallocare la memoria del dispositivo, copiare i dati tra host e dispositivo, avviare kernel e sincronizzare i thread.
- Usa il linguaggio CUDA C/C++ per scrivere kernel che vengono eseguiti su GPU e manipolano i dati.
- Utilizzare le funzioni, le variabili e le librerie predefinite di CUDA per eseguire attività e operazioni comuni.
- Utilizzare gli spazi di memoria CUDA, ad esempio globale, condivisa, costante e locale, per ottimizzare i trasferimenti di dati e gli accessi alla memoria.
- Utilizzare il modello di esecuzione CUDA per controllare i thread, i blocchi e le griglie che definiscono il parallelismo.
- Esegui il debug e il test dei programmi CUDA utilizzando strumenti come CUDA-GDB, CUDA-MEMCHECK e NVIDIA Nsight.
- Ottimizza i programmi CUDA utilizzando tecniche come l'unione dei dati, la memorizzazione nella cache, il prefetching e la profilatura.
GPU Programming with OpenACC
28 oreQuesto corso di formazione dal vivo con istruttore in Italia (online o in loco) è rivolto a sviluppatori di livello principiante e intermedio che desiderano utilizzare OpenACC per programmare dispositivi eterogenei e sfruttarne il parallelismo.
Al termine di questa formazione, i partecipanti saranno in grado di:
- Configurare un ambiente di sviluppo che includa OpenACC SDK, un dispositivo che supporti OpenACC e Visual Studio Code.
- Creare un programma OpenACC di base che esegua l'addizione vettoriale sul dispositivo e recuperi i risultati dalla memoria del dispositivo.
- Utilizzare le direttive e le clausole OpenACC per annotare il codice e specificare le aree parallele, lo spostamento dei dati e le opzioni di ottimizzazione.
- Utilizza l'API OpenACC per interrogare le informazioni sul dispositivo, impostare il numero del dispositivo, gestire gli errori e sincronizzare gli eventi.
- Utilizza le librerie OpenACC e le funzionalità di interoperabilità per integrare OpenACC con altri modelli di programmazione, ad esempio CUDA, OpenMP e MPI.
- Utilizza gli strumenti OpenACC per profilare ed eseguire il debug dei programmi OpenACC e identificare i colli di bottiglia e le opportunità delle prestazioni.
- Ottimizza i programmi OpenACC utilizzando tecniche come la localizzazione dei dati, la fusione del loop, la fusione del kernel e l'ottimizzazione automatica.
GPU Programming with OpenCL
28 oreQuesto corso di formazione dal vivo con istruttore in Italia (online o in loco) è rivolto a sviluppatori di livello principiante e intermedio che desiderano utilizzare OpenCL per programmare dispositivi eterogenei e sfruttarne il parallelismo.
Al termine di questa formazione, i partecipanti saranno in grado di:
- Configurare un ambiente di sviluppo che includa OpenCL SDK, un dispositivo che supporti OpenCL e Visual Studio Code.
- Creare un programma di base OpenCL che esegua l'addizione vettoriale sul dispositivo e recuperi i risultati dalla memoria del dispositivo.
- Utilizzare l'API OpenCL per eseguire query sulle informazioni sul dispositivo, creare contesti, code di comandi, buffer, kernel ed eventi.
- Utilizzare il linguaggio OpenCL C per scrivere kernel che vengono eseguiti sul dispositivo e manipolano i dati.
- Utilizzare OpenCL funzioni, estensioni e librerie integrate per eseguire attività e operazioni comuni.
- Utilizzare i modelli di memoria host e dispositivo OpenCL per ottimizzare i trasferimenti di dati e gli accessi alla memoria.
- Utilizzare il modello di esecuzione OpenCL per controllare gli elementi di lavoro, i gruppi di lavoro e gli intervalli ND.
- Esegui il debug e il test di OpenCL programmi utilizzando strumenti come CodeXL, Intel VTune e NVIDIA Nsight.
- Ottimizza OpenCL i programmi utilizzando tecniche come la vettorizzazione, lo srotolamento dei loop, la memoria locale e la profilazione.
GPU Programming - OpenCL vs CUDA vs ROCm
28 oreQuesto corso di formazione dal vivo con istruttore in Italia (online o in loco) è rivolto a sviluppatori di livello principiante e intermedio che desiderano utilizzare framework diversi per la programmazione GPU e confrontarne le funzionalità, le prestazioni e la compatibilità.
Al termine di questa formazione, i partecipanti saranno in grado di:
- Configura un ambiente di sviluppo che includa OpenCL SDK, CUDA Toolkit, ROCm Platform, un dispositivo che supporti OpenCL, CUDA o ROCm e Visual Studio Code.
- Creare un programma di base GPU che esegua l'addizione vettoriale utilizzando OpenCL, CUDA e ROCm e confrontare la sintassi, la struttura e l'esecuzione di ciascun framework.
- Utilizza le rispettive API per eseguire query sulle informazioni sul dispositivo, allocare e deallocare la memoria del dispositivo, copiare i dati tra host e dispositivo, avviare kernel e sincronizzare i thread.
- Utilizzare i rispettivi linguaggi per scrivere kernel che vengono eseguiti sul dispositivo e manipolano i dati.
- Utilizzare le rispettive funzioni, variabili e librerie predefinite per eseguire attività e operazioni comuni.
- Utilizzare i rispettivi spazi di memoria, ad esempio globale, locale, costante e privato, per ottimizzare i trasferimenti di dati e gli accessi alla memoria.
- Utilizzare i rispettivi modelli di esecuzione per controllare i thread, i blocchi e le griglie che definiscono il parallelismo.
- Esegui il debug e il test di GPU programmi utilizzando strumenti come CodeXL, CUDA-GDB, CUDA-MEMCHECK e NVIDIA Nsight.
- Ottimizza GPU i programmi utilizzando tecniche quali coalescenza, memorizzazione nella cache, prelettura e profilatura.
NVIDIA GPU Programming - Extended
21 oreQuesto corso di formazione dal vivo con istruttore in Italia illustra come programmare GPU per il calcolo parallelo, come utilizzare varie piattaforme, come lavorare con la piattaforma CUDA e le sue funzionalità e come eseguire varie tecniche di ottimizzazione utilizzando CUDA. Alcune delle applicazioni includono deep learning, analisi, elaborazione delle immagini e applicazioni ingegneristiche.
ROCm for Windows
21 oreQuesto corso di formazione dal vivo con istruttore in Italia (online o in loco) è rivolto a sviluppatori di livello principiante e intermedio che desiderano installare e utilizzare ROCm su Windows per programmare AMD GPU e sfruttarne il parallelismo.
Al termine di questa formazione, i partecipanti saranno in grado di:
- Configurare un ambiente di sviluppo che includa la piattaforma ROCm, un AMD GPU e Visual Studio Code su Windows.
- Creare un programma ROCm di base che esegua l'addizione vettoriale su GPU e recuperi i risultati dalla memoria GPU.
- Utilizza l'API ROCm per interrogare le informazioni sul dispositivo, allocare e deallocare la memoria del dispositivo, copiare i dati tra host e dispositivo, avviare kernel e sincronizzare i thread.
- Utilizzare il linguaggio HIP per scrivere kernel che vengono eseguiti su GPU e manipolano i dati.
- Utilizzare le funzioni, le variabili e le librerie predefinite di HIP per eseguire attività e operazioni comuni.
- Utilizzare gli spazi di memoria ROCm e HIP, ad esempio globale, condiviso, costante e locale, per ottimizzare i trasferimenti di dati e gli accessi alla memoria.
- Utilizzare i modelli di esecuzione ROCm e HIP per controllare i thread, i blocchi e le griglie che definiscono il parallelismo.
- Esegui il debug e il test dei programmi ROCm e HIP utilizzando strumenti come ROCm Debugger e ROCm Profiler.
- Ottimizza i programmi ROCm e HIP utilizzando tecniche come la coalescenza, la memorizzazione nella cache, il prefetching e la profilazione.
Hardware-Accelerated Video Analytics
14 oreQuesto corso di formazione dal vivo con istruttore in Italia (online o in loco) è rivolto agli sviluppatori che desiderano creare modelli di rilevamento e tracciamento degli oggetti con accelerazione hardware per analizzare i dati video in streaming.
Al termine di questa formazione, i partecipanti saranno in grado di:
- Installare e configurare l'ambiente di sviluppo, il software e le librerie necessari per iniziare a sviluppare.
- Crea, addestra e distribuisci modelli di deep learning per analizzare i feed video in diretta.
- Identifica, traccia, segmenta e prevedi diversi oggetti all'interno dei fotogrammi video.
- Ottimizza i modelli di rilevamento e tracciamento degli oggetti.
- Distribuisci un'applicazione di analisi video intelligente (IVA).