La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Principes généraux - Architectures.

Présentations similaires


Présentation au sujet: "17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Principes généraux - Architectures."— Transcription de la présentation:

1 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Principes généraux - Architectures

2 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Optimisation séquentielle Principes généraux Architecture des processeurs, évolution les 30 dernières années Architecture de la mémoire Quelques techniques doptimisations Méthodologie proposée Optimisation du compilateur Timing et profiling Quelques méthodes doptimisation manuelle

3 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Principes Généraux Architecture des processeurs Augmenter le vitesse dhorloge des processeurs Évolution ces 30 dernières années Techniques de micro-architecture permettant daugmenter le nombre dinstructions par cycle Architecture de la mémoire Mémoire hiérarchique (registre, cache,…) Mémoire virtuelle et Paging Optimisation des accès Quelques techniques doptimisation

4 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture des processeurs Fréquence dhorloge La fréquence de lhorloge détermine la durée dun cycle Chaque opération utilise un certain nombre de cycles La fréquence dhorloge nest pas le seul critère de performance La fréquence dhorloge est fonction de : La technologie des semi-conducteurs Le packaging Les circuits …

5 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Comment faire des processeurs plus rapides? Augmenter la fréquence dhorloge (limites techniques, solution coûteuse) Permettre lexécution simultanée de plusieurs instructions Exécution en parallèle (duplication de composants hardware, coûteux) Pipelining (pas de duplication de composants hardware Améliorer les accès mémoire Mémoire hiérarchique Optimisation des accès

6 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Latence : Communications processeur -DRAM Performance Time 1 CPU DRAM Moores Law μProc 60%/année DRAM 7%/année Processeur-Mémoire Performance 50%/année

7 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Quest ce que le software Pipelining? Parallélisme dinstructions Une opération sexécute en plusieurs étapes indépendantes par des éléments différents du processeur Le pipelining consiste à exécuter simultanément des étapes différentes d opérations différentes Exemple: opération seffectuant en 5 étapes Charge linstruction Charge les opérandes ExécuteDécodeEcriture

8 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Software Pipelining (suite) 3 instructions simultanées dans le pipe Décode Charge opérandes ExécuteEcriture Charge linstruction Décode Charge linstruction Charge linstruction EcritureExécute Charge opérandes Exécute Charge opérandes DécodeEcriture 3 instructions en parallèle en 7 cycles (15 cycles en séquentiel)

9 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Software Pipelining (suite) Sans pipelining résultat tous les deux cycles pour un processeur 195Mhz: 97Mflops Avec pipelining Après linitialisation du pipe: 1 résultat par cycle pour un processeur 195Nhz: 195Mflops En général, lunrolling des boucles améliore le parallélisme dinstructions do i=1, t(i)=t(i)*t(i) enddo do i=1, ,2 t(i)=t(i)*t(i t(i+1)=t(i+1)*t(i+1) enddo

10 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Pipelining: accès mémoire Laccès mémoire est une fonction coûteuse en temps qui prend plusieurs cycles. Utiliser le procédé de pipelining pour le superposer à dautres fonctions du processeur Loptimisation du compilateur peut réordonner les instructions pour favoriser ce procédé

11 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Familles de processeurs 4 Grandes familles de processeurs (30 dernières années) CISC (1970s): Complex Instruction Set Computer Processeur Vectoriel RISC: Reduced Instruction Set Computer VLIW: Very long Instruction Word

12 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture CISC Objectif: Minimiser le nombre dinstructions assembleur permettant de traduire les constructions des langages évolués. Introduit dans les années 70 Propriétés: Nombreux types dinstructions et dinstructions daccès mémoire Longueur des instructions variables Difficulté dutiliser la technique de pipeline Exemples Vax11/780 Pentium Pro

13 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture RISC Objectif: Processeur placé sur un seul chip Diminuer le nombre de cycles par instruction (CPI) Simplifier la gestion du séquenceur et du pipeline Introduit dans les années 80 Propriétés: Jeu dinstructions réduit et longueur de ces instructions fixe Favorise le pipeline Incorpore: Load/Store set architecture Branch prediction Superscalar processing Grand nombre de registres: limite les accès à la mémoire Exemples : superscalaire RISC processeurs MIPS R10K/R12K/R14K/R16K, Alpha 21264, SUN UltraSparc-3, IBM Power3/4

14 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture Superscalaire Multiplie les unités fonctionnelles Gestion des instructions Statique (in-order): exécutées dans lordre du code machine Dynamique (out-of-order):le hardware modifie lordre des instructions pour favoriser le parallélisme (faible nombre dinstructions) Exécution spéculative: exécution avant que le contrôle des dépendances soient effectués Out-of-order et speculative instruction tendent à améliorer le parallélisme dinstruction

15 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Vers les architectures VLIW Obstacles à la performance sur les systèmes superscalaires « standard »: Les branchements Les mauvaises prédictions Les petites branches (limite le parallélisme) La latence de la mémoire Utilise plus dun cycle dhorloge Lextraction du parallélisme des instructions Le compilateur « sérialise » le code, dont le parallélisme intrinsèque doit être redécouvert dynamiquement par le processeur

16 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture VLIW (Very Long Instruction Word) Objectif: Le processeur exécute de longues instructions contenant plusieurs instructions élémentaires Propriétes Format des instructions: Instructions de grande taille Paquet dinstructions contenant explicitement son parallélisme Permet au compilateur de passer des informations sur le parallélisme du code au hardware (EPIC) Exemple: Intel-HP IA-64 Itanium et Itanium2

17 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch EPIC ( Explicitly Parallel Instruction Computing) Implémentation dune architecture VLIW Format des instructions: regroupement en « bundle » de 128bits composé de 3 instructions de 41 bits (pas forcément indépendantes) Template indiquant la possibilité de parallélisation de ces instructions et un chaînage possible des « bundle » Instruction 1Instruction 2 Instruction 3template 41bits 5bits 128 bits

18 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch É volutions récentes des architectures (années 90) Adressage 64 bits Optimisations: Branchement conditionnel – exécution conditionnelle De lutilisation des caches: hardware prefetching Faster integer and floating-point operations Réduction du coût des branchements par lutilisation de « dynamic hardware prediction » …

19 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture Pentium4

20 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture Opteron

21 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture 64 bits: Motivations Des applications nécessitant des ressources accrues Data Base, Data mining,… Calcul scientifique, simulation, grid computing Multi-média:son, vidéo Calcul en flottants plus efficace en 64 bits (SSE) Capacité dadressage accrue:

22 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture 64 bits PA-RISC: serveurs HP Power : gros serveurs IBM AMD64 : début 2000 Intel Itanium : début 2000

23 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture IA-64 Concept EPIC: Explicit Parallel Instruction Computing Parallélisme au niveau des instructions Concept des instructions « bundle » (EPIC) Information sur le parallélisme fournie par le compilateur Grand nombre de registres 128 flottants, 128généraux, 64 prédicats, Instruction load/Store Concept d «instruction groups » Ensemble dinstructions indépendantes Nombre illimité dinstructions Utilisation maximale des ressources

24 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Autres apports de IA-64 Prédiction de branchement: différentes parties du branchement sont naturellement //, traitées par le concept EPIC Spéculative load: découpée en 2 parties 1ère partie: initialisation du load dans le cache 2ème partie: recherche de la donnée En cas dexception, un « flag » est généré et récupéré dans la 2ème partie Augmentation du nombre de registres Les branchements et les « load » exécutés à tort apportent une pénalité inférieure au gain de temps généré par le parallélisme

25 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture IA-64 Implications Logicielles: compilateur Rôle dominant dans les performances de lapplication Les optimisations standards dun compilateur Un compilateur pour Itanium doit: Maximiser le parallélisme au niveau des instructions (data speculation, template et bundle,instruction group,…) Minimiser les effets de latence mémoire (predication, speculation, prefetching,…)

26 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture AMD64 (x86_64) Première présentation officielle: octobre 2001 Commercialisation: Opteron Avril 2003/ Athlon64 septembre 2003 Nouveau jeu dinstructions (ABI) 64 bits Support X86 32 bits en natif Spécifications publiques:

27 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture AMD 64 (x86_64) Compatibilité avec le standard 32bits Intel (compatibilité avec les instructions x86) Double le nombre de registre généraux (8 à 16), Inclut le contrôleur mémoire dans la puce diminue la latence des accès mémoire de 30% (~80 ns) Adressage indirect ( évite la gestion longue des nombres à 64bits)

28 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Conclusion : architectures 64 bits AMD64: É volution en douceur Pas de rupture avec x86 Satisfait le client aujourdhui Itanium 2 : nouvelle architecture favorisant le parallélisme Rôle important du compilateur Pas directement compatible avec IA-32, émulateur permettant de transformer un jeu dinstructions IA- 32 en jeu dinstruction IA-64 Abandon progressif des restrictions de X86 Investissement à long terme, architecture plus efficace dans le futur????

29 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Conclusion : architectures 64 bits Migration logicielle Investissement logiciel important pour une conversion à une architecture différente Une application 32 bits ne sexécute pas forcément plus/aussi vite sur une architecture 64 bits AMD et INTEL ne sont pas les seuls à proposer des architectures 64bits (SUN, APPLE,…) SUN commercialise aussi des serveurs avec des processeurs AMD64

30 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Technologies des mémoires Principalement deux types à base de semi-conducteur DRAM (Dynamic Random Acess Memory): chaque bit est représenté par une charge électrique qui doit être rafraîchie à chaque lecture/écriture. SRAM (Static Random Access Memory): retient ses données aussi longtemps quil y a du courant Temps dun cycle SRAM de 8 à 16 fois plus rapide quun cycle de DRAM Coût de la mémoire SRAM de 8 à 16 fois plus élevé que la mémoire DRAM Solution le plus couramment choisie: De 1 à 3 niveaux de SRAM en mémoire cache La mémoire principale en DRAM La mémoire virtuelle sur des disques

31 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Accès Mémoire Mémoire hiérarchique Registres Caches Mémoire Virtuelle Organisation des caches Optimisation des accès mémoire Outils danalyse identifiant les problèmes de cache Quelques exemples

32 21-25 Octobre 2005 Formation Continue – CNRS Laurence Viry Registres 1 ou plusieurs caches* RAM : mémoire primaire Disques: mémoire secondaire CD,bande, … : mémoire tertiaire vitesse Taille Mémoire hiérarchique *: les caches peuvent être organisés de façon hiérarchique

33 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Organisation des caches Le cache est divisée en lignes de cache de n mots Direct-Mapped Cache Chaque adresse mémoire est associée à une ligne de cache Fully Associative Cache Chaque adresse correspond à nimporte quelle ligne de cache N-way set-associative Cache (2-way et 4-Way) Une adresse a une alternative de N lignes de cache Instruction Cache

34 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Cache Localité temporaire et spatiale des données Cache Hit Fournit la donnée demandée à partir du cache Cache miss Récupère la donnée dans la mémoire principale La stocke dans le cache Fournit la donnée demandée à partir du cache

35 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Cache thrashing parameter (max=1024*1024) dimension a(max),b(max),c(max),d(max) …… do i=1,max a(i)=b(i) + c(i)*d(i) enndo Difficultés Les vecteurs sont alloués de façon contigue Chaque vecteur à une taille de 4MB (taille du cache secondaire) Deux méthodes pour corriger ce problème Redimensionner les vecteurs Introduire des variables entre les tableaux pour décaler les adresses

36 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Mémoire Virtuelle Dernière couche de la hiérarchie mémoire Registres Cache L1 … Cache LN Mémoire principale SWAP – disque Chaque programme utilise un espace dadressage logique en correspondance avec ladressage physique pour laccès aux données Une page est le plus petit espace mémoire contigüe alloué à un programme.

37 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Pourquoi la mémoire virtuelle Allocation mémoire Espace mémoire divisé en pages pas forcément contiguës Simplifie lallocation mémoire associé à un processus Code relocation Map des adresses logiques identiques à chaque run Pagination Transfert des pages de la mémoire principale au disque en fonction de lutilisation Disque dernier niveau de la hiérarchie mémoire (swap)

38 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Mémoire Virtuelle : Page Les transferts de la mémoire virtuelle à la mémoire physique se font par pages données Process Region Table Page Table Virtual Translation Physical Address Virtual address Location 1000

39 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch TLB (Translation Lookaside Buffer) TLB : Cache contenant les informations nécessaires aux translations « adresse virtuelle – adresse physique » Réduit le coût des références mémoire Taille du TLB limité TLB misses: Ladresse nest pas dans le TLB Chercher l'information dans une page en mémoire La page contenant la donnée est sur disque, générer une nouvelle page en mémoire

40 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Page Faults Scénario générant un page fault Il n'existe pas de table concernant la page La page a été restockée sur disque Chaque programme génère des "page fault" Beaucoup de "page faults" Mémoire partagée par plusieurs processus Mémoire requise supérieure à la mémoire réelle disponible

41 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture Alpha Architecture RISC Software Pipelining Mémoire Hiérarchique (registre, caches,mémoire principale) Système de prédiction de branchement Prefetching Architecture Super-Scalaire Modification de lordre de lexécution des instructions Exécution spéculative … Optimisation du parallélisme dinstructions

42 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Alpha Architecture Super-scalaire 4 chargements dinstruction par cycle 6 instructions par cycle 4 instructions entières 2 instructions en virgule flottante 1 unité non bloquante Load/Store 4 unités fonctionnelles entières 64 bits 1 unité fonctionnelle addition virgule flottante 32/64 bits 1 unité fonctionnelle multiplication virgule flottante 32/64 bits unité fonctionnelle SQRT en virgule flottante prefetch: charge les données dans le cache avant leur utilisation déplacement conditionnel remplace les branchements à lintérieur des boucles

43 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Mémoire hiérarchique ES45 (EV68) Registres Le processeur utilise uniquement les données dans les registres Temps daccès: 2ns Deux niveaux de caches (sur certaines machines 3 niveaux) Cache primaire (L1) Accès par bloc (ligne de cache): 32 bytes Taille: 64KB - Temps daccès: 2 à 3 cycles Cache secondaire (L2) Accès par bloc : 128 bytes Taille: 16Mb Temps daccès : 10 à 15 cycles Mémoire principale ( taille 4GB/proc, latence: 220ns )

44 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Le processeur Itanium2 dIntel Architecture Itanium2 : Quatrième génération de processeurs 64 bit dIntel : Itanium2 (Madison9M) EPIC: Explicit Parallel Instruction Computing Fréquence : 1.5 Ghz Puissance crête : 6 Gflops/s 1500 MHz * 2 madd/cycle 6 GFLOPS Intel Itanium2 : L1I : 16ko; 64o/line ; 4 way L1D : write through; 16ko; 1/- cycle; 64o/line ; 4 way ; (2ld&2st)/cycle L2U : write back; 256ko; 5/6cycle; 128o/line; 8 way; (4ldf) | (2ldf[p]&2stf) L3U : write back; 4Mo; 12/13cycle; 128o/line ; 24 way ; 48Go/s Memory Front Side Bus (FSB) : 128o/line ; 6.4 Go/s

45 21-25 Octobre 2005 Formation Continue – CNRS Laurence Viry 128 FP Registers 1 ko 128 Integer Registers 1 ko L1D cache 16 ko L2U cache 256 ko L3U cache 4 Mo 32 Go/s 16 Go/s 32 Go/s 6.4 Go/s 2 cycles 5 cycles 12 cycles 5+1 cycles 12+1cycles 16 Go/s Altix: 145+ ns Le processeurs Itanium2 ® d INTEL ® Debits et latences des accès mémoire

46 || Formation Continue – CNRS Laurence Viry 21 – 25 Octobre 2005 Silicon Process 180 nm 130 nm 90 nm 2002 Itanium ® 2 (McKinley) Mhz, 3.6 Gflops, 1.5 Mo L3 cache - 1 GHz, 4Gflops, 3 Mo L3 Cache) Itanium ® 2 (McKinley) Mhz, 3.6 Gflops, 1.5 Mo L3 cache - 1 GHz, 4Gflops, 3 Mo L3 Cache) 4Gflops Max. Le processeurs Itanium2 ® d INTEL ® : Roadmap 2005 Montecito (Dual Core on a Die) Each Core (>=2 GHz, >=8Gflops, 12Mo L3 Cache) 12Mo L3 Cache)Montecito (Dual Core on a Die) Each Core (>=2 GHz, >=8Gflops, 12Mo L3 Cache) 12Mo L3 Cache) >16Gflops Low Power Montecito Dual Core Processor Follow-on Low Power Montecito Dual Core Processor Follow-on 2003 Itanium ® 2 (Madison) GHz, 6Gflops, 6 Mo L3 Cache Ghz, 5.2 Gflops, 3 Mo L3 cache Itanium ® 2 (Madison) GHz, 6Gflops, 6 Mo L3 Cache Ghz, 5.2 Gflops, 3 Mo L3 cache >5Gflops Max. Low Power Itanium ® 2 (Deerfield) GHz, 4Gflops, 1.5Mo L3 Cache 62 Watts Ghz, 4.6 Gflops, 1.5/3 Mo L3 cache Low Power Itanium ® 2 (Deerfield) GHz, 4Gflops, 1.5Mo L3 Cache 62 Watts Ghz, 4.6 Gflops, 1.5/3 Mo L3 cache Itanium ® 2 (Madison 9M) -1.6 GHz, 6.4Gflops, 6/9 Mo L3 Cache Ghz, 6 Gflops, 4 Mo L3 cache Itanium ® 2 (Madison 9M) -1.6 GHz, 6.4Gflops, 6/9 Mo L3 Cache Ghz, 6 Gflops, 4 Mo L3 cache Fin Gflops Low Power Itanium ® 2 Deerfield+ Processor Follow-on Low Power Itanium ® 2 Deerfield+ Processor Follow-on …

