17-21 octobre 2005 formation continue - cnrs laurence viry analyse et optimisation de code principes...

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

Upload: frederique-bayle

Post on 03-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

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

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Analyse et Optimisation de code

Principes généraux - Architectures

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

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 d’optimisations

Méthodologie proposée

Optimisation du compilateur

Timing et profiling

Quelques méthodes d’optimisation “manuelle”

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

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

Principes Généraux

Architecture des processeurs

Augmenter le vitesse d’horloge des processeurs

Évolution ces 30 dernières années

Techniques de micro-architecture permettant d’augmenter le nombre d’instructions par cycle

Architecture de la mémoire

Mémoire hiérarchique (registre, cache,…)

Mémoire virtuelle et Paging

Optimisation des accès

Quelques techniques d’optimisation

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

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

Architecture des processeursFréquence d’horloge

La fréquence de l’horloge détermine la durée d’un cycle

Chaque opération utilise un certain nombre de cycles

La fréquence d’horloge n’est pas le seul critère de performance

La fréquence d’horloge est fonction de : La technologie des semi-conducteurs Le packaging Les circuits …

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

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

Comment faire des processeurs plus rapides?

Augmenter la fréquence d’horloge (limites techniques, solution coûteuse)

Permettre l’exé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

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

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

Latence : Communications processeur -DRAMP

erf

orm

an

ce

10

100

1000

19

80

19

81

19

82

19

83

19

84

19

85

19

86

19

87

19

88

19

89

19

90

19

91

19

92

19

93

19

94

19

95

19

96

19

97

19

98

19

99

20

00

Time

1

CPU

DRAM

Moore’s Law

μProc60%/année

DRAM7%/année

Processeur-Mémoire Performance50%/année

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

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

Qu’est ce que le software Pipelining?

Parallélisme d’instructions

Une opération s’exé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 s’effectuant en 5 étapes

Charge l’instruction

Charge lesopérandes

ExécuteDécode Ecriture

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

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

Software Pipelining (suite)

3 instructions simultanées dans le pipe

Décode Chargeopérandes Exécute Ecriture

Charge l’instruction Décode

Charge l’instruction

Charge l’instruction

EcritureExécuteChargeopérandes

ExécuteChargeopérandesDécode Ecriture

3 instructions en parallèle en 7 cycles (15 cycles en séquentiel)

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

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 l’initialisation du

pipe: 1 résultat par cycle pour un processeur

195Nhz: 195Mflops

En général, l’unrolling des boucles améliore le parallélisme d’instructions

do i=1,1000000t(i)=t(i)*t(i)

enddo

do i=1,1000000,2

t(i)=t(i)*t(i

t(i+1)=t(i+1)*t(i+1)enddo

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

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

Pipelining: accès mémoire

L’accès mémoire est une fonction coûteuse en temps qui prend plusieurs cycles.

Utiliser le procédé de pipelining pour le superposer à d’autres fonctions du processeur

L’optimisation du compilateur peut réordonner les instructions pour favoriser ce procédé

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

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

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

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

Architecture CISC

Objectif: Minimiser le nombre d’instructions assembleur permettant de traduire les constructions des langages évolués.

Introduit dans les années 70

Propriétés: Nombreux types d’instructions et d’instructions d’accès

mémoire Longueur des instructions variables Difficulté d’utiliser la technique de pipeline

Exemples Vax11/780 Pentium Pro

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

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 d’instructions 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

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

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 l’ordre du code machine

Dynamique (out-of-order):le hardware modifie l’ordre des instructions pour favoriser le parallélisme (faible nombre d’instructions)

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 d’instruction

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

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 d’un cycle d’horloge

L’extraction 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

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

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 d’instructions 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

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

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

EPIC(Explicitly Parallel Instruction Computing)

Implémentation d’une 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 1 Instruction 2 Instruction 3 template

41bits 41bits 41bits 5bits

128 bits

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

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 l’utilisation des caches: hardware prefetching

Faster integer and floating-point operations

Réduction du coût des branchements par l’utilisation de « dynamic hardware prediction »

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

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

Architecture Pentium4

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

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

Architecture Opteron

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

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é d’adressage accrue:

)(1800642

4322

théoriqueTB

GB

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

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

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

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 d’instructions indépendantes Nombre illimité d’instructions

Utilisation maximale des ressources

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

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 d’exception, 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

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

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

Architecture IA-64Implications Logicielles: compilateur

Rôle dominant dans les performances de l’application

Les optimisations standards d’un 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,…)

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

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 d’instructions (ABI) 64 bits

Support X86 32 bits en natif

Spécifications publiques: www.x86_64.org

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

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)

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

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 aujourd’hui

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 d’instructions IA-32 en jeu d’instruction IA-64

Abandon progressif des restrictions de X86 Investissement à long terme, architecture plus

efficace dans le futur????

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

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 s’exé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

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

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 qu’il y a du courant

Temps d’un cycle SRAM de 8 à 16 fois plus rapide qu’un 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

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

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 d’analyse identifiant les problèmes de cache

Quelques exemples

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

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

vit

esse

Taille

Mémoire hiérarchique

*: les caches peuvent être organisés de façon hiérarchique

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

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 à n’importe 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

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

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

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

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

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

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

Mémoire Virtuelle

Dernière couche de la hiérarchie mémoireRegistresCache L1…Cache LNMémoire principaleSWAP – disque

