Introducción a la programación con ROCm y HIP: Una tutorial práctico
Una guía práctica y moderna sobre programación para GPU de AMD con ROCm y HIP. Cubre toda la pila de software, instalación, flujos de compilación, programación de kernels, gestión de memoria, ingeniería de rendimiento, uso de bibliotecas, migración desde CUDA y prácticas de depuración en producción.
Descripción del curso
Resumen del Contenido
Una guía práctica y moderna sobre programación de GPU AMD con ROCm e HIP. Cubre toda la pila de software, instalación, flujos de compilación, programación de kernels, gestión de memoria, ingeniería de rendimiento, uso de bibliotecas, migración desde CUDA y prácticas de depuración en producción.
Domina la programación de GPU AMD y la portabilidad de CUDA a HIP con esta profundización técnica.
Autor: EvoClass
Agradecimientos: Documentación oficial de AMD sobre ROCm e HIP, incluyendo proyectos como ROCm, HIP y ROCm LLVM.
Objetivos de Aprendizaje
- Definir HIP y su papel dentro del ecosistema ROCm en una sola oración concisa.
- Distinguir entre ROCm (plataforma), HIP (interfaz) y bibliotecas ROCm (bloques de construcción).
- Identificar las capas jerárquicas de la arquitectura ROCm desde el hardware hasta los marcos de aplicación.
- Definir la relación entre el SDK de HIP y la plataforma ROCm en diferentes sistemas operativos.
- Ejecutar un flujo de instalación sistemático, incluyendo verificación de matriz de compatibilidad y configuración de rutas tras la instalación.
- Compilar y ejecutar un programa mínimo de verificación para solucionar problemas comunes de controladores y acceso al entorno.
- Comprender por qué una estrategia de compilación sólida es esencial para reconciliar la portabilidad del código fuente con el rendimiento específico de la arquitectura.
- Implementar lanzamientos de kernels portables usando la macro
hipLaunchKernelGGLcomo alternativa a la sintaxis de triple corchete de CUDA. - Configurar proyectos CMake de nivel productivo que apunten a arquitecturas ROCm específicas y gestionen dependencias de bibliotecas externas.
- Definir la anatomía de un kernel HIP y aplicar la fórmula básica de ejecución para el indexado de hilos.