Programa del Curso

Introducción

  • ¿Qué es ROCm?
  • ¿Qué es HIP?
  • ROCm vs CUDA vs OpenCL
  • Descripción general de las características y la arquitectura de ROCm y HIP
  • ROCm for 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
  • Actualizar o desinstalar ROCm en Windows
  • Solución de problemas comunes de instalación

Empezar

  • Creación de un nuevo proyecto ROCm mediante código Visual Studio en Windows
  • Exploración de la estructura y los archivos del proyecto
  • Compilar y ejecutar el programa
  • Visualización de la salida mediante printf y fprintf

ROCm API

  • Uso de la API ROCm en el programa host
  • Consulta de información y capacidades del dispositivo
  • Asignación y desasignación de memoria del dispositivo
  • Copia de datos entre el host y el dispositivo
  • Lanzamiento de kernels y sincronización de subprocesos
  • Control de errores y excepciones

Lenguaje HIP

  • Uso del lenguaje HIP en el programa del dispositivo
  • Escribir kernels que se ejecutan en GPU y manipulan datos
  • Uso de tipos de datos, calificadores, operadores y expresiones
  • Uso de funciones, variables y bibliotecas integradas

Modelo de memoria ROCm y 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 coherencia de memoria y los mecanismos de sincronización

Modelo de ejecución de ROCm y HIP

  • Uso de diferentes modelos de ejecución, como subprocesos, bloques y cuadrículas
  • Uso de funciones de subproceso, como hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
  • Uso de funciones de bloque, como __syncthreads, __threadfence_block, etc.
  • Uso de funciones de cuadrícula, como hipGridDim_x, hipGridSync, grupos cooperativos, etc.

Depuración

  • Depuración de programas ROCm y HIP en Windows
  • Uso del depurador de código Visual Studio para inspeccionar variables, puntos de interrupción, pila de llamadas, etc.
  • Uso del depurador ROCm para depurar programas ROCm y HIP en dispositivos AMD
  • Uso de ROCm Profiler para analizar programas ROCm y HIP en dispositivos AMD

Optimización

  • Optimización de los programas ROCm y HIP en Windows
  • Uso de técnicas de fusión para mejorar el rendimiento de la memoria
  • Uso de técnicas de almacenamiento en caché y captura previa para reducir la latencia de memoria
  • Uso de técnicas de memoria compartida y memoria local para optimizar los accesos a la memoria y el ancho de banda
  • Uso de herramientas de generación de perfiles y generación de perfiles para medir y mejorar el tiempo de ejecución y la utilización de recursos

Resumen y siguiente paso

Requerimientos

  • Comprensión del lenguaje C/C++ y de los conceptos de programación paralela
  • Conocimientos básicos de arquitectura de computadores 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

Audiencia

  • Desarrolladores que deseen aprender a instalar y usar ROCm en Windows para programar AMD GPU y explotar su paralelismo
  • Desarrolladores que deseen escribir código escalable y de alto rendimiento que pueda ejecutarse en diferentes dispositivos AMD
  • Programadores que deseen explorar los aspectos de bajo nivel de la programación GPU y optimizar el rendimiento de su código
 21 horas

Número de participantes



Precio por participante

Testimonios (1)

Cursos Relacionados

AMD GPU Programming

28 horas

Introduction to GPU Programming

21 horas

GPU Programming with CUDA

28 horas

GPU Programming - OpenCL vs CUDA vs ROCm

28 horas

Categorías Relacionadas