inf8505: processeurs embarqués configurables département de génie informatique et génie logiciel...
Post on 04-Apr-2015
107 Views
Preview:
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
É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
É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
É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
É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
É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
É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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
top related