Temario del curso

Introducción

  • ¿Qué es la programación de GPU?
  • ¿Por qué usar CUDA con Python?
  • Conceptos clave: hilos, bloques, cuadrículas

Descripción general de las características y arquitectura de CUDA

  • Arquitectura GPU vs CPU
  • Comprensión de SIMT (Single Instruction, Multiple Threads)
  • Modelo de programación CUDA

Ajuste del entorno de desarrollo

  • Instalación de la CUDA Toolkit y controladores
  • Instalación de Python y Numba
  • Ajuste y verificación del entorno

Fundamentos de programación paralela

  • Introducción a la ejecución en paralelo
  • Comprensión de hilos y jerarquías de hilos
  • Trabajo con warps y sincronización

Trabajo con el compilador Numba

  • Introducción a Numba
  • Escribir kernels CUDA con Numba
  • Comprensión de los decoradores @cuda.jit

Construcción de un kernel CUDA personalizado

  • Escribir y lanzar un kernel básico
  • Usar hilos para operaciones elemento a elemento
  • Gestionar dimensiones de cuadrícula y bloque

Gestión de memoria

  • Tipos de memoria GPU (global, compartida, local, constante)
  • Transferencia de memoria entre host y dispositivo
  • Optimización del uso de memoria y evitación de cuellos de botella

Temas avanzados en aceleración de GPU

  • Memoria compartida y sincronización
  • Uso de flujos para ejecución asincrónica
  • Bases de programación multi-GPU

Conversión de aplicaciones basadas en CPU a GPU

  • Perfiles de código CPU
  • Identificación de secciones paralelizables
  • Portabilidad de lógica a kernels CUDA

Troubleshooting

  • Depuración de aplicaciones CUDA
  • Errores comunes y cómo resolverlos
  • Herramientas y técnicas para pruebas y validación

Resumen y próximos pasos

  • Revisión de conceptos clave
  • Buenas prácticas en programación de GPU
  • Recursos para el aprendizaje continuo

Requerimientos

  • Experiencia en programación Python
  • Experiencia con NumPy (ndarrays, ufuncs, etc.)

Audiencia

  • Desarrolladores
 14 Horas

Testimonios (1)

Próximos cursos

Categorías Relacionadas