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.
Lezioni 共 4 课时 · 预计 12.0h
Lezioni
Lesson
This lesson introduces the multi-vendor dilemma in high-performance computing, where hardware heterogeneity and proprietary APIs create software fragmentation and maintenance debt. Students will learn how the HIP framework addresses these challenges by enabling performance portability and simplifying the transition between different GPU architectures.
This lesson covers the installation and configuration of the Heterogeneous-compute Interface for Portability (HIP) environment, focusing on the single-source paradigm for cross-platform GPU development. Students will learn how to manage environment variables like CUDA_PATH and HIP_PATH to enable the hipcc compiler to route code effectively across NVIDIA and AMD hardware architectures.
AI022: HIP Programming Model and API Deep Dive (Lesson 3) explores the architectural foundations of the HIP ecosystem, focusing on the ROCm stack, hardware discovery, and the porting workflow from CUDA to AMD architectures. Students will learn to utilize the hipify-perl and hipcc toolchains, manage low-level HSA runtime initialization, and implement effective memory mapping for GPU resource orchestration.
This lesson explores the Heterogeneous-compute Interface for Portability (HIP), a C++ runtime API designed to enable cross-platform GPU development by abstracting hardware layers for both NVIDIA and AMD systems. Students will learn how to configure the HIP environment, utilize the hipcc compiler, and apply functional mappings to migrate legacy CUDA applications to a unified, portable codebase.