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

Post on 03-Apr-2015

107 views 4 download

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

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

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é

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

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

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

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

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

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

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

02/12/09

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

Précision atteinte pour l’orthogonalisation

•Arnoldi CGS : orthogonal basis

02/12/09

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

Précision atteinte pour l’orthogonalisation

•Arnoldi CGS with reorthogonalization : orthogonal basis

02/12/09

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

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

ERAM

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

02/12/09

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

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

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

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

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

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

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

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

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