SISTEME SIMD

38
SISTEME SIMD PROCESOARE MATICIALE PROCESOARE VECTORIALE SISTEME SISTOLICE VLSI

description

SISTEME SIMD. PROCESOARE MATICIALE PROCESOARE VECTORIALE SISTEME SISTOLICE VLSI. PROCESOARE MATICIALE. Prima idee: Unger ( 1958 ) articol “A Computer Oriented Toward Spatial Problems”. - PowerPoint PPT Presentation

Transcript of SISTEME SIMD

Page 1: SISTEME SIMD

SISTEME SIMD

• PROCESOARE MATICIALE

• PROCESOARE VECTORIALE

• SISTEME SISTOLICE VLSI

Page 2: SISTEME SIMD

PROCESOARE MATICIALE

Prima idee: Unger (1958) articol “A Computer Oriented Toward Spatial Problems”.

Primul calculator matricial: ILLIAC IV NASA ~1970. Alte sisteme: Thinking Machine CM-2, Maspar MP-2 etc.

Ideea de bază: o unitate de control furnizează semnalele care controlează elementele de prelucrare, formate din UCP-uri sau UAL-uri şi memorie locală, toate aceste elemente de prelucrare operând în acelaşi ritm.

Criteriile de bază la proiectarea unui calculator matricial :

1) structura unităţilor de prelucrare, în funcţie de aplicaţie: astfel, se pot utiliza unităţi aritmetice-logice foarte simple sau UAL-uri de complexitate medie pe 8-32 de biţi sau chiar UAL-uri foarte complexe cu posibilităţi de prelucrare în virgulă mobilă.

Page 3: SISTEME SIMD

2) interconectarea elementelor de prelucrare: orice topologie, cea mai utilizată alegere fiind grila rectangulară, datorită implementării naturale a problemelor bidimensionale cu matrici şi imagini;

Page 4: SISTEME SIMD

3) autonomia locală a elementelor de prelucrare: unitatea de control specifică elementelor de prelucrare instrucţiunea care se execută, dar fiecare element de prelucrare poate să execute sau nu, instrucţiunea, pe baza unor informaţii locale (coduri de condiţie).

Page 5: SISTEME SIMD

PROCESOARE VECTORIALE

Procesoarele vectoriale -> succes comercial mare!

Cele mai cunoscute calculatoare: sistemele realizate la Cray Research, începând cu Cray-1 (1976) şi continuând cu celelalte calculatoare din seria Cray, inclusiv C90 şi T90.

Într-o aplicaţie tipică de prelucrare a vectorilor există multe instrucţiuni de forma: 

for (i=0; i<n; i++) a[i]=b[i]+c[i]; unde a,b,c sunt vectori de numere reprezentate în virgulă mobilă.

Page 6: SISTEME SIMD

O arhitectură adecvată pentru acest gen de prelucrări:

Page 7: SISTEME SIMD

De obicei, prelucrarea vectorială este combinată cu prelucrarea în bandă de asamblare. Pentru instrucţiunea de mai sus se consideră un sumator pentru numere reprezentate în virgulă mobilă, realizat în bandă de asamblare, având patru segmente. La fiecare ciclu, fiecare segment al benzii de asamblare execută o operaţie elementară.

Page 8: SISTEME SIMD

Cray-1

Page 9: SISTEME SIMD

Exemplu: se consideră operaţia vectorială: 

R1 = R1 * R2 + R3 unde R1, R2 şi R3 sunt vectori. Această operaţie se realizează aşa cum se prezintă în tabela:

Page 10: SISTEME SIMD

SISTEME SISTOLICE VLSI

Atributele de bază ale structurilor de calcul VLSI sunt:

1) simplitate şi regularitate: se obţine un cost suficient de mic faţă de aplicabilitatea limitată;

2) concurenţă si comunicaţie: se obţine o utilizare concurentă a elementelor de prelucrare, iar în cazul unui număr mare de elemente de prelucrare care lucrează simultan, coordonarea şi comunicaţia devin semnificative;

3) intensitate a calculului: structurile VLSI fiind caracterizate de o mare intensitate a calculului sunt orientate spre implementarea algoritmilor limitaţi de calcule şi mai puţin spre implementarea algoritmilor limitaţi de I/E (numărul de calcule este mult mai mare decât numărul de operaţii de I/E). Exemplu: produsul de matrici are O(n3) paşi de înmulţire-adunare, dar numai O(n2) operaţii de I/E, în timp ce adunarea a două matrici necesită n2 operaţii de adunare şi 3n2 operaţii de I/E.

Page 11: SISTEME SIMD

Conceptul de arhitectură sistolică a fost dezvoltat de Kung şi un colectiv de la Carnegie Mellon University. Un sistem sistolic : set de celule interconectate, fiecare capabilă să realizeze o anumită operaţie simplă => structuri simple pentru comunicaţie şi control.

Într-un sistem sistolic informaţia se transferă în flux între celule într-un mod bandă de asamblare, iar comunicaţia cu mediul extern este realizată numai de celule de graniţă.

