vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/vektorski...

29
Vektorski računari Zoran Jovanovic K orišdeni neki slajdovi sa vodedih univerziteta u SAD

Upload: others

Post on 15-Oct-2019

17 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Vektorski računari

Zoran Jovanovic

Korišdeni neki slajdovi sa vodedih univerziteta u SAD

Page 2: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Paralelizam je u DoAll petljama?

• Odvojimo deo mašine za skalarni deo koda sa neregularnim paralelizmom i uradimo neku paralelizaciju (skalarni procesor)

• Drugi deo mašine odvojimo samo za programske petlje, realno za DoAll i napravimo da postoji hardverska podrška za nizove (vektorski procesor)

• Svaki deo radi ono za šta je bolji, a kompajler ili čak programer odvaja kôd za skalarni ili vektorski procesor

• Kako napraviti vektorski procesor?

Page 3: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Protočni stepeni sa velikim kašnjenjem kombinacione logike u bržem pipeline-u

T TT T

4TModul 0

4TModul 1

4TModul 2

4TModul 3

Takt mod 4

Takt + 1 mod 4

Takt +2 mod 4

Takt + 3 mod 4

Takt mod 4

Takt + 1 mod 4

Takt +2 mod 4

Takt + 3 mod 4

T – kašnjenje brzih pipeline stepeni

4T – kašnjenje sporih pipeline stepeni

Page 4: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Ciklusi

Vreme0 T 2T 3T 4T 5T 6T 7T 8T 9T ...

Moduli

0

1

2

3

0

1

2

3

0

1

2

3

Page 5: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Memory Interleaving – memorija je spora!!!

Add- ress

Addresses that are 0 mod 4

Addresses that are 2 mod 4

Addresses that are 1 mod 4

Addresses that are 3 mod 4

Return data

Data in

Data out

Dispatch (based on 2 LSBs of address)

Bus cycle

Memory cycle

0

1

2

3

0

1

2

3

Module accessed

Time

Ako se sekvencijalno ide po adresama u memorijskim operacijama, iluzija je slededa:

“Memorijski pipeline”

4* sporija memorija radi efektivno punom brzinom u pipeline-u ako čitamo ili upisujemo u blokove podataka!!!CRAY 16* sporija memorija (mod 16)!!

Page 6: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Model za petlje koje obrađuju nizove podataka – naročito DoAll

• Iskoristiti Memory interleaving da se napune vektorski registri (sadrže cele nizove za sve ili deo operacija data ready na vrhu grafa)

• Međurezultati se takođe čuvaju u vektorskim registrima

+

r1 r2

r3

add r3, r1, r2

SCALAR(1 operation)

v1 v2

v3

+

vectorlength

add.vv v3, v1, v2

VECTOR(N operations)

Page 7: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Komponente CRAY VektorskihProcesora

• Vektorski Registri: Fiksne veličine za jedan vektor (niz)– ima najmanje 2 read i 1 write port

– tipično je 8-32 vektorska registra, svaki sa 64-128 64-bit elemenata

• Vektorske Funkcionalne Jedinice (FJ): pipeline koji započinje novu operaciju svakog ciklusa– tipično 4 to 8 FJ: npr. 2x FP add, 2x FP mult, FP reciprocal

(1/X), integer add, logical, shift;

• Vector Load-Store jedinice (LSUs): memorijski pipeline interleaved memorije

• Skalarni registri: po jedan element za FP skalar ili adresu

• Cross-bar da poveže FJ , LSU, registre

Page 8: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Do I = 1,128 E(I) = A(I)*B(8*I)+C(257-I)+D(I);

E1 E2 E128

*1 *2 *128 +1 +2 +128+3 +4

A1 A2 A128 B8 B16 B1024 C256 C255 C129 D1 D2 D128

+ two3 PS

*5 PS

+ one3 PS

CHAINING

Page 9: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Chaining, graf DoAll i vektorski registri

Aciklički graf zavisnosti za petlju – sve iteracije mogu u paraleli

Argumenti iz memorije kao

nizovi za iteracije Ideja: prvo uraditi za sve iteracije deo grafa (~4 operacije se započinje po ciklusu)

Ovi rezultati ostaju u vektorskim registrima

Zatim uraditi slededi deo (~4 operacije po ciklusu) ...

Ukupno 7 vektorskih registara

5

7

6

3

0

1 2

4

0

5

1

7

2

4

6

3

