Workshop: Programación de GPUs con CUDA
Tras una exitosa década siendo utilizadas como aceleradores hardware, las GPUs constituyen hoy en día una atractiva alternativa para la computación de altas prestaciones a bajo coste. En este contexto CUDA es una arquitectura de cálculo paralelo de Nvidia que aprovecha el potencial de la GPU para proporcionar un incremento extraordinario del rendimiento del sistema.
El presente workshop pretende familiarizar a un programador básico de lenguaje C sobre la aceleración de aplicaciones de propósito general en GPUs con CUDA, abarcando tanto aspectos teóricos como prácticos. Durante el primer día se describirán las diferentes plataformas y generaciones de hardware que se han venido utilizando para ello en computación de alto desempeño, para a partir de ahí introducir los kernels, bloques e hilos de CUDA.
Profesor
Manuel Ujaldón
CUDA Fellow
Profesor titular Arquitectura Computacional
Universidad de Málaga
Programa
23 de Octubre
9.30 – 11.00 Arquitectura de la GPU: Desarrollos many-core por generaciones hardware
11.00 – 11.30 Coffee break
11.30 – 13.00 Programación CUDA: Hilos, bloques, kernels, mallas
13.00 – 14.30 Almuerzo
14.30 – 16.00 Programación CUDA: Compilación, depuración y optimización
24 de Octubre
9.30 – 11.00 Ejemplos de programación de kernels: VectorAdd, ReverseArray, Stencils, Matrix Multiply
11.00 – 11.30 Coffee break
11.30 – 13.00 Taller de programación en la nube (1): (a realizar individualmente) Suma de vectores
13.00 – 14.30 Almuerzo
14.30 – 16.00 Taller de programación en la nube (2): Producto de matrices y algoritmos de reducción