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.
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
- Configuración del entorno de desarrollo
Empezar
- Creación de un nuevo proyecto ROCm mediante el código Visual Studio
- Exploración de la estructura y los archivos del proyecto
- Compilación y ejecución del programa
- Visualización de la salida mediante printf y fprintf
ROCm API
- Comprender el papel de la API ROCm en el programa host
- Uso de la API ROCm para consultar la información y las capacidades del dispositivo
- Uso de la API ROCm para asignar y desasignar la memoria del dispositivo
- Uso de la API ROCm para copiar datos entre el host y el dispositivo
- Uso de la API ROCm para iniciar kernels y sincronizar subprocesos
- Uso de la API ROCm para controlar errores y excepciones
Lenguaje HIP
- Comprender el papel del lenguaje HIP en el programa del dispositivo
- Uso del lenguaje HIP para escribir kernels que se ejecutan en el GPU y manipular datos
- Uso de tipos de datos, calificadores, operadores y expresiones de HIP
- Uso de funciones, variables y bibliotecas integradas de HIP para realizar tareas y operaciones comunes
Modelo de memoria ROCm y HIP
- Descripción de la diferencia entre los modelos de memoria de host y de dispositivo
- Uso de espacios de memoria ROCm y HIP, como global, compartido, constante y local
- Uso de objetos de memoria ROCm y HIP, como punteros, matrices, texturas y superficies
- Uso de modos de acceso a memoria ROCm y HIP, como solo lectura, solo escritura, lectura-escritura, etc.
- Uso del modelo de coherencia de memoria ROCm y HIP y mecanismos de sincronización
Modelo de ejecución de ROCm y HIP
- Descripción de la diferencia entre los modelos de ejecución de host y dispositivo
- Uso de subprocesos, bloques y cuadrículas ROCm y HIP para definir el paralelismo
- Uso de funciones de rosca ROCm y HIP, como hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
- Uso de funciones de bloque ROCm y HIP, como __syncthreads, __threadfence_block, etc.
- Uso de funciones de cuadrícula ROCm y HIP, como hipGridDim_x, hipGridSync, grupos cooperativos, etc.
Depuración
- Comprender los errores y fallos comunes en los programas ROCm y HIP
- 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
- Comprender los factores que afectan el rendimiento de los programas ROCm y HIP
- Uso de técnicas de fusión ROCm y HIP para mejorar el rendimiento de la memoria
- Uso de técnicas de almacenamiento en caché y precarga de ROCm y HIP para reducir la latencia de memoria
- Uso de técnicas de memoria local y memoria compartida ROCm y HIP 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 ROCm y HIP 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
Audiencia
- Desarrolladores que deseen aprender a usar ROCm y HIP 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
28 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