Retour aux cours
AI022 Professionnel

Guide de programmation AMD HIP

Un manuel technique complet sur l'interface Heterogeneous-compute Interface for Portability (HIP). Il fournit une API Runtime C++ et un langage de noyau permettant aux développeurs de créer des applications portables pour les GPU AMD et NVIDIA à partir d'un seul code source. Ce guide couvre l'installation, la configuration de l'environnement, les modèles de programmation, l'allocation de mémoire et les outils pour migrer du code CUDA vers HIP.

4.9
12.0h
841 étudiants
4 lessons
0 j'aime
Intelligence Artificielle
Commencer à apprendre

Aperçu du cours

📚 Résumé du contenu

Un manuel technique complet sur l'Interface de calcul hétérogène pour la portabilité (HIP). Il fournit une API Runtime C++ et un langage de noyau permettant aux développeurs de créer des applications portables pour les GPU AMD et NVIDIA à partir d'un seul code source. Ce guide couvre l'installation, la configuration de l'environnement, les modèles de programmation, l'allocation de mémoire et les outils de migration du code CUDA vers HIP.

Maîtrisez le développement GPU portable : une seule source pour les plateformes AMD et NVIDIA.

Auteur : Advanced Micro Devices, Inc. (AMD)

Remerciements : AMD, le logo AMD Arrow, AMD Instinct, Radeon, ROCm et leurs combinaisons sont des marques déposées d'Advanced Micro Devices, Inc. Linux est une marque déposée de Linus Torvalds. PCIe est une marque déposée de PCI-SIG Corporation.

🎯 Objectifs d'apprentissage

  1. Définir les fonctionnalités principales et les avantages de la plateforme HIP.
  2. Démontrer comment accéder et interroger l'environnement HIP à l'aide d'outils système.
  3. Expliquer la relation architecturale entre la portabilité HIP et sa technologie de compilation.
  4. Exécuter les installations spécifiques aux plateformes pour les environnements NVIDIA et AMD.
  5. Coordonner le processus de construction multi-repertoire pour compiler HIP à partir du code source.
  6. Valider une installation réussie à l'aide d'outils de configuration et de vérification système.
  7. Configurer et gérer la mémoire GPU en utilisant l'allocation HIP, les contrôles de cohérence et la visibilité de la mémoire hôte sans copie.
  8. Développer des noyaux haute performance à l’aide de qualificateurs de fonctions/variables HIP spécifiques, de types vectoriels et de primitives de synchronisation.
  9. Mettre en œuvre des algorithmes parallèles avancés en utilisant les fonctions d’entrelacement de warp, de vote, de ballot et de groupes coopératifs.
  10. Automatiser la traduction du code CUDA vers HIP à l’aide des outils HIPIFY et gérer les conversions de projets in situ.

Leçons

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.