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.
Struttura del corso
Introduzione
- Che cos'è ROCm?
- Che cos'è l'HIP?
- ROCm vs CUDA contro OpenCL
- Panoramica delle funzionalità e dell'architettura di ROCm e HIP
- ROCm for Windows rispetto a ROCm per Linux
Installazione
- Installazione di ROCm su Windows
- Verifica dell'installazione e verifica della compatibilità del dispositivo
- Aggiornamento o disinstallazione di ROCm su Windows
- Risoluzione dei problemi di installazione più comuni
Introduttiva
- Creazione di un nuovo progetto ROCm utilizzando Visual Studio Code su Windows
- Esplorazione della struttura e dei file del progetto
- Compilazione ed esecuzione del programma
- Visualizzazione dell'output con printf e fprintf
ROCm API
- Utilizzo dell'API ROCm nel programma host
- Esecuzione di query sulle informazioni e sulle funzionalità del dispositivo
- Allocazione e deallocazione della memoria del dispositivo
- Copia dei dati tra l'host e il dispositivo
- Avvio dei kernel e sincronizzazione dei thread
- Gestione di errori ed eccezioni
Lingua HIP
- Utilizzo del linguaggio HIP nel programma del dispositivo
- Scrittura di kernel che vengono eseguiti su GPU e manipolano i dati
- Utilizzo di tipi di dati, qualificatori, operatori ed espressioni
- Utilizzo di funzioni, variabili e librerie predefinite
Modello di memoria ROCm e HIP
- Utilizzo di spazi di memoria diversi, ad esempio globale, condiviso, costante e locale
- Utilizzo di oggetti di memoria diversi, ad esempio puntatori, matrici, trame e superfici
- Utilizzo di diverse modalità di accesso alla memoria, ad esempio sola lettura, sola scrittura, lettura-scrittura, ecc.
- Utilizzo del modello di coerenza della memoria e dei meccanismi di sincronizzazione
Modello di esecuzione ROCm e HIP
- Utilizzo di modelli di esecuzione diversi, ad esempio thread, blocchi e griglie
- Utilizzo di funzioni di thread, ad esempio hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x e così via.
- Utilizzo di funzioni di blocco, come __syncthreads, __threadfence_block, ecc.
- Utilizzo di funzioni di griglia, ad esempio hipGridDim_x, hipGridSync, gruppi cooperativi e così via.
Debug
- Debug di programmi ROCm e HIP su Windows
- Utilizzo di Visual Studio Debugger di codice per ispezionare variabili, punti di interruzione, stack di chiamate e così via.
- Utilizzo di ROCm Debugger per eseguire il debug di programmi ROCm e HIP su dispositivi AMD
- Utilizzo di ROCm Profiler per analizzare i programmi ROCm e HIP sui dispositivi AMD
Ottimizzazione
- Ottimizzazione dei programmi ROCm e HIP su Windows
- Uso di tecniche di coalescenza per migliorare la velocità effettiva della memoria
- Utilizzo di tecniche di memorizzazione nella cache e prelettura per ridurre la latenza della memoria
- Utilizzo di tecniche di memoria condivisa e memoria locale per ottimizzare gli accessi alla memoria e la larghezza di banda
- Utilizzo di strumenti di profilatura e profilatura per misurare e migliorare il tempo di esecuzione e l'utilizzo delle risorse
Riepilogo e passo successivo
Requisiti
- Comprensione del linguaggio C/C++ e dei concetti di programmazione parallela
- Conoscenza di base dell'architettura dei calcolatori e della gerarchia della memoria
- Esperienza con gli strumenti da riga di comando e gli editor di codice
- Familiarità con il sistema operativo Windows e PowerShell
Pubblico
- Sviluppatori che desiderano imparare a installare e utilizzare ROCm su Windows per programmare AMD GPU e sfruttarne il parallelismo
- Sviluppatori che desiderano scrivere codice scalabile e ad alte prestazioni che può essere eseguito su diversi dispositivi AMD
- Programmatori che desiderano esplorare gli aspetti di basso livello della programmazione GPU e ottimizzare le prestazioni del codice
21 ore
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