1 / 41

Le Calcul Vectoriel en 2005

Le Calcul Vectoriel en 2005. Boisson François Bonifacio Pierre-Antoine Tuchon Olivier. Plan. Historique L'architecture vectorielle Les supercalculateurs Le calcul vectoriel "embarqué" Conclusion : l'avenir des machines vectorielles. Historique-1. Historique-2.

Download Presentation

Le Calcul Vectoriel en 2005

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Le Calcul Vectoriel en 2005 Boisson François Bonifacio Pierre-Antoine Tuchon Olivier

  2. Plan • Historique • L'architecture vectorielle • Les supercalculateurs • Le calcul vectoriel "embarqué" • Conclusion : l'avenir des machines vectorielles

  3. Historique-1

  4. Historique-2 Source : http://www.metz.supelec.fr/~vialle/course/TRS-2/Chapitre-01-note-SV-archi.pdf

  5. Les processeurs vectoriels • Les domaines d’applications • Pourquoi préférer l'exploitation vectorielle au parallélisme? • Comment ça marche ? • Le concept • L’architecture vectorielle de base ( DLXV)

  6. L’architecture DLXV-1

  7. L’architecture DLXV-2 • Les composants : • Les registres vectoriels • Les unités fonctionnelles vectorielles • L’unité vectorielle chargement/rangement • Un ensemble de registres scalaires

  8. Principe d’exécution et Chaînage • Un exemple très usité : • Y(i) = a*X(i) + Y(i) • Code DLX • Code DLXV • Le Chaînage • Comparaison des temps

  9. Code DLX LD F0 , a ADDI R4,Rx,#512 ; dernière adresse à charger Boucle:LD F2 , 0(Rx) ; chargement X(i) MULTD F2 , F0,F2 ; a x X(i) LD F4 , 0(Ry) ; chargement Y(i) ADDD F4 , F2, F4 ; a x X(i) + Y(i) SD F4 , 0(Ry) ; rangement dans Y(i) ADDI Rx , Rx,#8 ; incrémentation de l’index de X ADDI Ry , Ry,#8 ; incrémentation de l’index de Y SUB R20 , R4,Rx ; calcul de la limite BNZ R20 , Boucle ; test de fin

  10. Code DLXV LD F0 , a ; chargement du scalaire a LV V1 , Rx ; chargement du vecteur X MULTSV V2 , F0 , V1 ; mult. vecteur-scalaire LV V3 , Ry ; chargement du vecteur Y ADDV V4 , V2 , V3 ; addition SV Ry , V4 ; rangement du résultat

  11. Chaînage et gain de temps-1 • Concept • Exemple • MULTV V1,V2,V3 // V1 <- V2*V3 • ADDV V4,V1,V5 // V4 <- V1+V5 • Calcul du temps : • Longueur du vecteur + Temps démarrage(ADDV) + Temps démarrage(MULTV)

  12. Chaînage et gain de temps-2

  13. Chaînage et gain de temps-3 • Comparaison • Soit un vecteur de N élément, Tmult le temps de démarrage de l’unité vectorielle de multiplication et Tadd celui de l’unité vectorielle d’addition. • Sans chaînage : • T = ( Tmult + N) + (Tadd + N) • Lim(T) -> 2*N • Avec Chainage : • Tc = Tm + Tadd + N • Lim(Tc) -> N

  14. Chaînage et gain de temps-4 • Puissance crête : • Pcrête = (2* 103) / C • Où C est le cycle de base de la machine en nanoseconde.

  15. Une pause pour des questions sur l'architecture vectorielle?

  16. Les supercalculateurs Avant Cray J90 Cray Y-MP T90 Cray SV-1 Fujitsu VPP 300/700 Fujitsu VPP 5000 Hitachi S-3800 Nec SX-4 Nex SX-5 Nec SX-6/7 Aujourd'hui • La série CRAY X1 • La série Nec SX

  17. Cray X1 - Architecture Conjugaison des savoir-faire vectorisation (SV1) parallélisme (T3E) Extensibilité Compute module => de 1 à 1024 Réseau interconnexion Performances CPU Calcul : 18 GFlops Interconnexion : 34 GB/s Mémoire distribué partagée Réseau interconnexion 51GB/s par module Maximum : 1024 compute module 8 processeurs / module 18 GFlops / processeur Puissance totale : 147 TFlops

  18. MCM – multi chip Modules Cray X1 – Module de calcul

  19. MSP (Multi Streaming Processor) Cray X1 : 1MSP par MCM Cray X1E : 2 MSP par MCM Cray X1 – CPU 64 bits à 800 Mhz ( X1) ou 1,13Ghz ( X1E) 4 unités de calcul SSP par MSP 1 SSP = 2 unités de calcul vectoriel pipeline + 1 unité de calcul scalaire 2 MB de mémoire cache 2 opérations par cycle 12,8 GFlops (X1) ou 18 GFlops (X1E)

  20. 16 ou 32 GB de mémoire avec contrôle d'erreur • Cohérence de cache par protocole hardware • Latence de 5 microsecondes entre CPU • 200 GB/s de bande passante pour le module • 34 GB/s de bande passante par processeur • 32 ports de 1,6 GB/s vers le réseau d'interconnexion Cray X1 – Node

  21. Cray X1 – réseau d'interconnexion Interconnexion 8 nœuds pair  pair / impair  impair 1 à 4  routeur ; 5 à 8  routeur => Interconnexion en 2 hops Interconnexion 128 nœuds 1 sommet => 1 grappe de 8 1 arête => 1 routeur => Interconnexion en 4 ou 5 hops

  22. Cray X1 – Software • L'operating system • UNICOS/mp • Basé du système IRIX 6.5 avec extensions • Commandes utilisateur de type UNIX avec support de X Windows • Extensions • Concept de "parfum" attribut attaché au processus et aux nœuds, il permet de déterminer une affinité pour l'allocation de ressource mémoire ou de CPU • Mode MSP ou SSP pour le fonctionnement d'un programme • Les outils de développement et de mise au point • Fortran • C • C++ • Bibliothèques MPI , SHMEM , OpenMP

  23. Cray X1 - performances

  24. Cray - Roadmap

  25. Unité vectorielle • Effectue des opérations de masquage • Vectorisation des instructions conditionnelles • Unité scalaire • Décodage et exécution de 4 instructions/cycle • Prédiction de branchement (256 entrées-2 bits) • Exécution spéculative • Exécution en ordre décalé Nec SX8 Architecture • 8 Processeurs par node • Une unité vectorielle pipeline • Une unité de calcul superscalaire • Mémoire • Mémoire distribuée partagée • 16 GB par CPU • Réseau d'interconnexion • CrossBar 128 x 128 sur fibres optiques • 16 GB/s par CPU

  26. Maximum => 4 096 CPU Puissance => 65 TFlops Nec SX8 - Performances 16 GFlops par CPU 8 CPU par node Maximum de 512 Nodes Mémoire => 128 GB par node Bande passante => 64 GB/s par CPU Switch Crossbar => 16 GB/s par node

  27. Une pause pour des questions sur les supercalculateurs?

  28. Vectoriel embarqué • L’émergence du multimédia à partir de 1995 • Jeux vidéos • Son • Images • Vidéos • Réponse des grands constructeurs • MMX, SSE{1,2,3} (Intel) • 3DNow! (AMD) • Altivec (Apple Computer, IBM, Motorola)

  29. Vectoriel embarqué - MMX • Technologie MMX (Intel) • 4 nouveaux types de données • 8 registres de 64 bits chacun (registres MMX) • Utilisation de la technique SIMD • 57 nouvelles instructions

  30. Vectoriel embarqué - MMX • Types de données MMX • Le MMX ne manipule que des entiers • Regroupement des données de même taille par paquets : • Paquets d’octets : 8 * 8 bits • Paquets de mots : 4 * 16 bits • Paquets de mots doubles : 2 * 32 bits • Paquets de mots quadruple : 1 * 64 bits

  31. Vectoriel embarqué - MMX • Registres MMX • 8 registres de 64 bits pour les données MMX • Utilisation spéciale des registres dédiés pour les opérations flottantes • Mutuellement exclusives • Commutation de tâches

  32. Vectoriel embarqué - MMX • SIMD • Niveau de parallélisme sur les opérations MMX pouvant aller de 1 à 8 selon le type de données • 1 avec des mots quadrules • 2 avec des mots doubles • 4 avec des mots • 8 avec des octets

  33. Vectoriel embarqué - MMX • Instructions • 57 nouvelles instrutions • Transfert de données • Conversions de types de données • Logiques • Arithmétiques • Comparaisons • Décalages • Contrôle de l’état MMX (EMMS)

  34. Vectoriel embarqué - Altivec • Technologie Altivec (Apple, IBM, Motorola) • 4 types de données • 32 registres de 128 bits chacun • Utilisation de la technique SIMD • 162 nouvelles instructions

  35. Vectoriel embarqué - Altivec • Types de données Altivec • Entiers, Réels • Regroupement des données de même taille par paquets : • Entiers : 16 * 8 bits • Entiers : 8 * 16 bits • Entiers : 4 * 32 bits • Réels : 4 * 32 bits

  36. Vectoriel embarqué - Altivec • Registres Altivec • 32 registres de 128 bits pour les données MMX • Registres physiquement différents des autres registres (entiers 32 bits et flottants 64 bits)

  37. Vectoriel embarqué - Autres • 3Dnow ! • Même principe que le MMX sauf : • 2 nombres par registres maximum • Addition / Multiplication de deux nombres dans un même registre • SSE1 (Streaming SIMD Extensions) • 8 registres (physiquement différent) de 128 bits : 4 réels de 32 bits uniquement • Pour le calcul des entiers : registre MMX

  38. Vectoriel embarqué - Autres • SSE2 • 8 registres de 128 bits • gère les entiers, donc plus de registres MMX • SSE3 • Possibilité de travailler « horizontalement » sur un registre

  39. Une pause pour les questions sur la vectorisatiopn "embarquée"?

  40. Perspectives • L’avancée phénoménale des ordinateurs superscalaires • Le futur proche des machines vectorielles

  41. Merci pour votre attention

More Related