Está en la página 1de 69

La GPU como arquitectura emergente para supercomputacin

Nicols Guil y Manuel Ujaldn Dpto. Arquitectura de Computadores Universidad de Mlaga

Sumario
I. El proceso de renderizacin [7] II. El nacimiento de GPGPU y su evolucin [9] III. Arquitectura de la tarjeta grfica y la memoria de vdeo [12] IV. Comparativa CPU-GPU y contribuciones de la GPU [5] V. Computacin grfica de altas prestaciones para propsito general [20] (OPCIONAL)
2

I. El proceso de renderizacin

El proceso de renderizacin

Operaciones sobre vrtices: Los elementos de la escena

Transformaciones geomtricas: El espacio tridimensional


Viewing Modeling Projection Viewport

Trpode Modelo Lente Fotografa

Posicionamos el volumen de visualizacin en el mundo

Posicionamos los modelos en el mundo

Determinamos la forma del volumen de visualizacin

Determinamos el rea 2D en el que visualizamos la escena


6

Operaciones sobre fragmentos: Polgonos


1.- Unin de vrtices segn primitivas: Interpolacin

2.- Relleno de polgonos: Rasterizacin

Operaciones con texturas y pxeles: Color


Pegado de texturas, dando lugar a los pxeles de cada fragmento.

Etapas del procesamiento grfico


