Grazie per aver inviato la tua richiesta! Uno dei nostri team membri ti contatterà a breve.
Grazie per aver inviato il tuo prenotazione! Uno dei nostri team membri ti contatterà a breve.
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