Vous êtes sur la page 1sur 22

Chapitre II Principe du pipeline et traitement vectoriel

Pipeline Principe Unidimensionnel Bidimensionnel Ordinateurs vectoriels Cray-1 Vectorisation

Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Pipeline unidimensionnel
Concept : chane de montagne dans une usine Objectif : amlioration des performances

tches
H

E1 H

E2 H

T H

Ek

T H

Hypothses : Ei : tage i (1 i k), T : tampon et H : horloge Temps(Ei) = i, Temps(T) = 0 et = max{1 i k, i} + 0 n tches, T1 et Tk : temps sans et avec pipeline de k tages Tk = 0 + k + (n - 1) = (k + n - 1) + 0 Supposons que T1 = nk Rendement = T1/Tk = nk/ [(k + n - 1) + 0] nk/(k+n - 1)
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Additionneur des virgules flottante


Entre : deux nombres en virgules flottante normalise. 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 -- rduction au mme exposant = 0,0101 x 29 + 0,1101 x 29 -- addition des matisses = 1,0010 x 29 -- normalisation = 0,1001 x 210
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Algorithme de calcul
1. Dterminer r = max(p,q) et t = | p q | 2. Dcaler droite la mantisse associe au plus petit exposant par t bits 3. Additionner les mantisses pour obtenir c 4. Normaliser le rsultat : si c < 1 alors u = 0 si c > 1 alors u = 1 5. Le rsultat final est : d = c << u et s = r + u

Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Pipeline de laddition flottante


S1 S1 S1 S1

r=max(p,q) p a A=a x 2p Autre fraction Soustracteur dexposants t=| p q |

c Additionneur d exposants Compteur u C=A+B=d x 2s s

q Slecteur b B=b x 2q de fraction

Additionneur c de Dcaleur droite Fraction avec min(p,q) fraction

de zros Dcaleur d gauche

Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Rduction des dlais


Hypothses : 0 = 10 ns, 1 = 90 ns, 2 = 70 ns, 3 = 60 ns et 3 = 40 ns la priode du pipeline P 90 + 10 = 100 ns = 10-7s la frquence f = 1/P = 107 Hz = 10 Mhz aprs initialisation, excution d'une opration 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 rduire le temps en fusionnant S3 et S4 ?
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Exemples de UAL pipeline


Ordinateur Star-100 TI-ASC Cray-1 Cyber 20 Nombre dtages 4 8 14 26

Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Pipeline 2 dimensions
Calcul de C= A * B o A et B sont 2 matrices dordre n Algorithme classique (SISD) contient n3 multiplications si n = 104 et une multiplication en 1 s temps d'excution = 11 j Tableau systolique pour la multiplication (MISD) nombre de cellules de base 3n-3n+1 multiplication est complte aprs 3n-1 priodes si n = 104 et une priode en 1 s MISD = 300 M processeurs et temps d'excution = 0,03 s
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Compilation

Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Ordinateurs pipeline
Chevauchement du traitement de donnes dans : - UAL - UC - Processeur d'E/S - Hirarchie de la mmoire La performance peut se dgrader de faon significative cause de la dpendance des donnes ---> conflit des ressources.

Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Ordinateurs vectoriels
Un superordinateur est caractris par : - haute vitesse de calcul - MP et MS grandes et rapides - logiciels // gnralement conu pour effectuer le calcul - vectoriel - ou matriciel utilis dans les applications scientifiques : prvision mtorologique, recherche nuclaire, intelligence artificielle

Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Gnrations des ordinateurs vectoriels


gnration premire 1975 deuxime Anne 1960 Machine Star-100 TI-ASC Illiac-IV Cray-1 Cyber 200 VP-200 futur Cray-2 Cyber-205 Nec
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

MFLOPS 50 30 160 800 400 2000 3000 5000

installations 7 en 1978 4 1 60 en 1982

Fujitsu VP-200 500

Coprocesseurs scientifiques (Scientific Attaches Processors)


Caractristiques Relis un ordinateur hte une structure pipeline traitement des vecteurs et nombres en virgule flottante Gnration du micro-code pour les applications vectorielle spcifiques (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 matriel (langage, compilation, vectorisation, optimisation).
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Ordinateur vectoriel : Cray-1 (1/2)


Premier ordinateur vectoriel moderne priode de l'horloge = 12.5 ms frquence = 80 Mhz. cycle de la mmoire = 50 ms, bipolaire (SECDED) transfert de (4 mots) /priode de l'horloge) de ou vers la mmoire.= 320 M mots/s les canaux ont un taux de transfert = 80 M mots/s 4 canaux oprent simultanment pour achever le taux maximum de transfert. 266 tampons d'instruction 800 registres 12 units 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 parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Ordinateur vectoriel : Cray-1 (2/2)


VL : vector lenght format d'instructions = 16 ou 32 bits g 4 h 3 i 3 j 3 k 3 m 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 oprande de 64 bits en virgule flottante. Pop/17 : compter le nombre de "1" dans l'oprande/ compter le nombre de '0' prcdant un "1" *Nombres en virgule flottante (64 bits) et en double prcision (128 bits) Dans Cray-1, une opration sur 1 vecteur ayant 3 lments s'excutent plus rapidement en mode scalaire 4 lments ou plus s'excutent plus rapidement en mode vecteur.
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Compilation

Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Exemples de programmes Cray-1


Instructions indpendantes V0 <--- V1 + V2 V3 <--- V4 + V5 Rservation de l'unit fonctionnelle V3 <--- V1 + V2 V6 <--- V4 + V5 Rservation de l'oprande V3 <--- V1 + V2 V6 <--- V1 * V5 Rservation de l'oprande et de l'unit V0 <--- V1 + V2 V3 <--- V1 + V5

Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Exemple dune 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 lment du vecteur par une constante V1 S0 * V0 multiplier une constante V2 S1 + V1 additionner une constante A V2 sauvegarder le rsultat dans A
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Vectorisation (1/3)
Vectorisation : ensemble de transformations apportes un programme scalaire conduisant de bonnes performances lorsqu'il est excut sur un ordinateur vectoriel. Rle : Compilateur ou manuellement (rgles ou critres) 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 parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Vectorisation (2/3)
Indpendance des donnes DO 10 I = 1, 20 X(I) = X(I) + 5 10 CONTINUE Dpendance des donnes 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 parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

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 parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Vectorisation assiste
Vectorisation automatique (compilateur) n'est pas encore une solution satisfaisante pour optimiser la performance d'un ordinateur vectoriel car : ralisation d'un compilateur vectoriel est complexe algorithmes sophistiqus Vectorisation assiste : compilateur dtecte les zones du programmes requrant le plus de temps d'excution. utilisateur peut intervenir pour restructurer le code du module. Outils : bibliothque de sous-programmes vectoriss (crits par l'utilisateur ou par le constructeur). Par exemple : oprations matricielles, quations d'algbre linaire, dtermination des valeurs propres, traitement du signal (TFR), Exprience de l'utilisateur (architecture, compilateur, bibliothque).
Architectures parallles, M. Eleuldj, Dpartement Gnie Informatique, EMI, octobre 2008

Vous aimerez peut-être aussi