computación heterogénea: aplicaciones y modelado de rendimiento

31
COMPUTACIÓN HETEROGÉNEA : APLICACIONES Y MODELADO DE RENDIMIENTO Unai Lopez [email protected] Intelligent Systems Group Departamento de Arquitectura y Tecnología de Computadores UPV/EHU

Upload: unai-lopez-novoa

Post on 02-Jul-2015

755 views

Category:

Documents


0 download

DESCRIPTION

Charla realizada en el Master de Sistemas Informáticos Avanzados, UPV/EHU, 16/04/2013

TRANSCRIPT

Page 1: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

COMPUTACIÓN HETEROGÉNEA:APLICACIONES Y MODELADO DE RENDIMIENTO

Unai Lopez [email protected]

Intelligent Systems GroupDepartamento de Arquitectura y Tecnología de ComputadoresUPV/EHU

Page 2: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Índice

① Estado del arte② Ejemplos de aplicaciones③ Dificultades (y retos)

Page 3: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

ESTADO DEL ARTE

Page 4: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

¿Computación Heterogénea?• Usar diferentes tipos de procesadores para

maximizar el rendimiento de una aplicación

• Motivación: • Los sistemas actuales incluyen procesadores de

distinta naturaleza (pero potentes en todo caso)• Hay tipos de procesadores que realizan tareas particulares más

eficientemente que otros• Intentar explotar todos los recursos que las máquinas

actuales ofrecen

• Hoy por hoy lo más común: combinar CPUs + GPUs

Page 5: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Visión general del área

2006 2008 2010 2012

1º DobleNucleo

1º DobleNucleo

2ª GenGPGPU

1ª GenGPGPU

1ª ChipsHíbridos

1ª ChipsHíbridos

TarjetaAceleradora

3ª GenGPGPU

4ª GenGPGPU

1ª GenCELL

2ª GenCELL

1ª GenGPGPU

2ª GenGPGPU

Page 6: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

GPUs (Graphics Processing Units)

• Hardware diseñado para procesamiento de imágenes• Compuesto (entre otros) por:

• Cientos de cores STMD • Varios GBs de memoria dedicada

• Las GPUs proporcionan:• Capacidad de manejar miles de hilos activos• Cambio de contexto ligero entre hilos

• NVIDIA GTX660: ~ 2 TFLOPS (200€)

• Intel i5 Series: 80 ~ 100 GFLOPS

Page 7: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Intel Xeon Phi

• Tarjeta aceleradora de Intel

• 60 Cores x86 @ 1 Ghz * 4 SMT• Máx. 8 GB Memoria dedicada

• Dos modos de funcionamiento:• Descarga de trabajo (coprocesador, estilo GPGPU)• Acceso vía SSH

