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 en GPU y arquitectura CUDA
- Diferencias arquitectónicas entre CPU y GPU
- Modelo de streaming multiprocesador (SM) de GPU de NVIDIA
- Vista general del modelo de programación CUDA
- Computación heterogénea y el paradigma host-dispositivo
Configuración del entorno de desarrollo CUDA
- Instalación de CUDA Toolkit 13.x
- Compilador NVCC y flujo de trabajo de compilación
- Verificación del entorno con consultas de dispositivo
- Integración con IDE y herramientas de desarrollo
Escribir y lanzar kernels CUDA
- Sintaxis y modificadores de funciones kernel
- Configuración del lanzamiento y ejecución
- Suma de vectores y patrones básicos de paralelismo de datos
- Másicos de 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 identificador global
- Ejecución de warts y modelo SIMT
- Ocupación y uso de recursos
Arquitectura y gestión de memoria en GPU
- Tipos de memoria: global, compartida, constante, registros
- Asignación y liberación de memoria del dispositivo
- Transferencias host-a-dispositivo y dispositivo-a-host
- Memoria compartida para la 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
- Prefetch asíncrono con cudaMemPrefetchAsync
- Consejos de uso de memoria para patrones de acceso
Perfiliado del sistema con Nsight Systems
- Análisis de línea temporal en 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
- Perfiliado interactivo de kernels en Nsight Compute
- Análisis de ancho de banda y rendimiento de memoria
- Ocupación de cómputo y estadísticas de estado de warps
- 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 para tuberías multi-flujo
Gestión 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 sincrónica 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 de aplicación acelerada integral
- Diseño de una solución completa acelerada por GPU
- Integración del perfilado durante todo el desarrollo
- Metricas y reportes de benchmarking de rendimiento
- Consideraciones de despliegue para producción
Requerimientos
- Competencia básica en programación C/C++, incluidos tipos de variables, bucles, sentencias condicionales, funciones y manipulaciones de arreglos
- Familiaridad con la compilación y ejecución de programas desde la línea de comandos
- No se requiere experiencia previa en programación de GPU o CUDA
Audiencia
- Desarrolladores e ingenieros de software que buscan acelerar aplicaciones C/C++ con GPU
- Investigadores científicos y profesionales de HPC (High Performance Computing) que transitan de cómputo solo en CPU a computación heterogénea
- Líderes técnicos que evalúan la aceleración por GPU para cargas de trabajo en producción
8 Horas