Utilisation de Jacket pour diminuer le temps de calcul de
Transcription
Utilisation de Jacket pour diminuer le temps de calcul de
Utilisation de Jacket pour diminuer le temps de calcul de programmes MATLAB Alexandre Desfossés Foucault Université de Montréal Département de mathématiques et statistiques Octobre 2012 A. Desfossés Utilisation de Jacket pour diminuer le temps de calcul de programm Plan de la présentation 1 C’est quoi Jacket ? 2 Comment on s’en sert au DMS ? 3 Accélération des opérations matricielles 1 2 3 4 Exécution de plusieurs opérations indépendantes en parallèle 1 2 5 Exemples de Base Résolution d’une EDP Simulation de feux de forêt Exemples de base Application à l’homogénéisation d’une EDP Conclusion A. Desfossés Utilisation de Jacket pour diminuer le temps de calcul de programm C’est quoi Jacket ? 1 Add-on de matlab 2 “Nouvelles” cartes graphiques avec beaucoup de processeurs 3 Calculs sur le GPU au lieu de sur le CPU 4 http://www.accelereyes.com/jacket_tour?idx=2 A. Desfossés Utilisation de Jacket pour diminuer le temps de calcul de programm Comment on s’en sert au DMS ? 1 Ordinateur avec Jacket installé au labomat : lionceau 2 Path de jacket :/local/jacket-2.0/jacket/engine/ 3 Pour tester que ça marche : ginfo A. Desfossés Utilisation de Jacket pour diminuer le temps de calcul de programm GINFO Jacket v2.0 (build b71ce48) by AccelerEyes (64-bit Linux) A newer version of Jacket is available. You’re currently running Jacket 2.0, please consider updating. Visit http://www.accelereyes.com/download_jacket License Type : Designated Computer (/local/jacket-2.0/jacket/engine/jlicense.dat) Addons : none CUDA toolkit 4.0, driver 295.40 GPU1 GeForce GTX 480, 1536 MB, Compute 2.0 (single,double) Display Device : GPU0 GeForce GTX 480 Memory Usage : 1309 MB free (1536 MB total) A. Desfossés Utilisation de Jacket pour diminuer le temps de calcul de programm Accélération des opérations matricielles Alexandre, montre le fichier JacketOperationsMatricielles.m Temps de calcul JACKET vs CPU pour la multiplication matricielle 0.25 Jacket CPU 0.2 Temps de calcul 1 0.15 0.1 0.05 0 0 500 Taille A. Desfossés 1000 1500 des matrices Utilisation de Jacket pour diminuer le temps de calcul de programm Accélération des opérations matricielles 1 Autres exemples http://wiki.accelereyes.com/wiki/index.php/Jacke 2 http://wiki.accelereyes.com/wiki/index.php/Jacke 3 Remarque : “warm-up” de Jacket A. Desfossés Utilisation de Jacket pour diminuer le temps de calcul de programm Résolution d’une EDP 1 Résolution de φt + k∇φk = 0 2 Sans Jacket : 9.0598e+00 vs Avec Jacket : 8.7827e-01 pour 1281x1281 points 3 Sans Jacket : 1.0066e-01 vs Avec Jacket : 4.2761e-01 pour 161x161 points 4 Ça vaut la peine si le nombre de points dans le domaine est assez élevé A. Desfossés Utilisation de Jacket pour diminuer le temps de calcul de programm Simulation de feux de forêt 1 Même genre d’EDP que précédemment 2 Plusieurs centaines de ligne de code, mais changements mineurs pour faire tourner les calculs sur le GPU 3 http://wiki.accelereyes.com/wiki/index.php/Jacke 4 Avec Jacket : 9.8 secondes 5 Sans Jacket : 19.2 secondes (1200x1200 points) 6 CPU plus rapide si 300x300 A. Desfossés Utilisation de Jacket pour diminuer le temps de calcul de programm Exécution de plusieurs opérations indépendentes en parallèle 1 boucle GFOR 2 Utiliser si les itérations sont indépendantes les unes des autres 3 Exemple 1 : Résoudre Ax = pb pour plusieurs valeurs du scalaire p 4 Voir fichier JacketGFOR A. Desfossés Utilisation de Jacket pour diminuer le temps de calcul de programm Application à l’homogénéisation d’une EDP de type Hamilton-Jacobi 1 Problème : résoudre wt + H(∇w + p, x) = 0 pour plusieurs valeurs de p 2 Sans GFOR : 83.1692 secondes 3 Avec GFOR : 26.9336 secondes A. Desfossés Utilisation de Jacket pour diminuer le temps de calcul de programm Conclusion 1 Effort minimal pour “Jacketizer” le code 2 Bons gains en temps de calcul A. Desfossés Utilisation de Jacket pour diminuer le temps de calcul de programm