Processeurs Hautes Performances Panorama et Nouveaux Défis

Post on 09-Jan-2016

37 views 1 download

description

Processeurs Hautes Performances Panorama et Nouveaux Défis. André Seznec IRISA/INRIA http://www.irisa.fr/caps. Plan. Quelques données en 2000 Quel jeu d'instructions Le pipeline Le parallélisme d’instructions L’exécution spéculative La hiérarchie mémoire - PowerPoint PPT Presentation

Transcript of Processeurs Hautes Performances Panorama et Nouveaux Défis

1

André Seznec Caps Team

IRISA/INRIA

Processeurs Hautes Performances Panorama et Nouveaux Défis

André Seznec

IRISA/INRIA

http://www.irisa.fr/caps

2Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Plan

Quelques données en 2000 Quel jeu d'instructions Le pipeline Le parallélisme d’instructions L’exécution spéculative La hiérarchie mémoire Le parallélisme de processus

3Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Quelques repères (2000)

Fréquence : 400 Mhz à 1 Ghz Durée d'une opération ALU: 1 cycle Durée d'une opération flottante : 3 cycles Lecture/écriture dans un registre : 1 cycle

souvent un chemin critique ... Lecture/écriture du cache L1: 1-2 cycles

dilemme taille-associativité-temps d ’accès

4Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Quelques repères (2000)

L'intégration : 0.25 0.18 0.125 (2001) 10 à 20 millions de transistors de logique Le reste en mémoire cache: jusqu'à 100

millions de transistors 20 à 60 Watts

> 100 W bientôt 400 à 600 broches

> 1000 bientôt

5Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Quelques repères (sept 2000) Processeurs x86 pour PC:

bas de gamme: 500 Mhz, <100 $haut de gamme: 1,1 Ghz, 700 $

La mémoire DRAM : 1$ le Mbyte La mémoire SRAM : 50$ le Mbyte

6Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Compatibilité binaire

Une donnée économique : 300 000 000 de PCs ! un nouveau jeu d'instructions: RISQUÉ !!

Le monde change (peut-être): les processeurs enfouis, le multimédia l'IA 64 arrive

7Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Architecture 32 ou 64 bits

Architecture 32 bits: l'adresse virtuelle est de 32 bits PowerPC, x86,

Architecture 64 bits : l'adresse virtuelle est de 64 bits. MIPS III, Alpha, Ultrasparc, HP-PA 2.x, IA64 En 2005: les jeux ? Word ?

LE MOUVEMENT EST INEXORABLE: x86 la rupture?

8Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Quel jeu d'instructions ?

CISC: x86 RISC: Sparc, Mips, Alpha, PowerPC, HP-PA EPIC: IA-64

est-ce que c’est important ?

9Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Les jeux d’instructions processeurs RISC Une seule taille d'instruction : 32 bits

simplifie le décodage adresse suivante

Architecture load/store Modes d'adressage simples : basé et indexé

Instructions simples registre-registre Avantage : se pipeline bien

10Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

RISC (2)

registres généraux + registres flottants accès à la mémoire: de l'octet au mot de 64

bits ALIGNE support limité à l’exécution spéculative:

CMOV

11Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Le jeu d’instructions CISC x86

taille d’instruction variable opérandes en mémoire ou en registres code destructeur: on écrit l’un des

opérandes durée de certaines opérations imprévisibles

12Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Le jeu d’instruction EPIC IA64

EPIC IA64 = RISC + plus de registres (128 entiers, 128 flottants) + 3 instructions codées en 128 bits + 64 registres de prédicats + dépendances gérées par le matériel + (?) Advanced Loads

Idée: le compilateur gère le parallélisme d’instructions

13Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

IA 64

L’angoisse de la page blanche !? -Support matériel au pipeline logiciel

• Rotating registers• Gestion de boucle

-Fenêtres de registres: à taille variable! -Pas d’adressage basé -adressage post-incrémenté - (?) Advanced Loads

14Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

ISA: est-ce important ?

32 ou 64 bits:vers l’abandon (ou la mutation !) d’x86

Les performances:et x86 ? :=)en flottant !!à technologie égale ?

15Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

ISA: est-ce important (2) ?

x86: traduction en Opérations 4 cycles perdus ! Ou utilisation d’un trace cache

x86 pas assez de registres flottants Alpha 21264: 2 opérandes 1 résultat

le + performant des RISCs Itanium: l ’IA 64 dans l’ordre

800 Mhz en 0.18 (pas encore disponible !) Alpha 21164 700 Mhz 0.35 (1997)

16Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Et alors ?

x86: + base installée, +poids d’Intel, -« doit» monter à 64 bits

IA64: + support à l ’exécution spéculative, +poids d’Intel

Alpha: + le plus « clean », -stratégie de Compaq

Sparc: = jeu d ’instructions, + SUN Power(PC): complexe, =IBM et Motorola

17Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

L’angoisse de l’architecte

400 mm2 de silicium 3 générations de technologie en avant que faire pour obtenir les performances ?