• 1 TeraFlop por 2000€(http://www.amazon.com/Intel-SC5110P-Xeon-5110P-Coprocessor/dp/B00B133YNK)

Page 8: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

FPGAs• Chips internamente reprogramables: posibilidad de

adaptar el hardware a tu programa

• Principales fabricantes: Altera y Xillinx

• A priori: más flexibles pero más difíciles de programar (VHDL)

• Hoy en día: entornos de programación propios de GPGPU adaptados a FPGA

(http://www.canadianelectronics.ca/embedded-systems/fpga-accelerator-card-supports-opencl-for-high-performance-computing)

Page 9: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Chips Heterogéneos• Distintos tipos de cores en un mismo chip (P.e. AMD Fusion)

• Posibilidad de ofrecer un espacio unificado de memoria

• Nuevo «jugador»: ARM• Diseñador de microprocesadores con sede en Cambridge• Mercados más conocidos: smartphones, sist. embebidos• Actual CPU Cortex A-57 de 64 Bits• Línea de GPUs MALI (compatible con GPGPU)• Tecnología Big.LITTLE de balanceo

• Inicialmente enfocados al bajo consumo, ahora saltan a la supercomputación : Mont Blanc, HP Moonshot

Page 10: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

GPGPU (General Purpose computing on GPUs)

• Cómputo de propósito general en GPUs• Popular debido a

• Capacidad de procesamiento SIMD para paralelismo de datos• Creciente potencial (más FLOPS y hardware a cada generación)• Decreciente precio• Facilidad de acceso

• Apoyado por los fabricantes (SDKs, hardware diseñado no sólo para gráficos)

• Hoy en día: modelos y herramientas saltan desde las GPUs a otros tipos de aceleradores

Page 11: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

APLICACIONES

Page 12: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Aplicaciones GPGPU: Subrutinas• BLAS

• Rutinas algebraicas (p.e. multiplicación de matrices)• CuBLAS 6x a 17x de aceleración frente a MKL

• FFT• Usada en física computacional, procesado de señal…• CuFFT 10x de aceleración frente a MKL

• SPARSE• Tratamiento de matrices dispersas• CuSPARSE 6x a 40x de aceleración frente a MKL

• RNG• Algoritmos para generación de números aleatorios• CuRAND “Blazing fast” aceleración frente a MKL

Page 13: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Aplicaciones GPGPU: Stencil• Códigos stencil• Sistemas que actualizan su superficie en cada iteración

• Simulaciones de dinámica molecular• Funciones de Machine Learning (ej.: K-NN)• Procesado de imagen

• Aceleración variableMeng, J., & Skadron, K. (2009, June). Performance modelingand automatic ghost zone optimization for iterative stencil loopson GPUs. In Proceedings of the 23rd international conference onSupercomputing (pp. 256-265). ACM

Page 14: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Aplicaciones GPGPU: KDE• Estimación de densidad (basada en kernels)• Calcular la función de densidad de un espacio

1D: 2D:

• Usado en:• Predicción meteorológica• Bioinformática

• Aceleración de 600x (Simple Precisión) y 50x (Doble Precisión) frente al código serie en una sóla GPU (Trabajo en curso)

Page 15: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Aplicaciones GPGPU: KDE• Nuestro enfoque:

• Las muestras están repartidas por el espacio• Un kernel define el peso de cada muestra en el espacio• Objetivo : función de densidad sobre varios puntos de evaluación• Implementación : cada hilo representa un punto de evaluación que lee y

computa las muestras que le afectan• Actual versión multi-dispositivo . Work-in-progress: balanceo de carga

adaptativo para entornos heterogéneos

Densidad 2D Multiprocesador GPU

Page 16: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

DIFICULTADESEntendidas como retos

Page 17: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Top500 (Nov 2012)

Page 18: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Top500 (Nov 2012)

Top3 SINAceleradores

Top3 CONAceleradores

Page 19: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Reto 1º: Eficiencia computacional• Aprovechar eficazmente el hardware disponible• A pesar de la enorme capacidad de estas máquinas, el

hardware no está usado al 100%• Diferencia media de FLOPS entre máximo teórico y real:

• Las nuevas arquitecturas• Implican nuevos paradigmas de programación• No disponen de herramientas de desarrollo tan elaboradas como

las pre-acelerador

• En muchos casos no se utilizan todos los recursos simultáneamente (CPU ociosa mientras GPU computa, o al revés)

Top3 SIN Acel. Top3 CON Acel.

17.99 % 62.05 %

Page 20: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Respuestas al reto 1º• Entender que no todas las aplicaciones son adaptables a

todos las plataformas (GPGPU Hype!)

• Hacer buen uso de las herramientas en los SDKs:• Debuggers• Profilers• Manuales de buenas prácticas

• Valernos del ecosistema de herramientas GPGPU, p.e.:• Ocelot: Emulador y traductor de CUDA a otras arquitecturas

• Par4All: Auto-paralelizador

• rCuda: Framework para ejecución remota de códigos CUDA

• GPGPU-Sim: Simulador de tarjetas NVIDIA

• SWAN: Traductor de CUDA a OpenCL

Page 21: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Reto 2º: Eficiencia energética• Minimizar el consumo manteniendo el rendimiento• El incremento en rendimiento (FLOPS) ha implicado

• Mayor consumo eléctrico • Mayores emisiones de calor

• Para medir esta eficiencia: MFLOPS/W (Lista Green500)

Page 22: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Respuestas al reto 2º• Aprovechar el hardware eficientemente: un acelerador

bien aprovechado resulta en relaciones coste / rendimiento y consumo / rendimiento muy favorables

• Lista Green500, Noviembre 2012: Heterogeneous Systems Re-Claim Green500 List Dominance

• Utilización de muchos nodos de bajo consumo • IBM BlueGene: PowerPC (predominantes en el Green500)• Intel: procesadores tipo Atom (enfocados a movilidad)• ARM: Tecnología diseñada para sistemas empotrados y móviles:

supercomputación basada en procesadores ARM

Page 23: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Reto 3º: Herramientas de desarrollo• En la actualidad la mayoría de los programas acelerados

con GPUs se basan en la plataforma de NVIDIA: CUDA• CUDA ofrece

• Rendimiento• Amplia comunidad de usuarios• Ecosistema de aplicaciones

• Ratio de aceleradores en el Top500 (Nov, 2012):

• Limitación : sólo válido para tarjetas NVIDIA (en principio)

Page 24: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Respuesta al reto 3º: OpenCL

• Estándar para el desarrollo de aplicaciones paralelas• Soportado en la mayoría de procesadores actuales• Proporciona portabilidad de código

• Problema 1: no proporciona portabilidad de rendimiento• «Tunear» la aplicación está en manos del desarrollador• Cuanto más eficiente un código, más optimizado para un

hardware, y menos portable

• Problema 2: más farragoso de programar que CUDA

Page 25: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Reto 4º: Complejidad de programación

• CUDA/OpenCL ofrecen un bajo nivel de abstracción

• Ambos requieren como mínimo:• Conocer el hardware objetivo (con sus limitaciones )• Programar código tanto para el host como para el acelerador

• Y además si se quiere optimizar• Conocer aún mejor el hardware objetivo • Dominar el entorno de programación y sus recursos

• Nota : nunca está de mas mirar si alguien lo ha hecho antes

Page 26: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Respuesta al reto 4º: OpenACC• «Solución para las masas»

• API para descarga de trabajos a aceleradores• Basado en directivas tipo OpenMP• Ejemplo simple:

• Creado por NVIDIA, CAPS, CRAY, PGI entre otras• Actualmente borrador de la versión 2.0 (Marzo 2013)

(http://www.olcf.ornl.gov/tutorials/openacc-vector-addition)

Page 27: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

CONCLUSIONES

Page 28: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Conclusiones• La computación heterogénea está entre nosotros

• Cada vez hay más jugadores en el área (fabricantes y hardware)• Las nuevas arquitecturas son cada vez más complejas• Los sistemas cada vez evolucionan más rápido

• Los nuevos sistemas implican nuevos retos• Y a veces el resurgir de algunos no tan nuevos

• Los recursos disponibles son amplios• Herramientas, documentación y comunidad de usuarios

Page 29: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Bibliografía• Unai López, Alexander Mendiburu, Jose Miguel-Alonso. A Survey of

Performance Modeling Techniques for Accelerator-bas ed Computing. Technical report EHU-KAT-IK-06-13. Department of Computer Architecture and Technology, University of the Basque Country UPV/EHU.

• Brodtkorb, A. R., Dyken, C., Hagen, T. R., Hjelmervik, J. M., & Storaasli, O. O. (2010). State-of-the-art in heterogeneous computing . ScientificProgramming, 18(1), 1-33.

• Nickolls, J., & Dally, W. J. (2010). The GPU computing era. Micro, IEEE, 30(2), 56-69.

• Hyesoon Kim, Richard W. Vuduc, Sara S. Baghsorkhi, JeeWhan Choi, Wen-mei W. Hwu: Performance Analysis and Tuning for General Purpose Graphics Processing Units (GPGPU) . Synthesis Lectures on Computer Architecture, Morgan & Claypool Publishers 2012

• Kirk, D. B., & Wen-mei, W. H. (2010). Programming massively parallel processors: a hands-on approach . Morgan Kaufmann.

Page 30: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

Sitios Web relacionados• http://www.top500.org

• http://www.green500.org

• http://www.graph500.org

• http://www.openacc-standard.org

• http://www.gpgpu.org

• http://www.hgpu.org

• http://www.hpcwire.com

• https://developer.nvidia.com/cuda-tools-ecosystem

• http://developer.amd.com/resources/heterogeneous-computing/opencl-zone/

Page 31: Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

COMPUTACIÓN HETEROGÉNEA:APLICACIONES Y MODELADO DE RENDIMIENTO

Unai Lopez [email protected]

Intelligent Systems GroupDepartamento de Arquitectura y Tecnología de ComputadoresUPV/EHU