Principiul de bază al structurilor sistolice: înlocuirea unui element de prelucrare (PE – Processing Element) printr-un masiv de elemente de prelucrare

=> productivitate de calcul mai mare fără a creşte concurenţa la memorie.

Avantaje:-PE capabil să utilizeze fiecare dată de intrare;-expandabilitate modulară;-fluxurile de date şi control sunt simple şi regulate;-utilizarea de celule simple şi uniforme;-eliminarea comunicaţiilor globale;-timp de răspuns scurt.

Page 12: SISTEME SIMD
Page 13: SISTEME SIMD

Un model global pentru un masiv de procesoare VLSI :

(G, F, T)unde:

G este geometria reţelei şi se referă la topologia de interconectare a componentelor. Poziţia fiecărei celule este determinată de coordonatele carteziene în plan. Interconectarea între celule suportă fluxul de date prin reţea. O legătură poate fi dedicată unui singur flux de date sau poate transporta fluxuri diferite la momente de timp diferite.

F specifică funcţiile asociate cu fiecare celulă de prelucrare, reprezentând totalitatea expresiilor pe care o celulă este capabilă să le calculeze. Se presupune că fiecare celulă conţine un număr mic de registre, un UAL şi logică de control. În aceeaşi reţea pot exista mai multe tipuri diferite de celule.

T reprezintă temporizarea reţelei, furnizând pentru fiecare celulă momentele de timp la care se realizează calculul funcţiilor F şi comunicaţiile de date. O temporizare corectă asigură ca datele corespunzătoare să se găsească într-o anumită poziţie, la un anumit moment de timp. Sunt preferate reţelele cu viteze constante de comunicaţie a datelor, deoarece necesită un control mai simplu.

Page 14: SISTEME SIMD

Pentru implementarea a numeroşi algoritmi se utilizează câteva tipuri de bază de module aritmetice VLSI:

Modul de descompunere a unei matrici în produs de două submatrici triunghiulare inferioară L (“lower”) si superioara U (“upper”):

Page 15: SISTEME SIMD

Modul de inversare submatrice triunghiulară:

Page 16: SISTEME SIMD

Modul de înmulţire matrici:

Page 17: SISTEME SIMD

Modul de înmulţire matrice-vector:

unde {bi i=1,2,…,p}, c şi d sunt vectori coloană m*1, iar {Ai i=1,2,…,p} sunt matrici

m*m.

Page 18: SISTEME SIMD

Întârzierile modulelor D şi I : 2m unităţi de timp (într-o unitate de timp realizându-se o operaţie de înmulţire şi adunare a*b+c=d sau o operaţie de împărţire a/b=c).

Întârzierile modulelor M şi V : pm+1 unităţi de timp.

Deoarece modulele D, I şi M conţin m2 procesoare elementare, complexitatea interioară : O(m2).

Complexitatea modulului V : O(m).

Page 19: SISTEME SIMD

Singura operaţie comună tuturor algoritmilor consideraţi este o operaţie de adunare-înmulţire:

c c + a * bpentru care se consideră un procesor elementar cu trei registre Ra, Rb şi Rc, fiecare registru având o intrare şi o ieşire. Există două geometrii de bază:

a) procesor rectangular (produs matrice-vector, soluţii sisteme triunghiulare liniare);b) procesor hexagonal (produs de matrici, descompunerea LU a unei matrici pătrate).

Page 20: SISTEME SIMD

Principalele tipuri de interconectări între procesoarele elementare: reţea liniară, reţea bidimensională ortogonală şi reţea bidimensională hexagonală.

Page 21: SISTEME SIMD

Înmulţire matrice – vector 

Se consideră operaţia de înmulţire între o matrice A pătrată de n*n elemente şi un vector coloană x cu n elemente, obţinându-se un vector coloană y cu n elemente.

Matricea A este de tip bandă, cu lăţimea de bandă w=p+q-1, unde p şi q reprezintă numărul de colane şi respectiv de linii de elemente, diferite de zero, în jurul diagonalei principale, toate celelalte elemente fiind zero (pentru exemplul considerat p=2, q=3, w=4).

Page 22: SISTEME SIMD

Elementele produsului :

Page 23: SISTEME SIMD

Procesoarele sunt numerotate cu 1,2,…, w (în exemplul considerat w=4) de la stânga spre dreapta. Fiecare procesor are trei registre Ra, Rx şi Ry, iniţializate cu zero, pentru manipularea operanzilor. La cicluri impare sunt active procesoarele impare, iar la cicluri pare sunt active procesoarele pare.

Fiecare pas al algoritmului constă din următoarele operaţii:-deplasare:

Ra primeşte un nou element din A;Rx primeşte Rx al procesorului din stânga (procesorul 1 primeşte xi);

Ry primeşte Ry al procesorului din dreapta (procesorul w primeşte 0).-înmulţire şi adunare:

Ry Ry + Ra * Rx

