Vektorové pocítace

Transkript

Vektorové pocítace
Architektury počı́tačových systémů
Katedra informatiky a výpočetnı́ techniky
České vysoké učenı́ technické, fakulta elektrotechnická
Vektorové počı́tače
Ing. Tomáš Zahradnický
doc. Ing. Róbert Lórencz, CSc.
10. prosince 2007
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
Pamět’ové banky
S výhodou použı́váme pamět’ s prokládaným cyklem pro urychlenı́
přı́stupu. Současně se tak čte z n pamět’ových bank a rychlost čtenı́
je tedy cca n−násobná. Rychlost čtenı́ je také ovlivněna střı́dou.
Přı́klad: Uvažujme pamět’ se 4 bankami s prokládaným cyklem
obsahujı́cı́ vektor V se střı́dou (stride) s = 7.
1. Naznačte umı́stěnı́ prvnı́ch čtyř složek vektoru v pamět’ových
bankách, pokud je složka V [0] umı́stěna v modulu č. 2.
2. Napište formuli určujı́cı́ čı́slo pamět’ového modulu, ve kterém
bude umı́stěna složka V [i] (moduly jsou čı́slovány od 0).
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
Pamět’ové banky, pokračovánı́
Řešenı́:
2, V[0]
1. Viz obrázek. Každý prvek vektoru V [i]
označen včetně jeho adresy v paměti.
2. Složka V [i] má adresu a = 2 + 7i
(V [0] je v bance 2 a střı́da je 7).
Danou banku b vypočteme jako zbytek
po dělenı́ adresy a počtem bank:
9, V[1]
16, V[2]
23, V[3]
30, V[4]
0
a ≡ b (mod 4).
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
1
2
3
Obrázek: Umı́stěnı́ složek vektoru
Architektury počı́tačových systémů
Gather & Scatter I
Instrukce cvi v1, r1 uložı́ do registru v1 takové adresy elementů
délky r1, které odpovı́dajı́ nastaveným bitům ve vektorovém
maskovacı́m registru vm, 0 ≤ i ≤ vlr.
Přı́klad: Jaký bude výsledek pro r1 = 7 a vm = 0x93.
Řešenı́: v1 = [0, 7, 28, 49].
vm
1
0
0
1
0
0
1 1
i · r1 49 42 35 28 21 14 7 0
vm[i] · i · r1 49
0
0
28
0
0
7 0
Poznámka: Tento přı́klad očekává pamět’ orientovanou po bytech.
Normálně bývá velikost prvku mocninou 2.
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
Gather & Scatter II
Techniky gather a scatter sloužı́ pro manipulaci s řı́dkými vektory.
Pomocı́ těchto instrukcı́ lze snadno pracovat s řı́dkými maticemi,
rozptýlenými pamět’ovými strukturami, atd. žádná z uvedených
instrukcı́ se neřı́dı́ obsahem registru vm.
Gather: Instrukce lvi v1, r1, v2, provádı́ sběr dat a nahraje do
registru v1 prvky z relativnı́ch adres, které jsou obsahem vektoru
v2 bázované k r1. Vektor relativnı́ch adres lze zı́skat napřı́klad
pomocı́ instrukce cvi. v1[i] = M [r1 + v2[i]].
Scatter: Instrukce svi r1, v2, v1 je přesným opakem instrukce lvi
a sloužı́ tedy k rozptýlenı́ dat vektoru v1 na adresy specifikované
elementy vektoru v2. M [r1 + v2[i]] = v1[i].
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
Gather & Scatter III
Přı́klad: Nahrajte do registru v1 prvky hlavnı́ diagonály čtvercové
matice A dimenze 4 uložené v paměti M s počátečnı́ adresou v r2.
Prvky matice jsou celá čı́sla a každé z nich zabı́rá 4 bajty.
Řešenı́: Prvky, které chceme majı́ indexy 0, 5, 10 a 15 a to
odpovı́dá maskovacı́mu vektoru vm = 0x8421. Vygenerujeme
adresy prvků a použijeme instrukci lvi k načtenı́ diagonály.
1. Nastavı́me registr masky vm na hodnotu 0x8421.
2. Nastavı́me registr r1 na hodnotu 4 (délka jednoho elementu).
3. Použijeme instrukci cvi v1, r1 na výpočet relativnı́ch adres
prvků odpovı́dajı́cı́ch masce.
4. Použijeme instrukci lvi v2, r2, v1 k načtenı́ těchto prvků.
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
Špetka terminologie
Iniciačnı́ interval (startup): čas potřebný k nastartovánı́ dané
jednotky. Na konci iniciačnı́ho intervalu je již k dispozici jeden
výsledek.
Konvoj: Množina vektorových instrukcı́, které se mohou začı́t
vykonávat v tom samém čase (bez strukturálnı́ch nebo datových
hazardů), konvoje se nepřekrývajı́.
Chime: Přibližný čas pro vektorovou operaci.
Chaining: Výstup jedné jednotky je pipelineován rovnou na vstup
druhé.
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
DLXV DAXPY
Přı́klad: Vektory X a Y majı́ délku 64 prvků. Mějme smyčku
DAXPY. Iniciačnı́ intervaly jednotlivých jednotek jsou:
I jednotka L/S 11 taktů;
I sčı́tačka 5 taktů;
I násobička 6 taktů.
Dále předpokládejme, že vektorové funkčnı́ jednotky generujı́ nebo
konzumujı́ jeden prvek operandu každý takt.
1. Rozdělte instrukce do konvojů. L/S jednotka je schopna pouze
jednoho přı́stupu do paměti a máme pouze jednu násobičku.
Proved’te s a bez použitı́ chainingu.
2. Nakreslete diagram zpracovánı́ a spočtěte kolik taktů připadá
na výpočet jednoho prvku výsledného vektoru.
3. Určete konfiguraci DLXV aby se dal program provést jako
jediný konvoj.
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
DLXV DAXPY, pokračovánı́ I
lv
v1 ,
multsv v2 ,
lv
v3 ,
addv
v1 ,
sv
(ry),
1. Rozdělenı́ do konvojů:
4, protože 3 L/S instrukce
2. Výpočet a graf
Startup
I
Výpočet
(rx)
f0, v1
(ry)
v2 , v3
v1
Bez chainingu
74
11
74
68
74
63
6
11
63
63
5
63
11
63
cycCPU = 74 + 74 + 68 + 74 = 290
.
To činı́ průměrně 290/64 = 4.53 taktů na element.
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
DLXV DAXPY, pokračovánı́ II
I
S chainingem
Vzhledem k tomu, že smyčka DAXPY obsahuje 3 L/S
instrukce a máme k dispozici pouze jednu LS jednotku,
musı́me ji rozdělit do 3 konvojů následujı́cı́m způsobem:
80
11
79
74
63
6
63
11
63
5
63
11
63
cycCPU = 80 + 79 + 74 = 233
.
Průměrně 233/64 = 3.64 taktů na element.
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
DLXV DAXPY, pokračovánı́ III
3. Návrh vylepšenı́ DLXV Vzhledem k tomu, že největšı́ problém
působı́ nedostatek L/S jednotek, doporučujeme tedy přidat 2
dalšı́ L/S jednotky (2×L, 1×S), čı́mž by se mohl program
provést jako jeden konvoj (a nikoliv jako 3 v přı́padě
s chainingem).
I
Vylepšená verze s chainingem s dalšı́mi jednotkami
96
11
63
6
63
11
63
5
63
11
63
cycCPU = 11 + 6 + 5 + 11 + 63 = 96
Průměrně 96/64 = 1.5 taktu na element.
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
Úkol
Přı́klad: Pro následujı́cı́ program (konfigurace viz DAXPY):
1. Rozdělte instrukce do konvojů. L/S jednotka je schopna pouze
jednoho přı́stupu do paměti a máme pouze jednu násobičku.
Proved’te s a bez použitı́ chainingu.
2. Nakreslete diagram zpracovánı́ a spočtěte kolik taktů připadá
na výpočet jednoho prvku výsledného vektoru.
3. Určete konfiguraci DLXV
jediný konvoj.
lv
multsv
multsv
addv
sv
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
aby se dal program provést jako
v1, (rx)
v2, f0, v1
v3, f1, v1
v4, v2, v3
(ry), v4
Architektury počı́tačových systémů
Úkol 2 I
Přı́klad: Je dán 32-bitový procesor DLXV s jednobránovou pamětı́,
která je rozdělena celkem do 4 bank. Šı́řka každé banky je 64 bitů.
Latence (vybavovacı́ doba položky) každé banky je rovna 4 taktům
procesoru DLXV. Adresové bity A(4:3) určujı́ čı́slo banky. Adresové
bity A(31:5) jsou přivedeny na adresnı́ vstupy každé banky, kde
každá banka má kapacitu 1 GB v organizaci 128M × 64b.
Poznámka: Pro jednoduchost je z každého 64b čı́sla zobrazeno
pouze spodnı́ch 8 bitů.
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
Úkol 2 II
A(31:5)
0...00000000
0...00000001
0...00000010
0...00000011
0...00000100
00
01
0A
02
AB
AA
A(4:3)
01
10
03
05
0B
0C
04
06
CD DE
BB A5
11
07
0D
08
FF
5A
Dále je dán stav
procesoru DLXV:
r2 = 0x10,
r3 = 0x20,
r4 = 16,
vlr = 8
1. Graficky znázorněte časový průběh a určete délku prováděnı́ pro
instrukce:
lv
v0, (r2)
lvws v1, (r3), r4
2. Určete obsah registrů v0 a v1 po provedenı́ těchto instrukcı́.
3. Jak může vektorový procesor čı́st/zapisovat data řı́dkých matic?
4. Jak může vektorový procesor provádět operace s vybranými složkami
vektoru?
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
Architektury počı́tačových systémů
Řešenı́ I
1. Graficky znázorněte časové průběhy a délku instrukcı́. Banky
jsou označeny částı́ adresy A(4:3):
lv v0, (r2)
lvws v1, (r3), r4
10
11
00
10
00
00
10
01
10
00
11
10
00
00
01
11
2. Určete obsahy registrů v0 a v1:
v0 = {05, 07, 0A, 0B, 0C, 0D, 02, 04}
v1 = {0A, 0C, 02, 06, AB, DE, AA, A5}
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače
10
17
Architektury počı́tačových systémů
Řešenı́ II
3. Jak může vektorový procesor čı́st/zapisovat data řı́dkých
matic?
Data řı́dkých matic lze čı́st/zapisovat pomocı́ operacı́
scatter&gather — tedy pomocı́ instrukcı́ lvws a svws.
4. Jak může vektorový procesor provádět operace s vybranými
složkami vektoru?
Nad vybranými složkami lze pracovat pomocı́ maskovánı́ —
viz instrukce lvi a svi.
Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Vektorové počı́tače

