sobre técnicas de optimización para la multiplicación de...

19
Sobre t´ ecnicas de optimizaci´ on para la multiplicaci´ on de matrices en plataformas h´ ıbridas CPU+GPU Javier Cuenca Luis Pedro Garc´ ıa Domingo Gim´ enez Universidad de Murcia Universidad Polit´ ecnica de Cartagena Primeras Jornadas de Programaci´on Paralela Multicore y GPU Granada, 6 y 7 de febrero de 2014 Domingo Gim´ enez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 1 / 19

Upload: others

Post on 28-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Sobre tecnicas de optimizacionpara la multiplicacion de matrices

en plataformas hıbridas CPU+GPU

Javier Cuenca Luis Pedro GarcıaDomingo Gimenez

Universidad de Murcia Universidad Politecnica de Cartagena

Primeras Jornadas de Programacion Paralela Multicore y GPUGranada, 6 y 7 de febrero de 2014

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 1 / 19

Page 2: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Introduccion

La importancia adquirida recientemente por los sistemas Multicorecon aceleradores GPU y Coprocesadores:

Lista TOP500 Noviembre 2013: 1. Tianhe-2 (Intel Phi), 2. Titan(GPU NVIDIA K20x), 6. Piz Daint (GPU NVIDIA K20x), 7. Stampede(Intel Phi)Equipos de escritorio con GPUs

Dedicando un gran esfuerzo al desarrollo de software para estossistemas. Son necesarias tecnicas de optimizacion del software parapoder aproximarnos a los GFLOPs alcanzables en el sistemaCPU+GPU

En este trabajo. Tecnicas de optimizacion basadas en:Experimentos guiadosModelado empırico del tiempo de ejecucion

Obtener un balanceo optimo del trabajo a distribuir entre CPU y GPU enla Multiplicacion de Matrices

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 2 / 19

Page 3: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Indice

IntroduccionMotivacionMetodos de autotuning

Metodo I: Busqueda guiadaMetodo II: Modelado empırico

Resultados experimentales con el metodo IResultados experimentales con el metodo IIConclusiones y trabajos futuros

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 3 / 19

Page 4: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Motivacion

DGEMM en CPU y GPU

C = αAB + βC ⇒ C = α(AB1 + AB2) + β(C1 + C2)

αAB1 + βC1 se calcula en GPU y αAB2 + βC2 en CPUDGEMM en CPU+GPU

K

M A

NGPU NCPU

C1 C2

B1 B2K

N

¿Que buscamos?

Balancear el tiempo consumido en GPUy CPU

¿Que necesitamos?

Solapar computacion y comunicacionentre GPU y CPU

Distribucion del calculo

N = N gpu + N cpu dependera del tamano del problema, y de lavelocidad relativa entre CPU y GPU en cada sistema

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 4 / 19

Page 5: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Motivacion

DGEMM CPU+GPU

1 // Asynchronous transfer requires pinned host memory2 cudaMallocHost((void **) &h_A, sizeof(double)*szeA);3 // Copy async host memory to device4 cublasSetMatrixAsync(M, K, h_A, d_A, ...);5 cublasSetMatrixAsync(K, N_gpu, h_B+ldb*N_cpu, d_B, ...);6 // Have GPU do C_1 = AxB_17 cublasDgemm(M, N_gpu, K, d_A, d_B, d_C, ...);8 // Copy async results from device to host9 cublasGetMatrixAsync(M, N_gpu, d_C, lddc, h_C+ldc*N_cpu, ...);

10 // Have CPU do C_2 = AxB_211 dgemm_(&M, &N_cpu, &K, h_A, h_B+ldb*N_gpu, h_C+ldc*N_gpu, ...);

Librerıas BLAS

CPU: MKL, GotoBLAS, ATLASGPU: CUBLAS, MAGMA, CULA Tools

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 5 / 19

Page 6: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

MotivacionMetodo simple basado en GFLOPs medios

1 // Change for library, GPU and CPU2 gpu_flops = 460; cpu_flops = 140;3 total_flops = gpu_flops + cpu_flops;4 N_gpu = (N*gpu_flops)/total_flops;5 N_cpu = N - N_gpu;

500 1000 1500 2000 2500 3000 3500 4000

20

40

60

80

100

120

140

160

180

matrix size

GFLOPS

Matrix Multiplication - 6CGTX690

CUBLAS DGEMMMKL DGEMM

