Gracias por enviar su consulta! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Gracias por enviar su reserva! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Temario del curso
Introducción
- ¿Qué es ROCm?
- ¿Qué es HIP?
- ROCm frente a CUDA frente a OpenCL
- Visión general de las características y arquitectura de ROCm e HIP
- ROCm para Windows frente a ROCm para Linux
Instalación
- Instalación de ROCm en Windows
- Verificación de la instalación y comprobación de la compatibilidad del dispositivo
- Actualización o desinstalación de ROCm en Windows
- Resolución de problemas comunes de instalación
Primeros pasos
- Creación de un nuevo proyecto de ROCm utilizando Visual Studio Code en Windows
- Exploración de la estructura del proyecto y los archivos
- Compilación y ejecución del programa
- Visualización de la salida mediante printf y fprintf
API de ROCm
- Uso de la API de ROCm en el programa host
- Consulta de información y capacidades del dispositivo
- Asignación y liberación de memoria del dispositivo
- Copia de datos entre el host y el dispositivo
- Lanzamiento de kernels y sincronización de hilos
- Gestión de errores y excepciones
Lenguaje HIP
- Uso del lenguaje HIP en el programa del dispositivo
- Escritura de kernels que se ejecutan en la GPU y manipulan datos
- Uso de tipos de datos, calificadores, operadores y expresiones
- Uso de funciones incorporadas, variables y bibliotecas
Modelo de memoria de ROCm e HIP
- Uso de diferentes espacios de memoria, como global, compartido, constante y local
- Uso de diferentes objetos de memoria, como punteros, matrices, texturas y superficies
- Uso de diferentes modos de acceso a la memoria, como solo lectura, solo escritura, lectura-escritura, etc.
- Uso del modelo de consistencia de memoria y mecanismos de sincronización
Modelo de ejecución de ROCm e HIP
- Uso de diferentes modelos de ejecución, como hilos, bloques y cuadrículas
- Uso de funciones de hilos, como hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
- Uso de funciones de bloques, como __syncthreads, __threadfence_block, etc.
- Uso de funciones de cuadrícula, como hipGridDim_x, hipGridSync, grupos cooperativos, etc.
Depuración
- Depuración de programas de ROCm e HIP en Windows
- Uso del depurador de Visual Studio Code para inspeccionar variables, puntos de ruptura, pila de llamadas, etc.
- Uso de ROCm Debugger para depurar programas de ROCm e HIP en dispositivos AMD
- Uso de ROCm Profiler para analizar programas de ROCm e HIP en dispositivos AMD
Optimización
- Optimización de programas de ROCm e HIP en Windows
- Uso de técnicas de agrupación (coalescing) para mejorar el rendimiento de la memoria
- Uso de técnicas de almacenamiento en caché y precarga (prefetching) para reducir la latencia de la memoria
- Uso de técnicas de memoria compartida y local para optimizar los accesos a la memoria y el ancho de banda
- Uso del perfilado y herramientas de perfilado para medir y mejorar el tiempo de ejecución y la utilización de recursos
Resumen y próximos pasos
Requerimientos
- Comprensión del lenguaje C/C++ y conceptos de programación paralela.
- Conocimientos básicos de arquitectura de computadoras y jerarquía de memoria.
- Experiencia con herramientas de línea de comandos y editores de código.
- Familiaridad con el sistema operativo Windows y PowerShell.
Público objetivo
- Desarrolladores que desean aprender cómo instalar y usar ROCm en Windows para programar GPUs de AMD y explotar su paralelismo.
- Desarrolladores que desean escribir código de alto rendimiento y escalable que pueda ejecutarse en diferentes dispositivos de AMD.
- Programadores que desean explorar los aspectos de bajo nivel de la programación de GPUs y optimizar el rendimiento de su código.
21 Horas