la gpu como arquitectura emergente para …jp08.uji.es/files/conferencias/gpu-jp08-1parte.pdf ·...

Post on 04-Feb-2018

221 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

La GPU como arquitectura emergente La GPU como arquitectura emergente para supercomputacipara supercomputacióónn

Nicolás Guil y Manuel UjaldónDpto. Arquitectura de Computadores

Universidad de Málaga

2

SumarioSumario

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)

I. El proceso de renderizaciI. El proceso de renderizacióónn

4

El proceso de renderizaciEl proceso de renderizacióónn

5

Operaciones sobre vOperaciones sobre véértices: rtices: Los elementos de la escenaLos elementos de la escena

6

TransformacionesTransformaciones geomgeoméétricastricas::El El espacioespacio tridimensionaltridimensional

Viewing

Posicionamos el volumen de

visualización en el mundo

Trípode

Modeling

Posicionamos los modelos en el

mundo

Modelo

Projection

Determinamos la forma del volumen

de visualización

Lente

Viewport

Determinamos el área 2D en el que

visualizamos la escena

Fotografía

7

OperacionesOperaciones sobresobre fragmentosfragmentos: : PolPolíígonosgonos

1.- Unión de vérticessegún primitivas:Interpolación

2.- Relleno depolígonos:Rasterización

8

OperacionesOperaciones con con texturastexturasy y ppííxelesxeles: : ColorColor

Pegado de texturas, dando lugara los píxeles de cada fragmento.

9

Etapas del procesamiento grEtapas del procesamiento grááficofico

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.

10

ProgramaciProgramacióón del procesador grn del procesador grááficofico

II. El nacimiento de GPGPU y su II. El nacimiento de GPGPU y su evolucievolucióón durante el n durante el úúltimo lustroltimo lustro

12

2003. El punto de partida2003. El punto de partida

Se popularizan los shadersy 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 elevadoPerfil de usuario especializado.

13

2004. Polivalencia y rendimiento.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.

14

2005: 2005: ConsolidaciConsolidacióónn de de resultadosresultados

Simulaciones físicasSistemas de partículas

Dinámica molecular

Procesamiento de imágenes

Procesamiento de señal

Renderizado de volúmenes

VisualizaciónPhoton Mapping

Ray Tracing

Bioinformática

Minería de datosConsultas a B.D.

Operaciones de reducciónGanancia esperada en GPU: 2-3x

Ganancia esperada en GPU: 5-10x

Ganancia esperada en GPU: 10-20xGanancia: > 20x

15

2006. Emerge CUDA2006. 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.

16

2007. Unificaci2007. Unificacióón de sombreadoresn de sombreadores

17

Las dos lecciones mLas dos lecciones máás importantes ques importantes quenos ensenos enseñña el procesamiento gra el procesamiento grááficofico

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.

18

LecciLeccióón 1: Paralelismo masivo en n 1: Paralelismo masivo en procsprocs. de . de vvéértices y prtices y pííxeles: xeles: GeForceGeForce 6 y 7 (2004/2006)6 y 7 (2004/2006)

19

LecciLeccióón 2: Reorganizacin 2: Reorganizacióón de procesadores n de procesadores y memoria: G80 (2007/2008)y memoria: G80 (2007/2008)

20

Los paradigmas de computaciLos paradigmas de computacióón hasta n hasta llegar a CUDAllegar a CUDA

CPU (desde los 70):

GPU (hasta 2006): CUDA (desde 2007):

III. Arquitectura de la tarjeta grIII. Arquitectura de la tarjeta grááfica fica y la memoria de vy la memoria de víídeodeo

22

El diagrama de bloques El diagrama de bloques de la tarjeta grde la tarjeta grááficafica

23

SegmentaciSegmentacióón y movimiento de datos n y movimiento de datos en la GPU frente a la CPUen 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.

24

24

1

10

100

1,000

10,000

100,000

1980 1985 1990 1995 2000 2005 2010

Año

Ren

dim

ient

o

Memoria

Procesador La diferencia creceun 50% cada año

µProc60%/año

DRAM7%/año.

El diferente ritmo del procesador y la memoriaEl diferente ritmo del procesador y la memoria

25

La memoria: Acceso y anchuraLa 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é.

26

La memoria: LatenciaLa memoria: Latencia

Respecto a los modelos comerciales de memoria principal, la memoria de vídeo lleva una ventaja de dos generaciones:

27

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

Cada nueva generación ha logrado mejorar más proporcionalmente que su antecesora.

28

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

El ritmo de mejora se acerca al de una progresión geométrica…

29

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

… aunque en realidad se encuentra un poco por debajo de ella.

30

La memoria: Formas de usoLa 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.

31

La memoria: Su controladorLa 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.

32

Controlador de memoria.Controlador de memoria.Arquitectura de la saga Arquitectura de la saga GeForceGeForce