Hybrid DGEMM Avrg. GFLOPSMKL DGEMM + CUBLAS DGEMM

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

100

200

300

400

500

600

700

800

900

1000

matrix size

GFLOPS

Matrix Multiplication - 12CK20

CUBLAS DGEMMMKL DGEMM

HyBRID DGEMM Avrg. GFLOPSMKL DGEMM + CUBLAS DGEMM

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 6 / 19

Page 7: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Metodos de autotuning: I. Busqueda GuiadaEsquema Busqueda Guiada

hybrid DGEMM(.,M , N , K, A,LDA, B, LDB, C,LDC, B, LDB,N CPU)

Installation Set{384, 1152, · · · , 8064}

N CPU = N CPU + ∆N CPUN GPU = N−N CPU

Execution

T exe−T minT min

> Th.

Installation Set N CPU384 01152 96· ·· ·· ·

8064 2208

INSTALLATION

Ejecucion rutina

N CPU se decide a partir delos valores obtenidos en lainstalacion.Tamano de problema mascercano en elConjunto Instalacion o porinterpolacion

Aplicacion Busqueda Guiada

Experimentos con M ∈ Conjunto Instalacion. Valor inicial N CPU = 0

Variacion porciones B y C asignadas a CPU (N CPU) y GPU (N GPU)

N CPU = N CPU +∆N CPU hasta TEXEC exceda cierto UMBRAL a TMIN

Siguiente M ∈ Conjunto Instalacion con N CPU mejor TEXEC para tamanoproblema anterior

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 7 / 19

Page 8: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Metodos de autotuning: II. Modelado empırico tiempo deejecucionEsquema Modelado Empırico

hybrid DGEMM(.,M , N , K, A,LDA, B, LDB, C,LDC, B, LDB,N CPU)

Installation Set{384, 1152, · · · , 8064}

N CPU = N CPU + ∆N CPUN GPU = N−N CPU

Execution

LEAST SQUARETdgemm(m,n) = k1m2n + k2m2 + k3mTdgemm gpu(m,n) and Tdgemm cpu(m,n)

ki gpu and ki cpu

Tcomu(n) = ts + ntwTcomu h2d and Tcomu d2h

tsh2d, twh2d

and tsd2h , twd2h

TEXEC = max (Tdgemm cpu + γTcomu,Tdgemm gpu + Tcomu)

INSTALLATION

Aplicacion Modelado Empırico

Los experimentos se guıan de forma similar que en el Metodo I.

γ representa el solapamiento entre computacion y comunicacion. Se obtieneexperimentalmente para cada sistema γ ∈ [0, 1].

Ejecucion: Buscar N CPU que minimice TEXEC hasta TEXEC−TMINTMIN

> Th.

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 8 / 19

Page 9: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Metodo I. Plataformas Computacionales

Metodo I. Busqueda Guiada

12CK20: es un sistema de memoria compartida formado por doshexa-cores (12 cores) Intel Xeon E5-2620 y una tarjeta GPU TeslaK20c (con arquitectura Kepler) con una memoria global de 4800Mbytes y 2496 cores CUDA (13 Streaming Multiprocessors y 192Streaming Processors por SM)

6CGTX690: es un equipo con un hexa-core AMD 1075T y unatarjeta GPU GeForce GTX 590 con 1536 Mbytes de memoria global y512 cores CUDA (16 Streaming Multiprocessors y 32 StreamingProcessors por SM)

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 9 / 19

Page 10: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Resultados experimentales. Metodo I. InstalacionConjunto Instalacion

12CK20 {384, 1152, 1920, . . . , 9600, 10368, 11136}6CGTX690 {384, 1152, 1920, . . . , 6528, 7296, 8064}En ambos sistemas N CPU se ha incrementado con multiplos de 16Se ha experimentado con umbrales de 2%, 5% y 10%

Tiempos de instalacion segun umbral

Umbral 12CK20 6CGTX6902% 92 seg. 319 seg.5% 98 seg. 370 seg.

10% 229 seg. 489 seg.

Los tiempos de instalacion no son altos con ninguno de los umbralesVeremos que las diferencias no son significativas en lasprestaciones obtenidas variando el umbral

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 10 / 19

Page 11: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Resultados experimentales. Metodo I. Instalacion

384 1920 3456 4992 6528 8064 9600 11136

100

200

300

400

500

600

700

800

900

1000

matrix size

GFLOPS

