Arquitectura Flashcards
(10 cards)
Arquitectura CUDA - G80
- Puede verse como un arreglo escalable de multiprocesadores
- SMs: multithreaded Streaming Multiprocessors
- Los SMs se agrupan en pares formando 8 Thread Processing Clusters (TPCs)
Modelo de ejecución clásico
- La arquitectura CUDA permite abstraer la GPU como un conjunto de multiprocesadores compuestos a su vez por un conjunto de procesadores orientados a la ejecución de hilos.
- En el modelo de ejecución de CUDA cada multiprocesador ejecuta el mismo programa pero sobre distintos datos.
- Los distintos multiprocesadores NO tiene que estar ejecutando la misma instrucción en el mismo momento.
- Este paradigma de programación se conoce con el nombre SPMD (single program multiple data)
- Internamente cada multiprocesador sigue el paradigma de programación paralela SIMT (Single Instruction Multiple Threads)
SIMT
- Si todos los hilos deben ejecutar la misma instrucción mantienen coherencia
- Si los hilos deben ejecutar instrucciones distintas divergen
- En contraste con SIMD, SIMT permite tener paralelismo de datos si son coherentes y paralelismo de hilo si divergen
Kernel, bloques y grillas
- Son los programas que ejecutan en la GPU
- La GPU ejecuta un kernel a la vez
- La ejecución de un kernel es realizada por hilos que se organizan en bloques
- Los bloques pueden tener dimensión 1…3
- Los bloques se organizan en un grid
- El grid puede tener dimensión 1…2 en Compute capability 1, y 1…3 de 2.x en adelante
Bloque
- Subconjunto de los cómputos que será ejecutado en un MP en forma independiente
- Si hay suficientes MPs disponibles, todos los bloques son ejecutados en paralelo (si no el scheduler gestiona la ejecución, orden no conocido a priori)
- Cada hilo del bloque ejecuta en un CUDA core del MP
Beneficio del modelo clásico
Permite escalar automáticamente
Warp
- La ejecución se planifica en base a Warps
- El MP crea, gestione, planifica y ejecuta en base a conjunto de hilos llamado warp
- Tamaño es 32 hilos desde G80
- El MP particiona el bloque en warps
- Cada warp contiene hilos consecutivos
- Ejecutan una instrucción a la vez
- Si los hilos de un warp divergen, el warp serializa la ejecución de cada camino (deshabilitando los hilos que no forman parte del camino) y vuelven a converger al completar cada camino
- La eficiencia máxima se logra cuando los hilos de un warp coinciden en su camino
- La divergencia ocurre únicamente dentro de un warp (Distintos warp son independientes)
Tipos de memoria
- Global
- Local
- Compartida
- Registros
- Constante
- Texturas
Son on-chip u off-chip si están o no en el mismo chip que los CUDA cores
Estrategia y enfoque de Kepler
- Foco en reducir el consumo de energía y obtener una mejor performance por watt
- Se realizó una reducción en la frecuencia para disminuir el consumo, pero se aumentó la cantidad de cores
Compute capabilities
- Formato estandarizado para especificar las diferentes características de una tarjeta
- Formada por dos números (cambio de generación y revisión)