Podobné dokumenty

Komplikace v anestezii u geriatrických pacientu

Komplikace v anestezii u geriatrických pacientu starý člověk nezvýšı́ srdečnı́ výdej při zátěži stejně adekvátně jako mladý zpomalená relaxace ♥ ⇒ při ↑ TF hrozı́ ischemie myokardu snı́žená kardiovaskulárnı́ rezerva pomalejš...

Více

Modus – RIA22 / RIA24 Návod k instalaci

Modus – RIA22 / RIA24 Návod k instalaci Šrouby lze montovat a demontovat pomocí specielní imbusové násady k šroubováku MPR-Skey (option na samostatnou objednávku). Při demontáži jednotky, po odpojení všech vodičů připojených k zařízení, ...

Více

K čemu je clicker training dobrý?

K čemu je clicker training dobrý? Ano. Jen to pravděpodobně bude trochu obtížnější. Pamlsky jsou velmi výhodné, když je pes považuje za primární odměnu (tedy něco, co mu je samo osobně příjemné), můžete je dát psovi okamžitě, v krá...

Více

MIPS datové linky

MIPS datové linky Procesor obsahuje vektorovou jednotku, která pracuje souběžně se skalární; Každý takt končí operace s jedním prvkem vektoru, operace na prvcích vektoru jsou datově nezávislé. Je nutný vektorizující...

