Tema 3 GPUs: Introducción Alberto Ros Bardisa Tema 3 GPUs Alberto Ros Bardisa 1 / 15
Agenda 1 GPUs: Introducción 2 GP-GPU 3 Ejemplos comerciales 4 Conclusiones Tema 3 GPUs Alberto Ros Bardisa 2 / 15
Agenda GPUs: Introducción 1 GPUs: Introducción 2 GP-GPU 3 Ejemplos comerciales 4 Conclusiones Tema 3 GPUs Alberto Ros Bardisa 3 / 15
GPUs: Introducción Graphics Processing Units (GPUs) Las GPUs liberan a la CPU de realizar tareas concretas de procesamiento gráfico de manera repetitiva Presentes en cualquier equipo de sobremesa o servidor integradas en placa o como tarjetas externas El amplio mercado de los vídeojuegos ha propiciado su consolidación, rápida evolución y precios competitivos Las GPUs actuales también son procesadores multinúcleo porque el procesamiento gráfico es inherentemente paralelo La necesidad de ejecutar múltiples operaciones en punto flotante para procesar cada imagen se satisface mediante muchos threads capaces de ejecutarse en paralelo Tema 3 GPUs Alberto Ros Bardisa 4 / 15
GPUs: Introducción Cuestiones clave Qué diferencias hay entre un procesador multinúcleo de propósito general y una GPU? Qué ofrecen las GPUs que las hace atractivas para aprovecharlas para realizar otras tareas? Qué características de las GPUs condicionan su utilización para realizar esas tareas? Tema 3 GPUs Alberto Ros Bardisa 5 / 15
GPUs: Introducción Cuestiones clave GPUs ofrecen mayor rendimiento pico que las CPUs CPUs diseñadas para optimizar la ejecución de aplicaciones de propósito general Lógica de control flujo muy sofisticada Memorias caché multinivel (coherencia) Número de núcleos: de 4 a 12 (Intel y AMD) GPUs diseñadas para optimizar la ejecución de tareas de procesamiento gráfico Lógica de control de flujo simple Memoria privada (no coherencia) Múltiples unidades funcionales para punto flotante Mayor ancho de banda de acceso a memoria Número de núcleos: de 8 a 512 (NVIDIA) Ejemplos Intel Core i7: 55.4 Gflops, 25.6GB/s NVIDIA Geforce GTX 580: 1581.1 Gflops, 192.4GB/s Tema 3 GPUs Alberto Ros Bardisa 6 / 15
Agenda GP-GPU 1 GPUs: Introducción 2 GP-GPU 3 Ejemplos comerciales 4 Conclusiones Tema 3 GPUs Alberto Ros Bardisa 7 / 15
GP-GPU GPGPU: General-Purpose computation on GPUs Esta ventaja ha despertado el interés por explorar el uso de GPUs para acelerar aplicaciones de propósito general (GPGPU) Programación mediante APIs gráficas (Direct3D,OpenGL) Modificación de la aplicación para expresarla en función de un conjunto de llamadas a la API gráfica disponible Tarea ardua y compleja que requiere conocimiento detallado tanto de la arquitectura de la GPU como de la aplicación La API limita las aplicaciones que pueden adaptarse CUDA proporciona un modelo de programación independiente de las APIs gráficas mucho más general y flexible Las aplicaciones también deben paralelizarse Tema 3 GPUs Alberto Ros Bardisa 8 / 15
GP-GPU GPGPU: General-Purpose computation on GPUs GPUs (CUDA) ofrecen mayor rendimiento efectivo que las CPUs en aplicaciones de diversos campos: Multiplicación de matrices densas: speedup de 9.3x Procesamiento de vídeo (H.264): speedup de 12.23x Cálculo de potencial eléctrico: speedup de 64x Resolución ecuaciones polinomiales: speedup de 205x... Desafortunadamente no todas las aplicaciones son susceptibles de ser paralelizadas con éxito en GPUs Tema 3 GPUs Alberto Ros Bardisa 9 / 15
Agenda Ejemplos comerciales 1 GPUs: Introducción 2 GP-GPU 3 Ejemplos comerciales 4 Conclusiones Tema 3 GPUs Alberto Ros Bardisa 10 / 15
Ejemplos comerciales NVIDIA Tesla C870 Número de GPUs: 1 (128 procs) 1536 MB GDDR3, 76,8 GB/s PCI Express x16 CUDA 2.3 Tema 3 GPUs Alberto Ros Bardisa 11 / 15
Ejemplos comerciales AMD Raedon HD 6000 series Raedon fue creada por ATI (adquirida por AMD en 2006) Proceso de fabricación 40nm Frequencia: 650MHz 830MHz Memoria: 512MB 2048MB Cores: 80 1536 Tema 3 GPUs Alberto Ros Bardisa 12 / 15
Ejemplos comerciales AMD Fusion CMP heterogéneo: CPU y GPU en el mismo chip Dual-core & AMD Radeon HD 6310 64KB de L1 y 512KB de L2 por núcleo Controlador de memoria on-chip Tema 3 GPUs Alberto Ros Bardisa 13 / 15
Agenda Conclusiones 1 GPUs: Introducción 2 GP-GPU 3 Ejemplos comerciales 4 Conclusiones Tema 3 GPUs Alberto Ros Bardisa 14 / 15
Conclusiones Conclusiones Pŕoximos procesadores: heterogeneos Pocos cores complejos para aplicaciones poco paralelizables Muchos cores complicados para aplicaciones muy paralelizables Programación: Diferente código para CPUs y GPUs? Coherencia en GPUs? Tema 3 GPUs Alberto Ros Bardisa 15 / 15