Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Arquitectura de GPUs
Carlos Bederián, Nicolás Wolovick
FaMAF, Universidad Nacional de Córdoba, Argentina
1 de Agosto de 2012
[email protected]
Revisión 3739, 2012-08-02
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Introducción
Organización GPU: cálculo y paralelismo
Organización de GPU: scheduling
Organización GPU: memoria
NVIDIA GF110 “Tesla” M2090
Poniento todo junto
Resumen
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
CPU modernas, cómputo
Por ejemplo Intel Sandy BridgeTM o AMD BulldozerTM.
ILP
• Pipelining con una docena de fases.
• Ejecución fuera de órden (OOE).
Un scheduler que entiende X86 64 y analiza dependencia de datos.
• Superescalares. Muchas unidades de ejecución..
3 puertos cómputo, 3 puertos memoria, para Sandy Bridge.
• Predictor de saltos.
Análisis estadístico realtime para evitar costosos pipeline stalls.
• Dos juegos de registros para correr dos hilos y aumentar la
utilización de las unidades de ejecución. Intel HyperthreadingTM.
FPU
• Unidades independientes de multiplicación y suma.
• Unidades vectoriales AVX, 8 fp32 a la vez.
1 MAD o sea 2 FLOP por ciclo.
8×2 FLOP por ciclo.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
CPU modernas, memoria
Acceso a memoria principal
• Mejorando mucho el BW a
memoria.
• Acceso multibanco.
Ej: Nehalem 3, Sandy Bridge 4, Ivy
Bridge 2 (por ahora).
Cache
• Estructura de 3 niveles: L1I y L1D, L2, L3.
L3 compartida entre los cores de la pastilla.
• TLB multinivel.
• Unidad de prefetching de caché.
• Way prediction & semantic aware cache.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
CPU vs GPU, números crudos
Performance pico teórica.
FLOPS fp32
FLOPS fp64
MemBW
TPD
TC
Die
Availability
Xeon E5-2680
172.8 GFLOPS
86.4 GFLOPS
M2090
1331 GFLOPS
665 GFLOPS
51.2 GBps
130 W
2.26e9
416 mm2
Q1’12
177 GBps
225 W1
3.0e9
520 mm2
Q2’11
¿Cómo se hace semejante fa¸canha?
1Placa entera, con memoria, ventiladores, etc.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
CPU vs GPU, números crudos
Performance pico teórica.
FLOPS fp32
FLOPS fp64
MemBW
TPD
TC
Die
Availability
Xeon E5-2680
172.8 GFLOPS
86.4 GFLOPS
M2090
1331 GFLOPS
665 GFLOPS
51.2 GBps
130 W
2.26e9
416 mm2
Q1’12
177 GBps
225 W1
3.0e9
520 mm2
Q2’11
¿Cómo se hace semejante fa¸canha?
Elegir otras soluciones de compromiso.
1Placa entera, con memoria, ventiladores, etc.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Xeon E5 floorplan
Die
Core
The Free Lunch Is Over
Demasiada superficie y potencia para:
• Descubrir paralelismo – ILP.
• Mitigar el memory wall – Cache.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Xeon E5 floorplan
Die
Core
The Free Lunch Is Over
Demasiada superficie y potencia para:
• Descubrir paralelismo – ILP.
• Mitigar el memory wall – Cache.
Hay otras soluciones de compromiso.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Fermi floorplan
Die
Core
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
CPU vs. GPU
Esquemáticamente la diferencia es:
Achicar area de control y caché, aumentar número de ALUs.
Pero . . .
1. ¿Cómo extraigo el paralelismo para alimentar a tantas ALUs?
2. ¿Cómo evito la latencia a memoria?
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
¿Cómo extraigo el paralelismo
para alimentar a tantas ALUs?
Respuesta: paralelismo masivo.
En una GPU podemos tener, por ejemplo, 512 cores.
Para alimentar este paralelismo masivo
se necesita paralelismo de datos.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
¿Cómo evito la latencia a memoria?
Respuesta: paralelismo masivo.
• Sobre-vender la capacidad física.
• Cualquier operación que demore (latencia):
• Cambio de contexto a otro hilo que pueda progresar.
• Suficiente paralelismo puede ocultar la latencia.
• No solo latencia de memoria, también de operaciones.
Notar que la latencia de operaciones y memoria sigue presente.
Solo se superpone con otros cálculos.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
¿Cómo evito la latencia a memoria?
Respuesta: paralelismo masivo.
• Sobre-vender la capacidad física.
• Cualquier operación que demore (latencia):
• Cambio de contexto a otro hilo que pueda progresar.
• Suficiente paralelismo puede ocultar la latencia.
• No solo latencia de memoria, también de operaciones.
Notar que la latencia de operaciones y memoria sigue presente.
Solo se superpone con otros cálculos.
Highly parallel & throughput computing
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Introducción
Organización GPU: cálculo y paralelismo
Organización de GPU: scheduling
Organización GPU: memoria
NVIDIA GF110 “Tesla” M2090
Poniento todo junto
Resumen
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Cores muy simples
Execution context es donde se guarda el estado: PC, registros.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Muchos cores muy simples
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Cores vectoriales simples
Amortizar aún más el área: vector processor.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Muchos cores vectoriales simples
Foto final.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Recordar el origen: realtime 3D rendering
Graphic pipeline.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Como se procesan los vertex y fragments
Graphic pipeline: highly parallel load.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Procesadores vectoriales, la otra solución
Vectorizar es complejo.
Programar SSE/AltiVec/NEON/¿XeonPhi? es un problema.
SIMD en hardware, no implica SIMD en software
• Simular flujos de control independientes.
• ¿Cómo? internal masks, branch sincronization stack,
instruction markers.
Ilusión que cada lane en un warp tiene su propio PC.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Divergencia en el flujo de control
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Ocultamiento de latencia
La latencia total es la misma, pero se superpone con otros cálculos.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Muchos hilos volando, muchas cosas para recordar
Más ocultamiento latencia mem& ops
⇒ Más hilos en ejecución
⇒ Más memoria para sus contextos
Tensión entre:
• Ocultamiento de latencia.
• Tamaño de la memoria para almacenar contextos.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Muchos hilos volando, muchas cosas para recordar
Más ocultamiento latencia mem& ops
⇒ Más hilos en ejecución
⇒ Más memoria para sus contextos
Tensión entre:
• Ocultamiento de latencia.
• Tamaño de la memoria para almacenar contextos.
Verdad de Pedro Grullo
La memoria es finita y de tamaño constante.
Corolario
Kernels con contextos pequeños ocultan mejor la latencia que
kernels con contextos grandes.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Contextos pequeños. Máximo ocultamiento de latencia
Cada kernel utiliza unos pocos registros.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Contextos intermedios. Mediano ocultamiento de latencia
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Contextos grandes. Poco ocultamiento de latencia
La cantidad de registros es un parámetro crucial en la performance.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Introducción
Organización GPU: cálculo y paralelismo
Organización de GPU: scheduling
Organización GPU: memoria
NVIDIA GF110 “Tesla” M2090
Poniento todo junto
Resumen
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Problema de planificación
Como ejecutar grilla de bloques de hilos en cores vectoriales.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Planificación de Warp y Bloque
Warp
• Mínima unidad de planificación.
• Procesamiento SIMD.
• (pero) Flujo de control independiente en cada hilo.
• Típicamente 16 hilos, 32 hilos (warp) o 64 hilos (wavefront).
Bloque
• Es un multiprocesador virtual
Hilos independientes, memoria compartida.
• Puede haber comunicación y sincronización intra-bloque.
• Los bloques son independientes entre si.
• Un bloque comienza y no para hasta completar su programa.
Non-preemptive scheduler.
Un bloque se ejecuta en solo un procesador vectorial.
• Un procesador vectorial puede ejecutar más de un bloque.
Introducción
Cálculo&Paralelismo
Scheduling
Memoria
Tesla M2090
Poniento todo junto
Resumen
Planificación de dos niveles
Warps de
Comentarios de: Arquitectura de GPUs (0)
No hay comentarios