Installation phase - Guided Search 12CK20

threshold 2%

threshold 5%

threshold 10%

384 1920 3456 4992 6528 8064

60

80

100

120

140

160

180

200

matrix size

GFLOPS

Installation phase - Guided Search 6CGTX690

threshold 2%

threshold 5%

threshold 10%

GFLOPS obtenidos con cada umbral de instalacion

Con el umbral del 10% se consiguen siempre los mayores valores de GFLOPS

Aunque no hay diferencias significativas y con un umbral del 5% en6CGTX690 se consiguen los mismos resultados que con uno del 10% y en12CK20 solo en 2 de los 15 tamanos se obtienen valores distintos

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 11 / 19

Page 12: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Resultados experimentales. Metodo I. Instalacion

384 1920 3456 4992 6528 8064 9600 11136

0

2

4

6

8

10

12

14

16

matrix size

NCPU

(%)

Installation phase - Guided Search 12CK20

threshold 2%

threshold 5%

threshold 10%

384 1920 3456 4992 6528 8064

0

2

4

6

8

10

12

14

16

18

20

22

24

26

matrix size

NCPU

(%)

Installation phase - Guided Search 6CGTX690

threshold 2%

threshold 5%

threshold 10%

N CPU (%) con el que se obtiene valor mas alto GFLOPs

El comportamiento varıa en los dos sistemas

Mayor incremento en % N CPU en 6CGTX690. Diferencias en los GFLOPsentre CPU y GPU

En 12CK20 descenso % N CPU: MKL dgemm y memoria pinnedDomingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 12 / 19

Page 13: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Resultados experimentales. Metodo I. ValidacionConjunto Validacion 6= Conjunto Instalacion

12CK202% 5% 10% OPTIMO

n n cpu n cpu n cpu n cpu768 0 0 0 0

1536 40 40 40 02304 184 192 192 2403072 320 368 368 3363840 408 488 504 5124608 536 632 648 6405376 736 792 792 8006144 928 944 944 9606912 1072 1088 1088 10727680 1200 1200 1200 12008448 1264 1264 1264 12809216 1280 1280 1280 12809984 1280 1280 1280 1280

10572 1297 1297 1314 155211520 1344 1344 1408 1392

6CGTX6902% 5% 10% OPTIMO

n n cpu n cpu n cpu n cpu768 64 64 64 16

1536 280 304 304 3362304 576 584 584 5763072 792 792 792 8003840 1008 1008 1008 10244608 1216 1216 1216 12165376 1440 1440 1440 14406144 1664 1644 1644 16326912 1872 1872 1872 18887680 2096 2096 2096 21128448 2208 2208 2208 2336

Valor medio GFLOPS alcanzados / Desviacion respecto al optimo (%)

Umbral 12CK20 6CGTX6902% 767.38 / 3.6% 181.39 / 1.4%5% 770.03 / 3.3% 181.40 / 1.3%

10% 773.18 / 3.0% 181.40 / 1.3%

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 13 / 19

Page 14: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Resultados experimentales. Metodo I. Validacion

0

200

400

600

800

1000

1200

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000

GF

LO

PS

matrix size

Matrix multiplication - 12CK20

MKL DGEMM + CUBLAS DGEMMHybrid DGEMM Optimum

Hybrid DGEMM threshold 10%CUBLAS DGEMM

MKL DGEMM

20

40

60

80

100

120

140

160

180

200

220

0 1000 2000 3000 4000 5000 6000 7000 8000 9000

GF

LO

PS

matrix size

Matrix multiplication - 6CGTX690

MKL DGEMM + CUBLAS DGEMMHybrid DGEMM Optimum

Hybrid DGEMM threshold 10%CUBLAS DGEMM

MKL DGEMM

Resumen Busqueda Guiada

Mejora: 10% (12CK20), 31% (6CGTX690) sobre DGEMM CUBLAS

Mejora: 17% (12CK20), 21% (6CGTX690) sobre metodo GFLOPS medios

Prestaciones similares a las optimas experimentales y cercanas a las ideales(MKL DGEMM + CUBLAS DGEMM)

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 14 / 19

Page 15: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Modelado empırico tiempo de ejecucionEsquema Modelado Empırico

hybrid DGEMM(.,M , N , K, A,LDA, B, LDB, C,LDC, B, LDB,N CPU)

Installation Set{384, 1152, · · · , 8064}

N CPU = N CPU + ∆N CPUN GPU = N−N CPU