Pipeline Parallélisme d’instruction L’exécution spéculative La hiérarchie mémoire Le parallélisme de processus

18Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Le pipeline: de plus en plus profond Plus on stresse l'horloge, moins on en fait en un

cycle. 1 cycle = traversée d’une ALU + rebouclage Communications intra-CPU de + en + longues:

plusieurs cycles pour traverser le composant Le contrôle est de + en + complexe:

plus d’instructions en // plus de spéculation

19Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Quelques profondeurs de pipeline 12-14 cycles sur l’Intel Pentium III 10-12 cycles sur l’AMD Athlon 7-9 cycles sur l’Alpha 21264 9 cycles sur l’UltraSparc

10 cycles sur l’Itanium 20 cycles sur Willlamette

Et ça ne va pas s’améliorer !!

20Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Le //isme d’instructions

Superscalaire: le droit de lancer les instructions en // est

géré par matériel à l’exécution Compatibilité binaire d’une génération sur

l ’autre TOUS LES PROCESSEURS SONT

SUPERSCALAIRES

21Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Le degré superscalaire

Difficile à définir:« performance qu’on est certain de ne

pas dépasser » 4 inst / cycles sur presque tous les

processeurs existants 6 inst / cycles sur Itanium 8 inst / cycles sur le (futur) Alpha 21464 16 -32 sur Alpha 21964 ?? En 2012 ? :=)

22Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Superscalaire : les problèmes Parallélisme d'instructions limité : 3 à 8

instructions par cycle Le fichier de registres :

le nombre de ports augmentent chemin critique

La fourniture des instructions aux UFs La dépendances de données Les branchements.

23Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Exécution dans l’ordre ou dans le désordre Respecter l’ordre du programme ou non:

Ah! Si toutes les latences étaient connues statiquement,…

Les « partisans » de l ’ordre: UltraSparc 3, Itanium Le compilateur doit faire le travail

Les « partisans » du désordre: Alpha 21264, Pentium III, Athlon, Power (PC),

HP-PA 8500

24Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Pourquoi l’exécution dans l’ordre simple à mettre en œuvre

moins de transistorsmoins de temps de développementhorloge rapide (discutable)

pipeline moins profond le compilateur « voit » tout:

la micro-architecture le programme

25Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Pourquoi l’exécution dans le désordre l ’ILP statique est limité dans les codes non

réguliers le compilateur ne « voit » pas tout:

latences inconnues à la compilation (in)dépendances inconnues à la

compilation pas besoin de recompiler

hum !!

26Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Exécution dans le désordre (1)

Principe : exécuter les instructions dès que :

opérandes disponibles et unités fonctionnelles disponibles

Mise en œuvre : une grande fenêtre d'instructions où on

choisit les instructions exécutables

27Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Exécution dans le désordre (2)

Le séquencement consiste à :Lire les instructions en // Marquer les dépendances Renommer les registresDispatcher vers les unités fonctionnellesAttendre ..

La gestion des dépendances prend de la place et du temps : pipeline profond

28Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Renommage de registres: ou comment enlever les fausses dépendances Aléas WAW et WAR sur les registres peuvent être évitées par

renommage dynamique des registres.

29Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Dépendances mémoires

pour exécuter une écriture sur la mémoire, on a besoin de la donnée à écrire

en dehors de toute information, toute lecture mémoire est potentiellement dépendante de toute écriture mémoire précédente

Solution (provisoire): Calcul des adresses dans l'ordre du programme Dépassement des écritures par les lectures avec

détection des aléas

30Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Dépendances mémoires (2)

Solution (actuelle): Exécution optimiste dans le désordre Réparation si la dépendance existe Pb: coût de la réparation

Prochaine génération: la prédiction de dépendances sur la mémoire Moshovos et Sohi, Micro'30, décembre 1997 Chrysos et Emer, ISCA ’26, juin 1998

31Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Les dépendances de contrôle

15 à 30% des instructions sont des branchements.

La cible et la direction d'un branchement sont connues très tard dans le pipeline : Cycle 7 sur le DEC 21264 Cycle 11 sur l'Intel Pentium IICycle 18 sur Willamette

Pas question de perdre tous ces cycles !

32Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Prédiction de branchement dynamique Garder un historique des derniers passages et

utiliser cet historique pour anticiper le branchement Mise en œuvre: une table lue en même temps que

le cache d’instructions On prédit:

la cible et la direction des branchements les retours de procédures les branchements indirects

33Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Branchements conditionnels

Plus important de prédire la direction que la cible Schémas de prédiction de plus en plus

complexes• adresse • historique des derniers branchements

–global ou local• schémas hybrides

34Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Prédiction de branchement

1992: DEC 21064, schéma à 1 bit 1993: Pentium, schéma à 2 bits 1995: PentiumPro, historique local 1998: DEC 21264, prédicteur hybride

35Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Prédiction de branchement : tendance générale Schémas de plus en plus complexes Découplage de la prédiction de l'adresse et

de la direction Pile de retour pour les procédures Support dans les jeux d'instructions pour

