Vektorové pocítace
Transkript
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
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š...
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í, ...
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á...
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í...
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
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 ...
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...
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...
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...
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. ...