28
Disruptif or not disruptif : le GPU Des myri-alus dans 4cm² Emmanuel Quémener Disruptif : “qui sert à rompre”, de disrumpere (rompre) Myriade : “nombre de dix mille”

Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Disruptif or not disruptif :le GPU

Des myri-alus dans 4cm²

Emmanuel Quémener

Disruptif : “qui sert à rompre”, de disrumpere (rompre)Myriade : “nombre de dix mille”

Page 2: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 2/28February 19, 2018

Blaise Pascal Center« Maison de la modélisation » & ...

Hôtel

ProjetsFormations

Conférences

Page 3: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 3/28February 19, 2018

CBP également centre d’essaisPlate-forme expérimentale avec 11 plateaux techniques

● Multi-nœuds: 5 clusters de 4 à 64 nœuds, Nœuds/Cœurs : 4/24, 8/64, 8/64, 64/512● Multi-cœurs : plus de 100 machines de 2 à 28 cœurs,

– Nœuds/Serveurs : de 8 à 28 cœurs, Workstations : de 2 à 16 cœurs, 16 types de CPU différents

● GPU & Accélerateur : 52 modèles différents GPU (AMD & Nvidia), 1 Intel MIC– GPGPU : 9 ; GPU Nvidia : 31 ; GPU AMD/ATI : 12 types ; Xeon Phi 7120P

● Intégration : 24 machines virtuelles : Debian de Lenny à Sid sur 32 & 64 bits, ...● Exotic hardware : 3 machines ARMv7 sous Debian Jessie ou Ubuntu● Visualisation 3D : 2 stations , 2 videoprojecteurs, 20 moniteurs, 4 lunettes● Stations virtuelles 3D : plus 40 hosts with x2go/VirtualGL● COMOD avec SIDUS : « Compute On My Own Device » pour utilisateurs de labos

– SIDUS est « Single Instance Distributing Universal System »

● Prototype Galaxy pour le traitement intensif de données biologiques

Page 4: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel Quemener 4/28February 19, 2018

Plateau multi-shaders : (GP)GPU52 modèles différents...

GPU Gamer : 18● Nvidia GT 8800GS● Nvidia GTX 560 Ti● Nvidia GTX 680● Nvidia GTX 690● Nvidia GTX Titan● Nvidia GTX 780● Nvidia GTX 780 Ti● Nvidia GTX 750● Nvidia GTX 750 Ti● Nvidia GTX 960● Nvidia GTX 970● Nvidia GTX 980● Nvidia GTX 980 Ti● Nvidia GTX 1050 Ti● Nvidia GTX 1060● Nvidia GTX 1070● Nvidia GTX 1080● Nvidia GTX 1080 Ti

GPU desktop & pro : 13● Nvidia Quadro 600● Nvidia Quadro 4000● Nvidia Quadro K2000● Nvidia Quadro K4000● Nvidia Quadro FX4800● Nvidia NVS 310● Nvidia NVS 315● Nvidia GT 430● Nvidia GT 620● Nvidia GT 640● Nvidia GT 710● Nvidia GT 730● Nvidia GT 1030

GPU AMD Gamer & al : 12

● AMD Radeon HD 5850● AMD Radeon HD 7970● AMD R9 380● AMD R9 290X● AMD R9 295x2● AMD R9 Fury● AMD Nano Fury● AMD Radeon HD 6450● AMD Radeon HD 6670● AMD R7 240● AMD Kaveri A10-7850K● AMD RX Vega 64

GPGPU : 9● Nvidia Tesla C1060● Nvidia Tesla M2050● Nvidia Tesla M2070● Nvidia Tesla M2090● Nvidia Tesla K20m● Nvidia Tesla K40c● Nvidia Tesla K40m● Nvidia Tesla K80● Nvidia Tesla P100

Page 5: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 5/28February 19, 2018

Centre Blaise Pascal ~ Dryden FRPetit exemple illustratif

● Nasa X-29● Cellule de F-5● Moteur de F-18● Train de F-16● Études de

