PLASMA GPU MAGMA Rendimiento Trabajo

Anuncio
PLASMA GPU MAGMA Rendimiento Trabajo Futuro
MAGMA
Matrix Algebra on GPU and Multicore Architecture
Ginés David Guerrero Hernández
gines.guerrero@ditec.um.es
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
Descargar