33

Controlador de memoria. Controlador de memoria. Arquitectura de la saga Arquitectura de la saga GeForceGeForce

34

Controlador de memoria.Controlador de memoria.Arquitectura de la saga Arquitectura de la saga GeForceGeForce

CONGESTIO

N

35

Puntos dPuntos déébiles del controlador biles del controlador de memoria en la saga de memoria en la saga GeForceGeForce

- Densidad de cableado.

Necesitamos un sistema de memoriamás escalable

- Los cables de la DRAM saturan todo el espacio.

- Enrutado complejo conduce aretardos en las transferencias.

Problemas: Penaliza:

TAMAÑO

ANCHURA

FRECUENCIA

Qué tal algo así:

36

Controlador de memoria.Controlador de memoria.Arquitectura de la saga Arquitectura de la saga RadeonRadeon

37

Controlador de memoria saga Controlador de memoria saga RadeonRadeon::Servicio de una peticiServicio de una peticióónn

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.

IV. Comparativa CPUIV. Comparativa CPU--GPU y GPU y contribuciones de la GPUcontribuciones de la GPU

39

De dDe dóónde venimos y hacia dnde venimos y hacia dóónde vamos nde vamos (seg(segúún la ITRS)n la ITRS)

Frecuencia (MHz): 500 2000 4x / décadaTransistores (Mill.): 222 2237 10x / décadaConsumo (W.) 150 200 0.3x / décadaTamaño (Mbytes): 256 4000 16x / décadaA. Banda (Gb/s): 35 322 9x / décadaLatencia (RAS, ns): 40 23 2x / década

2004 2014 Tendencia

Chip

sM

emo r

ia

Ritmo evolutivo:Chips: Transistores > Frecuencia > ConsumoMemoria: Tamaño > Ancho banda > Latencia

40

Comparativa de consumo CPU vs. GPUComparativa 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.

En conjunto: Una GPU actual puede duplicar el consumo de su CPU homóloga, llegándose a alcanzar 200 W frente a 100 W.

Porcentaje de W. gastados para:

70%30%GPU

90%10%CPU

Mov. datos:Computación:

Consumo en los modelos de 2007

360 W.180 W.Radeon2900XT

350 W.170 W.GeForce8800GTX

Todo el PCSólo GPU (pico)

41

…… sin embargo, la CPU presenta msin embargo, la CPU presenta máás puntos s puntos ttóórridos rridos Fallece a una temperatura inferiorFallece 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).

42

La potencia bruta de cLa potencia bruta de cáálculo en ambos lculo en ambos procesadoresprocesadores

43

SSííntesis comparativa CPUntesis comparativa CPU--GPUGPU

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

44

Aportaciones de la GPUAportaciones 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.

45

Escalabilidad de la GPU frente a la CPUEscalabilidad de la GPU frente a la CPU

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.

4118Sun UltraSparc T2CPU1448STI Cell BECPU1484Intel Core 2 QuadCPU9632816GeForce 8800GPU4864804Radeon HD 2900GPU

MaxTSIMD width

ALUs/core

Cores/Chip

ProcesadorTipo

46

CCóómo pueden complementarse CPU y GPUmo 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).

V. ComputaciV. Computacióón grn grááfica de altas fica de altas prestaciones para propprestaciones para propóósito generalsito general

48

TeslaTM

Computación de altasprestaciones

Quadro®

Diseño y creaciónGeForce®

Ocio y entretenimiento

Todos ellos basados en unamisma microarquitectura

Nuevo perfil de usuario en Nuevo perfil de usuario en NvidiaNvidia

49

ComparativaComparativa GeForceGeForce, , QuadroQuadro y TESLA y TESLA en la en la serieserie 88

1.012Quadro FX 4600

1.016Quadro FX 5600

1.02x16Quadro Plex 1000 Model IV

1.04x16Quadro Plex 1000 Model S4

1.016Tesla C870

1.02x16Tesla D870

1.04x16Tesla S870

1.11GeForce 8400M G

1.12GeForce 8500 GT, 8400 GS, 8400M GT, 8400M GS

1.14GeForce 8600 GTS, 8600 GT, 8700M GT, 8600M GT/GS

1.18GeForce 8800M GTS

1.012GeForce 8800 GTS

1.112GeForce 8800M GTX

1.114GeForce 8800 GT

1.016GeForce 8800 Ultra, 8800 GTX

Versión de CUDAMultiprocesadoresModelo comercial

50

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).

Resumen de la gama de modelos TESLAResumen de la gama de modelos TESLA

51

Gama baja: C870Gama baja: C870

52

Gama media: D870. Dos Gama media: D870. Dos GPUsGPUs..

53

Gama alta: S870. Cuatro Gama alta: S870. Cuatro GPUsGPUs en en configuraciconfiguracióón de 2x2. Montaje en RACK.n de 2x2. Montaje en RACK.