– Plans « canard »– Incidence >50°– « Fly-By-Wire »

Recycler, réutiliser & explorer de nouveaux domaines

Page 6: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 6/28February 19, 2018

Quel point de vue ?Le point de vue d’un physicien...● Approche « système » du physicien

– Héritage des ordinateurs analogique– Un « système » informatique :

● réseau / matériel / OS / logiciels / codes / usages / ...

● Approche « Saint Thomas »– Appréhension par ma seule mesure

● Pilote d’essai – Caractérisation, recherche d’une exploitation optimale

Page 7: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 7/28February 19, 2018

Il y a une génération (humaine)...Un film de série B de 1984

● 1984 : The Last Starfighter– 27 minutes de CGI– 22.5 10 opérations par image⁹

– 1 Cray X-MP (130 kW)– 66 jours (en fait, il a fallu 1 an)

● 2017: sur la GTX 1080Ti (250 W)– 3.4 seconds– Comparaison GTX1080Ti / Cray

● Performance : x1600000 !● Consommation / ~ 10⁹

Page 8: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 8/28February 19, 2018

Pourquoi le GPU est « disruptif » ?Le « grand détournement » en HPC

● Dans une conférence à l’ENS-Cachan 2006Q1, ceci... – x100 en 5 ans

● Entre 2000 et 2015– GeForce 2 Go/GTX 980Ti : de 286 à 2816000 MOperations/s : x10000– Pour un CPU de station de travail : x100

Page 9: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 9/28February 19, 2018

Au commencement de toutres choses● Nvidia lance le « superordinateur personnel »● Quand : 2008-11-19 Qui : Nvidia● Où : sur Tom's Hardware;-)● Quoi : une carte PCIe Tesla C1060 PCIe avec 240 cœurs● Combien : 933 Gflops Float32 (mais 78 Gflops Float64)

Page 10: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 10/28February 19, 2018

Pourquoi un GPU est-il si puissant ?Pour construire une image 3D !● 2 approches:

– Raytracing : PovRay (« dimensions » de UMPA)– Shadering : 3 opérations

● « Raytracing » :– De l’œil au contact de chaque objet

● « Shadering »– Model2World: objets vectoriels placés dans la scène– World2View: objets vectoriels projetés sur un « plan » vectoriel– View2Projection: pixellisation du « plan » vectoriel

Page 11: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 11/28February 19, 2018

Pourquoi le GPU est-il si puissant ?Shadering & Calcul Matriciel

● Model 2 World: 3 produits de matrice– Rotation– Translation– Mise à l’échelle

● World 2 View: 2 produits de matrice– Positionnement de la caméra– Ligne de vue

● View 2 Projection– Pixellisation

Donc, à l’origine, le GPU, un gros multiplicateur de Matrice

W2V

M2W

V2P

Page 12: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 12/28February 19, 2018

Combien de composants ?Grosse différence entre GPU/CPU

● Opérations– Multiplication de matrice– vectorisation– "Pipelining"– Shader (multi) processor

● Implementation : 1993– OpenGL, Glide, Direct3D,

● Généricité : 2002– CgToolkit, CUDA, OpenCL

GTX 1080 TiGTX 1080 Ti

3584 3584 cudacorescudacores

Page 13: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel Quemener 13/28February 19, 2018

Comment différencier CPU/GPUQuestion de battement, de cœurs ?

● Sur un GPU, cohérence entre performances théorique & pratiques● Sur un CPU, performance relative meilleure

Performance ThéoriquePerformance en 32 bits

“Pi Dart Dash”

Domaine des (GP)GPUs

Domaine des CPUs

Page 14: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 14/28February 19, 2018

Pourquoi un GPU est-il si puissant ?Le retour à une base générique

Dans le GPU● Unités très spécialisées● Efficacité du pipelining● Perte de généricité● Scènes variables● Nature des détails

La solution :Revenir à des fonctions plus générales !

Page 15: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel Quemener 15/28February 19, 2018

