1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des...

21
1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme Dubois, Serge Petiton, Christophe Calvin CEA Saclay – DEN/DANS/DM2S/SERMA/LLPR University of Lille 1 – LIFL/MAP Lille, France – 02/12/2009 Journées CIGIL

Transcript of 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des...

Page 1: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

1CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09

Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision

Jérôme Dubois, Serge Petiton, Christophe CalvinCEA Saclay – DEN/DANS/DM2S/SERMA/LLPR

University of Lille 1 – LIFL/MAP

Lille, France – 02/12/2009Journées CIGIL

Page 2: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

2CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09

Outline

Motivations

Caractéristiques principales

Méthodes de Krylov: Arnoldi et ERAM

Précision pour une itération d’Arnoldi

Performances et impact de la precision pour ERAM : Arnoldi itéré

Page 3: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

3CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

Motivations

Champs d’application : simulation de coeur de réacteur, neutronique

Objectif : MINOS détermine le k-effective ratio + autres données

Data : Matrices creuses et larges jeux de données (Goctets)

Intensité des calculs : transposition de matrice + résolution de

système

Speed-ups : 15x avec Tesla, 5x with Quadro GPU

02/12/09

Page 4: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

4CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

Caractéristiques principales(1)

• Meilleure performance crête : ~1-10x (vs Nehalem 8 cores)

• Meilleure bande passante mémoire : ~1-20x

02/12/09

Page 5: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

5CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

Caractéristiques principales(2)

• Norme IEEE admise

• Processeur Cell :

– 8 SPEs non complètement IEEE en SP :

• No multiple rounding modes

• Exception handled by saturation (NaN, inf, ...)

– 8 SPEs complètement IEEE en DP

• GPU :

– Proche de la norme IEEE

– Mais pas complètement en SP & DP :

• FMAD result truncated

• IEEE exceptions handled differently

02/12/09

Page 6: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

6CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

• Algorithme :

– Input : ANxN

, v0

– Output : VNxm

, Hm+1xm

, λ1, ..., λ

m, R

1, ..., R

m>

– Calculer m produits matrice vecteur, + opérations BLAS 1

pour obtenir :

• V* A V = H

• Avec H Hessenberg et V orthogonale

– Calculer les valeurs propres intéressantes dans H

– Projeter les vecteurs propres associés de l’espace de H

dans l’espace de A

– Estimation de l’erreur

Algorithme de la méthode d’Arnoldi

02/12/09

Page 7: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

7CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

• Contrainte : la taille de V est N x m

• Solution :

– Faire itérer la méthode d’Arnoldi dans un plus petit sous-espace– Explicitly Restarted Arnoldi Method (ERAM)

• Algorithme :

– Tant que error > tolerance• Faire une itération d’Arnoldi• Si nécessaire, redémarrer la méthode avec un nouveau

vecteur initial construit avec une combinaison des vecteurs de Ritz calculés dans Arnoldi

Principe de la méthode ERAM

02/12/09

Page 8: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

8CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

Méthode d’ArnoldiOrthogonolisation et calcul de vp dominante (Hilbert matrix)

02/12/09

Page 9: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

9CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

Précision atteinte pour l’orthogonalisation

•Arnoldi CGS : orthogonal basis

02/12/09

Page 10: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

10CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

Précision atteinte pour l’orthogonalisation

•Arnoldi CGS with reorthogonalization : orthogonal basis

02/12/09

Page 11: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

11CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

• Une itération de la méthode d’Arnoldi sur une matrice d’Hilbert d’ordre 10240 avec une taille de sous-espace de 8 :

• GPU proche du CPU

• Le Cell est 500-600x moins précis que le GPU en SP

• En DP, le Cell et le CPU calculent le même résultat. Celui du GPU diffère de 4.10-15

Influence sur la valeur propre dominante calculée

CGS

CPU 32 bits 2,61319470 2,61319160 réf.GPU 32 bits 2,61319971 5,01E-06 2,61319876 7,15E-06

