TEL-420 Sistemas Paralelos Actividades Autónomas M4 · M4
M4 Actividades de Aprendizaje Autónomo
Descargar .md

Actividades de Aprendizaje Autónomo — Módulo 4 (EC4)

Asignatura: TEL-420 · Sistemas Paralelos Módulo 4: Computación Paralela Masiva en GPU (CUDA) Docente: Ing. Elias Cassal Baldiviezo Horas de dedicación autónoma: 6 horas Semanas de ejecución: 11 a 13


1. Justificación y propósito pedagógico

Conforme al apartado 20.4 del Programa Docente del Proyecto Formativo, el trabajo autónomo en el módulo 4 permite al estudiante interiorizar la mentalidad de paralelismo masivo (Massively Parallel Processing), dominando la programación en GPU mediante la escritura de kernels de complejidad progresiva y el análisis crítico de la relación costo-beneficio de la aceleración por hardware.


2. Bloque de Actividades Autónomas Obligatorias

Actividad A1: Desarrollo de la serie de kernels CUDA de complejidad creciente

  • Momento de entrega: Fin de la Semana 12.
  • Instrumento de evaluación: file:///home/eliasdev/sistemas_paralelos/10-modulos/M4-cuda-gpgpu/rubrica-codigo-cuda.md (40% de EC4).
  • Consigna de trabajo:
  • Desarrollar e integrar en un repositorio GitHub la serie de 4 kernels CUDA:
  • Kernel 1: Operaciones vectoriales con cálculo de índices globales en 1D.
  • Kernel 2: Filtro 2D de suavizado de imágenes o cálculo de stencil con grilla bidimensional.
  • Kernel 3: Reducción paralela de suma en memoria compartida sin divergencia de warps.
  • Kernel 4: Multiplicación de matrices por bloques de teselas (Tiled GEMM) con memoria compartida.
  • Implementar comprobación automática de errores para cada llamada a la API CUDA mediante una macro en C (CHECK_CUDA_ERROR).
  • Validar los resultados frente a la CPU para matrices de al menos 2048 \times 2048.

Actividad A2: Estudio de literatura técnica oficial y análisis de código abierto

  • Momento de dedicación: Semanas 11 y 12.
  • Contenidos de estudio autónomo:
  • CUDA C++ Programming Guide (Capítulos 1 a 3: Modelo de programación y modelo de hardware).
  • CUDA C++ Best Practices Guide (Estrategias de optimización de memoria y ocupancia).
  • Inspección de repositorios de código abierto de bibliotecas aceleradas (cuBLAS, Thrust o CUDNN).

Actividad A3: Preparación del informe comparativo CPU vs GPU y análisis de ocupancia

  • Momento de entrega: Fin de la Semana 13.
  • Instrumentos de evaluación: file:///home/eliasdev/sistemas_paralelos/10-modulos/M4-cuda-gpgpu/rubrica-comparativo-cpu-gpu.md (30% de EC4) y file:///home/eliasdev/sistemas_paralelos/10-modulos/M4-cuda-gpgpu/rubrica-perfilado-gpu.md (30% de EC4).
  • Consigna de trabajo:
  • Ejecutar las herramientas de perfilado NVIDIA Nsight Compute sobre los kernels desarrollados.
  • Extraer capturas y métricas de ocupancia teórica vs alcanzada y porcentaje de coalescing de memoria global.
  • Redactar el informe técnico en PDF contrastando la aceleración obtenida frente a OpenMP en CPU y evaluando el coste de transferencia del bus PCIe.