Execution

LEAST SQUARETdgemm(m,n) = k1m2n + k2m2 + k3mTdgemm gpu(m,n) and Tdgemm cpu(m,n)

ki gpu and ki cpu

Tcomu(n) = ts + ntwTcomu h2d and Tcomu d2h

tsh2d, twh2d

and tsd2h , twd2h

TEXEC = max (Tdgemm cpu + γTcomu,Tdgemm gpu + Tcomu)

INSTALLATION

Instalacion. Modelado Empırico

Experimentos guıados de forma similar al Metodo I

Estimacion de ts y tw : regresion lineal: benchmark decublasSetMatrixAsync y cublasgetMatrixAsync

Estimacion de los ki : mınimos cuadrados a resultados experimentalesobtenidos con las rutinas dgemm y cublasDgemm en un Conjunto Instalacion.

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 15 / 19

Page 16: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Metodo II. Plataformas Computacionales

Metodo II. Modelado Empırico

12CK20: es un sistema de memoria compartida formado por doshexa-cores (12 cores) Intel Xeon E5-2620 y una tarjeta GPU TeslaK20c (con arquitectura Kepler) con una memoria global de 4800Mbytes y 2496 cores CUDA (13 Streaming Multiprocessors y 192Streaming Processors por SM)

Instalacion

Para el Conjunto Instalacion se determina experimentalmente queγ = 1

Texec = max (Tdgemm cpu,Tdgemm gpu) + TcomuNo hay solapamiento computacion CPU y comunicacion con GPUdurante la transferencia de las matrices A y B.

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 16 / 19

Page 17: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Resultados experimentales. Metodo II. Validacion

Conjunto Validacion 6= Conjunto Instalacion

Modelo Optimo desviacionn n cpu time n cpu time (%)

768 0 0.0036 0 0.0036 0.001536 48 0.0199 0 0.0171 16.612304 224 0.0424 240 0.0411 3.143072 384 0.0846 336 0.0842 0.463840 512 0.1459 512 0.1459 0.004608 640 0.2359 640 0.2359 0.005376 768 0.3562 800 0.3558 0.106144 896 0.5110 960 0.5100 0.186912 1008 0.7093 1072 0.7019 1.067680 1136 0.9618 1200 0.9375 2.598448 1264 1.2305 1280 1.2255 0.419216 1376 1.9682 1280 1.5803 24.559984 1504 2.1745 1280 2.1573 0.80

10572 1616 2.3111 1552 2.3101 0.0411520 1744 3.3041 1392 3.0419 8.62

El valor optimo de N CPU se selecciona bien solo en 3 de los 15 casosPero la desviacion media respecto al optimo es de un 4%

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 17 / 19

Page 18: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Comparativa Metodos

2000 4000 6000 8000 10000

400

600

800

1000

matrix size

GFLOPS

Matrix Multiplication - 12CK20

Hybrid DGEMM G. SearchHybrid DGEMM Model

Hybrid DGEMM OptimumMKL + CUBLAS

GFLOPS medios conseguidos en 12CK20

En general, el modelo empırico se comporta mejor en la plataforma 12CK20

Se alcanza un valor medio de unos 785.12 GFLOPS, mientras que con labusqueda guiada (10%) se alcanzan unos 773.18 GFLOPS

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 18 / 19

Page 19: Sobre técnicas de optimización para la multiplicación de ...dis.um.es/~domingo/14/PPMG/presentation.pdf · Javier Cuenca Luis Pedro Garc´ıa Domingo Gim´enez Universidad de Murcia

Conclusiones y Trabajos Futuros

Se han comparado dos metodos de autotuning para el balanceo de ladistribucion del trabajo entre CPU y GPU en la multiplicacion dematrices:

Metodo basado en la realizacion guiada de experimentos para reducir eltiempo de experimentacionMetodo basado en un modelo teorico de tiempo de ejecucion de larutina

En general, con los dos metodos se obtienen distribuciones cercanas ala optima en los dos sistemas analizadosEn la actualidad: extension de la misma metodologıa a rutinas demayor nivel. LU, QR y Cholesky.En el futuro...: Aplicacion de estas tecnicas de autotuning ensistemas con Intel Xeon Phi, extender el trabajo a sistemas multiGPU,multiMIC, etc

Domingo Gimenez (UMU) [email protected] JPPMG / 6-7 febrero, 2014 19 / 19