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
Cómputo en GPU y arquitectura CUDA
- Diferencias arquitectónicas entre CPU y GPU
- Modelo de multiprocesadores de secuencia de streaming (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 mediante consultas de dispositivo
- Integración con 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 paralelismo de datos
- Marcos de verificación de errores de CUDA
Jerarquía de hilos y modelo de ejecución de CUDA
- Organización de mallas, bloques y hilos
- Indexación de hilos y cálculo de identificadores globales
- Ejecución de warps y modelo SIMT
- Capacidad de ocupación y utilización 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-dispositivo y dispositivo-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
- Precarga asíncrona con cudaMemPrefetchAsync
- Sugerencias de comportamiento de memoria para patrones de acceso
Perfilado del sistema con Nsight Systems
- Análisis de la 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 de sistema
Optimización de kernels con Nsight Compute
- Perfilado interactivo de kernels en Nsight Compute
- Análisis de flujo de datos y ancho de banda de memoria
- Estadísticas de utilización de cómputo y estado de warps
- Análisis guiado y reglas de optimización
Streams concurrentes y operaciones asíncronas
- Streams de CUDA y el stream predeterminado
- Superposición de ejecución de kernels con transferencias de datos
- Sincronización de streams y eventos de CUDA
- Patrones de diseño para pipelines multi-stream
Gestión de errores y herramientas de depuración
- Códigos de error de la API de CUDA y estrategias de recuperación
- Compute-sanitizer para verificación de accesos 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 de aplicación acelerada de extremo a extremo
- Diseño de una solución completa acelerada por GPU
- Integración del perfilado durante todo el desarrollo
- Evaluación y reporte de rendimiento
- Consideraciones de despliegue para producción
Requerimientos
- Competencia básica en programación C/C++, incluyendo tipos de variables, bucles, sentencias condicionales, funciones y manipulación de arreglos
- Conocimiento 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 GPUs ni de CUDA
Audiencia objetivo
- Desarrolladores e ingenieros de software que buscan acelerar aplicaciones C/C++ con GPUs
- Investigadores científicos y profesionales de HPC que transitan de entornos solo de 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