Page 10: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Vektorska jedinica i ulančavanje instrukcija chaining

• Iz acikličkog grafa otkidamo čitave podgrafove slobodne na vrhu i povezujemo ih u složene pipeline-e prema grafu zavisnosti po podacima DoAll petlje.

• Data ready nizove ubacujemo u vektorske registre –Interleaving. Nema cache za nizove!!!

• Veličina podgrafa zavisi od broja raspoloživih ALU i broja vektorskih registara

• Veza rezultat-argument ostvaruje se preko istog vektorskog registra

• Vektorski registri mogu da ubace kašnjenja (pointer(i) za read i write pomereni) da se sinhronizuje stizanje argumenata za ulančani pipeline

Page 11: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Vektorska jedinica i ulančavanje instrukcija (2)

• Deo argumenata za nove podgrafove koji postaju slobodni na vrhu su ved u vektorskim registrima nakon završetka prethodnog podgrafa!!

• Nema adresiranja memorije ili cache-a i povedava se dubina pipeline-a

• Broj lokacija vektorskih registara za elemente nizova je isti

• Ako je broj lokacija svakog vektorskog registra manja od ukupnog broja iteracija, mora se raditi manji broj iteracija = broju lokacija vektorskih registara

Page 12: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

SIMD vektorski procesori - pojedinačne instrukcije za veliki broj iteracija

• Operacije slobodne na vrhu se izvršavaju pojedinačno, ali nadvedim skupom iteracija istovremeno.

• Izračunati rezultati se vradaju u vektorske registre i/ili memoriju

• Једноставнија реализација компајлера

NPR. Instrukcija 1 za veliki broj iteracija

Graf DoAll petlje

Page 13: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Trake

• Pokazuju odlične performanse za izvršavanje programa sa visokim nivoom paralelizma na nivou podataka

• U svakoj traci se izvršavaju identične operacije nad delom vektora koji predstavljaju argumente operacije i koji su učitani u tu traku

• Jednostavnost realizacije – identične kontrolne sekvence koje upravljaju trakama

• Pogodnost da prevodilac može lako da se prilagođava broju traka bez izmene vektorskih asemblerskih instrukcija

Page 14: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Chaining i trake pojednostavljeno

Page 15: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Trake ubrzanje• Izvršavanje aplikacije u

kojoj vremenski dominira izvršavanje DoAll petlje. Može se značajno ubrzati izračunavanje povedanjem broja traka, ako je dovoljan broj iteracija. Brzina raste samo malo sporije od linearne sa brojem traka uz interfejs od 512 bita.

Page 16: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Predikatsko izvršavanje i SIMD

• Postojanje kontrolnih zavisnosti (grananja) u iteraciji petlje zahteva povedanje kompleksnosti da bi se izvršila vektorizacija

• Na osnovu predikata se određuje da li de operacija biti izvršena i rezultat upisan, za elemente vektora – IF konverzija

• Sastavni deo svake banke su pored vektorskih registara i vektorskih jedinica i predikatski registri u predikatskom registarskom fajlu i predikatske logičke jedinice PLU

Page 17: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Predikatsko izvršavanje i SIMD (2)

• Ukupan broj bita u predikatskom registru jednak je maksimalnom broju elemenata niza koji se može nalaziti u reči npr. (8)

• Potreban broj bita u predikatskom registru zavisi od broja bita argumenata u odnosu na širinu reči vektorskih registara i određen je konfiguracijom

Page 18: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Berkeley 2016 Hwacha

• Akademski razvoj nove generacije vektorskih procesora – simulirala asistent Maja Vukasovid za master tezu

• Iz keš memorije se učitava odgovarajudi broj elemenata za argumente (operande) instrukcije i prosleđuje se prema utvrđenom rasporedu izabranim trakama

• U trakama se nalaze banke, a u bankama vektorski registri za čuvanje vektorskih argumenata za iteracije dodeljene banci kao i logika za predikatsko izvršavanje

• Izračunavanja, izuzev za FP, se obavljaju u ALU jedinicama u okviru banaka, a samo FP se emituje preko crossbara do FP jedinica

Page 19: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Jedna traka 4 banke

Page 20: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Jednabanka

Page 21: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

SWAR (SIMD Within A Register)

Za interpretaciju koliko elemenata niza ima u 128-bitnoj reči vektorskog registra, potrebno je dostaviti konfiguraciju u vreme prevođenja (to treba da radi programski prevodilac)

