Licenciatura en Tecnología

drawing


1. Profesor

Dr. Ulises Olivares Pinto

2. Objetivo del curso

Presentar al estudiante el modelo de programación paralela para CPUs y GPUs para la resolución de problemas inherentemente paralelos.

3. Prerequisitos

Deseables

  • Dominio de los lenguajes de programación C y C++
  • Conicimiento básico de estructuras de datos y algoritmos

Hardware

Se deberá contar con una computadora con GPU de la marca NVIDIA

Software

Se deberá contar con el siguiente software instalado

Cuentas

Se deberán crear cuentas en las siguientes plataformas:

  • Crear una cuenta en GitHub

4. Contenido del curso

4.1 OpenMP

No. Tema Conceptos Código Material complementario
1. Introducción a la programación con OpenMP Paralelización de ciclos, memoria compartida y privada OpenMP API Reference

4.2 CUDA

No. Tema Conceptos Código Material complementario
1. Introducción a la programación con GPUs Introducción a CUDA, modelo de programación paralelo, consulta de dispositivo Capítulo 1 - (D.Kirk et al., 2017)
2. Organización de bloque e Hilos Bloques, hilos, indexación y rendimiento Capítulos 2 y 3 - (D.Kirk et al., 2017)
3. Organización de hilos y jerarquía de memoria Localidad de datos, memoria compartida, local y global Capítulo 6 - (D.Kirk et al., 2017)
4. Multiplicación de matrices Memoria global Capítulos 4 y 5 - (D.Kirk et al., 2017)
5. Multiplicación de matrices Memoria compartida, tiling Capítulo 6 - (D.Kirk et al., 2017)
6. Patrón de acceso paralelo: Convolución Memoria compartida, tiling, memoria constante Capítulo 7 - (D.Kirk et al., 2017)
7. Patrón de acceso paralelo: Suma prefijo Memoria compartida, tiling
Capítulo 8 - (D.Kirk et al., 2017)
8. Patrón de acceso paralelo: Histogramas Operaciones atómicas Capítulo 9 - (D.Kirk et al., 2017)
Última actualización: 24 de marzo de 2023