Dr. Ulises Olivares Pinto
Presentar al estudiante el modelo de programación paralela para CPUs y GPUs para la resolución de problemas inherentemente paralelos.
- Dominio de los lenguajes de programación C y C++
- Conicimiento básico de estructuras de datos y algoritmos
Se deberá contar con una computadora con GPU de la marca NVIDIA
Se deberá contar con el siguiente software instalado
- OpenMP (https://www.openmp.org/)
- CUDA Toolkit (https://developer.nvidia.com/cuda-toolkit)
- Entonrno de desarrollo integrado(IDE)
- Eclipse
- Clion
- NVIDIA NSIGHT
Se deberán crear cuentas en las siguientes plataformas:
- Crear una cuenta en GitHub
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 |
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) |