210 likes | 343 Views
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. Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision. Outline. Motivations
E N D
Jérôme Dubois, Serge Petiton, Christophe CalvinCEA Saclay – DEN/DANS/DM2S/SERMA/LLPRUniversity of Lille 1 – LIFL/MAP Lille, France – 02/12/2009Journées CIGIL Utilisation de GPUs et du Cell pour des calculs de neutronique : performances et précision
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é
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
Caractéristiques principales(1) • Meilleure performance crête : ~1-10x (vs Nehalem 8 cores) • Meilleure bande passante mémoire : ~1-20x
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
Algorithme de la méthode d’Arnoldi • Algorithme : • 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
Principe de la méthode ERAM • Contrainte: la taille de V estN x m • Solution : • Faire itérer la méthoded’Arnoldidans un plus petit sous-espace • Explicitly Restarted Arnoldi Method (ERAM) • Algorithme: • Tantque error > tolerance • Faire uneitérationd’Arnoldi • Si nécessaire, redémarrer la méthode avec un nouveau vecteur initial construit avec unecombinaison des vecteurs de Ritz calculésdansArnoldi
Méthode d’ArnoldiOrthogonolisation et calcul de vp dominante (Hilbert matrix)
Précision atteinte pour l’orthogonalisation Arnoldi CGS : orthogonal basis 02/12/09
Précision atteinte pour l’orthogonalisation Arnoldi CGS with reorthogonalization : orthogonal basis 02/12/09
Influence sur la valeur propre dominante calculée • Uneitération de la méthoded’Arnoldisurunematriced’Hilbertd’ordre 10240 avec unetaille de sous-espace de 8 : • GPU proche du CPU • Le Cell est500-600x moins précis que le GPU en SP • En DP, le Cell et le CPU calculent le mêmerésultat. Celui du GPU diffère de 4.10-15 02/12/09
ERAMMéthode d’Arnoldi itérée (Hilbert & DingDong matrices) 02/12/09
Impact sur le nombre d’itérations, SP (cas facile) ERAM : Hilbert matrix, SP, tolerance ε= 10-8. Tests on a Quadro GPU. 02/12/09
Impact sur le temps de calcul, SP (cas facile) ERAM : Hilbert matrix in SP, ε= 10-8. Speed-up = 8x with Quadro GPU 02/12/09
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 3.10-15 02/12/09
Impact sur le nombre d’itérations (cas sensible) ERAM : DingDong matrix, SP , stop at ε= 10-8. Tests on Tesla GPU. 02/12/09
Impact sur le temps de calcul, SP (cas sensible) ERAM : DingDong matrix, SP, ε= 10-8. Mean speed-up = 16x on Tesla 02/12/09
Impact sur la précision, SP (cas sensible) ERAM : DingDong matrix, SP, ε= 10-8. 02/12/09
Conclusion • Le GPU et le Cell peuventaméliorer la performance : • Cell : 10x, SP ouDP • GPU : 10-20x, SP ouDP • Proche du speed-up obtenu avec le solveurMinos • Impact sur le résultat: • SP : • Erreur de 10-6à 10-5 for GPU, 10-4à 10-3pour le Cell en SP • Le nombred’itérationsvariefortement avec un cas sensible • DP : • Résultat du Cell et du CPU identique • GPU estproche du CPU avec uneerreur de 10-15 02/12/09
Evolutions futures • Nouveau modèle de GPU GT300/Fermi : • Mémoire ECC (Error-CorrectingCode) • Respect complet de la norme IEEE-2008 • Adressagemé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
Merci pour votre attention ! Utilisation de GPUs et du Cell pour des calculs de neutronique : performances and precision 02/12/09