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

Numero di Partecipanti



Prezzo per Partecipante

Recensioni (1)

Corsi relativi

GPU Programming with CUDA

28 ore

GPU Programming - OpenCL vs CUDA vs ROCm

28 ore

AMD GPU Programming

28 ore

Categorie relative