MIPS datové linky

Transkript

MIPS datové linky
Úvod do paralelních systémů
1. část
FIT VUT v Brně
Obsah
•
•
Paralelní přístup z pohledu praxe
Technologické důvody pro zavedení paralelismu
– Proč nestačí jedno jádro?
•
Moderní procesory – přehled vývoje architektur
–
–
–
–
–
•
Skalární
Superskalární
Koncept SIMD – vektorové instrukce, MMX, SSE,…
Architektura VLIW
Vícevláknové zpracování
Paralelní a distribuované systémy
– Základní koncepty architektury
– Propojovací sítě a topologie
– Vliv architektury paralelního systému na výkonnost
•
Masivně paralelní architektury - GPU
– Využití grafických čipů pro obecné výpočty (GPGPU)
Podrobně je problematika paralelních systémů probírána v magisterských kurzech:
Architektura procesorů
Architektura a programování paralelních systémů
Paralelní a distribuované algoritmy
2
Proč paralelní přístup?
• Paralelní přístup je nutný pro řešení složitých úloh,
které vyžadují vysoký výpočetní výkon.
– paralelní počítání (na vhodně propojených počítačích běží
paralelní algoritmus)
• Stávající technologická omezení nutí pro zajištění co
nejvyšší výkonnosti používat paralelní přístup na
všech úrovních (dat, instrukcí, vláken atd.)
– Jednoprocesorové systémy potřebují k navýšení výkonnosti
neúměrně vysoký příkon.
– Vícejádrové procesory poskytují pro daný povolený příkon
vyšší výkonnost.
3
Moorův zákon a výkonnost procesorů
•
Dříve (~ do 2005): výkonnost procesorů rostla zejména díky možnosti zvyšování
pracovní frekvence a miniaturizaci tranzistorů
–
–
•
Možnost implementovat složitější, sofistikovanější HW
Rostoucí složitost a frekvence však vyžaduje vyšší příkon
Současnost: roste složitost, ale příkon (frekvenci) už příliš zvyšovat nelze (CMOS)
–
Vyšší výkonnost lze dosáhnout zvýšením stupně paralelismu
Zdroj: International Solid-State Circuits Conference, 2013
4
Technologické limity
•
•
•
•
Frekvenci f nelze zvyšovat nad jistou mez => problém s odvedením tepla
Jaká je rozumná mez pro příkon? Dnešní procesory mají cca 100 W·cm-2
Při snížení Vdd je nutné snížit frekvenci (CMOS) – min. Vdd je cca 0,5V
Dynamická kapacita C – přibližně odpovídá počtu tranzistorů a jejich aktivitě
1000
P  C Vdd  f
2
Atomový reaktor
W/cm2
100
Pentium III
Horká plotna
P  Vdd
Pentium II
10
Pentium Pro
i386
1
1,5µ
Pentium
3
Na příkon má největší vliv Vdd.
i486
0,07µ
[Pollack, F. J. : “New microarchitecture challenges in the coming generations of CMOS
process technologies“, http://research.ac.upc.edu/HPCseminar/SEM9900/Pollack1.pdf]
5
Příkon vs. výkonnost
• Příkon roste úměrně složitosti
• Pollackovo pravidlo (empirické)
– Efektivní (užitečná) výkonnost procesorů je přibližně úměrná
druhé odmocnině jejich složitosti
– 2x více tranzistorů => jen 1,4x vyšší výkonnost
výkonnost
1000
příkon CPU (W)
1.4x
Neudržitelné!
100
10
příkon
1990 1995 2000 2005 2010 2015
6
Trendy v oblasti vývoje výpočetních systémů
Zdroj: International Solid-State Circuits Conference, 2013
• Redukce příkonu (snižování Vdd a frekvence)
=> snížení výkonosti
• Kompenzace v podobě zvýšení stupně paralelismu
• CLOCK: IBM System Z: 5,7 GHz, 2,75 mld. tranzistorů
• CORE: 24-jádrový procesor, Fudan University, Shanghai
7
Trendy v oblasti vývoje výpočetních systémů
International Technology Roadmap for Semiconductors, www.itrs.net
• Předpovědi vývoje různých parametrů v oblasti
polovodičů a jejich aplikací
Předpověď 2008
Předpověď 2011
Předpověď 2008
Předpověď 2011
Zdroj: ITRS 2011 Executive Summary, www.itrs.net
8
Měření výkonnosti
• Skalární procesory
Výkonnost = f / (CPI x 106) [MIPS]
CPI – Clocks Per Instruction
- Př. CPI = 2 znamená, že v každém druhém taktu je dokončena instrukce (obvykle
se CPI uvádí jako průměrná hodnota)
• Superskalární, vícejádrové procesory
Výkonnost = f x IPC
IPC – Instructions Per Clock
- Př. IPC = 4 znamená, že je možné dokončit 4 instrukce v každém taktu (obvykle se
IPC uvádí jako průměrná hodnota)
• Požadujeme
– Co nejvyšší výkonnost za rozumnou cenu (počet tranzistorů a
příkon).
9
10
11
Power ~ (1+0,2)3
12
Power ~ (1+0,2)3
Power ~ (1-0,2)3
13
14
Příklad z praxe: Nižší příkon při zvýšení výkonnosti
• Systém: řízení a
zpracování dat v FPGA
pro inteligentní kameru
• Stávající řešení
– FPGA, napájecí napětí
1,8 V, pracovní frekvence
100MHz, 150nm CMOS
technologie
• Technické řešení
– Pracovní frekvence je snížena úměrně
napájecímu napětí na 1,2V/1,8 V ×
100MHz = 66 MHz
– Příkon nové jednotky
Pnew  90 / 150  (1,2 / 1,8) 2  66 / 100  0,176  P
– Výpočetní jednotka je 3× replikována
• Nové řešení
– FPGA, napájecí napětí
1,2 V, 90nm technologie
(menší parazitní kapacity),
větší čip (díky novější
technologii výroby)
– Cena nového FPGA je
prakticky stejná
• Výsledný obvod - odhad
– Dvojnásobná výkonnost 3 × 66 MHz = 198 MHz oproti
původním 100 MHz
– Poloviční příkon
Popt  3  Pnew  3  0,176  P  0,528  P
15
Paralelní zpracování v procesorech
• Funkční paralelismus
– paralelismus na úrovni instrukcí (ILP – Instruction level Parallelism)
• řetězení ~ překrývající se zpracování instrukcí
• vícecestné zpracování
– paralelismus na úrovni vláken (TLP – Thread Level Parallelism)
• Datový paralelismus
– provádění stejných operací nad různými daty (MMX, SSE)
– vektorový procesor - opakované využití funkčních jednotek a
překrytí operací v čase
16
Klasifikace procesorů
• Architekturu procesoru charakterizují parametry:
– m - počet instrukcí, které se v jednom okamžiku vydávají ke zpracování
– r - počet současně prováděných (rozpracovaných) instrukcí
• Subskalární procesory (von neumannovské) r = 1, m = 1
– doba provádění programu je součtem dob trvání jednotlivých instrukcí.
– nová instrukce může být vydána až po té, co je zpracována předchozí.
• Skalární procesory r>1, m=1
– využívají řetězené zpracování instrukcí, kdy je v každém taktu vydávána
maximálně jedna instrukce, ale současně jich může být rozpracováno
několik.
• Superskalární procesory r>1, m>1
– vydávají k zpracování více než jednu instrukci v jednom taktu
– současně je rozpracováno několik instrukcí
• Další charakteristika
– Vícevláknové procesory - několik vláken je prováděno na 1 CPU
– Vícejádrové procesory – více vláken na několika CPU
– Vektorové procesory, VLIW atd.
17
Klasifikace vybraných procesorů
• Subskalární
– 4004, 8008
• Skalární
– 8086, 80286, 80386, 80486
• Superskalární
– Intel Pentium 1-4, AMD Opteron,…
• VLIW
– Itanium, Itanium 2
• Vícejádrové (superskalární)
–
–
–
–
–
Core Duo, Core 2 Duo, Core 2 Quad
core i3, Core i5, Core i7 and Core i9
Pentium D, 2 single-core dies packaged in a multi-chip module.
Pentium Dual-Core, a dual-core processor.
Xeon dual-, quad- and hexa-core processors
18
Superskalární procesory
• m-cestný (řetězený) procesor
– Dovoluje vydávat v jednom taktu až m instrukcí.
– Podporuje řetězené zpracování instrukcí, kdy se využívá několik paralelně
pracujících linek (paralelní načítání, paralelní dekódování instrukcí atd.)
– Mezi stupni řetězené linky jsou vícemístné buffery namísto registrů.
– Data-flow zpracování - rozpracované instrukce, které čekají na operandy, je
možné odložit do bufferu a probudit je, až budou operandy připraveny.
• Procesor má tři části
– Načtení/dekódování/rozesílání (pořadí instrukcí dodrženo)
– Provedení instrukcí v paralelně pracujících linkách (instrukce mohou být
provedeny mimo pořadí)
– Dokončení (podle pořadí)
• Charakteristika
–
–
–
–
Dynamické plánování instrukcí
Provádění instrukcí mimo pořadí
Spekulativní provádění skoků
Pokročilé řešení konfliktů ILP – přejmenování registrů (HW podpora),
přeskládání instrukcí, pokročilý přístup do cache atd.
19
Př. Intel Pentium (1993)
Advanced
Programmable
Interrupt Controller
http://en.wikipedia.org/wiki/Pentium
Bus width 64 bits
System bus clock rate 60 or 66 MHz
Address bus 32 bits
Addressable Memory 4 GB
Virtual Memory 64 TB
Superscalar architecture
Runs on 5 volts
16 KB of L1 cache
U and V pipeline (m=2)
20
Intel Pentium 4 - mikroarch. NetBurst
BTB (4k entries)
I-TLB/Prefetcher
Trace Cache BTB
(512 entries)
64 bits
IA32 Decoder
Code ROM
Execution Trace Cache
op Queue
Allocator / Register Renamer
Memory op Queue
Memory scheduler
INT / FP op Queue
64-bit
System
Bus
Quad
Pumped
400M/533MHz
3.2/4.3 GB/sec
BIU
Fast Slow/General FP scheduler Simple FP
INT Register File / Bypass Network
FP RF / Bypass Ntwk
U-L2 Cache
FP
FP
AGU
AGU
2x ALU 2x ALU Slow ALU
256KB 8-way
Move
Simple Simple Complex
MMX
Ld addr St addr
128B line, WB
Inst.
Inst.
Inst.
SSE/2
48 GB/s
256 bits
L1 Data Cache (8KB 4-way, 64-byte line, WT, 1 rd + 1 wr port)
@1.5Gz
21
Superskalární procesory
• Superskalární přístup dosáhl svých mezí
– Výkonnost = IPC x f
– IPC a f [MHz] jdou proti sobě!
• Vysoký IPC (až 6) => složitý HW => nízká f
• Vysoká f => jednodušší HW => nízké IPC
– Pro m > 4-8 již většinou nemá smysl (zrychlení je <3x)
– Zvyšování f je nevýhodné z hlediska příkonu - plánované projekty
superskalárních procesorů s vysokými kmitočty (9,2 GHz a10,2 GHz
firmy Intel) byly opuštěny pro vysoký příkon
• Další vývoj: VLIW, vícevláknové procesory, vícejádrové
procesory
22
Př. Pentium 4 (2000), mikroarchitektura NetBurst
•
•
•
•
•
•
•
•
•
stupňů linky: 20 (až 31)
rozpracováno až 126 instrukcí
Branche Target Buffer (BTB) 4096 pol.
Trace cache 12K (místo I-cache)
L1 D-cache: 8 kB, Load: 2 takty
L2 cache: 256 kB, 256 bitů
SSE2 – viz dále
hyperthreading – viz dále
externí přenosy QDR (Quad Data Rate): s 200 MHz
dosáhne 6,4 GB/s.
• Pozn.: Nástupcem NetBurst je od r. 2006 Core 2
(dvoujádrový procesor s nižším příkonem)
23
Intel Core 2
Sdíleno!
http://en.wikipedia.org/wiki/Intel_Core_(microarchitecture)
24
VLIW = Very Long Instruction Word
•
•
•
•
•
•
Používá několik nezávislých funkčních
jednotek (např. 2 x FX, 2 x FP, 2 x L/S)
pracujících synchronně
Existuje mnoho bran čtení a zápisu u
souboru registrů FX a FP i paměti.
Kompilátor sbalí pevný počet instrukcí do
jedné VLIW instrukce o délce 64 -128 bitů
a víc; sbalené instrukce nemusí být v
původním pořadí.
Kompilátor plánuje instrukce staticky
(oproti superskalárním procesorům) v
době kompilace a určuje, které instrukce
mohou běžet paralelně, a zahrne tuto
informaci do strojové instrukce VLIW.
Operace specifikované ve VLIW musí být
nezávislé na sobě navzájem i na
předchozích VLIW. Když nelze
naplánovat plný počet instrukcí, doplní se
instrukce NOP.
Dílčí instrukce z nezávislých skupin jsou
vydávány a prováděny paralelně, v
každém taktu jedno VLIW.
25
Př. VLIW: Intel Itanium 2 (IA-64)
•
•
•
•
•
•
•
•
•
1,5 (1,7) GHz, 130 W, 1,3 V, proces 130 nm
Jednotky: 2 x store, 2 x Load, 4 x MMX, 4 x FP, 6 x FX
L1 I-cache, D-cache: 4-cestná, 16 kB, write-through
L2 cache 256 kB, 8-cestná, write-back, sjednocená
L3 cache: 6 MB, 24-cestná, write-back, také na čipu !
128 registrů FX (65 bit),
128 registrů FP + MMX (82 bit)
8 registrů cílových adres nepřímých skoků (branch register)
Sběrnice 128 datových bitů @ 400 MHz = 6,4 GB/s (oproti 2,1 GB/s u
Itania).
26
Vývoj moderních mikroarchitektur AMD
2011
2012
2013
2014
www.anandtech.com
27
Př.: mikroarchitektura AMD Piledriver (2012)
http://www.xbitlabs.com/hot-topics/amd-piledriver
28
Vektorové procesory
•
•
•
•
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í kompilátor schopný
účinně konvertovat skalární kód na
vektorový.
Použití: vědecké výpočty
Procesor VDLX (modifikace DLX)
Na obrázku má pole VRF (vector
register file) 8 vektorových
registrů, 16 bran čtení a 8 bran
zápisu; každý registr obsahuje 64
prvků, 64 bitů / prvek.
29
Vektorové procesory
• Dosažitelné zrychlení za použití vektorové jednotky je závislé na části
kódu, který je převoditelný na vektorové instrukce.
• Příklady vektorových instrukcí:
–
–
–
–
addv v3, v1, v2
lv v1, r1
; načti vektor z paměti do registru v1; adresa 1. prvku je v r1
lvi v1,(r1+v2) ; načti vektor podle indexů ve vektoru v2, adresa prvku je r1 + v2(i):
s**v v1,v2
; nastav 64-bitový registr masky VM (Vector Mask) podle relace ** (eq,
ne, gt,...) mezi prvky v1 a v2
– Další: Vektorová redukce (např. součet/max/min/průměr položek ve vektoru), skalární
součin atd.
Paralelně
pracující
sčítačky
nebo
zřetězená
sčítačka
30
Instrukce MMX
•
•
Podpora multimediálních instrukcí v procesorech Intel (od Pentia II)
Zavedeny nové sbalené (packed) datové typy
– malé datové prvky (8-bitové pixely, 16- bitové vzorky zvuku,...) jsou sbaleny
dohromady do jednoho 64-bitového slova
•
Zavedeny nové instrukce (57), které pracují se všemi datovými prvky paralelně
(styl SIMD)
– výkonnost zlepšena 3-5krát pro vnitřní smyčky, 1,5 – 2 krát pro celé programy
– plná kompatibilita s existujícími mikroprocesory Intel (OS a SW)
•
Registry MMX
– 64-bitové registry MMX (MM0 - MM7) jsou mapovány na registry FP - jsou identické
s dolní částí 80-bitových registrů FP
– při zápisu do registrů MMX je bit 64 až 79 nastaven na 1 (NaN, Not a Number)
– do souboru registrů MMX je možný náhodný přístup!
•
Aplikace nemohou používat registry FP současně pro FP a MMX data a kód
musí být rozdělen na části FP a MMX.
31
MMX
32
SIMD: Instrukce SSE
• Další rozšíření intelovské architektury IA (od Pentia III) je SSI (SIMD
Streaming Instructions, proudové instrukce SIMD).
– Přidány nové 128b registry (XMM) a instrukce
• V tomto rozšíření mohou registry o velikosti 128 bitů uchovávat několik
čísel FP, na kterých se provádějí paralelní operace FP ve stylu SIMD.
• Cenou za toto další rozšíření je navýšení plochy proti Pentiu II o 10%,
zvýšení výkonnosti však činí až 62% (3D grafika) nebo 29% (MM).
• SSE2, SSE3, SSSE3, SSE4 – další vylepšení
• AVX – 256-bitové registry, v budoucnu až 1024 bitů
33
Instruction Level: Intel® SSE
SSE Operation
In Each Core
(SSE/SSE2/SSE3)
SOURCE
Single
Cycle
SSE
DECODE
127
0
X4
X3
X2
X1
Y4
Y3
Y2
Y1
X4opY4
X3opY3
X2opY2
X1opY1
X2opY2
X1opY1
SSE/2/3 OP
DECODE
DEST
Core™ arch
CLOCK
CYCLE 1
EXECUTE
EXECUTE
Previous
CLOCK
CYCLE 2
Perf
Energy
CLOCK
CYCLE 1
X4opY4
X3opY3
SIMD instructions compute multiple
operations per instruction
*Graphics not representative of actual die photo or relative size
34
Multivláknové procesory
• Vlákno (thread) je posloupnost instrukcí vyžadující určitý adresový
prostor a čas CPU. Vlákna jsou (oproti procesům) lehká, přepnutí
kontextu je rychlejší, kopíruje se méně dat.
• Vlákna tvořená v rámci procesu sdílí jeho adresový prostor a další
prostředky – kód, hromadu aj. K vláknu patří jen ukazatele IP a SP
(instruction pointer, stack pointer), PSW (program status word) včetně
myid a priority, sada registrů a zásobník.
• Nejčastěji je to programátor, kdo explicitně vlákna vytvoří při
paralelizaci programu.
• Multivláknový provoz (MT - MultiThreading)
– Časový – vlákna se střídají na jednom CPU (TMT)
– Prostorový – vlákna běží paralelně v multiprocesorovém systému se
sdílenou pamětí (P procesorů / P vláken)
– Časoprostorový (na P procesorech běží R vláken a R>P)
35
Multivláknové procesory
• Podpora více vláken v HW je asi nejzajímavější technika pro překlenutí
vysoké latence přístupu do paměti.
– Musí však existovat dostatek vláken.
– Doba přepnutí vlákna (přepnutí kontextu) musí být krátká.
– Na obrázku je porovnání typického výpočtu pro různé architektury:
36
Př. Počet vláken pro TMT
• Jestliže chceme tolerovat latenci přístupů do paměti (např.
L = 70 taktů) multivláknovými CPU, kolik vláken (N) bude
třeba pro získání maximální účinnosti, když jedno vlákno
běží průměrně R=10 taktů a přepnutí kontextu trvá S = 3
takty?
(N – 1)R + NS ≥ L
(N – 1)10 + 3N ≥ 70
13N ≥ 80
N ≥ 6,15
N≥7
37
Multivláknový procesor
•
Z pohledu HW
– Prostředky sdílené vlákny:
• Procesor, cache, prediktory skoků
– Prostředky replikované pro každé vlákno
• Sada registrů, PC, SP, PSW, řadič přerušení
– Je třeba dodat nový HW – např. pro výběr vlákna
•
Techniky TMT
– Hrubý MT
• Jedno vlákno běží řadu taktů, k přepnutí kontextu
dochází pouze při výskytu události s dlouhou latencí,
která by vedla k zastavení linky.
– Jemný MT
• každém taktu se přepíná na jiné vlákno (prokládání
vláken).
– SMT, souběžný (současný) MT
(Simultaneous Multithreading).
• V každém taktu přepíná kontext několika vláken
současně, protože v jednom taktu se zpracovávají
instrukce z několika vláken.
• Hyperthreading (firemní název, Pentium 4)
– 2 vlákna
– kombinuje jemný MT (pokud vlákna nejsou pozastavena)
a hrubý MT (pokud je jedno vlákno pozastaveno).
– Nárůst ploch cca 5%, nárůst výkonnosti cca 25%.
(4-cestný superskalární CPU, TNT)
38
Multithread, multicore - shrnutí
• Podpora vícevláknového zpracování (multitasking,
multithreading) může mít různou podobu
– Přepínání úloh pouze z úrovně OS – dnes se již samostatně
téměř nepoužívá
– Přepínání s podporou HW CPU – nejedná se o paralelní
zpracování, úlohy běží v časovém multiplexu (hrubý/jemný MT)
– Vícecestné procesory – souběžný MT, výhradně s HW podporou
CPU, paralelní vykonávání instrukcí různých úloh (pokud je to
možné – sdílení určitých komponent CPU)
– Vícejádrové procesory (multiprocesory) – každé jádro může
autonomně spouštět různé úlohy (vlákna nebo i procesy).
Běžně se používá v kombinaci s dříve uvedenými přístupy.
• Komunikace mezi vlákny se provádí přes sdílenou paměť.
• Programování nejčastěji pomocí OpenMP (C/C++)
39
Ukázka kódu s více vlákny (OpenMP)
• OpenMP – MultiProcessing – rozšíření C/C++ o direktivy
#pragma omp …
a další knihovní funkce, umožňující specifikovat, jakým
způsobem má být kód paralelizován.
40
Pokračování příště
41
Úvod do paralelních systémů
2. část
FIT VUT v Brně
Obsah
•
•
Paralelní přístup z pohledu praxe
Technologické důvody pro zavedení paralelismu
– Proč nestačí jedno jádro?
•
Moderní procesory – přehled vývoje architektur
–
–
–
–
–
•
Skalární
Superskalární
Koncept SIMD – vektorové instrukce, MMX, SSE,…
Architektura VLIW
Vícevláknové zpracování
Paralelní a distribuované systémy
– Základní koncepty architektury
– Propojovací sítě a topologie
– Vliv architektury paralelního systému na výkonnost
•
Masivně paralelní architektury - GPU
– Využití grafických čipů pro obecné výpočty (GPGPU)
Podrobně je problematika paralelních systémů probírána v magisterských kurzech:
Architektura procesorů
Architektura a programování paralelních systémů
Paralelní a distribuované algoritmy
43
Jak využít n procesorů?
• Procesory nekomunikují (n krát rychlejší než sekvenční počítač)
– Mohu spustit současně více různých úloh, každou na jednom procesoru
– Mohu spustit stejnou úlohu na n procesorech, ale s jinými parametry (např.
program pro předpověď počasí s různým nastavením počátečních
podmínek – zrychlení n-krát oproti sekvenčnímu počítači)
• procesory komunikují (spolupracují) za účelem vyřešení složité úlohy v
rozumném čase, jedná se o paralelní systém
– Návrh řešení určité úlohy na paralelním systému se nazývá paralelní
programování
– Procesory společně řeší jednu úlohu, musí být vhodně propojeny
– Někdy je možné dosáhnout větší zrychlení než v předchozím případě!
– Příklad: paralelní řazení Enumeration sort (pro k prvků)
• Pokud je k dispozici k2 procesorů, je časová složitost O(log k)
– Příklad: paralelní řazení Bucket sort (pro k prvků)
• Pokud je k dispozici log (k) procesorů, je časová složitost O(k)
44
Paralelní systém – základní vrianty
•
Se sdílenou pamětí (shared memory, SM)
– Obvykle řešeno jako tzv. UMA – uniform memory access, kdy latence přístupu do
sdílené paměti je stejná u všech procesorů
(SMP – symetrický multiprocesor).
– Programování pomocí OpenMP
– Výhoda: efektivní komunikace
– Nevýhoda: max. pouze ~ 32 procesorů
(v závislosti na použité propojovací síti)
•
S distribuovanou pamětí (distributed memory, DM)
– Každý procesor má svoji (privátní) paměť
– Programování (komunikace) pomocí knihovny zasílání zpráv
(MPI – Message Passing Imterface),
případně přes síťové sokety
– Výhoda: škálovtelnost
– Nevýhoda: vyšší komunikační režie
•
Se distribuovanou sdílenou pamětí (distributed shared memory, DSM)
– Obvykle řešeno jako tzv. CC-NUMA (cache coherent non-uniform memory access)
45
Propojení víceprocesorových systémů
• Komunikace mezi procesory a přístup ke sdíleným prostředkům
jsou realizovány přes propojovací sítě
např. sběrnice,
úplné propojení,
Xbar apod.
(viz dále)
http://www.fujitsu.com/global/services/computing/server/sparcenterprise/technology/performance/crossbar.html
46
Křížový přepínač (X-bar)
• Propojení 1:1 mezi vstupy a výstupy.
• Je možné propojit 1 vstup k několika
výstupům.
• Více vstupů k jednomu výstupu se
připojit nesmí.
• Je nutné použít arbitr.
• Cena: p2 přepínačů (řešení založeno
na multiplexorech) – drahé řešení
• Použití: propojení procesorů s
procesory nebo paměťovými moduly
Způsob propojení procesorů a typ linek má zásadní vliv na výkonnost!
47
Zahltit sběrnici není obtížné
•
Uvažme procesory (každý s I-cache a D-cache) propojené navzájem
sběrnicí a připojené k paměti
–
–
–
–
•
•
•
•
•
Hit rate hi = 98% v I-cache
Hit rate hd = 95% v D-cache
Procesor má výkonnost 250 MIPS
Přístup do D- cache potřebuje 1/3 instrukcí (~ 75 MIPS)
•
•
Počet výpadků v I-cache 2% x 250 MIPS = 5 M výpadků /s
Počet výpadků v D-cache 5% x 75 MIPS = 3,75 M výpadků /s
Celkem 8,75 M výpadků/s
Při každém výpadku se po sběrnici přenáší blok o velikosti 16B.
Potřebná šířka pásma je pro každý procesor 8,75 M výpadků/s x 16B
= 140 MB/s
Kolik procesorů zahltí sběrnici, která má propustnost 1GB/s?
N = 1000 / 140 => 7 procesorů
•
Závěr: Větší počet procesorů nemá smysl propojovat sběrnicí!
48
Přímé propojovací sítě – příklady topologií
49
Př. Sečtení k čísel na n procesorech
• Sekvenční řešení: ts= k - 1 kroků
• Paralelní řešení (každý procesor má k/n čísel):
– Hyperkostka: tp = k/n + 2 log2 n kroků
– Kruh: tp = k/n + 2n/2 = k/n + n kroků
práce jednoho
procesoru
komunikační
režie
Kruh n = 8
krok 1
Hyperkostka n = 8
krok 1
krok 2
krok 3
výsledek
1
2
2
3
3
4
výsledek
Pozn.: Operace “pošli mezivýsledek a sečti” je počítána jako 2 kroky.
50
Př. Sečtení k čísel na n procesorech
•
zrychlení = ts / tp
8 procesorů
9
zrychleni_krychle
8
zrychleni_kruh
7
6
5
4
3
2
1
0
0
500
1000
1500
2000
k
Je patrný velký vliv komunikační režie na zrychlení pro nízké hodnoty k.
51
Př. Sečtení k čísel na n procesorech
k = 2048
100
90
80
70
zrychleni_hyperkostka
zrychleni_kruh
60
50
k
40
30
20
10
0
0
200
400
600
800
1000
n
U kruhu je patrný velký vliv komunikační režie na zrychlení pro větší počet procesorů.
52
Nejvýkonnější superpočítače (2013)
http://www.top500.org/
53
Vybrané paralelní výpočetní systémy v ČR
• Výpočetní cluster na FIT VUT v Brně (řízeno systémem SGE)
– Až 2400 procesů (dle stavu jednotlivých serverů/modulů)
– V současnosti 102 uzlů, každý vybaven 2x CPU 4-16 jader, 4-256 GB RAM
• „Malý cluster“ Anselm, VŠB-TU Ostrava (spuštěn 2013), součást
projektu IT4Innovations (VUT je účastníkem projektu)
– Přes 200 uzlů, každý vybaven 2x CPU
Intel Sandy Bridge 8-core, 96 GB RAM,
některé navíc disponují GPU akcelerátorem Nvidia Tesla Kepler K20
• Ve výstavbě je „velký cluster“ – dokončení ~ 2015, současný odhad
kolem 15. místa v top500 (IT4Innovations, VŠB-TU Ostrava)
54
Graphics Processing Elements (GPU)
• GPU – programovatelná grafická karta (od r. 2001, Nvidia GeForce 3)
• Tradiční použití GPU – grafická pipeline
GPU
• Propustnost
55
General-Purpose Computation on Graphics Hardware (GPGPU)
•
•
GPGPU – provádění obecných výpočtů na GPU (v současnosti velmi populární, vysoký
výkon za nízkou cenu)
Má smysl pro určité úlohy typu SIMD (statisíce datových položek)
rychlé a velké cache,
predikce skoků,
vysoká výkonnost
pro jedno vlákno,
podpora přerušení,
virtualizace paměti.
velké množství ALU –
zejména operace MAD vynásob a sečti, FMA (MAD
pro FP, jedno zaokrouhlení),
mnoho HW vláken,
rychlé lokální paměti,
špatná podpora větvení,
nízký výkon na jedno vlákno.
přibližně stejná plocha
ve srovnání s CPU
http://www.pgroup.com/lit/articles/insider/v2n4a1.htm
56
Vhodné problémy pro GPU
57
Výkonnost GPU ve srovnání s procesory
http://michaelgalloy.com/2013/06/11/cpu-vs-gpu-performance.html
58
Př. GeForce GTX 280
SM – streaming multiprocessor
SFU - Special Function Units
TPC -Texture/Proces-sor Cluster
59
Příklad současné GPU
60
Prostředky pro tvorbu aplikací na GPU
•
CUDA (Compute Unied Device Architecture) je knihovna firmy Nvidia
určená pro obecné výpočty optimalizované na GPU.
– Příklad: násobení matic konvenčně a pomocí CUDA C
•
OpenCL – platforma pro tvorbu aplikací přenositelných mezi různými
architekturami (např. GPU, ARM a další)
– Méně efektivní, překlad prováděn za běhu automaticky pro danou architekturu
61
Literatura
•
•
•
•
•
•
Dvořák, V., Drábek, V.: Architektura procesorů. Studijní opora. FIT VUT v Brně 2006
Dvořák, V.: Architektura a programování paralelních systémů. Skriptum VUT v Brně 2004
Hanáček, P.: Paralelní a distribuované algoritmy. Přednášky FIT VUT v Brně, 2008
Fučík O.: Hardware/Software codesign. Habilitační přednáška, FIT VUT v Brně 2009
Bhandarkar D.: The Dawn of a New Era: Multi-Core Computing. Intel 2006
Pospíchal P.: Akcelerace genetického algoritmu s využitím GPU. Diplomová práce FIT VUT v Brně,
2009
•
Pozn. Většina obrázků převzata z internetu a uvedených publikací
• Podrobně je problematika paralelních výpočtů probírána v
magisterských kurzech:
– Architektura procesorů
– Architektura a programování paralelních systémů
– Paralelní a distribuované algoritmy
62

Podobné dokumenty

Principy počítačů I

Principy počítačů I Procesor zpracuje celý vektor jedinou instrukcí. Délka vektoru je uložena ve zvláštním registru.

Více

Aplikace s využitím syntézy na systémové úrovni pro

Aplikace s využitím syntézy na systémové úrovni pro komponenta je použita při připojenı́ AdaBoost klasi[BRAM jako FIFO u filtrů obrazu] Obrazový fikátoru. filtr v FPGA pracuje s proudem pixelů. Typicky každý [Zřetězenı́ funkce] Častou op...

Více

Soft procesory pro FPGA Xilinx

Soft procesory pro FPGA Xilinx unvitř FPGA (lze i externí) ● Možnost přehraní programu bez přeprogramování FPGA – pomocí JTAG rozhraní ● Sdílení jedné pamětí dvěma mikrokontroléry (oba stejný kód / půl na půl) ● ALU – instrukce ...

Více

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

Ozařování potravin Kvasničková.indd sloučenin, např. vodíkový a hydroxylový radikál, molekulární vodík, kyslík a peroxid vodíku (H2O2). Hydroxylové radikály a peroxid vodíku jsou velmi reaktivní. Je známo, že ruší vazby mezi nukleový...

Více

Digitální účastnická přípojka VDSL2

Digitální účastnická přípojka VDSL2 Ve většině evropských států je přístupová telekomunikační síť tvořena symetrickými metalickými páry. Koncepce návrhu této sítě počítala především s poskytováním telefonních služeb prostřednictvím a...

Více

Vektorové pocítace

Vektorové pocítace 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...

Více

06-2010 openMagazin 6/2010

06-2010 openMagazin 6/2010 Francouzská společnost Mandriva S. A., výrobce nového Chrome je rychlost. Podle Google je až linuxové distribuce Mandriva Linux, má, zdá se, za- o 213 % rychlejší než původní beta a tuto vlastnost ...

Více