¡Gracias por enviar su consulta! Uno de los miembros de nuestro equipo se pondrá en contacto contigo en breve.
¡Gracias por enviar su reserva! Uno de los miembros de nuestro equipo se pondrá en contacto contigo en breve.
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
Testimonios (2)
Muy interactivo con varios ejemplos, con una buena progresión en complejidad entre el inicio y el final de la formación.
Jenny - Andheo
Curso - GPU Programming with CUDA and Python
Traducción Automática
Entrenadores, energía y humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Curso - NVIDIA GPU Programming - Extended
Traducción Automática