Télécharger la présentation
Publié parChrestien Favre Modifié depuis plus de 11 années
1
Lille, France – 02/12/2009 Journées CIGIL
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 02/12/09
2
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é 02/12/09
3
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
4
Caractéristiques principales(1)
Meilleure performance crête : ~1-10x (vs Nehalem 8 cores) Meilleure bande passante mémoire : ~1-20x 02/12/09
5
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
6
Algorithme de la méthode d’Arnoldi
Input : ANxN, v0 Output : VNxm, Hm+1xm, λ1, ..., λm, R1, ..., Rm> 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 02/12/09
7
Principe de la méthode ERAM
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 02/12/09
8
Méthode d’Arnoldi Orthogonolisation et calcul de vp dominante (Hilbert matrix)
02/12/09
9
Précision atteinte pour l’orthogonalisation
Arnoldi CGS : orthogonal basis 02/12/09
10
Précision atteinte pour l’orthogonalisation
Arnoldi CGS with reorthogonalization : orthogonal basis 02/12/09
11
Influence sur la valeur propre dominante calculée
Une itération de la méthode d’Arnoldi sur une matrice d’Hilbert d’ordre avec une taille de sous-espace de 8 : GPU proche du CPU Le Cell est x 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 02/12/09
12
ERAM Méthode d’Arnoldi itérée (Hilbert & DingDong matrices)
02/12/09
13
Impact sur le nombre d’itérations, SP (cas facile)
ERAM : Hilbert matrix, SP, tolerance ε= Tests on a Quadro GPU. 02/12/09
14
Impact sur le temps de calcul, SP (cas facile)
ERAM : Hilbert matrix in SP, ε= Speed-up = 8x with Quadro GPU 02/12/09
15
Impact sur le nombre d’itérations, DP (cas facile)
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 02/12/09
16
Impact sur le nombre d’itérations (cas sensible)
ERAM : DingDong matrix, SP , stop at ε= Tests on Tesla GPU. 02/12/09
17
Impact sur le temps de calcul, SP (cas sensible)
ERAM : DingDong matrix, SP, ε= Mean speed-up = 16x on Tesla 02/12/09
18
Impact sur la précision, SP (cas sensible)
ERAM : DingDong matrix, SP, ε= 10-8. 02/12/09
19
Conclusion 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 02/12/09
20
Evolutions futures 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 02/12/09
21
Merci pour votre attention !
Utilisation de GPUs et du Cell pour des calculs de neutronique : performances and precision Merci pour votre attention ! 02/12/09
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.