Chapitre 2 : Ordinateurs pipeline et vectoriels

publicité
Chapitre II
Principe du pipeline et traitement vectoriel
• Pipeline
• Principe
• Unidimensionnel
• Bidimensionnel
• Ordinateurs vectoriels
• Cray-1
• Vectorisation
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
1
Pipeline unidimensionnel
Concept : chaîne de montagne dans une usine
Objectif : amélioration des performances
tâches
T
H
E1
T
H
E2
T
H
…
T
H
Ek
T
H
Hypothèses :
Ei : étage i (1≤ i ≤ k), T : tampon et H : horloge
Temps(Ei) = ti, Temps(T) = t0 et t = max{1 ≤ i ≤ k, ti} + t0
n tâches, T1 et Tk : temps sans et avec pipeline de k étages
Tk = t0 + kt + (n - 1)t = (k + n - 1)t + t0
Supposons que T1 = nkt
 Rendement = T1/Tk = nkt/ [(k + n - 1) t + t0] ≈ nk/(k+n - 1)
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
2
Additionneur des virgules flottante
Entrée : deux nombres en virgules flottante normalisée.
A = a x 2p et B = b x 2q
a et b : matisses et p et q : exposants.
On veut calculer :
A + B = c x 2r = d x 2s où r = max(p.q) et 0,1  d < 1.
Exemple : A = 0,101 x 28 et B = 0,1101 x 29
A + B = 0,101 x 28 + 0,1101 x 29
-- réduction au même exposant
= 0,0101 x 29 + 0,1101 x 29
-- addition des matisses
= 1,0010 x 29
-- normalisation
= 0,1001 x 210
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
3
Algorithme de calcul
1. Déterminer r = max(p,q) et t = | p – q |
2. Décaler à droite la mantisse associée au plus petit exposant par t bits
3. Additionner les mantisses pour obtenir c
4. Normaliser le résultat :
si c < 1 alors u = 0
si c > 1 alors u = 1
5. Le résultat final est :
d = c << u et s = r + u
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
4
Pipeline de l’addition flottante
S1
S1
Soustracteur
p
S1
c
r=max(p,q)
S1
c
Additionneur
d’exposants
a
s
d’
t=| p – q |
exposants
A=a x 2p
Autre fraction
Compteur
Additionneur c
de
q
Décaleur
Sélecteur
b
de fraction
fraction
droite
Fraction avec min(p,q)
u
C=A+B=d x 2s
de zéros
Décaleur
d
d
gauche
B=b x 2q
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
5
Réduction des délais
Hypothèses :
t0 = 10 ns, t1 = 90 ns, t2 = 70 ns, t3 = 60 ns et t3 = 40 ns
la période du pipeline P ≥ 90 + 10 = 100 ns = 10-7s
la fréquence f = 1/P = 107 Hz = 10 Mhz
 après initialisation, exécution d'une opération toutes les 100 ns
T1 = (90 + 70 + 60 + 40) * n = 260 * n
Tk = 285 + 100 * (n - 1) = 185 + 100 * n
 Rendement ≈ 260/100 = 2,6 < 4