Tesla P100 GTX 1080Ti Vega64 Xeon Phi Ryzen7 1800 Skylake i7-6700K E5-2680v4 x20.00

1000.00

2000.00

3000.00

4000.00

5000.00

6000.00

7000.00

8000.00

9000.00

10000.00

OpenBLAS DP

clBLAS DP

Thunking DP

CuBLAS DP

OpenBLAS SP

clBLAS SP

Thunking SP

CuBLAS SP

Est-ce que le GPU est si puissant ?xGEMM pour mes meilleures MyriALUs...

Teslafor

Pros

AMDFor Alt’

CPU

GTXfor

Gamers

Page 16: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel Quemener 16/28February 19, 2018

BLAS, le match : CPU vs GPUxGEMM quand x=D(P) or S(P)

Tesl

a C10

60

Tesl

a M20

90

Tesl

a K20m

Tesl

a K80

Tesl

a P100

Quadr

o k400

0

GTX 5

60 Ti

GTX 6

90

GTX 7

80

GTX Ti

tan

GTX 7

80Ti

GTX 98

0

GTX 9

80Ti

GTX 1

080

GTX 1

080T

i

HD7970

R9-29

5x #1

R9 Fur

y

Nano

Xeon

Phi

FX95

90

Ryzen

7 18

00

E6300

x555

0 x2

E5-266

5 x2

E5-26

40v3

x2

E5-268

7v3 x2

E5-264

0v4 x2

E5-268

0v4 x2

0.00

1000.00

2000.00

3000.00

4000.00

5000.00

6000.00

7000.00

8000.00

9000.00

10000.00OpenBLAS DP clBLAS DP

Thunking DP CuBLAS DP

OpenBLAS SP clBLAS SP

Thunking SP CuBLAS SPTeslafor

Pros

GTXfor

Gamers

AMDForAlt*

CPU

CuBLAS

clBLAS

OpenBLAS

Page 17: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 17/28February 19, 2018

Déjà, en 2010, des trucs étranges ...La Tesla C1060 ...

● Un produit matriciel : xGEMM– Propriété: Transposé (A * B) = - Transposé (A) * Transposé (B)

● Résultats (en Gflops): Yess!– SP: FBLAS / CBLAS: 12, CuBLAS: 350/327: x27 !!!– DP: FBLAS / CBLAS: 6, CuBLAS: 73/70: x11!

● Surprise : Mmmm! CuBLAS préfère the x16!– SP: 16000², 350, but 15999² or 16001², 97: x3.6!– DP: 10000², 73, but 9999² or 10001², 31: x2.35

Page 18: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 18/28February 19, 2018

Ce que Nvidia ne diffuse pas...xGEMM sur un large domaine...

GTX 1080

La performance est là, mais pas tout le temps...Taille

Tesla P100

Performance

Page 19: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 19/28February 19, 2018

Petit tour d’horizon du parallélisme

● OpenCL «apparaît» comme le plus polyvalent :-)● CUDA ne peut être utilisé qu’avec les GPU Nvidia● Les accélérateurs « semblent » plus agnostiques...

Cluster Node CPU Node GPU Node Nvidia Accelerator FPGA

MPI Yes Yes Non No Yes* No

PVM Yes Yes No No Yes* No

OpenMP No Yes No No Yes* No

Pthreads No Yes No No Yes* No

OpenCL No Yes Yes Yes Yes Yes

CUDA No No No Yes No No

TBB No Yes No No Yes* No

Modèles de programmation parallèle

Page 20: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 20/28February 19, 2018

Différences entre CUDA/OpenCLLe « kernel », le noyau de calcul

__device__ ulong MainLoop(ulong iterations,uint seed_w,uint seed_z,size_t work)

