PLASMA GPU MAGMA Rendimiento Trabajo Futuro MAGMA Matrix Algebra on GPU and Multicore Architecture Ginés David Guerrero Hernández [email protected] Grupo de Arquitecturas y Computación Paralela Dpto. de Ingeniería y Tecnología de Computadores Facultad de Informática Universidad de Murcia 17 de diciembre de 2010 1 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro Índice 1 PLASMA ¿Que es PLASMA? Estructura Funcionalidad Objetivos 2 GPU Arquitectura Modelo de Programación Cambios 3 MAGMA ¿Que es MAGMA? Estructura Funcionalidad Fermi 4 Rendimiento Arquitecturas Utilizadas Fermi Comparativa de Librerías 5 Trabajo Futuro PLASMA MAGMA 2 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro ¿Que es PLASMA? Estructura Funcionalidad Objetivos Índice 1 PLASMA ¿Que es PLASMA? Estructura Funcionalidad Objetivos 2 GPU Arquitectura Modelo de Programación Cambios 3 MAGMA ¿Que es MAGMA? Estructura Funcionalidad Fermi 4 Rendimiento Arquitecturas Utilizadas Fermi Comparativa de Librerías 5 Trabajo Futuro PLASMA MAGMA 3 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro ¿Que es PLASMA? Estructura Funcionalidad Objetivos ¿Que es PLASMA? Parallel Linear Algebra for Scalable Multi-core Architectures. Obtener el máximo rendimiento de arquitecturas Multi-core. Está basada en LAPACK. Utiliza paralelismo de grano fino. El modelo de programación es asíncrono. Las tareas pueden terminar fuera de orden. El paralelismo, al contrario que en LAPACK, no queda oculto dentro de BLAS. El rendimiento va fuertemente ligado a la correcta asignación de los valores de los parámetros. El algoritmo está basado en bloques. Tamaño del bloque externo (granularidad y planificación). Tamaño del bloque interno. 4 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro ¿Que es PLASMA? Estructura Funcionalidad Objetivos Estructura 5 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro ¿Que es PLASMA? Estructura Funcionalidad Objetivos Funcionalidad de PLASMA 2.3 Funcionalidad Cobertura Sistemas lineales y mínimos cuadrados LU, Cholesky, QR & LQ Sistemas lineales de tipos de datos combinados LU, Cholesky, QR & LQ Factorización tall y skinny QR Generación de la matriz Q QR, LQ, tall y skinny QR Inversión explícita de una matriz Cholesky BLAS 3 GEMM, HEMM, HER2K, HERK, SYMM, SYR2K, SYRK, TRMM, TRSM (todas) In-place layout translations CM, RM, CCRB, CRRB, RCRB, RRRB (todas las combinaciones) Caracteristicas Trabaja con los tipos de datos: Z, C, D, S (y tipos combinados: ZC, DS) Planificación estática y dinámica con QUARK Disponible para Linux, MS Windows, Mac OS y AIX 6 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro ¿Que es PLASMA? Estructura Funcionalidad Objetivos Objetivos Objetivos Alta utilización de cada core. Escalable a un número alto de cores. Metodología Planificación DAG. Paralelismo explicito. Comunicaciones implícitas. Granularidad fina / Basado en bloques. 7 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro Arquitectura Modelo de Programación Cambios Índice 1 PLASMA ¿Que es PLASMA? Estructura Funcionalidad Objetivos 2 GPU Arquitectura Modelo de Programación Cambios 3 MAGMA ¿Que es MAGMA? Estructura Funcionalidad Fermi 4 Rendimiento Arquitecturas Utilizadas Fermi Comparativa de Librerías 5 Trabajo Futuro PLASMA MAGMA 8 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro Arquitectura Modelo de Programación Cambios Tesla C1060 host CPU system memory GPU host interface Interconnection Netwrok Off-chip Memory GDDR3 GDDR3 GDDR3 GDDR3 GDDR3 GDDR3 GDDR3 GDDR3 SM Shared Memory (16 KB) SP SP SP SP SP SP SP SP 9 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro Arquitectura Modelo de Programación Cambios Modelo de Programación CUDA 10 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro Arquitectura Modelo de Programación Cambios Nuevas Necesidades Derivadas del Uso de Many-cores Aumenta el paralelismo. Tesla C2050 (Fermi): 448 CUDA cores @1.15 GHz. En simple precisión se alcanzan picos de 1030 GFlop/s, y en doble precisión 515 Gflop/s. Aumenta el coste de las comunicaciones en comparación con el coste de la computación. La velocidad del procesador aumenta un 59 %/año. El ancho de banda aumenta un 23 %/año. Heterogeneidad (Programación híbrida). Tareas pequeñas y no paralelizables en la CPU. Tareas grandes y paralelizables en la GPU. 11 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro ¿Que es MAGMA? Estructura Funcionalidad Fermi Índice 1 PLASMA ¿Que es PLASMA? Estructura Funcionalidad Objetivos 2 GPU Arquitectura Modelo de Programación Cambios 3 MAGMA ¿Que es MAGMA? Estructura Funcionalidad Fermi 4 Rendimiento Arquitecturas Utilizadas Fermi Comparativa de Librerías 5 Trabajo Futuro PLASMA MAGMA 12 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro ¿Que es MAGMA? Estructura Funcionalidad Fermi ¿Que es MAGMA? I Matrix Algebra on GPU and Multicore Architectures. Permite realizar operaciones de algebra lineal basándose en LAPACK. Se adapta a sistemas híbridos: actualmente Multi-core junto GPUs. Se debe realizar una correcta planificación de las tareas en los Multi-core y la GPU. Los Multi-cores se encargan de tareas pequeñas y las GPUs de las tareas grandes. 13 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro ¿Que es MAGMA? Estructura Funcionalidad Fermi ¿Que es MAGMA? II Explota la potencia que ofrece cada uno de los componentes híbridos. BLAS 2 se ejecuta en CPU usando LAPACK. BLAS 3 se ejecuta en GPU. ¿Rápido, barato, mejor? Aprovecha las nuevas arquitecturas emergentes. Supera en rendimiento (en muchas ocasiones) a las soluciones homogéneas. 14 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro ¿Que es MAGMA? Estructura Funcionalidad Fermi Estructura 15 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro ¿Que es MAGMA? Estructura Funcionalidad Fermi Funcionalidad de MAGMA 1.0 Funcionalidad Cobertura Sistemas lineales y mínimos cuadrados LU, Cholesky, QR & LQ Sistemas lineales de tipos de datos combinados LU, Cholesky, QR & LQ Problemas de autovalores y valores singulares Reducción a Hessenberg superior, bidiagonal, y formas tridiagonales Generación de la matriz Q QR, LQ, Hessenberg, bidiagonal, y formas tridiagonales MAGMA BLAS Subconjunto de BLAS, crítico para obtener rendimiento en la Tesla y Fermi Caracteristicas Trabaja con los tipos de datos: Z, C, D, S (y tipos combinados: ZC, DS) Soporte para Multi-core y una GPU Interfaces CPU y GPU Disponible para Linux, Mac OS 16 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro ¿Que es MAGMA? Estructura Funcionalidad Fermi Adaptación a Fermi Fermi es la nueva generación de GPUs de NVIDIA. Fermi es más compleja que la anterior generación de GPUs. MAGMA está codificado en alto nivel, y todo sigue funcionando en Fermi. El auto-ajuste tiene mayor importancia. En la última versión de MAGMA se incluyen kernels rediseñados para Fermi (mayor tamaño de bloque, bloques de registros...). Parte del código ha sido escrita en ensamblador. 17 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro Arquitecturas Utilizadas Fermi Comparativa de Librerías Índice 1 PLASMA ¿Que es PLASMA? Estructura Funcionalidad Objetivos 2 GPU Arquitectura Modelo de Programación Cambios 3 MAGMA ¿Que es MAGMA? Estructura Funcionalidad Fermi 4 Rendimiento Arquitecturas Utilizadas Fermi Comparativa de Librerías 5 Trabajo Futuro PLASMA MAGMA 18 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro Arquitecturas Utilizadas Fermi Comparativa de Librerías Arquitecturas Utilizadas para las Pruebas Fermi Tesla C2050: 448 CUDA cores a 1.15GHz. En SP se alcanzan picos de 1030 GFlop/s, y en doble precisión 515 Gflop/s. Coste $3,000. Istanbul AMD 8 socket 6 core (48 cores) a 2.8GHz. En SP se alcanzan picos de 1075 GFlop/s, y en doble precisión 538 Gflop/s. Coste $30,000 19 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro Arquitecturas Utilizadas Fermi Comparativa de Librerías Factorización en DP en Fermi (2050) 20 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro Arquitecturas Utilizadas Fermi Comparativa de Librerías Factorización LU en DP en Distintas Librerías 21 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro PLASMA MAGMA Índice 1 PLASMA ¿Que es PLASMA? Estructura Funcionalidad Objetivos 2 GPU Arquitectura Modelo de Programación Cambios 3 MAGMA ¿Que es MAGMA? Estructura Funcionalidad Fermi 4 Rendimiento Arquitecturas Utilizadas Fermi Comparativa de Librerías 5 Trabajo Futuro PLASMA MAGMA 22 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro PLASMA MAGMA Trabajo Futuro en PLASMA Aceleración en GPUs y OpenCL (incluyendo múltiples GPUs). Soporte completo para la arquitectura Fermi de NVIDIA. Resolución de problemas de problemas de autovalores y valores singulares. 23 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro PLASMA MAGMA Trabajo Futuro en MAGMA Integra MAGMA con librerías como: PLASMA: Mayor eficiencia en Multi-cores. StarPU: Soportar nodos heterogéneos con multiGPUs y Multi-cores. DAGuE: Soportar sistemas distribuidos de Many-cores. Auto-ajuste de la librería. Soporte de OpenCL. Más funcionalidades, incluyendo álgebra lineal de matrices dispersas. 24 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro PLASMA MAGMA Bibliografía Agullo, E., Demmel, J., Dongarra, J., Hadri, B., Kurzak, J., Langou, J., Ltaief, H., Luszczek, P., Tomov S. Numerical linear algebra on emerging architectures: The PLASMA and MAGMA projects. Journal of Physics Conference Series, Vol. 180, 2009. Nath, R., Tomov, S., Dongarra, J. An Improved MAGMA GEMM for Fermi GPUs. International Journal of High Performance Computing. 2010. Agullo E., Dongarra J., Hadri B., Kurzak J., Langou J., Ltaief H., Luszczek P., YarKhan A. PLASMA users’ guide. http://icl.cs.utk.edu/plasma. 2009. Tomov S., Nath R., Du P., Dongarra J. MAGMA users’ guide. http://icl.cs.utk.edu/magma. 2009. 25 / 26 PLASMA GPU MAGMA Rendimiento Trabajo Futuro PLASMA MAGMA ¿PREGUNTAS? 26 / 26