Chaque programme utilise un espace d’adressage logique en correspondance avec l’adressage physique pour l’accès aux données

Une page est le plus petit espace mémoire contigüe alloué à un programme.

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

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 l’allocation 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 l’utilisation Disque dernier niveau de la hiérarchie mémoire

(swap)

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

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

ProcessRegion Table

PageTable

Virtual Translation

Physical Address

Virtual addressLocation 1000

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

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: L’adresse n’est 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

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

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

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

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

Architecture Alpha 21264

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 l’ordre de l’exécution des instructions Exécution spéculative …

Optimisation du parallélisme d’instructions

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

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

Alpha 21264 Architecture

Super-scalaire 4 chargements d’instruction 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 à l’intérieur des

boucles

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

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 d’accè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 d’accès: 2 à 3 cycles

Cache secondaire (L2) Accès par bloc : 128 bytes Taille: 16Mb Temps d’accès : 10 à 15 cycles

Mémoire principale ( taille 4GB/proc, latence: 220ns )

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

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

Le processeur Itanium2 d’Intel

Architecture Itanium2 : Quatrième génération de processeurs 64 bit d’Intel : 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

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

21-25 Octobre 2005 Formation Continue – CNRS Laurence Viry

128

FPR

egis

ters

1 ko

128

Inte

ger

Reg

iste

rs

1 ko

L1D

cac

he

16 ko

L2U

cac

he25

6 ko

L3U

cac

he

4 Mo

32 Go/s

16 Go/s 32 Go/s

32 Go/s 6.4 Go/s

2 cycles 5 cycles 12 cycles

5+1 cycles12+1cycles

16 Go/s

16 Go/sAltix™:145+ ns

Le processeurs Itanium2 ® d ’INTEL ®

Debits et latences des accès mémoire

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

Formation Continue – CNRS Laurence Viry

| |21 – 25 Octobre 2005

Silicon ProcessSilicon Process

180 180 nnmm 130 nm130 nm 90 nm90 nm

20022002

ItaniumItanium®® 2 2

(McKinley) (McKinley) - 900 Mhz, 3.6 Gflops, 1.5 Mo L3 cache- 1 GHz, 4Gflops, 3 Mo L3 Cache)

ItaniumItanium®® 2 2

(McKinley) (McKinley) - 900 Mhz, 3.6 Gflops, 1.5 Mo L3 cache- 1 GHz, 4Gflops, 3 Mo L3 Cache)

4GflopsMax.

Le processeurs Itanium2 ® d ’INTEL ® : Roadmap

20052005MontecitoMontecito

(Dual Core on a Die)(Dual Core on a Die)Each CoreEach Core

(>=2 GHz, >=8Gflops, (>=2 GHz, >=8Gflops, 12Mo L3 Cache)12Mo L3 Cache)

MontecitoMontecito(Dual Core on a Die)(Dual Core on a Die)

Each CoreEach Core(>=2 GHz, >=8Gflops, (>=2 GHz, >=8Gflops,

12Mo L3 Cache)12Mo L3 Cache)

>16Gflops

Low PowerLow Power

MontecitoMontecito

Dual Core Processor Dual Core Processor

Follow-onFollow-on

Low PowerLow Power

MontecitoMontecito

Dual Core Processor Dual Core Processor

Follow-onFollow-on

20032003ItaniumItanium®® 2 2(Madison)(Madison)

- 1.5 GHz, 6Gflops, 6 Mo L3 Cache - 1.3 Ghz, 5.2 Gflops, 3 Mo L3 cache

ItaniumItanium®® 2 2(Madison)(Madison)

- 1.5 GHz, 6Gflops, 6 Mo L3 Cache - 1.3 Ghz, 5.2 Gflops, 3 Mo L3 cache

>5GflopsMax.

Low Power Low Power ItaniumItanium®® 2 2 (Deerfield)(Deerfield)

- 1.0 GHz, 4Gflops, 1.5Mo L3 Cache 62 Watts- 1.4 Ghz, 4.6 Gflops, 1.5/3 Mo L3 cache

Low Power Low Power ItaniumItanium®® 2 2 (Deerfield)(Deerfield)

- 1.0 GHz, 4Gflops, 1.5Mo L3 Cache 62 Watts- 1.4 Ghz, 4.6 Gflops, 1.5/3 Mo L3 cache

ItaniumItanium®® 2 2(Madison 9M)(Madison 9M)

-1.6 GHz, 6.4Gflops, 6/9 Mo L3 Cache- 1.5 Ghz, 6 Gflops, 4 Mo L3 cache

ItaniumItanium®® 2 2(Madison 9M)(Madison 9M)

-1.6 GHz, 6.4Gflops, 6/9 Mo L3 Cache- 1.5 Ghz, 6 Gflops, 4 Mo L3 cache

Fin 04Fin 04

6.4Gflops

Low Power Low Power ItaniumItanium®® 2 2

Deerfield+ Processor Deerfield+ Processor Follow-onFollow-on

Low Power Low Power ItaniumItanium®® 2 2

Deerfield+ Processor Deerfield+ Processor Follow-onFollow-on

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

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

Power5 (IBM)

Processeur Dual core Interface mémoire intégrée Fréquence d’horloge 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

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

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

Architecture du processeur power5

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

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

POWER4 / POWER5

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

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

Achitecture opteron d’AMD

Architecture Opteron : Première génération de processeur 64 bit d’AMD : 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

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

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

Architecture OpteronLiens 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