{

uint jcong=seed_z+work;

ulong total=0;

for (ulong i=0;i<iterations;i++) {

float x=CONGfp ;

float y=CONGfp ;

ulong inside=((x*x+y*y) <= THEONE) ? 1:0;

total+=inside;

}

__global__ void MainLoopBlocks(ulong *s,ulong iterations,uint seed_w,uint seed_z)

{

ulong total=MainLoop(iterations,seed_z,seed_w,blockIdx.x);

s[blockIdx.x]=total;

__syncthreads();

}

ulong MainLoop(ulong iterations,uint seed_z,uint seed_w,size_t work)

{

uint jcong=seed_z+work;

ulong total=0;

for (ulong i=0;i<iterations;i++) {

float x=CONGfp ;

float y=CONGfp ;

ulong inside=((x*x+y*y) <= THEONE) ? 1:0;

total+=inside;

}

return(total);

}

__kernel void MainLoopGlobal(__global ulong *s,ulong iterations,uint seed_w,uint seed_z)

{

ulong total=MainLoop(iterations,seed_z,seed_w,get_global_id(0));

barrier(CLK_GLOBAL_MEM_FENCE);

s[get_global_id(0)]=total;

}

Page 21: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 21/28February 19, 2018

Agir en « intégrateur »Pour ne pas réinventer la roue...

● Les librairies classiques utilisables avec les GPU– Nvidia fournit plein d’implémentations (BLAS, FFT, ...)– OpenCL en fournit certaines, mais pas complètes !

Librairies de programmation parallèlesCluster Nœud CPU Nœud GPU Nœud Nvidia Accélerateur

BLAS BLACSMKL

OpenBLASMKL

clBLAS CuBLASclBLAS

MKLclBLAS

LAPACK ScalapackMKL

AtlasMKL

clMAGMA MAGMA MagmaMIC

FFT FFTw3 FFTw3 clFFT CuFFT clFFT FFTw3 clFFT

Page 22: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 22/28February 19, 2018

Pourquoi OpenCL ?Une histoire pas vraiment « politiquement correcte »

● Autour de 2005, MacOSX a besoin de plus de puissance– Des traitements peuvent être déchargés au GPU– CUDA émerge comme le successeur de CgToolkit

● Mais Apple ne veut pas être prisonnier...– (comme ses utilisateurs ;-) )

● Apple lance la création du consortium Khronos– AMD, IBM et ARM viennent rapidement– … et Intel & Nvidia traînent les pieds mais arrivent...

Page 23: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 23/28February 19, 2018

Ce que OpenCL offre...10 implémentations sur x86● 3 implémentations pour CPU:

– Celle d’AMD: l’historique ...– Intel's: très efficace (mais pas toujours)– Celle OpenSource PortableCL (POCL)

● 4 implémentations pour GPU:– Celle d’AMD : pour ses cartes...– Celle de Nvidia: pour les circuits éponymes– "Beignet": version Open Source pour les circuits Intel (très récents)– Mesa: version Open Source pour les circuits récents mais pas trop...

● 1 implémentation pour Accélérateur:– Intel's: for the MIC Xeon Phi Knight Corner

● 1 implémentation pour FPGA :– Celle d’Altera notamment (racheté par Intel)

● Pour les autres plates-formes, possible (possible mais pas la moindre expérience)

Page 24: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 24/28February 19, 2018

Après le CPU et le GPU,Définition du QPU et de l’EPU● PR: "Parallel Rate" or « Régime de parallélisme »● CPU: Central Processing Unit● GPU: Graphical Processing Unit● QPU: Quantum Processing Unit

– Pour un usage, on lance avec PR = 1– Exemple: lancement de Threads = 1, Blocks = 1 ou Work Items = 1

● EPU: Equivalent Processing Unit– Pour un usage, performance optimale obtenue pour un certain PR– Exemple: pour une GTX1080Ti, maximum pour 16x le nombre de « cudacores »

Page 25: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 25/28February 19, 2018

X555

0

E5-26

65

E5-26

20v2

E5-26

37v2

E5-26

87v3

Xeon

Phi

R9-29

5X

R9-29

0

GTX Ti

tan

Quadr

o K40

00

Tesla

K40

c

GTX 9

80Ti

GTX 1