Více

T estovanı kom ponent O bsah K roky testovanı kom ponent E lem

T estovanı kom ponent O bsah K roky testovanı kom ponent E lem Nutnost Chybný přı́kaz vytvořı́ výsledek odlišný od výsledku správného přı́kazu. Přı́klad: 4 = 2 + 2 vs. 4 = 2 ∗ 2

Více

Skriptum

Skriptum veličiny. Energie jednoho fotonu (v tomto přı́padě se použı́vá označenı́ E a jednotky eV (elektronvolt), 1 eV = 1.63 · 10−19 J) se spočı́tá podle vztahu E = hν = hc/λ. Dosadı́me-li hodnotu ...

Více

Ozařování potravin Kvasničková.indd

Ozařování potravin Kvasničková.indd 2. LEGISLATIVNÍ ZÁKLAD OZAŘOVÁNÍ POTRAVIN V EU Po řadu let měly jednotlivé členské státy EU svá vlastní pravidla pro ozařování potravin pokud jde o výběr potravin pro ozařování, použité dávky a pro...

Více

xdsl.ob

xdsl.ob Při přenosu dat s programovým řı́zenı́m se na tomto přenosu podı́lı́ výhradně mikroprocesor tı́m, že postupně provádı́ instrukce účelně seřazené do segmentu řı́dı́cı́ho programu. Me...

Více

1´Uvod - Studentské projekty FIS VŠE v Praze

1´Uvod - Studentské projekty FIS VŠE v Praze (z angl. browser) notně zavádějı́cı́ pojmenovánı́, nebot’ dnešnı́ prohlı́žeče umožňujı́ mnohem vı́ce, než pouhé prohlı́ženı́ stránek. Snahou této přı́ručky je podat komplexnı́ přeh...

Více

Tlakové dělo Gaither BB06L Bead BAZOOKA

Tlakové dělo Gaither BB06L Bead BAZOOKA Tlakové dělo Gaither BB06L Bead BAZOOKA Pat ntovaný produkt vysoké kvality od irmy Gaith r z USA. Př stož má toto dělo obj m nádoby pouz 6l, př dčí svým účink m běžná tlaková děla o obj m ch 25 l. ...

Více