420 likes | 618 Views
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.
E N D
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-2 Source : http://www.metz.supelec.fr/~vialle/course/TRS-2/Chapitre-01-note-SV-archi.pdf
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)
L’architecture DLXV-2 • Les composants : • Les registres vectoriels • Les unités fonctionnelles vectorielles • L’unité vectorielle chargement/rangement • Un ensemble de registres scalaires
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
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
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
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)
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
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.
Une pause pour des questions sur l'architecture vectorielle?
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
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
MCM – multi chip Modules Cray X1 – Module de calcul
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)
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
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
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
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
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
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)
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
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
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
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
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)
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
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
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)
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
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
Une pause pour les questions sur la vectorisatiopn "embarquée"?
Perspectives • L’avancée phénoménale des ordinateurs superscalaires • Le futur proche des machines vectorielles