34
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment l’améliorer? Diapositives inspirées d’une présentation de M.H. Lipasti, coauteur avec J.P. Shen de Modern Processor Design: Fundamentals of Superscalar Processors, McGraw-Hill 2005, et du chapitre 1 de Hennessy & Patterson, Computer Architecture, a Quantitative Approach, 2 e Ed. 1

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Embed Size (px)

Citation preview

Page 1: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

La performance d’un processeur

Comment l’évaluer?

Comment l’améliorer?

Diapositives inspirées d’une présentation de M.H. Lipasti, coauteur avec J.P. Shen de Modern Processor Design: Fundamentals of Superscalar Processors, McGraw-Hill 2005,et du chapitre 1 de Hennessy & Patterson, Computer Architecture, a Quantitative Approach, 2e Ed.

1

Page 2: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Pourquoi parler de la performance de processeurs en INF8505?

En INF8505 on parle de processeurs configurables. Pourquoi voudrait-on configurer un processeur (après tout, c’est

potentiellement beaucoup d’efforts!)? Pour améliorer sa performance!

Mais alors, comment savoir si l’effort en vaut le prix? Il faut définir quelques termes et se rafraîchir la mémoire.

2

Page 3: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Quel avion a la meilleure performance?

Appareil Passagers(3 classes)

Autonomie (milles n.)

Vitesse de croisière (mach)

A330-300 295 5.7 K 0.82

A340-300 295 7.4 K 0.82

A380-800 525 8.2 K 0.85

B747-400 416 7.3 K 0.85

B767-200 181 5.2 K 0.80

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Données: wikipedia.org

3

Page 4: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Quel processeur ala meilleure performance?

Pas simple à définir Peut dépendre de l’application

Usage général Domaine scientifique (e.g. météorologie) Serveur web Calculs financiers (e.g. bourse)

Pour les systèmes embarqués, faut aussi tenir compte de la puissance et de la surface

4

Page 5: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Survol de la présentation

Quelques définitions: latence vs débit Comparer la performance de deux processeurs ou

systèmes Analyse et équation de performance Quelques métriques commerciales Tests de performance (benchmarks) Principes de design pour améliorer la performance

5

Page 6: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Définir « performance » (1)

Qu’est-ce qui est important pour qui? Utilisateur de l’ordinateur

Minimiser le temps total de roulement d’un programme. Minimiser le temps nécessaire pour obtenir un résultat

(latence).

Gestionnaire de serveur de calcul Maximiser le nombre de tâches accomplies par unité de

temps (débit).

6

Page 7: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Définir « performance » (2)exemple: cafétéria

Quelle est la latence? Quel est le débit?

7

Page 8: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Définir « performance » (3)

Dans un système informatique, le temps pour exécuter un programme est une fonction: de la performance du CPU; de la performance de la mémoire; de la performance des entrées/sorties.

8

Page 9: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Définir « performance » (4)

Pour avoir un nombre plus grand pour une meilleure performance, on prend la réciproque du temps comme métrique: P = 1 / T Ex. T = 10 minutes/programme P = 0.1 programme/minute

9

Page 10: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Survol de la présentation

Quelques définitions: latence vs débit Comparer la performance de deux processeurs ou

systèmes Analyse et équation de performance Quelques métriques commerciales Tests de performance (benchmarks) Principes de design pour améliorer la performance

10

Page 11: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Comparer la performance de deux processeurs

Rapport de performance du processeur A par rapport au processeur B:

Exemple: si TA = 10 minutes et TB = 12 minutes, A est plus rapide que B de …

A

B

B

A

T

T

P

PR

20%

11

Page 12: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Survol de la présentation

Quelques définitions: latence vs débit Comparer la performance de deux processeurs ou

systèmes Analyse et équation de performance Quelques métriques commerciales Tests de performance (benchmarks) Principes de design pour améliorer la performance

12

Page 13: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Analyse de la performance La performance est définie par le temps d’exécution

d’un programme. Un programme est composé d’instructions. Chaque instruction est exécutée sur un nombre de

cycles. La durée d’un cycle est égale à la réciproque de la

fréquence d’horloge.

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

13

Page 14: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Équation de performance (1)

ImplémentationConcepteurs de la microarchitecture

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Cycle

Temps

nInstructio

Cycles#

Programme

nsInstructio#

Programme

Temps1

P(Instructions

exécutées)(CPI)

(période

d’horloge)

Architecture du jeu d’instructionsConcepteurs du jeu d’instructions

Concepteurs du compilateur

RéalisationConcepteurs de la puce

14

Page 15: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Équation de performance (2)

Nombre d’instructions par programme: C’est le nombre d’instructions exécutées, pas

nécessairement la taille du code. Déterminée par l’algorithme, le compilateur et le jeu

d’instructions.