Exercice : Pouvez-vous réduire le temps en fusionnant S3 et S4 ?
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
6
Exemples de UAL pipeline
Ordinateur
Nombre d’étages
Star-100
4
TI-ASC
8
Cray-1
14
Cyber 20
26
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
7
Pipeline à 2 dimensions
Produit matriciel
C= A * B où A et B sont 2 matrices d’ordre n
soit t : temps d’éxécution d’une multiplication
Algorithme classique (SISD)
nombre de multiplications = n3
si n = 103 et t = 1 ms  temps d'exécution = 103 s ≈ 16 mn
Réseau systolique (MISD)
nombre de cellules de base = 3n²-3n+1
multiplication est complétée après 3n-1 périodes
si n = 104 et une période en 1 ms
≈ 3 M processeurs et temps d'exécution ≈ 3 ms
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
8
Compilation
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
9
Ordinateurs pipeline
Chevauchement du traitement de données dans :
- UAL
- UC
- Processeur d'E/S
- Hiérarchie de la mémoire
La performance peut se dégrader de façon significative à cause de la
dépendance des données ---> conflit des ressources.
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
10
Ordinateurs vectoriels
Un superordinateur est caractérisé par :
- haute vitesse de calcul
- MP et MS grandes et rapides
- logiciels //
généralement conçu pour effectuer le calcul
- vectoriel
- ou matriciel
utilisé dans les applications scientifiques : prévision météorologique,
recherche nucléaire, intelligence artificielle
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
11
Générations des ordinateurs vectoriels
génération
Année
Machine
MFLOPS
installations
1960
Star-100
50
7 en 1978
TI-ASC
30
4
première
Illiac-IV
1975
deuxième
1
Cray-1
160
Cyber 200
800
60 en 1982
Fujitsu VP-200 500
Troisième et
quatrième
VP-200
400
Cray-2
2000
Cyber-205
3000
Nec
5000
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
12
Coprocesseurs scientifiques
(Scientific Attaches Processors)
Caractéristiques
Reliés à un ordinateur hôte
une structure pipeline
traitement des vecteurs et nombres en virgule flottante
Génération du micro-code pour les applications vectorielle spécifiques
(traitement du signal,...)
Interface rapide
Exemple :
AP-120B + VAX11/780 ---> 12 MFLOPS
80386 (33 Mhz) + 80387 ---> 80486 (50 Mhz).
Remarque :
la vitesse maximale n'est jamais atteinte.
la vitesse moyenne Cray-1 est de 24 MFLOPS au lieu de 160 car les logiciels
n'exploitent pas efficacement (proprement) le matériel (langage, compilation,
vectorisation, optimisation).
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
13
Ordinateur vectoriel : Cray-1 (1/2)
Premier ordinateur vectoriel moderne
période de l'horloge = 12.5 ms  fréquence = 80 Mhz.
cycle de la mémoire = 50 ms, bipolaire (SECDED)
transfert de (4 mots) /période de l'horloge) de ou vers la mémoire.= 320 M mots/s
les canaux ont un taux de transfert = 80 M mots/s
4 canaux opèrent simultanément pour achever le taux maximum de transfert.
266 tampons d'instruction
800 registres
12 unités fonctionnelles pipeline (1 à 14 étages).
Registres
adresses (A) 8 x 24 bits
scalaires (S) 8 x 64 bits
vectors (V) 8 x 64 x 64 bits
vectors (V) 8 x 64 x 64 bits
Tampons-adresse (B) 64 x 24 bits
Tampons-scalaire (T) 64 x 64 bits
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
14
Ordinateur vectoriel : Cray-1 (2/2)
VL : vector lenght
format d'instructions = 16 ou 32 bits
g
h
i
j
k
m
4
3
3
3
3
10
Algorithme LRU de remplacement des tampons d'instruction
*P = Program counter 22 bits
NIP = Next Instruction Parcel 16 bits
CIP = Current Instruction Parcel 16 bits
LIP = Lower Instruction Parcel 16 bits
*Recip Ap : Inverse approximatif d'un opérande de 64 bits en virgule flottante.
Pop/17 : compter le nombre de "1" dans l'opérande/
compter le nombre de '0' précédant un "1"
*Nombres en virgule flottante (64 bits) et en double précision (128 bits)
Dans Cray-1, une opération sur 1 vecteur ayant
3 éléments s'exécutent plus rapidement en mode scalaire
4 éléments ou plus s'exécutent plus rapidement en mode vecteur.
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
15
Compilation
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
16
Exemples de programmes Cray-1
Instructions indépendantes
V0 <--- V1 + V2
V3 <--- V4 + V5
Réservation de l'unité fonctionnelle
V3 <--- V1 + V2
V6 <--- V4 + V5
Réservation de l'opérande
V3 <--- V1 + V2
V6 <--- V1 * V5
Réservation de l'opérande et de l'unité
V0 <--- V1 + V2
V3 <--- V1 + V5
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
17
Exemple d’une boucle
Soient A et B deux vecteurs de longueur N.
D0 I = 1, N
A(I) = 5 * B(I) + C
10 CONTINUE
Q  N div 64
R  N mod 64
pour i = 1 à Q faire Calculer (A,64)
Calculer (A,R)
Fonction Calculer(A,longueur)
S0  5
initialiser le registre scalaire par une constante
S1  C
charger C dans le registre scalaire
VL  N
initialiser la longueur du vecteur
V0  B
multiplier chaque élément du vecteur par une constante
V1  S0 * V0
multiplier une constante
V2  S1 + V1
additionner une constante
A  V2
sauvegarder le résultat dans A
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
18
Vectorisation (1/3)
Vectorisation : ensemble de transformations apportées à un programme
scalaire conduisant à de bonnes performances lorsqu'il est exécuté sur un
ordinateur vectoriel.
Rôle : Compilateur ou manuellement (règles ou critères)
Exemple:
D0 10 I = 1, 10
V(I) = A(I) + B(I)
10 CONTINUE
V(1) = A(1) + B(1)
V(2) = A(2) + B(2)
V(3) = A(3) + B(3)
--------V(1) = A(1) + B(1)
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
19
Vectorisation (2/3)
Indépendance des données
DO 10 I = 1, 20
X(I) = X(I) + 5
10 CONTINUE
Dépendance des données
DO 10 I = 2, 20
X(I) = X(I-1) + 5
10 CONTINUE
X(1) = X(1) + 5
X(2) = X(2) + 5
X(3) = X(3) + 5
……
X(2) = X(1) + 5
X(3) = X(2) + 5
X(4) = X(3) + 5
……
Restructuration du programme
DO 20 I = 1, 1000
DO 20 J = 1,100
DO 20 J = 1, 100
DO 20 I = 1,1000
A(I,J+1) = A(I,J) + B(I,J)
A(I,J+1) = A(I,J) + B(I,J)
20 CONTINUE
20 CONTINUE
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
20
Vectorisation (3/3)
Eclatement de la boucle
DO 30 I = 1,100
A(I) = A(I) + 2
B(I+1) = B(I) + 1
30 CONTINUE
DO 20 I=1,100
A(I) = A(I)+2
20 CONTIONUE
DO 30 I =1,100
B(I+1)=B(I)+1
30 CONTINUE
Instruction conditionnelle et de branchement
DO 30 I = 1,100
DO 30 I=1,100
10 if (A(I) > 0) Goto 30 10 S(I) = A(I) > 0
20 B(I) = C(I) * 5
20 if S(I) then B(I) = C(I)*5
30 CONTINUE
30 CONTINUE
Exemples : ACTUS (1979) et VECTRAN (1975)
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
21
Vectorisation assistée
Vectorisation automatique (compilateur) n'est pas encore une solution
satisfaisante pour optimiser la performance d'un ordinateur vectoriel car :
• réalisation d'un compilateur vectoriel est complexe
• algorithmes sophistiqués
Vectorisation assistée :
• compilateur détecte les zones du programmes requérant le plus de temps
d'exécution.
• utilisateur peut intervenir pour restructurer le code du module.
Outils :
• bibliothèque de sous-programmes vectorisés (écrits par l'utilisateur ou par le
constructeur). Par exemple : opérations matricielles, équations d'algèbre
linéaire, détermination des valeurs propres, traitement du signal (TFR), …
• Expérience de l'utilisateur (architecture, compilateur, bibliothèque).
Architectures parallèles, M. Eleuldj, Département Génie Informatique, EMI, octobre 2008
22
Téléchargement