Entrada: Lista de vrtices y sus atributos. 1. Procesar vrtices (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 pxeles (pixel shader). 7. Aplicar texturas. 8. Mezclar elementos (blending). Salida: Memoria de vdeo.

Programacin del procesador grfico

10

II. El nacimiento de GPGPU y su evolucin durante el ltimo lustro

2003. El punto de partida


Se popularizan los shaders y su programacin en Cg. Comienzan a verse los primeros cdigos acelerados en la GPU pero la implementacin es compleja y requiere un gran conocimiento del cauce de renderizacin grfico:
Tiempo de desarrollo elevado Perfil de usuario especializado.
12

2004. Polivalencia y rendimiento.


Emerge con fuerza GPGPU, un movimiento que aglutina los esfuerzos acadmicos que montan algoritmos de propsito general en GPU:
Simulaciones fsicas. Procesamiento de seal. Biologa computacional. Visin por computador. Gestin de bases de datos. Computacin numrica.

13

2005: Consolidacin de resultados


Sistemas de partculas Simulaciones fsicas Dinmica molecular Ganancia esperada en GPU: 2-3x Procesamiento de seal Renderizado de volmenes Procesamiento de imgenes Bioinformtica Ganancia esperada en GPU: 10-20x Ray Tracing Visualizacin Photon Mapping Ganancia: > 20x

Consultas a B.D. Minera de datos Operaciones de reduccin Ganancia esperada en GPU: 5-10x

14

2006. Emerge CUDA


Ya no se discute el rendimiento ni la polivalencia del hardware grfico, pero a la GPU an le quedan dos asignaturas pendientes:
Precisin de los resultados: Ausencia de floats (FP32) Facilidad de programacin. 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: Cmo Utilizar un Dispositivo Avanzado con eficiencia, versatilidad, precisin y sencillez.
15

2007. Unificacin de sombreadores

16

Las dos lecciones ms importantes que nos ensea el procesamiento grfico


No confiar el futuro a la frecuencia, sino a la replicacin de ncleos, que pueden aprovechar igualmente las mejoras del transistor. Posteriormente, se unifican estos ncleos. 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 ms explcito de la memoria.
17

Leccin 1: Paralelismo masivo en procs. de vrtices y pxeles: GeForce 6 y 7 (2004/2006)

18

Leccin 2: Reorganizacin de procesadores y memoria: G80 (2007/2008)

19

Los paradigmas de computacin hasta llegar a CUDA


CPU (desde los 70):

GPU (hasta 2006):

CUDA (desde 2007):

20

III. Arquitectura de la tarjeta grfica y la memoria de vdeo

El diagrama de bloques de la tarjeta grfica

22

Segmentacin y movimiento de datos en la GPU frente a la CPU


La GPU tambin 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 nmero de etapas dada la baja frecuencia. Se fomenta el procesamiento vectorial y superescalar, buscando aprovechar el paralelismo de datos.

Parece un cauce de segmentacin ms homogneo, pero no lo es:


Cualitativamente: Los datos no son los mismos al principio (vrtices) que al final (pxeles). Cuantitativamente: Los datos son ms numerosos conforme se aproximan al final.

23

El diferente ritmo del procesador y la memoria

100,000 10,000 Rendimiento 1,000 100 10 1 1980 1985 1990 1995 Ao 2000 2005 2010 Memoria

Proc 60%/ao
Procesador

La diferencia crece un 50% cada ao DRAM 7%/ao.

24

24

La memoria: Acceso y anchura


1992: FPM RAM. Acceso bidimensional por fila y columna. 1995: VRAM. Doble puerto, conectado a una lnea de datos de 8 bits, con un RAMDAC de 32, 64 o 128 bits. 1997: SDRAM. Bancos entrelazados de factor 2 o 4. Tecnologa barata. A partir de aqu, y durante una dcada, se producirn sucesivos desdobles en la anchura del bus cada dos aos: 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: Reduccin del bus hasta 256 bits, como consecuencia de la reduccin 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 vdeo lleva una ventaja de dos generaciones:

26

La memoria: Ancho de banda. Velocidad por cada pin de datos


Cada nueva generacin ha logrado mejorar ms 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 progresin geomtrica

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 tecnologa de memoria de vdeo, y el PC se beneficia de ambas.

30

La memoria: Su controlador
Responsable del dilogo conjunto con los chips de memoria de vdeo de forma sncrona. Se ubica dentro del rea de integracin de la GPU. Esto lo emplea el K8 de AMD y luego Intel. Se conecta fsicamente al bus de memoria. Establece una longitud de rfaga fija para los dilogos, que suele ser 8 en 2008. Esto sugiere una lnea de cach de 256 bytes (bajo bus de 256 bits). Responsable de conocer la relacin 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 dbiles del controlador de memoria en la saga GeForce


Problemas: Densidad de cableado. todo el espacio.

Penaliza:
TAMAO ANCHURA FRECUENCIA

- Los cables de la DRAM saturan


- Enrutado complejo conduce a retardos en las transferencias.

Necesitamos un sistema de memoria ms escalable

Qu tal algo as:


35

Controlador de memoria. Arquitectura de la saga Radeon

36

Controlador de memoria saga Radeon: Servicio de una peticin


ELEMENTOS: - 8 clientes de memoria. - 8 mdulos 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 dnde venimos y hacia dnde vamos (segn la ITRS)


2004
Memoria Chips
Frecuencia (MHz): Transistores (Mill.): Consumo (W.) Tamao (Mbytes): A. Banda (Gb/s): Latencia (RAS, ns): 500 222 150 256 35 40

2014
2000 2237 200 4000 322 23

Tendencia
4x / dcada 10x / dcada 0.3x / dcada 16x / dcada 9x / dcada 2x / dcada

Ritmo evolutivo: Chips: Transistores > Frecuencia > Consumo Memoria: Tamao > 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 Clculo y computacin: Muy superior en la GPU por el creciente nmero de transistores activos, consecuencia del elevado paralelismo. En conjunto: Una GPU actual puede duplicar el consumo de su CPU homloga, llegndose a alcanzar 200 W frente a 100 W. Porcentaje de W. gastados para:
Computacin: Mov. datos:

CPU GPU

10% 30%

90% 70%

Consumo en los modelos de 2007


Slo GPU (pico) Todo el PC

GeForce 8800GTX Radeon 2900XT

170 W. 180 W.

350 W. 360 W.
40

sin embargo, la CPU presenta ms puntos trridos Fallece a una temperatura inferior
Lmites trmicos en CPU:
Area de integracin: 95C. Diodo trmico (lomo): 75C. Disipador: 65C. Aire de la carcasa: 55C

Lmites trmicos en GPU: Hasta 30 C superiores a la CPU. Para bajar la temperatura:


Reducir la frecuencia. Reducir el voltaje. Mejorar el sistema de disipacin: Material (Al/Cu), adherencia y dimensiones, ventilador (cm. y RPM).
41

La potencia bruta de clculo en ambos procesadores

42

Sntesis comparativa CPU-GPU


A favor de la CPU: Cachs muy rpidas. 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 rpida. Muchas UFs para clculos matemticos. Microprogramacin utilizando sombreadores. Alto rendimiento cuando se ejecutan tareas paralelas. PARALELISMO DE DATOS
43

Aportaciones de la GPU
Cdigo: Reorganizarlo de forma data-parallel desde el principio (GPU), en lugar de proceder secuencialmente para luego quedar en manos del paralelismo a nivel de instruccin (CPU). Datos: Mover el trabajo hacia donde estn 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. Ms transistores y menos velocidad para los cores, menos transistores y ms 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: Slo el procesamiento SSE, sin incluir la FPU x86. STI (Sony-Toshiba-IBM): Slo 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 simultnea. Describe hasta qu punto los cores de un procesador son capaces de ocultar sus paradas a travs de multithreading hardware.

45

Cmo pueden complementarse CPU y GPU


Las CPU tienen un modelo de programacin que resulta ms familiar a usuarios y programadores, pero las GPU tiene un rendimiento pico superior. SOLUCIN: 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. Computacin grfica de altas prestaciones para propsito general

Nuevo perfil de usuario en Nvidia

GeForce
Ocio y entretenimiento

Quadro
Diseo y creacin

TeslaTM
Computacin de altas prestaciones

Todos ellos basados en una misma microarquitectura

48

Comparativa GeForce, Quadro y TESLA en la serie 8


Modelo comercial GeForce 8800 Ultra, 8800 GTX GeForce 8800 GT GeForce 8800M GTX GeForce 8800 GTS GeForce 8800M GTS GeForce 8600 GTS, 8600 GT, 8700M GT, 8600M GT/GS GeForce 8500 GT, 8400 GS, 8400M GT, 8400M GS GeForce 8400M G Tesla S870 Tesla D870 Tesla C870 Quadro Plex 1000 Model S4 Quadro Plex 1000 Model IV Quadro FX 5600 Quadro FX 4600 Multiprocesadores 16 14 12 12 8 4 2 1 4x16 2x16 16 4x16 2x16 16 12 Versin de CUDA 1.0 1.1 1.1 1.0 1.1 1.1 1.1 1.1 1.0 1.0 1.0 1.0 1.0 1.0 1.0
49

Resumen de la gama de modelos TESLA


Variantes: Tarjeta: C870. Una GPU. ~ 500 (Jun08 en PNY). Estacin de trabajo: D870. Dos GPUs. ~ 3000 . Servidor: S870. Cuatro GPUs. ~ 4500 . Rendimiento mximo: 2 TFLOPS. Rasgos comunes ms sobresalientes: No disponen de salida de vdeo. Consumo energtico elevado (hasta 800 W). Contaminacin acstica notoria (hasta 70 dB).
50

Gama baja: C870

51

Gama media: D870. Dos GPUs.

52

Gama alta: S870. Cuatro GPUs en configuracin 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 Nmero de GPUs Nmero de procesadores streaming por GPU Nmero total de procesadores streaming (SPs) Consumo energtico medio Precisin de punto flotante GFLOPS S870 4 128 512 550 W. IEEE 754 simple precisin 345 x 4 = 1380 (1.35 GHz x2 x 128) Nvidia dice 520 x 4 6 Gbytes (1.5 por GPU) 384 bits en cada GPU 2 x 800 MHz 307 Gbytes/sg. (76.8 por cada GPU) PCIe x16 o x8 versin 1.0 CUDA 1.0 S1070 4 240 960 700 W. IEEE 754 simple y doble precisin 648 x 4 = 2592 (1.35 GHz x2 x 240) Nvidia dice 1000 x 4 16 Gbytes (4 por GPU) 512 bits en cada GPU 2 x 800 MHz 408 Gbytes/sg. (102 por cada GPU) PCIe x16 o x8 versin 2.0 CUDA 1.1
55

Tamao de la memoria de vdeo GDDR3 Anchura del bus de memoria GDDR3 Frecuencia de reloj de la memoria GDDR3 Ancho de banda de la memoria Bus de comunicacin con CPU Entorno de programacin

La GPU: Algo ms 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 funcin coste/rendimiento es ms favorable en arquitecturas basadas en ncleos sencillos como CELL o GPU que en supercomputadores basados en ncleos 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 econmica. Desarrolla una notable infraestructura software en constante evolucin: Entornos de programacin, funcionalidad, versatilidad, ... lo que mantiene una gran cantera de programadores que pueden reciclarse fcilmente hacia tareas de propsito general.
58

Lo que nunca tuvo la computacin de altas prestaciones


Popularidad y precio: Las GPUs estn en todas partes y son baratas. Son un gran negocio.
50

Ventas de GPUs
(millones)

25

2006

2007

59

Lo que siempre tuvo la computacin de altas prestaciones


Complicaciones a la hora de programarlas: El modelo de programacin grfica se basa en un nmero predefinido de etapas, sobre las que resulta difcil soportar cualquier tipo de computacin de una forma eficiente. El rendimiento pico est ah, pero cuesta sacarle partido en computacin de propsito 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 vdeo. Conexin por Infiniband.
61

Cada uno de los 18 nodos de visualizacin del supercomputador BALE

62

Prestaciones comparativas CPU/GPU en clculo y acceso a memoria


Procesador Modelo arquitectural Frecuencia de reloj Nmero de ncleos Potencia de clculo En el total de 18 nodos x 2 zcalos Memoria Capacidad y tipo Frecuencia de reloj Anchura del bus Ancho de banda CPU (AMD) Opteron X2 2218 2.6 GHz 2 cores
2 cores x 4.4 GFLOPS = 8.8 GFLOPS

GPU (Nvidia) G80 600 MHz / 1.35 GHz 128 stream processsors
madd(2 FLOPS) x128 SP x 1.35 GHz = 345.6 GFLOPS

316.8 GFLOPS CPU (AMD) 8 Gbytes de DDR2 2x 333 MHz 128 bits (doble canal) 10.8 Gbytes/sg.

12.4 TFLOPS !! GPU (Nvidia) 1.5 Gbytes de GDDR3 2x 800 MHz 384 bits 76.8 Gbytes/sg.
63

Aplicacin al diagnstico del cncer


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 imgenes de alta resolucin por cada paciente, la aplicacin que funciona con Matlab tarda 21 meses en procesar toda la informacin en un PC. Con una sola GPU, el tiempo se reduce a:
5.3 das utilizando Cg. 2.4 das utilizando CUDA.

Utilizando los 16 nodos del cluster de GPUs:


El tiempo computacional es inferior a las 2 horas.
65

Aplicacin 2: Reconstruccin 3D de especmenes y tejidos

66

Escalabilidad en CPU-GPU

67

Aplicaciones portadas a GPU (segn 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 ms provecho desde la perspectiva de un programador no familiarizado con la peculiar idiosincrasia de la programacin grfica. El fenmeno ha trascendido ya a los multiprocesadores, donde se busca un modelo hbrido 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

También podría gustarte