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 GPU la programación?
- ¿Por qué usar GPU la programación?
- ¿Cuáles son los desafíos y las compensaciones de la programación GPU?
- ¿Cuáles son los marcos de trabajo para GPU la programación?
- Elegir el marco adecuado para su aplicación
OpenCL
- ¿Qué es OpenCL?
- ¿Cuáles son las ventajas y desventajas de OpenCL?
- Configuración del entorno de desarrollo para OpenCL
- Creación de un programa básico OpenCL que realiza la suma de vectores
- Uso de la API OpenCL para consultar información del dispositivo, asignar y desasignar memoria del dispositivo, copiar datos entre el host y el dispositivo, iniciar kernels y sincronizar subprocesos
- Uso del lenguaje OpenCL C para escribir kernels que se ejecutan en el dispositivo y manipulan datos
- Uso de OpenCL funciones, variables y bibliotecas integradas para realizar tareas y operaciones comunes
- Uso de OpenCL espacios de memoria, como global, local, constante y privado, para optimizar las transferencias de datos y los accesos a memoria
- Uso del modelo de ejecución OpenCL para controlar los elementos de trabajo, los grupos de trabajo y los intervalos ND que definen el paralelismo
- Depuración y prueba de programas OpenCL utilizando herramientas como CodeXL
- Optimización de OpenCL programas mediante técnicas como la coalescencia, el almacenamiento en caché, la precarga y la generación de perfiles
CUDA
- ¿Qué es CUDA?
- ¿Cuáles son las ventajas y desventajas de CUDA?
- Configuración del entorno de desarrollo para CUDA
- Creación de un programa CUDA básico que realiza la suma de vectores
- Uso de la API de CUDA para consultar información del dispositivo, asignar y desasignar memoria del dispositivo, copiar datos entre el host y el dispositivo, iniciar kernels y sincronizar subprocesos
- Uso del lenguaje CUDA C/C++ para escribir kernels que se ejecutan en el dispositivo y manipulan datos
- Uso de funciones, variables y bibliotecas integradas de CUDA para realizar tareas y operaciones comunes
- Uso de espacios de memoria CUDA, como globales, compartidos, constantes y locales, para optimizar las transferencias de datos y los accesos a la memoria
- Uso del modelo de ejecución CUDA para controlar los subprocesos, bloques y cuadrículas que definen el paralelismo
- Depuración y prueba de programas CUDA con herramientas como CUDA-GDB, CUDA-MEMCHECK y NVIDIA Nsight
- Optimización de programas CUDA mediante técnicas como la coalescencia, el almacenamiento en caché, la precarga y la generación de perfiles
ROCm
- ¿Qué es ROCm?
- ¿Cuáles son las ventajas y desventajas de ROCm?
- Configuración del entorno de desarrollo para ROCm
- Creación de un programa ROCm básico que realiza la suma de vectores
- Uso de la API de ROCm para consultar información del dispositivo, asignar y desasignar memoria del dispositivo, copiar datos entre el host y el dispositivo, iniciar kernels y sincronizar subprocesos
- Uso del lenguaje ROCm C/C++ para escribir kernels que se ejecutan en el dispositivo y manipulan datos
- Uso de funciones, variables y bibliotecas integradas de ROCm para realizar tareas y operaciones comunes
- Uso de espacios de memoria ROCm, como global, local, constante y privado, para optimizar las transferencias de datos y los accesos a la memoria
- Uso del modelo de ejecución ROCm para controlar los subprocesos, bloques y cuadrículas que definen el paralelismo
- Depuración y prueba de programas ROCm mediante herramientas como ROCm Debugger y ROCm Profiler
- Optimización de programas ROCm mediante técnicas como la coalescencia, el almacenamiento en caché, la precarga y la generación de perfiles
Comparación
- Comparación de las características, el rendimiento y la compatibilidad de OpenCL, CUDA y ROCm
- Evaluación GPU de programas utilizando puntos de referencia y métricas
- Aprender las mejores prácticas y consejos para GPU programar
- Explorando las tendencias y desafíos actuales y futuros de la programación GPU
Resumen y próximos pasos
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 diferentes marcos para GPU programación y comparar sus características, rendimiento y compatibilidad.
- Desarrolladores que desean escribir código portátil y escalable que pueda ejecutarse en diferentes plataformas y dispositivos
- Programadores que deseen explorar las ventajas y desventajas y los desafíos de GPU la programación y la optimización
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