080

1000000

10000000

100000000

1000000000

PiOpenCLPiOCL BasePiOpenCL Boost

Pour 1 de QPU, « bas régime » ...Le CPU explose le GPU!● De 20 à 50x plus lent !

● 1.5 ordre de magnitudeX5550

E5-2665

E5-2620v2

E5-2637v2

E5-2687v3

Xeon Phi

R9-295X

R9-290

GTX Titan

Quadro K4000

Tesla K40c

GTX 980Ti

GTX 1080

0.00

E+00

5.00

E+07

1.00

E+08

1.50

E+08

2.00

E+08

2.50

E+08

PiOpenCL

PiOCL Base

PiOpenCL Boost

Page 26: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 26/28February 19, 2018

Pour préparer la prochaine…Et Python dans tout ça ?

MPI/C

MPI+OpenMP/C

MPI+PyOpenCL NoHT

MPI+PyOpenCL HT

0.00

E+00

2.00

E+10

4.00

E+10

6.00

E+10

8.00

E+10

1.00

E+11

1.20

E+11

1.40

E+11

Itops

ITOPS

● 64 nœuds avec 512 cœurs● 3 implémentations (2 hybrides)

Page 27: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 27/28February 19, 2018

Tesla

C10

60

Tesla

M20

70

Tesla

M20

90

Tesla

K20

m

Tesla

K40

m

Tesla

K80

#1

Tesla

K80

+pT

hrea

ds

Tesla

P10

0

NVS 315

Quadr

o 400

0

Quadr

o K20

00

Quadr

o K40

00

GTX 560T

i

GTX 680

GTX 690 #

1

GTX 780

GTX Titan

GTX 780T

i

GTX 750

GTX 750T

i

GTX 960

GTX 970

GTX 980

GTX 980T

i

GTX 1050

Ti

GTX 1080

GTX 1080

Ti

GT 430

GT 620

GT 640

GT 710

GT 730

HD 5850

HD 6450

HD 7970

Kaver

i A10

-785

0K G

PU

R7 240

Nano F

ury

R9 Fur

y

R9 380

R9 290

R9 295

X2 #1

MIC

Phi

7120

P

AMD F

X-959

0

AMD R

yzen

7 180

0

1x In

tel P

entiu

m M 75

5

1x In

tel P

entiu

m E63

00

2x In

tel X

5550

4c M

PI+C

2x In

tel X

5550

4c

2x In

tel 26

87v3

10c

2x In

tel 26

80v4

14c

Cluster

64n8

c MPI+

PyCL N

oHT

Cluster

64n8

c MPI+

PyCL H

T

Cluster

64n8

c MPI/C

Cluster

64n8

c MPI+

OpenM

P/C

0E+00

2E+10

4E+10

6E+10

8E+10

1E+11

1E+11

1E+11

2E+11

2E+11

Pi Monte Carlo: le match ...Python vs C & CPU vs GPU vs Phi

Teslafor

Pros

GTXfor

Gamers

AMD/ATI

CPU

Page 28: Disruptif or not disruptif : le GPU - accueil[CBP] · 2018-02-19 · Emmanuel QUÉMENER CC BY-NC-SA 3/28 February 19, 2018 CBP également centre d’essais Plate-forme expérimentale

Emmanuel QUÉMENER CC BY-NC-SA 28/28February 19, 2018

Et que faut-il en retenir ?Caractériser pour éviter les regrets● Ce qu’il faut retenir :

– Dans une machine standard, en 2018, la « puissance brute » est dans le GPU– Pour un parallélisme faible, le CPU est beaucoup plus efficace que le GPU– Le GPU l’emporte seulement si le régime de parallélisme est supérieur à 1000– Le GPU ne délivre sa puissance optimale « que » pour certains PR– Sans caractérisation systématique, des déconvenues sont à prévoir– OpenCL est le meilleur compromis pour programmer les *PU– Python reste la meilleure approche pour programmer OpenCL

● Que faut-il faire ? Expérimenter !