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 de CUDA
- Diferencias arquitectónicas entre CPU y GPU
- Modelo de multiprocesadores de streaming de GPU NVIDIA
- Visión general del modelo de programación CUDA
- Computación heterogénea y el paradigma host-dispositivo
Configuración del Entorno de Desarrollo de CUDA
- Instalación del Toolkit de CUDA 13.x
- Compilador NVCC y flujo de trabajo de compilación
- Verificación del entorno con consultas de dispositivo
- Integración IDE y herramientas de desarrollo
Escribiendo e Iniciando Kernels CUDA
- Sintaxis y calificadores de funciones kernel
- Lanzamiento de configuración y ejecución
- Suma de vectores y patrones básicos de datos-paralelos
- Máquinas de verificación de errores CUDA
Jerarquía de Hilos CUDA y Modelo de Ejecución
- Organización en grid, bloque e hilo
- Indexación de hilos y cálculo del ID global
- Ejecución de warps y modelo SIMT
- Ocupancia y utilización de recursos
Arquitectura y Gestión de Memoria GPU
- Tipos de memoria: global, compartida, constante, 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
- Avisos de memoria para patrones de acceso
Perfilado a Nivel de 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 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 en Nsight Compute
- Análisis de throughput y ancho de banda de memoria
- Utilización de cómputo y estadísticas de 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 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 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 Perfiles
- Metodología de perfilado iterativo
- 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 GPU acelerada completa
- Integración del perfilado durante todo el desarrollo
- Evaluación y reporte de rendimiento
- Consideraciones de implementación para producción
Requerimientos
- Competencia básica en programación C/C++ que incluya tipos de variables, bucles, sentencias condicionales, funciones y manipulaciones de arrays
- Conocimiento sobre la compilación y ejecución de programas desde la línea de comandos
- No se requiere experiencia previa en programación con GPU o CUDA
Audiencia Objetivo
- Desarrolladores e ingenieros de software que buscan acelerar aplicaciones C/C++ con GPUs
- Investigadores científicos y profesionales de HPC en transición desde computación exclusivamente en CPU hacia computación heterogénea
- Líderes técnicos que evalúan la aceleración por GPU para cargas de trabajo de producción
8 Horas