2,61209750 1,10E-03 2,61210108 1,09E-03

CGS – reorthoDom. Eig error Dom. Eig. error

ref.

Cell 32 bits

02/12/09

Page 12: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

12CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

ERAM

Méthode d’Arnoldi itérée (Hilbert & DingDong matrices)

02/12/09

Page 13: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

13CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

ERAM : Hilbert matrix, SP, tolerance ε= 10-8. Tests on a Quadro GPU.

Impact sur le nombre d’itérations, SP (cas facile)

2 3 4 5 6 7 80

5

10

15

20

25

CPUGPUCell

subspace size

Ite

ratio

ns

02/12/09

Page 14: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

14CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

ERAM : Hilbert matrix in SP, ε= 10-8. Speed-up = 8x with Quadro GPU

Impact sur le temps de calcul, SP (cas facile)

2 3 4 5 6 7 80.00

1.00

2.00

3.00

4.00

5.00

6.00

7.00

CPUGPUCell

subspace size

Tim

e in

se

con

ds

02/12/09

Page 15: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

15CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

• Same number of iterations between CPU and GPU (Tesla) in DP

• Mean speed-up of 17x between CPU and Tesla GPU, with an error of 3.10-15

Impact sur le nombre d’itérations, DP (cas facile)

2 3 4 5 6 7 8 9 10 110.00

5.00

10.00

15.00

20.00

25.00

30.00

CPUGPUCell

subspace size

Tim

e (

s)

02/12/09

Page 16: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

16CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

ERAM : DingDong matrix, SP , stop at ε= 10-8. Tests on Tesla GPU.

Impact sur le nombre d’itérations (cas sensible)

23

45

67

89

1011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

3435

3637

3839

40

0

20

40

60

80

100

120

CPUGPUCell

Subspace size

Itera

tion

s

02/12/09

Page 17: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

17CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

ERAM : DingDong matrix, SP, ε= 10-8. Mean speed-up = 16x on Tesla

Impact sur le temps de calcul, SP (cas sensible)

23

45

67

89

1011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

3435

3637

3839

40

0.00

5.00

10.00

15.00

20.00

25.00

CPUGPUCell

Subspace size

Tim

es in

sec

onds

02/12/09

Page 18: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

18CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

ERAM : DingDong matrix, SP, ε= 10-8.

Impact sur la précision, SP (cas sensible)

23

45

67

89

1011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

3435

3637

3839

40

1.00E-07

1.00E-06

1.00E-05

1.00E-04

1.00E-03

1.00E-02

1.00E-01

GPUCell

Subspace size

Ab

solu

te E

rro

r

02/12/09

Page 19: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

19CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

Le GPU et le Cell peuvent améliorer la performance :

Cell : 10x, SP ou DP

GPU : 10-20x, SP ou DP

Proche du speed-up obtenu avec le solveur Minos

Impact sur le résultat: SP :

Erreur de 10-6 à 10-5 for GPU, 10-4 à 10-3 pour le Cell en SP Le nombre d’itérations varie fortement avec un cas sensible

DP : Résultat du Cell et du CPU identique GPU est proche du CPU avec une erreur de 10-15

Conclusion

02/12/09

Page 20: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

20CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

Nouveau modèle de GPU GT300/Fermi :

Mémoire ECC (Error-Correcting Code)

Respect complet de la norme IEEE-2008

Adressage mémoire 64 bits, cartes de 6Go prévues, ->1To!

Ajout de caches L1 et L2

Support natif du C++

Puissance en DP multipliée par 8x : ~125 GFLOPs -> ~1TFLOPs

Puissance SP multipliée par 2x : ~1TFLOPs -> 2TFLOPs

Evolutions futures

02/12/09

Page 21: 1 CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP 02/12/09 Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision Jérôme.

21CEA-Saclay/DEN/DANS/DM2S/SERMA/LLPR & LIFL/MAP

Utilisation de GPUs et du Cell pour des calculs de neutronique : performances and precision

Merci pour votre attention !

02/12/09