Preslikavanje elemenata niza se izvodi postavljanjem konfiguracionog vektora

Primer konfiguracionog vektora

Vektorskog registarsko fajla:

{4, 4, 8, 0}

4 * 64 bita, 4 * 32 bita, 8 * 16 bita i 0 * 8 bita

Page 22: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

SWAR (Polimorfizam)

• Pakovanje podataka u vektorske registarske fajlove svih traka događa se implicitno, na osnovu podešene konfiguracije i transparentno je za program!

• Kompajler adaptira prema širini SWAR reči i broju traka, ali nema novih instrukcija za različite širine reči u programu!

Page 23: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

SWAR/Polimorfizam (2)

• Sequencer prosleđuje grupama funkcionalnih jedinica neophodne kontrolne informacije koje su izvedene iz koda koji se vektorizuje i dinamičke konfiguracije

• Izračunavanje rezultata operacije nad prosleđenim argumentima se u funkcionalnim jedinicama odvija na rekonfigurabilnom hardveru koji podržava izračunavanja, bez obzira na širinu pojedinačnih elemenata niza koji čine argumente

Page 24: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Predikatski registarski fajl• Može da čuva prethodne predikate, a PLU pravi

logičke operacije prethodnih predikata sa novoizračunatim u PLU, po pojedinačnim elementima niza, ali istovremeno, sa više bita za sve elemente u SWAR reči.

P1

P1 and P2

P1

P2

˥P1 ˥P2P2

P1 and ˥P2

˥P1 or (P1 and

˥P2)

Page 25: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Primer transformacije algoritmasum:=0do i=0,1023

sum:= sum + a(i) a(i) je integer

Kako paralelizovati na Hwacha, ako je a(i) širine 32 bita, a 4 trake sa po 128 bita?4*4*4 u 16 SWAR registara, po jedan u svakoj banci. Reči u SWAR registru * broj banki registara u traci *broj traka * broj SWAR registara u svakoj banci Sabrati podzbirove po bankama u podzbir trake od po 64 * a(i) *4 u jedan SWAR registarSkupiti u jednu traku i sabrati SWAR podzbirove svih traka 256 * a(i) *4 u SWAR cele petljeVratiti SWAR registar u data cache. Sabrati 4 susedna elementa koji su bili u SWAR registru

Page 26: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

VLIW/Out-of-Order premaModest Scalar+Vector

0

100

Applications sorted by Instruction Level Parallelism

Pe

rfo

rma

nc

e VLIW/OOO

Modest Scalar

Vector

Very Sequential Very Parallel

(gde su važne aplikacije na ovoj osi?)

Page 27: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Zaključci

• Potrebno je praviti algoritme koji sadrže petlje koje je mogude vektorizovati

• To mora da uradi programer, jer programski prevodilac ne može da ulazi u algoritam

• Novi programski prevodioci de takve programe modi da pretoče u veoma paralelni kod za vektorske procesore. Zasada vektorske instrukcije.

• Postidi de se znatno veda brzina i istovremeno manja potrošnja energije

Page 28: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Vektorski procesori klasični - mane

• Posvedeno suviše pažnje DoAll, ignorišudi pripremu za vektorske operacije i podrazumevajudi veliki broj iteracija (pipeline je sa velikim brojem pipeline stepeni pa traži puno iteracija da se isplati) !

• Povedanje vektorskih performansi bez posvedivanja dovoljno pažnje skalarnim performansama (Amdahl-ov zakon)

• Nedovoljna je propusnost memorije u odnosu na performanse vektorskog procesora

Page 29: Vektorski računari - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ir4par/materijali/Vektorski računari.pdf · Korišdeni neki slajdovi sa vodedih univerziteta u SAD. Paralelizam je u DoAll

Prednosti vektorskih procesora• Lako se dobijaju visoke performanse; N operacija se simultano

izvršava za DoAll petlje:

• Skalabilno (dobijaju se bolje performanse sa porastom HW resursa)

• Kompaktno: N operacija se prikazuje jednom jednostavnom instrukcijom (nasuprot VLIW)

• Prediktabilne (real-time) performanse prema statističkim performansama (cache)

• Multimedia, spremno i može se birati N * 64b, 2N * 32b, 4N * 16b, 8N * 8b

• Za chaining je razvijena tehnologija compiler-a

• Za SIMD je još u razvoju tehnologija kompajlera