CURSO INTRODUCTORIO A LAS TECNOLOGIAS GPU Y SU PROGRAMACION CON CUDA

INSTRUCTOR: ACT. CARLOS LOPEZ

Objetivo: El estudiante al finalizar el curso tendrá la capacidad de poder implementar diferentes problemas numéricos y que requieren de alta cantidad de procesamiento de manera paralela en la arquitectura CUDA, así también como poder interactuar de manera correcta con la infraestructura de cómputo científico con la que cuenta el instituto de Física de la UNAM.

Requisitos: Entendimiento del ciclo básico de desarrollo: escribir, compilar, crear, editar utilizando las herramientas Make, Git y lenguajes de scripting como BASH o Python.

TEMARIO:

Introducción
Modelos de programación en paralelo
GPU's
Entendiendo el paralelismo en GPU
Código serial tradicional
Concurrencia
Paralelismo basado en tareas
Parelelismo basado en datos
Introducción a CUDA
Hello world en CUDA
Propiedades de CUDA

CUDA
Paralelismo de datos
Estructura de un programa con CUDA
Ejemplo con multiplicación de matrices
Memorias de un GPU
Memoria constante
Memoria de textura
Funciones de Kernel y "Threading"
Haciendo llamadas al dispositivo
Usando propiedades del dispositivo
Interoperabilidad gráfica
Streams
Múltiples GPU's

Threads
Organización de Threads
Uso de indexadores
Tolerancia a la latencia

Ejemplos
Suma de vectores
Producto punto

Memorias CUDA
Tipos de memoria
Estrategias para reducir el tráfico en memoria

Punto flotante
Formato de punto flotante
Números representables
Patrones especiales y precisión