54

Diagrama de bloques Diagrama de bloques de un servidor TESLAde un servidor TESLA

55

ComparativaComparativa de la de la gamagama TESLATESLAen en laslas series 8 y 10series 8 y 10

700 W.550 W.Consumo energético medio

CUDA 1.1CUDA 1.0Entorno de programación

PCIe x16 o x8 versión 2.0

PCIe x16 o x8 versión 1.0

Bus de comunicación con CPU

408 Gbytes/sg. (102 por cada GPU)

307 Gbytes/sg. (76.8 por cada GPU)

Ancho de banda de la memoria

2 x 800 MHz2 x 800 MHzFrecuencia de reloj de la memoria GDDR3

512 bits en cada GPU384 bits en cada GPUAnchura del bus de memoria GDDR3

16 Gbytes (4 por GPU)6 Gbytes (1.5 por GPU)Tamaño de la memoria de vídeo GDDR3

648 x 4 = 2592(1.35 GHz x2 x 240)Nvidia dice 1000 x 4

345 x 4 = 1380(1.35 GHz x2 x 128)Nvidia dice 520 x 4

GFLOPS

IEEE 754 simple y doble precisión

IEEE 754 simple precisión

Precisión de punto flotante

960512Número total de procesadores streaming (SPs)

240128Número de procesadores streaming por GPU

44Número de GPUs

S1070S870Rasgo

56

La GPU: Algo mLa GPU: Algo máás que s que una arquitectura para jugaruna arquitectura para jugar

57

Las bazas de un supercomputador Las bazas de un supercomputador basado en un cluster de basado en un cluster de GPUsGPUs

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).

58

Las bazas de un supercomputador Las bazas de un supercomputador basado en un cluster de basado en un cluster de GPUsGPUs (2)(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.

59

Lo Lo queque nuncanunca tuvotuvo la la computacicomputacióónn de de altasaltas prestacionesprestaciones

Ventas de GPUs(millones)

25

50

2006 2007

Popularidad y precio: Las GPUs están en todas partes y son baratas. Son un gran negocio.

60

Lo que siempre tuvo la computaciLo que siempre tuvo la computacióón de n de altas prestacionesaltas 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.

61

BALE: Ejemplo de cluster de GPU actualBALE: 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.

62

Cada uno de los 18 nodos de Cada uno de los 18 nodos de visualizacivisualizacióón del supercomputador BALEn del supercomputador BALE

63

Prestaciones comparativas CPU/GPUPrestaciones comparativas CPU/GPUen cen cáálculo y acceso a memorialculo y acceso a memoria

madd(2 FLOPS) x128 SP x 1.35 GHz = 345.6 GFLOPS

2 cores x 4.4 GFLOPS = 8.8 GFLOPS

Potencia de cálculo

¡¡ 12.4 TFLOPS !!316.8 GFLOPSEn el total de 18 nodos x 2 zócalos

128 stream processsors2 coresNúmero de núcleos

600 MHz / 1.35 GHz

G80

GPU (Nvidia)

2.6 GHzFrecuencia de reloj

Opteron X2 2218Modelo arquitectural

CPU (AMD)Procesador

1.5 Gbytes de GDDR38 Gbytes de DDR2 Capacidad y tipo

2x 800 MHz2x 333 MHzFrecuencia de reloj

384 bits128 bits (doble canal)Anchura del bus

76.8 Gbytes/sg.10.8 Gbytes/sg.Ancho de banda

GPU (Nvidia)CPU (AMD)Memoria

64

AplicaciAplicacióónn al al diagndiagnóósticostico del del ccááncerncer

`

Whole-slide image

Label 1Label 2

backgroundundetermined

Assign classification labels

Classification map

Image tiles (40X magnification)

CPU PS 3…

Computation units

GPU …

65

Resultados experimentalesResultados 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.

66

AplicaciAplicacióón 2: Reconstruccin 2: Reconstruccióón 3D n 3D de especde especíímenes y tejidosmenes y tejidos

67

Escalabilidad en CPUEscalabilidad en CPU--GPUGPU

68

AplicacionesAplicaciones portadasportadas a GPU a GPU ((segsegúúnn NvidiaNvidia en 2008)en 2008)

• 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

3D Image AnalysisAdaptive radiation therapyAcousticsAstronomyAudioAutomobile visionIBioinformaticsBiological simulationBroadcastCellular automataComputational Fluid DynamicsComputer VisionCryptographyCT ReconstructionData MiningDigital cinema/projections

Electromagnetic interferenceEquity trainingFilmFinancialLanguagesGISHolographics cinemaImagingMathematics researchMilitaryMine planningMolecular dynamicsMRI reconstructionMultispectral imagingNbodyNetwork processingNeural networksOceanographic research

69

Resumen finalResumen 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.

top related