Guida alla programmazione AMD HIP
Una guida tecnica completa sull'Interfaccia per l'elaborazione eterogenea portabile (HIP). Fornisce un'API di runtime C++ e un linguaggio kernel che permette agli sviluppatori di creare applicazioni portabili per GPU AMD e NVIDIA da un singolo codice sorgente. La guida copre l'installazione, la configurazione dell'ambiente, i modelli di programmazione, l'allocazione della memoria e gli strumenti per il passaggio del codice CUDA a HIP.
Panoramica del corso
Riepilogo del contenuto
Un manuale tecnico completo per l'interfaccia Heterogeneous-compute per la portabilità (HIP). Fornisce un'API di runtime C++ e un linguaggio kernel che permette agli sviluppatori di creare applicazioni portabili per GPU AMD e NVIDIA da un'unica base di codice. La guida copre l'installazione, la configurazione dell'ambiente, i modelli di programmazione, l'allocazione della memoria e gli strumenti per convertire il codice CUDA in HIP.
Padroneggia la programmazione GPU portabile: una sola base di codice per entrambe le piattaforme AMD e NVIDIA.
Autore: Advanced Micro Devices, Inc. (AMD)
Ringraziamenti: AMD, il logo AMD Arrow, AMD Instinct, Radeon, ROCm e le loro combinazioni sono marchi registrati di Advanced Micro Devices, Inc. Linux è un marchio registrato di Linus Torvalds. PCIe è un marchio registrato della PCI-SIG Corporation.
Obiettivi didattici
- Definire le caratteristiche principali e i vantaggi offerti dal framework HIP.
- Dimostrare come accedere e interrogare l'ambiente HIP tramite strumenti di sistema.
- Spiegare il rapporto architetturale tra la portabilità HIP e la sua tecnologia compilatore.
- Eseguire installazioni specifiche della piattaforma per ambienti NVIDIA e AMD.
- Coordinare il processo di build multi-repository per compilare HIP da codice sorgente.
- Verificare un'installazione corretta utilizzando strumenti di configurazione e verifica del sistema.
- Configurare e gestire la memoria GPU usando l'allocazione HIP, controlli di coerenza e visibilità della memoria host zero-copy.
- Sviluppare kernel ad alte prestazioni usando qualificatori, tipi vettoriali e primitive di sincronizzazione specifiche di HIP.
- Implementare algoritmi paralleli avanzati utilizzando funzioni di shuffle, vote, ballot e gruppi cooperativi.
- Automatizzare la traduzione del codice CUDA in HIP usando strumenti HIPIFY e gestire conversioni progetto in loco.