View
107
Download
4
Category
Preview:
Citation preview
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
Recommended