Download Primera parte
Document related concepts
no text concepts found
Transcript
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