Volver a los cursos
AI022 Profesional

Guía de Programación AMD HIP

Una guía técnica completa sobre la Interfaz de Computación Heterogénea para Portabilidad (HIP). Proporciona una API de tiempo de ejecución en C++ y un lenguaje de kernel que permite a los desarrolladores crear aplicaciones portátiles para GPUs de AMD y NVIDIA desde un único código fuente. La guía cubre la instalación, la configuración del entorno, modelos de programación, asignación de memoria y herramientas para migrar código CUDA a HIP.

4.9
12.0h
841 estudiantes
4 lessons
0 me gusta
Inteligencia Artificial
Comenzar a aprender

Descripción del curso

📚 Resumen del contenido

Un manual técnico completo para la Interfaz de Computación Heterogénea para Portabilidad (HIP). Proporciona una API de tiempo de ejecución en C++ y un lenguaje de kernels que permite a los desarrolladores crear aplicaciones portables para GPUs de AMD y NVIDIA a partir de un solo código fuente. La guía abarca la instalación, la configuración del entorno, los modelos de programación, la asignación de memoria y las herramientas para migrar código CUDA a HIP.

Domina la programación GPU portátil: una única fuente para ambas plataformas AMD y NVIDIA.

Autor: Advanced Micro Devices, Inc. (AMD)

Agradecimientos: AMD, el logotipo de AMD Arrow, AMD Instinct, Radeon, ROCm y sus combinaciones son marcas comerciales de Advanced Micro Devices, Inc. Linux es una marca registrada de Linus Torvalds. PCIe es una marca registrada de PCI-SIG Corporation.

🎯 Objetivos de aprendizaje

  1. Definir las características principales y las propuestas de valor del marco HIP.
  2. Demostrar cómo acceder y consultar el entorno HIP mediante herramientas del sistema.
  3. Explicar la relación arquitectónica entre la portabilidad de HIP y su tecnología de compilador.
  4. Ejecutar instalaciones específicas de plataforma para entornos NVIDIA y AMD.
  5. Coordinar el proceso de compilación multi-repositorio para compilar HIP desde el código fuente.
  6. Validar una instalación exitosa utilizando herramientas de configuración y verificación del sistema.
  7. Configurar y gestionar la memoria de GPU usando asignación HIP, controles de coherencia y visibilidad de memoria host sin copia.
  8. Desarrollar kernels de alto rendimiento utilizando calificadores específicos de HIP para funciones/variables, tipos vectoriales y primitivas de sincronización.
  9. Implementar algoritmos paralelos avanzados utilizando funciones de mezcla por warps, votos, balotas y grupos cooperativos.
  10. Automatizar la traducción de código CUDA a HIP mediante herramientas HIPIFY y gestionar conversiones de proyectos in situ.

Lecciones

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.