Un pas = o unitate de timp => după w unităţi de timp componentele rezultatului încep să iasă din procesorul 1, cu o rată de ieşire de un rezultat la fiecare două unităţi de timp.

Timpul total necesar efectuării înmulţirii matrice-vector:t = 2n + w

în comparaţie cu O(wn) pe un sistem monoprocesor.

Page 24: SISTEME SIMD

Înmulţire de matrici 

Se consideră înmulţirea a două matrici pătrate de n*n elemente, A şi B (de tip bandă, cu p1=2, q1=3, w1=4, p2=3, q2=2 şi w2=4), pentru a obţine o nouă matrice C.

Page 25: SISTEME SIMD

Relaţii de recurenţă:

Timpul necesar operaţiei de înmulţire a două matrici pătrate n*n, de tip bandă, cu lăţimile de bandă w1 şi w2 este: 

t = 3n + min (w1, w2)

 Se observă că în fiecare rând sau coloană a reţelei, din trei procesoare

consecutive numai unul singur este activ la oricare moment de timp => este posibil ca prin reproiectarea procesoarelor să se micşoreze dimensiunea reţelei la w1w2/3

procesoare.

Page 26: SISTEME SIMD
Page 27: SISTEME SIMD

Descompunerea LU a unei matrici 

Matrice pătrata A -> două submatrici triunghiulare, de aceleaşi dimensiuni, L (lower), având elementele de deasupra diagonalei principale nule şi U (upper), având elementele de sub diagonala principală egale cu zero. Exemplu: o matrice de tip bandă cu p=4 şi q=4 (lăţimea de bandă w=7).

Page 28: SISTEME SIMD

Relaţii de recurenţă:

Page 29: SISTEME SIMD

Procesorul cerc: reciproca intrării -> rezultatul spre SV şi intrarea nemodificată spre N. Procesoarele de pe latura stânga sus sunt rotite cu 120 în sens orar;Procesoarele de pe latura dreapta sus sunt rotite cu 120, în sens antiorar.

Page 30: SISTEME SIMD

A matrice bandă cu lăţimea w=p+q-1 => o reţea cu pq procesoare conectate hexagonal poate calcula descompunerea LU a matricii A, în : 

t = 3n + min (p, q) unităţi de timp.

A matrice densă de n*n elemente (w=2n-1) => o reţea cu n2 procesoare poate executa descompunerea LU în timpul t = 4n unităţi de timp, incluzând operaţiile de intrare/ieşire.

Fiecare procesor lucrează numai la fiecare al treilea pas => prin reproiectarea procesoarelor se poate reduce dimensiunea reţelei la pq/3.

Page 31: SISTEME SIMD

Rezolvarea sistemelor triunghiulare liniare 

Sistem liniar Ax=b -> descompunere LU a matricii A => două sisteme triunghiulare liniare:

Sistem triunghiular superior -> sistem triunghiular inferior => rezolvarea unui sistem triunghiular inferior.

Reformularea problemei: fie A o matrice triunghiulară inferioară n*n, de tip bandă şi un vector coloană b de n elemente. Trebuie calculat vectorul coloană x de n elemente, astfel încât:

Page 32: SISTEME SIMD

Matricea A de tip bandă, cu lăţimea de bandă w=q=4:

Page 33: SISTEME SIMD

Relaţii de recurenţă:

=> reţea de procesoare rectangulare conectate liniar:

Page 34: SISTEME SIMD

Valorile yi (iniţializate cu zero): dreapta -> stânga.

Procesorul cerc:xi = ( bi – yi ) / aii

În momentul în care yi a ajuns în marginea stângă are valoarea:

yi = ai1x1 + ai2x2 + …+ ai,i-1 xi-1

xi se poate calcula de către procesorul cerc:

xi = ( bi - yi ) / aii

Page 35: SISTEME SIMD

Timpul necesar rezolvării unui sistem triunghiular liniar n*n, în care matricea coeficienţilor necunoscutelor este de tip bandă, cu lăţimea de bandă w=q :

t = 2 n + qunităţi de timp.

Page 36: SISTEME SIMD

Alte aplicaţii 

Problema convoluţiei a doi vectori a şi x -> înmulţire matrice-vector.

Matricea construită cu elementele vectorului a este o matrice de tip Toeplitz (elementele de pe direcţii paralele cu diagonala principală sunt egale).

Vectorul rezultat b :

Page 37: SISTEME SIMD

Problema filtrului FIR (Finite Impulse Response) -> înmulţire matrice-vector (matrice tip Toeplitz, triunghiulară superioară, cu lărgimea de bandă w=p conţinând coeficienţii filtrului).

Page 38: SISTEME SIMD

Transformata Fourier discretă (TFD) de n puncte -> înmulţire matrice-vector (elementul i,j al matricii este (i-1)(j-1), fiind o rădăcină de ordinul n a unităţii).

Reţea conectată liniar de mărime n => convoluţia a doi vectori de n elemente şi TFD de n puncte :

=> O(n) unităţi de timp (algoritm FFT - Fast Fourier Transform - secvenţial: O(n log n) unităţi de timp).