PDF de programación - Arquitectura de GPUs

Imágen de pdf Arquitectura de GPUs

Arquitectura de GPUsgráfica de visualizaciones

Publicado el 22 de Junio del 2018
453 visualizaciones desde el 22 de Junio del 2018
2,7 MB
66 paginas
Creado hace 11a (02/08/2012)
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
  • Links de descarga
http://lwp-l.com/pdf12053

Comentarios de: Arquitectura de GPUs (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad