Contacta con nosotros

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 la 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 durante la instalación

Primeros pasos

  • Creación de un nuevo proyecto de ROCm usando Visual Studio Code en Windows
  • Exploración de la estructura y los archivos del proyecto
  • Compilación y ejecución del programa
  • Muestra de la salida mediante printf y fprintf

API de ROCm

  • Uso de la API de ROCm en el programa del 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, variables y bibliotecas integradas

Modelo de memoria de ROCm e HIP

  • Uso de diferentes espacios de memoria, como global, compartida, constante y local
  • Uso de distintos objetos de memoria, como punteros, arreglos, texturas y superficies
  • Uso de diferentes modos de acceso a 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 distintos modelos de ejecución, como hilos, bloques y rejillas
  • Uso de funciones de hilo, como hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
  • Uso de funciones de bloque, como __syncthreads, __threadfence_block, etc.
  • Uso de funciones de rejilla, 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 interrupción, pila de llamadas, etc.
  • Uso del Depurador de ROCm para depurar programas de ROCm e HIP en dispositivos de AMD
  • Uso del Perfilador de ROCm para analizar programas de ROCm e HIP en dispositivos de AMD

Optimización

  • Optimización de programas de ROCm e HIP en Windows
  • Uso de técnicas de coalescencia para mejorar el rendimiento de la memoria
  • Uso de técnicas de almacenamiento en caché y prefetching para reducir la latencia de memoria
  • Uso de técnicas de memoria compartida y memoria local para optimizar los accesos a memoria y el ancho de banda
  • Uso de 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

  • Conocimiento del lenguaje C/C++ y de los 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 deseen aprender cómo instalar y usar ROCm en Windows para programar GPUs de AMD y explotar su paralelismo
  • Desarrolladores que deseen escribir código de alto rendimiento y escalable capaz de ejecutarse en diferentes dispositivos de AMD
  • Programadores que deseen explorar los aspectos de bajo nivel de la programación de GPU y optimizar el rendimiento de su código
 21 Horas

Número de participantes


Precio por participante

Próximos cursos

Categorías Relacionadas