Primera parte

Comentarios

Transcripción

Primera parte
La GPU como arquitectura emergente
para supercomputación
Nicolás Guil y Manuel Ujaldón
Dpto. Arquitectura de Computadores
Universidad de Málaga
Sumario
I. El proceso de renderización [7]
II. El nacimiento de GPGPU y su evolución [9]
III. Arquitectura de la tarjeta gráfica
y la memoria de vídeo [12]
IV. Comparativa CPU-GPU
y contribuciones de la GPU [5]
V. Computación gráfica de altas prestaciones
para propósito general [20] (OPCIONAL)
2
I. El proceso de renderización
El proceso de renderización
4
Operaciones sobre vértices:
Los elementos de la escena
5
Transformaciones geométricas:
El espacio tridimensional
Viewing
Modeling
Projection
Viewport
Trípode
Posicionamos el
volumen de
visualización en el
mundo
Modelo
Lente
Posicionamos los
modelos en el
mundo
Determinamos la
forma del volumen
de visualización
Fotografía
Determinamos el
área 2D en el que
visualizamos la
escena
6
Operaciones sobre fragmentos:
Polígonos
1.- Unión de vértices
según primitivas:
Interpolación
2.- Relleno de
polígonos:
Rasterización
7
Operaciones con texturas
y píxeles: Color
Pegado de texturas, dando lugar
a los píxeles de cada fragmento.
8
Etapas del procesamiento gráfico
¾ Entrada: Lista de vértices y sus atributos.
™ 1. Procesar vértices (vertex shader).
™ 2. Agrupar en primitivas (primitive assembly).
™ 3. Rotar, trasladar, escalar, iluminar (T & L).
™ 4. Acotar e interpolar (clipping, culling, interpolate).
™ 5. Convertir primitivas a mallas de puntos (rasterizer).
™ 6. Procesar píxeles (pixel shader).
™ 7. Aplicar texturas.
™ 8. Mezclar elementos (blending).
¾ Salida: Memoria de vídeo.
9
Programación del procesador gráfico
10
II. El nacimiento de GPGPU y su
evolución durante el último lustro
2003. El punto de partida
ƒ Se popularizan los shaders
y su programación en Cg.
ƒ Comienzan a verse los
primeros códigos
acelerados en la GPU…
ƒ … pero la implementación
es compleja y requiere un
gran conocimiento del
cauce de renderización
gráfico:
ƒ Tiempo de desarrollo elevado
ƒ Perfil de usuario
especializado.
12
2004. Polivalencia y rendimiento.
ƒ Emerge con fuerza GPGPU,
un movimiento que aglutina
los esfuerzos académicos
que montan algoritmos de
propósito general en GPU:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Simulaciones físicas.
Procesamiento de señal.
Biología computacional.
Visión por computador.
Gestión de bases de datos.
Computación numérica.
13
2005: Consolidación de resultados
Sistemas de partículas
Simulaciones físicas
Dinámica molecular
Ganancia esperada en GPU: 2-3x
Procesamiento de señal
Consultas a B.D.
Minería de datos
Operaciones de reducción
Ganancia esperada en GPU: 5-10x
Renderizado de volúmenes
Procesamiento de imágenes
Bioinformática
Ganancia esperada en GPU: 10-20x
Ray Tracing
Visualización
Photon Mapping
Ganancia: > 20x
14
2006. Emerge CUDA
ƒ Ya no se discute el rendimiento ni la polivalencia
del hardware gráfico, pero a la GPU aún le quedan
dos asignaturas pendientes:
ƒ Precisión de los resultados: Ausencia de “floats” (FP32)
ƒ Facilidad de programación. Excesivo tiempo de desarrollo
ƒ Ambos aspectos se resuelven con la llegada de
CUDA en la serie 8 de Nvidia (Noviembre de 2006).
ƒ CUDA: Compute Unified Device Architecture.
ƒ CUDA: Cómo Utilizar un Dispositivo Avanzado con
eficiencia, versatilidad, precisión y sencillez.
15
2007. Unificación de sombreadores
16
Las dos lecciones más importantes que
nos enseña el procesamiento gráfico
ƒ No confiar el futuro a la frecuencia, sino a la
replicación de núcleos, que pueden aprovechar
igualmente las mejoras del transistor.
Posteriormente, se unifican estos núcleos.
ƒ El ancho de banda sostenido con memoria sigue
siendo la clave para un rendimiento elevado.
Algunos fabricantes (IBM-CELL, Nvidia-CUDA)
optan por un control más explícito de la memoria.
17
Lección 1: Paralelismo masivo en procs. de
vértices y píxeles: GeForce 6 y 7 (2004/2006)
18
Lección 2: Reorganización de procesadores
y memoria: G80 (2007/2008)
19
Los paradigmas de computación hasta
llegar a CUDA
CPU (desde los 70):
GPU (hasta 2006):
CUDA (desde 2007):
20
III. Arquitectura de la tarjeta gráfica
y la memoria de vídeo
El diagrama de bloques
de la tarjeta gráfica
22
Segmentación y movimiento de datos
en la GPU frente a la CPU
ƒ La GPU también es una procesador segmentado, pero
con rasgos muy particulares:
ƒ No fluyen las instrucciones, sino los datos.
ƒ Los operadores son unarios, lo que evita las dependencias y
maximiza el paralelismo.
ƒ Se dispone de un menor número de etapas dada la baja
frecuencia. Se fomenta el procesamiento vectorial y
superescalar, buscando aprovechar el paralelismo de datos.
ƒ Parece un cauce de segmentación más homogéneo, pero
no lo es:
ƒ Cualitativamente: Los datos no son los mismos al principio
(vértices) que al final (píxeles).
ƒ Cuantitativamente: Los datos son más numerosos conforme se
aproximan al final.
23
El diferente ritmo del procesador y la memoria
100,000
µProc
60%/año
Rendimiento
10,000
1,000
La diferencia crece
un 50% cada año
Procesador
100
10
DRAM
7%/año.
Memoria
1
1980
1985
1990
1995
2000
2005
2010
Año
24
24
La memoria: Acceso y anchura
ƒ 1992: FPM RAM. Acceso bidimensional por fila y columna.
ƒ 1995: VRAM. Doble puerto, conectado a una línea de
datos de 8 bits, con un RAMDAC de 32, 64 o 128 bits.
ƒ 1997: SDRAM. Bancos entrelazados de factor 2 o 4.
Tecnología barata.
ƒ A partir de aquí, y durante una década, se producirán
sucesivos desdobles en la anchura del bus cada dos años:
1998 (64 bits), 2000 (128 bits), 2003 (256 bits),
2006 (384 bits) y 2007 (512 bits), donde se alcanzan
picos de ancho de banda superiores a 100 Mbytes/sg.
ƒ 2008: Reducción del bus hasta 256 bits,
como consecuencia de la reducción de área
en el chip GPU y la mayor presencia de caché.
25
La memoria: Latencia
Respecto a los modelos comerciales de memoria principal,
la memoria de vídeo lleva una ventaja de dos generaciones:
26
La memoria: Ancho de banda.
Velocidad por cada pin de datos
ƒ Cada nueva generación ha logrado mejorar
más proporcionalmente que su antecesora.
27
La memoria: Ancho de banda.
Velocidad por cada pin de datos
ƒ El ritmo de mejora se acerca al
de una progresión geométrica…
28
La memoria: Ancho de banda.
Velocidad por cada pin de datos
ƒ … aunque en realidad se encuentra
un poco por debajo de ella.
29
La memoria: Formas de uso
ƒ La video-consola se aprovecha de la tecnología de
memoria de vídeo, y el PC se beneficia de ambas.
30
La memoria: Su controlador
ƒ Responsable del diálogo conjunto con los chips de
memoria de vídeo de forma síncrona.
ƒ Se ubica dentro del área de integración de la GPU.
Esto lo emplea el K8 de AMD y luego Intel.
ƒ Se conecta físicamente al bus de memoria.
ƒ Establece una longitud de ráfaga fija para los
diálogos, que suele ser 8 en 2008. Esto sugiere una
línea de caché de 256 bytes (bajo bus de 256 bits).
ƒ Responsable de conocer la relación con la memoria
caché interna y la memoria principal externa.
31
Controlador de memoria.
Arquitectura de la saga GeForce
32
Controlador de memoria.
Arquitectura de la saga GeForce
33
Controlador de memoria.
Arquitectura de la saga GeForce
CONGESTION
34
Puntos débiles del controlador
de memoria en la saga GeForce
-
Problemas:
Penaliza:
Densidad de cableado.
TAMAÑO
- Los cables de la DRAM saturan
todo el espacio.
- Enrutado complejo conduce a
retardos en las transferencias.
Necesitamos un
sistema de memoria
más escalable
ANCHURA
FRECUENCIA
Qué tal
algo así:
35
Controlador de memoria.
Arquitectura de la saga Radeon
36
Controlador de memoria saga Radeon:
Servicio de una petición
ELEMENTOS:
- 8 clientes de memoria.
- 8 módulos de memoria
(32 bits cada uno).
- 4 paradas en el anillo
(una por cada 64 bits).
- 2 buses de lectura
(en direcciones
opuestas, de 256 bits
cada una)
- 1 red de escritura.
37
IV. Comparativa CPU-GPU y
contribuciones de la GPU
De dónde venimos y hacia dónde vamos
(según la ITRS)
Memoria Chips
2004
Frecuencia (MHz):
Transistores (Mill.):
Consumo (W.)
Tamaño (Mbytes):
A. Banda (Gb/s):
Latencia (RAS, ns):
500
222
150
256
35
40
2014
2000
2237
200
4000
322
23
Tendencia
4x / década
10x / década
0.3x / década
16x / década
9x / década
2x / década
Ritmo evolutivo:
Chips: Transistores > Frecuencia > Consumo
Memoria: Tamaño > Ancho banda > Latencia
39
Comparativa de consumo CPU vs. GPU
ƒ Movimiento de datos: Algo
inferior en la GPU por la mayor
proximidad de datos en su cauce
ƒ Cálculo y computación: Muy
superior en la GPU por el
creciente número de transistores
activos, consecuencia del
elevado paralelismo.
Porcentaje de W. gastados para:
Computación:
CPU
10%
90%
GPU
30%
70%
Consumo en los modelos de 2007
Sólo GPU (pico)
ƒ En conjunto: Una GPU actual
puede duplicar el consumo de su
CPU homóloga, llegándose a
alcanzar 200 W frente a 100 W.
Mov. datos:
Todo el PC
GeForce
8800GTX
170 W.
350 W.
Radeon
2900XT
180 W.
360 W.
40
… sin embargo, la CPU presenta más puntos
tórridos Æ Fallece a una temperatura inferior
ƒ Límites térmicos en CPU:
ƒ
ƒ
ƒ
ƒ
Area de integración: 95ºC.
Diodo térmico (lomo): 75ºC.
Disipador: 65ºC.
Aire de la carcasa: 55ºC
ƒ Límites térmicos en GPU:
Hasta 30 ºC superiores a la CPU.
ƒ Para bajar la temperatura:
ƒ Reducir la frecuencia.
ƒ Reducir el voltaje.
ƒ Mejorar el sistema de disipación: Material (Al/Cu),
adherencia y dimensiones, ventilador (cm. y RPM).
41
La potencia bruta de cálculo en ambos
procesadores
42
Síntesis comparativa CPU-GPU
A
ƒ
ƒ
ƒ
favor de la CPU:
Cachés muy rápidas.
Saltos de grano fino.
Muchos paradigmas para
ejecutar procesos e hilos.
ƒ Alto rendimiento sobre
un único hilo.
PARALELISMO DE TAREAS
A favor de la GPU:
ƒ DRAM muy rápida.
ƒ Muchas UFs para cálculos
matemáticos.
ƒ Microprogramación
utilizando sombreadores.
ƒ Alto rendimiento cuando
se ejecutan tareas
paralelas.
PARALELISMO DE DATOS
43
Aportaciones de la GPU
ƒ Código: Reorganizarlo de forma data-parallel desde
el principio (GPU), en lugar de proceder
secuencialmente para luego quedar en manos del
paralelismo a nivel de instrucción (CPU).
ƒ Datos: Mover el trabajo hacia donde están los
datos (GPU), en lugar de mover los datos hacia
donde está el trabajo (CPU).
ƒ Mixto: Invertir el tradicional cuello de botella en el
acceso a datos. Más transistores y menos velocidad
para los cores, menos transistores y más velocidad
para la memoria.
44
Escalabilidad de la GPU frente a la CPU
ƒ
ƒ
ƒ
ƒ
Tipo
Procesador
Cores
/Chip
ALUs/ SIMD MaxT
core width
GPU
GPU
CPU
CPU
CPU
Radeon HD 2900
GeForce 8800
Intel Core 2 Quad
STI Cell BE
Sun UltraSparc T2
4
16
4
8
8
80
8
8
4
1
64
32
4
4
1
48
96
1
1
4
Intel: Sólo el procesamiento SSE, sin incluir la FPU x86.
STI (Sony-Toshiba-IBM): Sólo los cores de los SPEs, sin contar el PPE.
ALUs/core: Punto flotante de 32 bits (las ALUs son suma-producto).
T: El ratio entre los contextos de threads de un core y los threads que
pueden ejecutarse de forma simultánea. Describe hasta qué punto los
cores de un procesador son capaces de ocultar sus paradas a través de
multithreading hardware.
45
Cómo pueden complementarse CPU y GPU
ƒ Las CPU tienen un modelo de programación que
resulta más familiar a usuarios y programadores,
pero las GPU tiene un rendimiento pico superior.
ƒ SOLUCIÓN:
ƒ La GPU se acerca a la CPU en el plano SW: GPGPU.
ƒ Cg de Nvidia (2003).
ƒ CUDA de Nvidia (2006).
ƒ CAL de AMD/ATI (2008).
ƒ La CPU se deja influenciar por la GPU a nivel HW:
ƒ Cell, de Sony-Toshiba-IBM (2006).
ƒ Larrabee, de Intel (2009).
ƒ Fusion, de AMD (2009).
46
V. Computación gráfica de altas
prestaciones para propósito general
Nuevo perfil de usuario en Nvidia
GeForce®
Quadro®
TeslaTM
Ocio y
entretenimiento
Diseño y creación
Computación de altas
prestaciones
Todos ellos basados en una
misma microarquitectura
48
Comparativa GeForce, Quadro y TESLA
en la serie 8
Modelo comercial
Multiprocesadores
Versión de CUDA
GeForce 8800 Ultra, 8800 GTX
16
1.0
GeForce 8800 GT
14
1.1
GeForce 8800M GTX
12
1.1
GeForce 8800 GTS
12
1.0
GeForce 8800M GTS
8
1.1
GeForce 8600 GTS, 8600 GT, 8700M GT, 8600M GT/GS
4
1.1
GeForce 8500 GT, 8400 GS, 8400M GT, 8400M GS
2
1.1
GeForce 8400M G
1
1.1
Tesla S870
4x16
1.0
Tesla D870
2x16
1.0
Tesla C870
16
1.0
Quadro Plex 1000 Model S4
4x16
1.0
Quadro Plex 1000 Model IV
2x16
1.0
Quadro FX 5600
16
1.0
Quadro FX 4600
12
1.0
49
Resumen de la gama de modelos TESLA
Variantes:
ƒ Tarjeta: C870. Una GPU. ~ 500 € (Jun’08 en PNY).
ƒ Estación de trabajo: D870. Dos GPUs. ~ 3000 €.
ƒ Servidor: S870. Cuatro GPUs. ~ 4500 €.
Rendimiento máximo: 2 TFLOPS.
Rasgos comunes más sobresalientes:
ƒ No disponen de salida de vídeo.
ƒ Consumo energético elevado (hasta 800 W).
ƒ Contaminación acústica notoria (hasta 70 dB).
50
Gama baja: C870
51
Gama media: D870. Dos GPUs.
52
Gama alta: S870. Cuatro GPUs en
configuración de 2x2. Montaje en RACK.
53
Diagrama de bloques
de un servidor TESLA
54
Comparativa de la gama TESLA
en las series 8 y 10
Rasgo
S870
S1070
4
4
Número de procesadores streaming por GPU
128
240
Número total de procesadores streaming (SPs)
512
960
Consumo energético medio
550 W.
700 W.
Precisión de punto flotante
IEEE 754 simple
precisión
IEEE 754 simple
y doble precisión
345 x 4 = 1380
(1.35 GHz x2 x 128)
Nvidia dice 520 x 4
648 x 4 = 2592
(1.35 GHz x2 x 240)
Nvidia dice 1000 x 4
6 Gbytes (1.5 por GPU)
16 Gbytes (4 por GPU)
384 bits en cada GPU
512 bits en cada GPU
2 x 800 MHz
2 x 800 MHz
Ancho de banda de la memoria
307 Gbytes/sg.
(76.8 por cada GPU)
408 Gbytes/sg.
(102 por cada GPU)
Bus de comunicación con CPU
PCIe x16 o x8
versión 1.0
PCIe x16 o x8
versión 2.0
CUDA 1.0
CUDA 1.1
Número de GPUs
GFLOPS
Tamaño de la memoria de vídeo GDDR3
Anchura del bus de memoria GDDR3
Frecuencia de reloj de la memoria GDDR3
Entorno de programación
55
La GPU: Algo más que
una arquitectura para jugar
56
Las bazas de un supercomputador
basado en un cluster de GPUs
ƒ Permite alcanzar un rendimiento similar al de los
supercomputadores a un coste cien veces inferior.
ƒ La función coste/rendimiento es más favorable en
arquitecturas basadas en núcleos sencillos como
CELL o GPU que en supercomputadores basados en
núcleos fuera-de-orden (como las CPU de
Intel/AMD).
57
Las bazas de un supercomputador
basado en un cluster de GPUs (2)
ƒ Los supercomputadores nunca han sido populares
porque no dan beneficios y hace falta ser un gurú
para programarlos.
ƒ La industria de los video-juegos tiene un ingente
mercado que garantiza la viabilidad económica.
ƒ Desarrolla una notable infraestructura software en
constante evolución: Entornos de programación,
funcionalidad, versatilidad, ... lo que mantiene una
gran cantera de programadores que pueden reciclarse
fácilmente hacia tareas de propósito general.
58
Lo que nunca tuvo la computación de
altas prestaciones
Popularidad y precio: Las GPUs están en todas
partes y son baratas. Son un gran negocio.
50
Ventas de GPUs
(millones)
25
2006
2007
59
Lo que siempre tuvo la computación de
altas prestaciones
ƒ Complicaciones a la hora de programarlas:
El modelo de programación gráfica se basa en
un número predefinido de etapas, sobre las que
resulta difícil soportar cualquier tipo de
computación de una forma eficiente.
ƒ El rendimiento pico está ahí, pero cuesta sacarle
partido en computación de propósito general.
60
BALE: Ejemplo de cluster de GPU actual
ƒ Adquirido en el Ohio Supercomputing Center en
Junio de 2007.
ƒ Consta de 18 nodos funcionando bajo Linux,
cada uno de ellos con:
Dos CPU Opteron dual-core de AMD @ 2.6 GHz.
8 Gbytes de memoria principal.
750 Gbytes de espacio de disco.
Dos GPU Quadro 5600 de Nvidia, cada una con 1.5
Gbytes de memoria de vídeo.
ƒ Conexión por Infiniband.
ƒ
ƒ
ƒ
ƒ
61
Cada uno de los 18 nodos de
visualización del supercomputador BALE
62
Prestaciones comparativas CPU/GPU
en cálculo y acceso a memoria
Procesador
CPU (AMD)
GPU (Nvidia)
Opteron X2 2218
G80
Frecuencia de reloj
2.6 GHz
600 MHz / 1.35 GHz
Número de núcleos
2 cores
128 stream processsors
Potencia de cálculo
2 cores x 4.4 GFLOPS
= 8.8 GFLOPS
madd(2 FLOPS) x128 SP x
1.35 GHz = 345.6 GFLOPS
316.8 GFLOPS
¡¡ 12.4 TFLOPS !!
CPU (AMD)
GPU (Nvidia)
8 Gbytes de DDR2
1.5 Gbytes de GDDR3
2x 333 MHz
2x 800 MHz
Anchura del bus
128 bits (doble canal)
384 bits
Ancho de banda
10.8 Gbytes/sg.
76.8 Gbytes/sg.
Modelo arquitectural
En el total de 18
nodos x 2 zócalos
Memoria
Capacidad y tipo
Frecuencia de reloj
63
Aplicación al diagnóstico del cáncer
Whole-slide image
Image tiles (40X magnification)
`
Computation units
Classification map
CPU
…
GPU
…
PS 3
Assign classification labels
Label 1
Label 2
background
undetermined
64
Resultados experimentales
ƒ Para una media de 600 pacientes que son tratados
en el hospital anualmente y 5-6 muestras de
imágenes de alta resolución por cada paciente, la
aplicación que funciona con Matlab tarda 21 meses
en procesar toda la información en un PC.
ƒ Con una sola GPU, el tiempo se reduce a:
ƒ 5.3 días utilizando Cg.
ƒ 2.4 días utilizando CUDA.
ƒ Utilizando los 16 nodos del cluster de GPUs:
ƒ El tiempo computacional es inferior a las 2 horas.
65
Aplicación 2: Reconstrucción 3D
de especímenes y tejidos
66
Escalabilidad en CPU-GPU
67
Aplicaciones portadas a GPU
(según Nvidia en 2008)
3D Image Analysis
Adaptive radiation
therapy
Acoustics
Astronomy
Audio
Automobile visionI
Bioinformatics
Biological simulation
Broadcast
Cellular automata
Computational Fluid
Dynamics
Computer Vision
Cryptography
CT Reconstruction
Data Mining
Digital
cinema/projections
Electromagnetic
interference
Equity training
Film
Financial
Languages
GIS
Holographics cinema
Imaging
Mathematics research
Military
Mine planning
Molecular dynamics
MRI reconstruction
Multispectral imaging
Nbody
Network processing
Neural networks
Oceanographic
research
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Optical inspection
Particle physics
Protein folding
Quantum chemistry
Ray tracing
Radar
Reservoir simulation
Robotic vision/AI
Robotic surgery
Satellite data analysis
Seismic imaging
Surgery simulation
Surveillance
Ultrasound
Video conferencing
Telescope
Video
Visualization
Wireless
X-ray
68
Resumen final
ƒ El procesamiento streaming o basado en flujos representa
una nueva forma de hacer las cosas, donde los
protagonistas son los datos, no las instrucciones.
ƒ Cada vez se le saca más provecho desde la perspectiva de
un programador no familiarizado con la peculiar idiosincrasia
de la programación gráfica.
ƒ El fenómeno ha trascendido ya a los multiprocesadores,
donde se busca un modelo híbrido en el que cada
procesador pueda hacer lo que mejor sabe.
ƒ La industria del ocio garantiza la viabilidad comercial de
futuros desarrollos y la escalabilidad de la arquitectura
augura un futuro muy prometedor.
69