l’exécution spéculative:CMOVprédicats de l ’IA64

36Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Exécution dans le désordre:Savoir « défaire » Mauvaise prédiction de branchement Mauvaise anticipation d'indépendance Interruption, exception

Valider dans l’ordre du programme Ne rien faire de définitif dans le désordre

37Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Savoir « défaire »

Une copie du fichier de registres est mise à jour dans l'ordre du programme

ou Une <<carte>> registres logiques-registres

physiques est sauvegardée

Les écritures en mémoire sont faites à la validation

38Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

De l'importance de la hiérarchie mémoire Exemple :

4 instructions/cycle, 1 accès mémoire par cycle 10 cycles de penalité sur le L2 50 cycles pour la mémoire 2% de défauts d'instructions L1, 4% de défauts

données L1, 1 référence sur 4 en défaut sur L2

Pour exécuter 400 instructions : 395 cycles

39Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Sauf que ..

Les caches primaires sont non-bloquants Le cache secondaire est pipeliné La mémoire est pipelinée Préchargement matériel et logiciel

Latence et débit sont importants

40Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Caches primaires: tendance générale 1-2 cycles pour lecture ou écriture multiples accès par cycle non-bloquant associatif faible degré

Restera petit ! Une exception: HP-PA 8500

41Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Caches secondaires : tendance générale Il n’est plus question de s’en passer ! Généralisation on-chip ou sur le module Accès pipeliné

latence courte : 7-12 cycles bus 128 bits, devrait s’élargir temps de cycle: 1-3 cycles processeurs

La contention sur le cache L2 devient un goulot d’étranglement

42Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

La mémoire principale

Loin, trop loin du processeur: plusieurs centaines d’instructions

Vers un abandon du modèle classique ?mémoire sur le bus système:

• cohérence par snoopingbus mémoire + bus système

• cohérence par directory

43Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

la mémoire principale sur le bus système

44Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Mémoire principale en connexion directe

45Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Que faire avec un milliard de transistors ou plus? IRAM: le processeur et sa mémoire monoprocesseur + exécution spéculative

Le parallélisme de processus:multiprocesseur à mémoire partagée processeur SMT

46Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

IRAM

le processeur et sa mémoire sur un même composant bande passante mémoire énorme à un coût

limité Une fausse bonne idée

Consommation mémoire des applications augmente

Extensibilité ? La solution pour certaines applications enfouies

47Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Un monoprocesseur + exécution spéculative superscalaire 16 ou 32 voies hyperspéculation:

branchements, dépendances, données ..

Les défis: la qualité de la prédiction les temps de communication sur le composant la contention sur les structures:

• caches , registres, ...

48Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Le //isme de processus:à la croisée des chemins Le parallélisme « gros grain » arrive sur le

composant

Un multiprocesseur on-chip ?• IBM Power 4 ( fin 2001)

Simultaneous Multithreading ?• Compaq Alpha 21464 ( 2003)

49Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Un multiprocesseur on-chip

Peut-être la solution, mais .. Où sont les applications? La bande passante sur la mémoire? Et la performance sur un processus ? Manquons-nous d'imagination à ce

point?

50Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

multiprocesseur on-chip:IBM Power 4 (2001) Marché visé: les serveurs

2 processeurs superscalaire 4 voies sur un composant: cache secondaire partagé

4 composants sur un même MCM (multichip module) bande passante énorme sur le MCM

51Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

La vision du programmeur

52Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Simultaneous Multithreading (SMT) Les UFs d’un processeur sont sous-utilisées SMT:

Partager les UFs d’un processeur superscalaire entre plusieurs processus

Avantages:1 processus a toutes les ressourcespartage dynamique des structures

(caches, prédicteurs, UFs)

53Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

SMT: Alpha 21464 (2003)

Un processeur superscalaire 8 voies Performance ultime sur un processus

Si multiprocessus, 4 processus se partagent les unités fonctionnelles:Surcoût pour ce partage 5-10 %

54Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

La vision du programmeur

55Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Le SMT: les voies de la recherche Speculative multithreading:

un coup plus loin que la prédiction de branchement Multipath execution:

dans le doute, exécutons les 2 branches Flot de support:

Utilisons un flot <<esclave>> pour accélérer le flot principal:

• préchargement • anticipation de branchement

56Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Boule de cristal Le processeur du PC en 2010

Jeu d'instruction x86+: extension pour mode + de 32 bits

Superscalaire 10 voies SMT Exécution dans le désordre < 50 mm2 support multiprocesseur: cache snooping

57Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Boule de cristal Le processeur du serveur en 2010

Jeu d'instruction IA64 ou Alpha+ les registres de prédicats !!

Multi SMT 10 voies Prédiction de dépendances agressif Multipath execution

support multiprocesseur: directory coherence

58Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

La vision du programmeur !

59Mic

rop

roce

sseu

rs H

aute

s P

erf

orm

anc

es

André SeznecCaps Team

Irisa

Les grandes questions

Saura-t-on maitriser la complexité du design?

Qui saura programmer ces monstres ?