47 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Power5 (IBM) Processeur Dual core Interface mémoire intégrée Fréquence dhorloge max 1.9 GHz 4 flops/cycle SMT : Simultaneous Multi Threading L1I: 64 Ko ; 2 way L1D : 32 Ko ; 4 way L2 : 1.9 Mo ; 128o line; 10 way L3 off chip : 36 Mo ; 256o line; 12 way

48 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture du processeur power5

49 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch POWER4 / POWER5

50 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Achitecture opteron dAMD Architecture Opteron : Première génération de processeur 64 bit dAMD : Opteron Fréquence : 2.6 Ghz Puissance crête : 5.2 Gflops/s 2600 MHz * 2 op/cycle 5.2 GFLOPS (Pas de FMA) Architecture Mémoire: L1I : 64ko; 64o /line 2 way L1D : 64ko; 64o /line ; 2 way ; 3 cycle latency ; 2 op 64bit/cycle (ld,st ou combinaison des 2) L2U : 256ko; 64o /line ; 16 way PAS de cache L3 Memory Front Side Bus (FSB) : Fréquence du proc. : 2.6 GHz ; FSB bandwidth : 20.8 Go/s

51 17 – 21 Octobre 2005 Formation Continue – CNRS Françoise Roch Architecture Opteron Liens Hypertransport 3 liens hypertransport 6.4 Go/s par lien (3.2 Go/s dans chaque direction) Bi-processeurs : débit I/O max 24 Go/s Quadri-processeurs : débit I/O max 32 Go/s Glueless processor


Télécharger ppt "17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Principes généraux - Architectures."

Présentations similaires


Annonces Google