Nombre de cycles par instructions: Déterminé par le jeu d’instructions et la microarchitecture.

Période d’horloge Déterminée par la technologie, l’organisation du processeur

et la conception du circuit.

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Cycle

Temps

nInstructio

Cycles#

Programme

nsInstructio#

Programme

Temps1

P

15

Page 16: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Équation de performance (3)

Ce qui compte, c’est de réduire le produit, pas les termes individuels.

Processeurs configurables: attention en ajoutant des instructions, des registres, etc.! pourrait réduire le nombre d’instructions par programme,

mais diminuer la période!

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Cycle

Temps

nInstructio

Cycles#

Programme

nsInstructio#

Programme

Temps1

P

16

Page 17: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Équation de performance (4)Exemple #1

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Cycle

Temps

nInstructio

Cycles#

Programme

nsInstructio#

Programme

Temps1

P

Cas 1: processeur A

T Horloge = 1 nsCPI 2.0 pour programme TEST1 (7681 instructions)

Cas 2: processeur B

T Horloge = 2 nsCPI 1.2 pour programme TEST1 (7681 instructions)

Quel processeur a la meilleure performance? Par combien?

1/PA = N × 2.0 × 1 ns = 2 N × ns 1/PB = N × 1.2 × 2 ns = 2.4 N × nsPA / PB = 2.4 / 2 = 1.2 : processeur A 20% mieux

17

Page 18: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Équation de performance (5)Exemple #2

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Cycle

Temps

nInstructio

Cycles#

Programme

nsInstructio#

Programme

Temps1

P

Le programme TEST2 contient 1000 instructions réparties parmi 4 catégories. Le nombre de cycles pour chacune des instructions est indiqué dans le tableau. On propose de configurer le processeur pour que les instructions ‘store’ ne

prennent qu’un cycle, mais la période d’horloge serait augmentée de 15%. Ce changement améliorerait-il la performance?

OP Proportion Cycles

ALU 43% 1

Load 21% 1

Store 12% 2

Branch 24% 2

Processeur original

CPI = 0.43 + 0.21 + (0.12 + 0.24) X 2 = 1.361/P0 = 1000 X 1.36 X T

Processeur modifié

CPI = 0.43 + 0.21 + 0.12 + 0.24 X 2 = 1.241/Pm = 1000 X 1.24 X (T X 1.15)

Pm / P0 = 1.36 / 1.24 X 1.15 = 0.95

18

Page 19: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Équation de performance (6)Exemple #3

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Cycle

Temps

nInstructio

Cycles#

Programme

nsInstructio#

Programme

Temps1

P

Un processeur RISC a un jeu d’instructions pour lequel toutes les instructions prennent un seul cycle. Sa fréquence d’horloge est de 225 MHz.

On exécute un programme sur ce processeur. Le programme contient l’extrait suivant: T = 0; for k = 0:1023 {T = T + A[k] * B[k];}.

On propose d’ajouter l’instruction MAC (Multiplication-Accumulation) au jeu d’instructions du processeur, ce qui permettrait d’exécuter l’instruction de la boucle en un seul cycle. Cependant, la fréquence d’horloge du processeur serait réduite à 175 MHz pour accommoder le nouveau chemin critique.

Cette modification améliorerait-elle la performance du processeur?

19

Page 20: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Survol de la présentation

Quelques définitions: latence vs débit Comparer la performance de deux processeurs ou

systèmes Analyse et équation de performance Quelques métriques commerciales Tests de performance (benchmarks) Principes de design pour améliorer la performance

20

Page 21: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Métrique commerciale: MIPS (1)

MIPS (Million d’Instructions Par Seconde) = # instruction exécutées ÷ (temps du programme × 106) = période d’horloge ÷ (CPI × 106)

Problème: ne mesure pas l’efficacité (quantité d’information traitée par instruction)

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

21

Page 22: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Métrique commerciale: MIPS (2)Exemple

Ajout d’une unité à virgule flottante à un processeur configurable

Soit un programme de 1000 instructions: 800 instructions prenant 4 cycles en moyenne (chargements, ALU

virgule fixe, etc.) + 200 opérations à virgule flottante

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Cas 1: processeur sans unité à virgule flottante

Fréquence = 100 MHzLes opérations v.f. sont converties en logiciel, nécessitent chacune 50 instructions de 4 cycles

1. Calculer la performance2. Calculer les MIPS

Cas 2: processeur avec unité à virgule flottante

Fréquence = 75 MHz (chemin critique allongé)Les opérations v.f. nécessitent chacune 1 instruction de 16 cycles

1. Calculer la performance2. Calculer les MIPS

22

Page 23: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Métrique commerciale: MIPS (3)Exemple, solution

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Processeur A Processeur Bfréquence 100.0E+6 fréquence 75.0E+6instructions cycles/instr cycles instructions cycles/instr cycles

