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.
Temario del curso
Computación GPU y Arquitectura CUDA
- Diferencias arquitectónicas entre CPU y GPU
- Modelo de streaming multiprocesador (SM) de NVIDIA GPU
- Visión general del modelo de programación CUDA
- Cómputo heterogéneo y el paradigma host-dispositivo
Configuración del Entorno de Desarrollo CUDA
- Instalación del CUDA Toolkit 13.x
- Compilador NVCC y flujo de trabajo de construcción
- Verificación del entorno con consultas de dispositivo
- Integración de IDE y herramientas de desarrollo
Escritura y Lanzamiento de Kernels CUDA
- Sintaxis y calificadores de funciones kernel
- Configuración de lanzamiento y ejecución
- Suma de vectores y patrones básicos de paralelo de datos
- Macró para verificación de errores CUDA
Jerarquía de Hilos CUDA y Modelo de Ejecución
- Organización de grid, bloque e hilo
- Indexación de hilos y cálculo del ID global
- Ejecución de warps y modelo SIMT
- Ocupación y utilización de recursos
Arquitectura y Gestión de Memoria GPU
- Tipos de memoria: global, compartida, constante y registros
- Asignación y liberación de memoria de dispositivo
- Transferencias host-a-dispositivo y dispositivo-a-host
- Memoria compartida para colaboración intra-bloque
Memoria Unificada y Migración de Datos
- Modelo de memoria unificada y asignaciones gestionadas
- Migración de páginas y paginación bajo demanda
- Prefetching asíncrono con cudaMemPrefetchAsync
- Pistas de consejo de memoria para patrones de acceso
Perfilado a Nivel de Sistema con Nsight Systems
- Análisis de línea de tiempo de Nsight Systems
- Identificación de puntos de sincronización CPU-GPU
- Visualización de la ejecución de kernels y transferencias de memoria
- Interpretación de datos de rendimiento a nivel del sistema
Optimización de Kernels con Nsight Compute
- Perfilado interactivo de kernels con Nsight Compute
- Análisis de ancho de banda y flujo de datos en memoria
- Utilización de cómputo y estadísticas de estado de warp
- Análisis guiado y reglas de optimización
Flujos Concurrentes y Operaciones Asíncronas
- Flujos CUDA y el flujo predeterminado
- Superposición de ejecución de kernels con transferencias de datos
- Sincronización de flujos y eventos CUDA
- Patrones de diseño de tuberías multi-flujo
Manejo de Errores y Herramientas de Depuración
- Códigos de error de la API CUDA y estrategias de recuperación
- Compute-sanitizer para verificación de acceso a memoria
- cuda-gdb para depuración de kernels
- Aserciones y detección síncrona de errores
Flujo de Trabajo de Optimización Basado en Perfilado
- Metodología iterativa de perfilado
- Identificación y priorización de cuellos de botella
- Pruebas de regresión de rendimiento
- Documentación de decisiones de optimización
Proyecto Final de Aplicación Acelerada Extremo a Extremo
- Diseño de una solución GPU acelerada completa
- Integración del perfilado durante todo el desarrollo
- Pruebas comparativas (benchmarking) y presentación de informes de rendimiento
- Consideraciones de despliegue para producción
Requerimientos
- Competencia básica en programación C/C++ incluyendo tipos de variables, bucles, instrucciones condicionales, funciones y manipulación de matrices
- Familiaridad con la compilación y ejecución de programas desde la línea de comandos
- No se requiere experiencia previa en programación GPU o CUDA
Público Objetivo
- Desarrolladores de software e ingenieros que buscan acelerar aplicaciones C/C++ con GPUs
- Investigadores científicos y profesionales de HPC que transicionan de CPU exclusivamente a cómputo heterogéneo
- Líderes técnicos que evalúan la aceleración por GPU para cargas de trabajo de producción
8 Horas