Workshop Fundamentals of Accelerated Computing with CUDA Python (Certificación oficial NVIDIA)


 

I. Datos generales

Instructor o docente: Felipe Morales Torres

Modalidad de impartición: Virtual

Duración total de taller: 2 sesiones virtuales de 5 hrs. C/U.

Fechas: 17 y 18 de octubre del 2025

II. Descripción

Descripción:

  • Workshop de certificación para aprender CUDA y su uso a través de Python.

 

  • Destinatarios:

  • Ingenieros de software que buscan optimizar sus aplicaciones utilizando la computación paralela.
  • Científicos de datos y analistas que necesitan acelerar procesos de análisis de datos utilizando GPUs.
  • Profesionales de áreas relacionadas con la computación científica y el procesamiento de datos de alto rendimiento.

Objetivo(s) o competencia(s):

  • Conocimiento especializado: Adquirir conocimientos avanzados en programación paralela utilizando GPUs.
  • Optimización de aplicaciones: Aprender técnicas para acelerar el procesamiento de datos y mejorar el rendimiento de las aplicaciones.
  • Certificación NVIDIA: Al finalizar el curso, los participantes podrán obtener una certificación de NVIDIA, reconociendo sus habilidades en CUDA Python.
  • Aplicabilidad práctica: A través de ejercicios y evaluaciones, los participantes podrán aplicar lo aprendido en proyectos reales, mejorando su capacidad para resolver problemas complejos.

Metodología y Actividades: 

  • Presentaciones oficiales de tecnología NVIDIA, en donde se explica a nivel detallado lo que es CUDA.
  • Presentaciones y temáticas sobre la diferencia entre CPUs y GPUs a nivel funcional y a nivel arquitectura.
  • Ejercicios prácticos para cada módulo.
  • Repaso sobre conceptos básicos de Python que se utilizan para programar CUDA
    • Variables, funciones, loops, memoria.  
  • Diferencias entre procesamiento CPU y GPU, conceptos básicos de memoria y paralelización.
  • Crear cuenta de desarrollador y acceder a courses.nvidia.com/join 
  • Empezar a trabajar con el compilador NUMBA y la programación de CUDA en Python.
  • Usar decoradores de NUMBA para acelerar funciones numéricas de Python.
  • Optimizar la transferencia de memoria host-device y device-host.
  • Aprender la jerarquía de hilos paralela y como extender las posibilidades de programas paralelos. Utilizar operaciones atómicas CUDA para evitar condiciones de carrera durante la ejecución paralela
    Ejecutar kernels personalizados de manera masiva en el GPU.
  • Aprender la creación de grids multidimensionales y como trabajar en paralelo en matrices 2D. Aprovechar la memoria compartida en el device para promover la coalescencia de memoria mientras se reformatean las matrices 2D.

Mecanismo y criterios de evaluación:

  • Tres evaluaciones a través de código directo en la plataforma de NVIDIA. Al pasar estas tres evaluaciones se emite el certificado oficial por parte de NVIDIA.

Criterios:

  • Realización de ejercicios prácticos
  • Ejecutar código por su cuenta sin el uso de AI
  • Pasar evaluaciones a través de código.

Conocimientos previos requeridos:

  • Conocimientos básicos de Python.
  • Familiaridad con conceptos básicos de programación (funciones, estructuras de control, arreglos, vectores).
  • Interés en computación paralela, inteligencia artificial o procesamiento de datos.

 

Temario:

Temario

  1. Introducción 
  2. Repaso Python 
  3. Conceptos básicos de CUDA, GPU y paralelización. 
  4. Crear cuenta NVIDIA 
  5. Introduction to CUDA Python with Numba 
  6. Custom CUDA Kernels in Python with Numba 
  7. Multidimensional Grids,and Shared Memory for CUDA Python with Numba 

 

Bibliografía

  • David B. Kirk, Wen-mei W. Hwu; Programming Massively Parallel Processors; Ed. Morgan Kaufmann, NVIDIA, 3rd edition, 2017

Recursos y materiales requeridos

  • Cuenta de Gmail para prácticas en Google Colab
  • Computadora con acceso a internet
  • Registro en página de desarrolladores NVIDIA (se enviarán instrucciones unos días antes para realizarlo)