Cache L1
Transcription
Cache L1
Architectures PC Françoise Roch Plan Historique et évolution des architectures 32 bits Processeurs 64 bits Performances Architectures SMP (Symetric Multi Processing) 12/10/2004 2 IA-32 Un peu d’histoire L’IA-32 (partie32 bits de la série x86) date du début des années 80 ¾ ¾ ¾ ¾ Premier CPU Intel 16-bit : le 8086 créé en1978 Architecture 32 bit sur le 80386 (ou i386) co-processeur math. 80487 sur le 80486 Des évolutions importantes : Espace d’adressage N, cache « on chip » (80486) extensions SIMD, superscalaire(Pentium), CISC to RISC et opérations «Out of order»(Pentium Pro) floating point SIMD avec SSE et SSE2 (PentiumIII/IV) HPC sur IA-32 possible à partir du Pentium3 Le Pentium IV est aujourd’hui en compétition avec les meilleures architectures du HPC 12/10/2004 3 Architecture IA-32 Un jeu d’instructions CISC (Complex Instruction Set Computing) ¾ Des opérations complexes telles que «charger une valeur depuis la mémoire, ajouter au registre, et stocker le résultat dans le registre » en 1 instr. Machine Un grand nombre d’instructions assembler ¾ ¾ Depuis le Pentium Pro, translation d’instructions x86 en instructions (appelées µops) d’un jeu d’instructions simplifié type RISC Les µops sont stockées dans un « reorder buffer » pour traitement ultérieur, « dans le désordre » (ou plutôt dans l’ordre le plus propice à l’optimisation des performances globales) 12/10/2004 4 Quelques caractéristiques des architectures de PC 32 bits Marque AMD AMD Intel Intel Intel Proc. Athlon Athlon XP 3200+ Pentium3 Pentium4 Pentium4 Fréq. 1 GHz 2.2 GHz 450 à 1.2 GHz 2-3.06 GHz 3.4 GHz Bus (MHz) 200 à 266 2.1 Go/s 400 100 à 133 400-533 800 Cache L1 128 Ko 128 Ko 32 Ko 12 K µ op + 8Ko 12 K µ op + 8 Ko Cache L2 256 Ko 512 Ko 256 Ko 256 Ko – 512Ko 512 Ko Cache L3 - - - / 12/10/2004 - 1Mo 1 Mo 5 Pentium4 Fréquences d’horloge très élevée Cache L1 contient des instructions prédécodées Des opérations entières qui s’exécutent en ½ temps de cycles (Unité arithmétique entière et logique cadencée à 2 fois la fréquence interne du proc) Des opérations SIMD(Single Instruction Multiple Data) et des registres autorisant le calcul vectoriel 12/10/2004 6 Avant le SIMD, un moteur d’instruction FP basé sur une pile Pentium IV : un adressage des registres « à plat », autorisant le SIMD xmm0 ST(0) + ST(1) ST(2) ST(3) ST(4) xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 ST(5) ST(6) ST(7) 12/10/2004 80 bits 128 bits Chaque registre peut être partagé en plusieurs types de données Int ou FP Integer 8 à 128 bits Single (SSE) ou double (SSE2) FP Instructions SIMD peuvent opérer sur la 1ère ou 7 toutes les partitions du registre à la fois IA 32 Opérations SIMD sur des FP Exemple : addition de 2 vecteurs FP Simple précision X3 X2 X1 X0 xmm0 Y3 Y2 Y1 Y0 xmm1 + + + + X2+Y2 X1+Y1 X0+Y0 X3+Y3 xmm1 4 add FP simple précision en 1 seule instruction Performance crête : 2 DP-Flops / cycle 12/10/2004 8 Opérations Flottantes et SIMD # types de données autorisés dans les registres SSE 16x8 bit integer 8x16 bit 4x32 bit 2x64 bit Floating point 128 bit 4x32 bit 2x64 bit 12/10/2004 9 La technologie Hyper threading Principe : le système et les applications perçoivent 2 processeurs virtuels capables d’exécuter 2 ensembles de tâches simultanément Conséquence : le processeur exécute 2 séquences d’instructions simultanément et utilise une plus grande fraction des ressources 2 tâches se partagent les ressources d’1 CPU Efficace si les threads utilisent #unités fonctionnelles Inutile pour des codes utilisant intensivement les unités FP Remarque : l’HT n’accélère pas un thread seul N’augmente pas la quantité de ressources par CPU 12/10/2004 10 Xeon Versions optimisées des P2-3-4 pour architecture SMP Destiné aux serveurs Gros cache (cache L3 jusqu’à 2 Mo) Celeron Versions allégées des Pentium, pour machines bas de gamme Petit cache (128ko dans les dernières versions) Gère moins de slots pour les bus PCI 12/10/2004 11 Athlon Processeur 32 bit de chez AMD, concurrent du pentium (moins cher), même jeu d’instructions Fréquence d’horloge moins élevée que le Pentium4 Plus petit cache que le xeon, pas de L3 Support des instructions SSE2 Athlon MP : version serveur smp (pendant du xeon) 12/10/2004 12 Processeurs 64 bits 12/10/2004 13 Quelques caractéristiques des architectures de PC 64 bits Marque AMD Intel Intel Proc. Opteron 250 Itanium2 Nocona Fréq. 2.4 GHz 1.5 GHz 3.4 GHz Bus système Fonctionne à la Bus vitesse du proc. 400MHz + Technologie (6.4 Go/s) Hyper transport pt à pt - 6.4Go/s Bus 800 MHz Cache L1 128 Ko 32 Ko 16 Ko Cache L2 1 Mo 256 Ko 1 Mo Cache L3 - 6 Mo 12/10/2004 14 L’architecture IA64 Architecture EPIC(Explicit Parallel Instruction Set Computing), 64 bit, superscalaire Support du code x86 en mode émulé La grande différence avec ses concurrents: c’est le compilateur qui prend les décisions concernant les instructions qui peuvent s’exécuter en // sur les autres architectures, ce travail est effectué au niveau hard, via des circuits complexes 12/10/2004 15 L’IA64 Architecture EPIC (Explicitly Parallel Instruction Computing) Le processeur reçoit des paquets (bundles) d’instructions. Il essaie de les exécuter, autant que possible en parallèle, en fonction des unités disponibles I2 41 bits I1 I0 T 5 bits Le compilateur génère des Bundles de 3 instructions Et un Template T (champ « template ») Contient des informations sur le niveau de //isme : Type d’instruction, groupe d’instructions indépendantes Autorise seulement certaines combinaisons d’instructions 12/10/2004 16 Le Parallélisme d’instruction Itanium1/Itanium2 peut exécuter 2 bundles/cycle, soit un maximum de 6 instructions/cycle Seules certaines combinaisons d’instr. sont autorisées dans les bundles : par ex., 1 seule instr. flottante/bundle. Un « groupe » d’instructions est formé d’un ensemble d’instructions qui peuvent s’exécuter en parallèle, sans dépendance. C’est le compilateur qui détermine ces groupes d’instructions, le //isme est indiqué dans le code machine. Un grand nombre de registres pour éviter les contentions. 12/10/2004 17 L’Itanium2 Un nombre important de registres 128 registres flottants 64 registres de prédicats 128 Registres Généraux 8 Registres de branchements 128 registres d’applications 12/10/2004 18 L’Itanium2 L’Itanium2 à 2 unités FMA (a*x + b) Æ 4 flops/cycle Soit une puissance crête de 1.5*4=6 Gflops Pour la version 1.5MHz 12/10/2004 19 « Predication » Architecture Itanium Architecture traditionnelle Cmp a, b Cmp a, b pT, pF Jump NEQ then pT X=1 Jump END X=0 12/10/2004 else X=1 pF X=0 Le code correspondant à chacun des 2 chemins est routé vers 2 pipelines d’exécution Le chemin correspondant au prédicat valide sera conservé une fois la comparaison effectuée 20 Architecture AMD64 L’opteron Une évolution de l’architecture x86 Jeux d’instructions x86-64, compatible avec les instructions x86 Instructions SSE2 Le contrôleur mémoire Intégré au processeur, synchronisé sur sa vitesse d’horloge => latence peu élevée (80 ns) Technologie d’Hypertransport Sert à établir une interconnexion asynchrone rapide entre les différents composants d’une carte mère connexion hypertransport : constituée d’une paire de liens unidirectionnels bande passante maximale de 6.4 Go/s 12/10/2004 21 L’opteron Les pénalités dues aux défaut de cache sont relativement faibles. Sur les SMP, la mémoire peut être partagée de façon quasi transparente entre les procs via les liens hypertransport intégrés. Mais le système migre éventuellement les threads d’1 processeur à l’autre, donc pas de garantie sur la localité des accès mémoire Exécution «out-of-order» 12/10/2004 22 12/10/2004 23 12/10/2004 24 L’opteron 2 unités flottantes, mais pas de FMA 40 registres FP double précision (16 128bit et 8 MMX) 1 seule instruction SIMD par cycle 12/10/2004 25 Nocona : Processor 64 bit Intel Evolution du Xéon Registres 64 bit Doublement du débit mémoire (bus 800MHz) Instructions SSE3 (complex, mémoire, …) Hyperthreading Processeur 64 bit compatible 32 bit, Instructions « Extended Memory 64 Technology » 2.8 à 3.6 GHz 12/10/2004 26 PowerPC G5, 64 bit Fréquence : N 2GHz, mémoire max : 8 Go Cache L1 : 64 Ko, cache L2 : 512 Ko Jusqu’à 2 procs sur architecture Xserve Bus frontal à 1GHz, bande passante 8Go/s , 1 par proc + système d’interconnexion point à point vers les soussystèmes 2unités entières, 2 unités flottantes Superscalaire, prédiction de branchement Velocity Engine à 2 pipelines (exécution vectorielle) 2 unités FP double précision FMA, registres 128 bits dédiés 2 GHz x (2 x 2 opérations FP FMA) -> 8Gflops 12/10/2004 27 Compilateurs fortran Sur architectures 32 bit, jeu d’instruction IA32 : Gcc, g77 Intel Ifc ou ifort Portland Group pgf90 Absoft Sur architectures 64 bits, on est lié à un compilateur gcc Intel efc ou ifort sur itanium ou itanium2 Portland Group, Pathscale sur opteron IBM Xlf sur G5 12/10/2004 28 SPEC CPU 2000 Jeux de tests permettant de mesurer et comparer les performances en calcul intensif de différentes architectures calculs entiers (SpecINT) ou calculs flottants (SpecFp) SpecRate : evaluation des machines multiprocesseurs permettant d’estimer la scalabilité d’une architecture Publication sur le site www.spec.org 12/10/2004 29 SPEC 2000 SpecInt base SpecInt Specfp base Specfp P4, 3.4GHz Pas de L3 1342 1393 1303 1297 Xeon 3.2 L3 1Mo 1365 1415 1194 1202 Xeon 3.2 L3 2Mo 1532 1563 1338 1346 AthlonXp 3200+, 2.2 1044 1080 873 982 Athlon 64 FX 1623 2.4 GHz 1717 1595 1634 Ita2/HP 1.5 L3 6Mo 1312 1312 2161 2161 Opteron150 2.4 GHz 1369 1487 1591 1644 12/10/2004 30 Bande passante mémoire Bande passante maximum du Bus frontal = Vitesse d’horloge du Bus x Largeur du Bus Ex : Mémoire 3.2 GB/s 64 bit 400MHz 3.2 GHz 400MHz CPU 12/10/2004 Cache L1 Bus frontal 1 cycle Cache L2 Pénalités liées aux défaut de cache 31 Système à mémoire partagée Architectures SMP et NUMA Système à accès mémoire uniforme(UMA) Architectures SMP(Symmetric Multi-Processor) Temps d’accès à la mémoire identique Gestion de la cohérence des caches (les données vues par chaque processeur sont identiques) Systèmes à accès mémoire non-uniforme(NUMA) Architectures NUMA Temps d’accès à la mémoire ne sont pas uniformes Gestion de la cohérence des caches 12/10/2004 32 Architectures SMP Mémoire physiquement partagée Cache L1 CPU Cache L1 Bus frontal CPU Les processeurs communiquent via leur mémoire commune Contention au niveau du bus lorsque le nombre de processeurs augmente 12/10/2004 33 Architectures SMP Mémoire physiquement partagée CPU CPU Interconnexion via un crossbar rapide => meilleure scalabilité 12/10/2004 34 Architectures NUMA Mémoire physiquement distribuée mais logiquement partagée 12/10/2004 CPU CPU CPU CPU 35 Xeon Contrôleur mémoire externe Accès mémoire principale via un bus (64 bits, 800MHz) => Attention : risques de contention Gros caches => efficace sur les codes qui tiennent dans le cache 12/10/2004 36 Itanium2 Différentes architectures : Interconnexion via un bus 128 bits à 400 MHz, 6.4 Go/s, jusqu’à 4 CPUs Mêmes remarques que pour le xeon Ou bi-processeurs avec liens NUMA link (2 liens full duplex à 6.4 Go/s par bi-pros chez SGI) Bien mais attention à la localité mémoire 12/10/2004 37 Opteron Traffic entre le processor, la mémoire et les IOs via un « tunnel hypertransport » qui opère à la même vitesse d’horloge que le processor (largement supèrieur à la vitesse d’un bus) Chaque opteron à son propre chemin d’accès rapide à la mémoire => pour 2 procs, bande passante x 2 Jusqu’à 8 processeurs SMP 12/10/2004 38 SPEC Int 2000 SpecInt base SpecInt SpecIntbase SpecIntrate rate/ nCPUs /nCPUs Xeon 3.2 L3 1Mo 1365 1415 15.8 /1 28.1 /2 16.4 /1 29.3 /2 Xeon 3.2 L3 2Mo 1532 1563 17.8 /1 32.9 /2 18.1 /1 33.6 /2 Ita2/HP 1.5 L3 6Mo 1312 1312 16.0 /1 32.0 /2 63.4 /4 16.3 /1 32.5 /2 64.2 /4 Ita2/SGI 1.4 L3 3Mo 1078 __ 24.7 /2 49.2 /4 98.2 /8 __ 1515 16.0 /1 30.1 /2 57.2 /4 17.6 /1 33.7 /2 63.5 /4 Opteron/Sun 1379 2.4 GHz V40z 12/10/2004 39 SPEC FP 2000 Specfp base Specfp Specfp Base rate Specfp rate Xeon 3.2 L3 1Mo 1194 1202 13.8 /1 18.5 /2 13.9 /1 18.6 /2 Xeon 3.2 L3 2Mo 1338 1346 15.5 /1 22.0 /2 15.6/1 22.1 /2 Ita2/HP 1.5 L3 6Mo 2161 2161 25.1 /1 43.2 /2 65.6 /4 25.1 /1 43.2 /2 65.6 /4 Ita2/SGI 1.4 L3 3Mo 1931 1942 38.0 /2 75.2 /4 147 /8 38.3 /2 75.6 /4 148 /8 Opteron/Sun 1551 2.4 GHz V40z 1692 18.0 /1 33.9 /2 61.5 /4 19.6 /1 37.2 /2 70.0 /4 12/10/2004 40 Conclusion Des niveaux de performances comparables avec une petite longueur d’avance pour l’Itanium2 en calcul flottant L’architecture EPIC est la plus novatrice, mais aussi la plus chère Attention aux architectures mémoire sur les machines SMP L’architecture hypertransport, un atout pour l’opteron (« glueless processor ») 12/10/2004 41