800 4 3200 800 4 320010000 4 40000 200 16 320010800 43200 1000 6400 Rapport B sur A

Temps 432.0E-6 Temps 85.3E-6 0.20CPI 4 CPI 6.4 1.60MIPS 25.0E+0 MIPS 11.7E+0 0.47Performance 2.3E+3 Performance 11.7E+3 5.06

23

Page 24: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Métrique commerciale: MIPS (4)

Les MIPS sont représentatives pour comparer: deux processeurs avec le même jeu d’instructions le même programme compilé par un seul compilateur deux implémentations ou deux réalisations différentes

(améliorations à la microarchitecture, améliorations au circuit)

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

24

Page 25: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Métrique commerciale: MFLOPS

MFLPS(Million d’Instructions à Virgule Flottante Par Seconde) = # instruction exécutées à virgule flottante dans le

programme ÷ (temps du programme × 106)

Problèmes: Dépend du programme (beaucoup ou peu d’opérations à

v.f.)? Toutes les opérations à v.f. n’ont pas nécessairement le

même nombre de cycles.

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

25

Page 26: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

Métrique commerciale:Performance de pointe

« Peak Performance » Indique la performance pour des conditions idéales,

c’est-à-dire un programme fait sur mesure pour le systèmes

Pas représentative en général pour des programmes à usage général.

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

26

Page 27: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Survol de la présentation

Quelques définitions: latence vs débit Comparer la performance de deux processeurs ou

systèmes Analyse et équation de performance Quelques métriques commerciales Tests de performance (benchmarks) Principes de design pour améliorer la performance

27

Page 28: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Tests de performance (Benchmarks) (1)

Programmes normalisés dont le but est de comparer la performance de différents processeurs et systèmes informatiques

28

Page 29: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Tests de performance (Benchmarks) (2)

Types Vrais programmes (traitement de texte, navigateurs, etc.) Noyaux de code (fragments de programmes réputés

‘représentatifs’) Programmes conçus sur mesure pour vérifier une opération,

une boucle, etc. ex. Whetstone (1972) virgule flottante Dhrystone (1984) caractères, entiers

29

Page 30: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Tests de performance (Benchmarks) (3)

SPEC 2000 12 programmes à opérations virgule fixe 14 programmes à opérations virgule flottante

Benchmark Description

164.gzip Compression

175.vpr FPGA place and route

176.gcc C compiler

181.mcf Combinatorial optimization

186.crafty Chess

197.parser Word processing, grammatical analysis

252.eon Visualization (ray tracing)

253.perlbmk PERL script execution

254.gap Group theory interpreter

255.vortex Object-oriented database

256.bzip2 Compression

300.twolf Place and route simulator

Benchmark Description

168.wupwise Physics/Quantum Chromodynamics

171.swim Shallow water modeling

172.mgrid Multi-grid solver: 3D potential field

173.applu Parabolic/elliptic PDE

177.mesa 3-D graphics library

178.galgel Computational Fluid Dynamics

179.art Image Recognition/Neural Networks

183.equake Seismic Wave Propagation Simulation

187.facerec Image processing: face recognition

188.ammp Computational chemistry

189.lucas Number theory/primality testing

191.fma3d Finite-element Crash Simulation

200.sixtrack High energy nuclear physics accelerator design

301.apsi Meteorology: Pollutant distribution

30

Page 31: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Tests de performance (Benchmarks) (4)

Ne représente pas nécessairement la vraie performance du systèmes (e.g. Entrées/sorties?)

Les processeurs et compilateurs sont parfois conçus pour atteindre un score élevé, donc scores moins représentatifs.

Difficile ou impossible d’extrapoler la performance. Pour système embarqué/processeur configurable: ce

qui compte, c’est l’application considérée!

31

Page 32: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Survol de la présentation

Quelques définitions: latence vs débit Comparer la performance de deux processeurs ou

systèmes Analyse et équation de performance Quelques métriques commerciales Tests de performance (benchmarks) Principes de design pour améliorer la performance

32

Page 33: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Principes pour améliorer la performance (1) Concentration de l’effort:

profiler le code ou l’application accélérer les instructions exécutées fréquemment loi de Pareto: 80%-20%

Tenir compte de la loi de Amdahl (accélération) P: proportion d’une tâche pouvant être accélérée S: accélération de la tâche en question

wikipedia.org33

Page 34: INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel La performance d’un processeur Comment l’évaluer? Comment

INF8505: processeurs embarqués configurablesDépartement de génie informatique et génie logiciel

Principes pour améliorer la performance (2)

LA métrique: équation de performance, mais attention au programme considéré.

Localité de référence Temporelle: les données récemment utilisées tendent à être

réutilisées de nouveau Spatiale: la position des données récemment utilisée est un

bon indicateur des données qui seront utilisées bientôt

34