Část 1
ZÁKLADNÍ RYSY VÝPOČETNÍ PROSTŘEDKŮ DOSTUPNÝCH NA IT4INNOVATIONS
Maximální výkonnost CPU • Maximální výkonnost CPU je dána výrazem Pmax=cores*k*f, kde: – cores je počet jader v CPU, – k je počet FP instrukcí, které mohou být provedeny v jednom taktu, – f je frekvence CPU.
• V současnosti (jaro 2014) nejmodernější Intel CPU mají tyto parametry rovny – cores=6, – f=3.6 GHz, – k=16 pro jednoduchou přesnost nebo 8 pro dvojitou přesnost.
• Takže maximální výkonnost vychází 350 Gflops pro jednoduchou přesnost a 170 Gflops pro dvojitou přesnost.
2
Maximální výkonnost GPU I • Maximální výkonnost GPU je dána výrazem Pmax=cores*k*f, kde: – cores je počet výkonných jader v GPU, – k je počet FP instrukcí, které mohou být provedeny v jednom taktu, – f je frekvence GPU.
• V současnosti (jaro 2014) nejmodernější GPU od firmy Nvidia (Geforce GTX Titan) mají tyto parametry rovny: – – – –
cores= 2688, f= 837 MHz, k=2 pro jednoduchou přesnost. k=2/3 pro dvojitou přesnost.
• Takže maximální výkonnost vychází 4.5 Tflops pro jednoduchou přesnost(SP) a 1.5 Tflops pro dvojitou přesnost(DP)
3
Maximální výkonnost GPU II • Pro výpočty v dvojité přesnosti nebyla řada Geforce (pro řadu Fermi) optimalizována • nejvýkonnější GPU od firmy Nvidia řady Tesla K40 má tyto parametry rovny: – – – –
cores=2880, f=0.8 GHz, k=2 pro jednoduchou přesnost. k=2/3 pro dvojitou přesnost.
• Takže maximální výkonnost vychází 4.3 Tflops pro SP a 1.3 Tflops pro DP.
4
Maximální výkonnost Xeon Phi I • Maximální výkonnost Xeon Phi je dána výrazem Pmax=cores*k*f, kde: – cores je počet výkonných jader v GPU, – k je počet FP instrukcí, které mohou být provedeny v jednom taktu, – f je frekvence GPU.
• Daný CPU (Xeon Phi 7120P) mají tyto parametry rovny: – – – –
cores= 61, f= 1238 MHz, k=32 pro jednoduchou přesnost. k=16 pro dvojitou přesnost.
• Takže maximální výkonnost vychází 2.4 Tflops pro jednoduchou přesnost(SP) a 1.2 Tflops pro dvojitou přesnost(DP)
5
Srovnání rychlostí výpočtu
6
Srovnání rychlostí výpočtu
CUDA training course
7
Srovnání rychlostí přenosu
Xeon Phi
8
Flynova klasifikace HW • Single Instruction Single Data stream (SISD) =1 procesor provádí 1 instrukční proud nad daty uloženými v 1 paměti = “klasický“ CPU • Single Instruction Multiple Data stream (SIMD) =1 instrukce je prováděna nad množinou dat množinou procesorů = vektorové a maticové počítače • Multiple Instruction Single Data stream (MISD) = posloupnost dat je přenášena k množině procesorů provádějících různé instrukce=systolické pole, fault-tolerant systémy • Multiple Instruction Multiple Data stream (MIMD) = množina procesorů současně provádí různé instrukce nad různými daty=multiprocesory, multipočítače, distribuované systémy
Proč jsou GPU tak rychlé? Nelze zvyšovat frekvenci procesorů kvůli přehřívání, ale lze přidávat další funkční jednotky,díky tomu se oddělily 2 vývojové linie: 1. multi-core (několik plnohodnotných jader na jednom čipu). Po této linii jdou současné CPU. 2. many-core (mnoho „jednodušších“ jader na jednom čipu). Po této linii jdou současné GPU. Využití GPU pro negrafické účely je označováno jako GPGPU („generalpurpose computing on graphics processing units“).
]
10
Využití křemíku
Rozdíly CPU a GPU • CPU – optimalizováno pro zpracování sekvenčního kódu – přidání dalších jader je složité (díky 1D architektuře) – hierarchie cache pamětí včetně velké L3 cache k snížení latence přístupů do paměti – většina křemíku v složité řídící logice zajišťující efektivní zpracování instrukcí (v ALU) a přísun dat
• GPU – – – –
optimalizováno pro zpracování paralelních aplikací přidání dalších jader je jednoduché (díky 2D architektuře) řídící logika a cache sdílená několika jádry malá cache, latence přístupů do paměti snížena přepínáním mezi vlákny (až 1024 u GT 200) – většina křemíku je v jednotlivých ALU
12
SIMD a SIMT •
Moderní CPU podporují vektorové=SIMD instrukce (technologie MMX, SSE, AVX , …)
•
GPU se díky velkému datovému paralelismu ve zobrazovacím řetězci vyvinuly do specializovaných SIMD procesorů, ale s tolika rozšířeními, že jsou označována jako SIMT (Single Instruction Multiple Threads). Každé vlákno má vlastní „identitu“ to jest např. registry. SIMT je obecnější = umožňuje např.
• •
– –
•
nepřímý přístup do paměti vynechání instrukce některým vláknem
GPU jednotky SIMT (CUDA: warp=32, ATI: wavefront=64) jsou větší než u CPU SIMD (AVX-512 bude mít 16 položek)
13
Limit FPU a paměti • Skalární součin vektoru o vel. n – – – –
Načteno 2n FP čísel Výsledek 1 FP číslo Potřeba 2n FP operací Intenzita = počet FP operací / objem dat = 1
• Násobení matic o vel. n – – – –
Načteno 2n2 FP čísel Výsledek n2 FP čísel Potřeba 2n3 FP operací Intenzita = počet FP operací / objem dat = 2n/3
14
Skalární součin • CPU • Teoretická maximální výkonnost FPU 350 Gflops • Maximální rychlost přenosu 50 GB/s => 12,5 Gflops maximum
• Xeon Phi • Teoretická maximální výkonnost FPU 2400 Gflops • Maximální rychlost přenosu 180 GB/s => 45 Gflops maximum
• GPU • Teoretická maximální výkonnost FPU 4500 Gflops • Maximální rychlost přenosu 300 GB/s => 75 Gflops maximum 15
Násobení matic • Kdy bude dosaženo 50% P_max ? 2*n^3/P_max = 50% (2*n^3/P_max + 3*4*n^2/B_max)
• CPU •
50% P_max teoreticky dosaženo pro n>42
• Xeon Phi •
50% P_max teoreticky dosaženo pro n>80
• GPU •
50% P_max teoreticky dosaženo pro n>90
• •
Prakticky nemožno, protože při výpočtu dochází k výpadků v cache U Xeon Phi a GPU chybí připočítat režii PCIe přenosu
16
Které aplikace na GPU ? • Požadavky: – Snadno paralelizovatelné – Nezávislé výpočty bez nutnosti částé globální synchronizace – Dobře se mapují na GPU výpočetní model
• Problémy když: – Malá paměť GPU – Častá a objemná komunikace s CPU – Velké datové závislosti 17
MIC v superpočítačích Tianhe 2 and Titan: #1 and #2 in 2013 • Tianhe‐2 – 34/55 PFLOPS – 16,000 nodes • 2x Intel Xeon CPU • 3x Xeon Phi
– 384,000 CPU cores – 48,000 MICs
• Titan – 18/27 PFLOPS – 18,688 nodes • 1x AMD 6200 CPU • 1x Tesla K20 GPU
– 299,008 CPU cores – 18,688 GPUs
Intel Xeon Phi • První z nové rodiny Intel® Many Integrated Core (Intel® MIC) Architecture. • 50+ jader compatibilních s Intel instrukčním souborem (61 Cores), • 4 threads na jádro (244 Threads), • 512 bit registry pro SIMD vektorové operace • Peak performance 1TFLOPS in DP • Up to 16GB GDDR5 Memory – 352 GB/s peak, but ~170 GB/s measured – PCIe 2.0 x16 ‐ 5.0 GT/s, 16‐bit
• 512K L2 cache na core, L1 32KB/core • Up to 300W TDP (card)
Intel Xeon Phi
• 8 paměťových kontrolerů + High speed bi-directional ring spojující jádra paměťové moduly (obrázek z intel.com)
MIC core • Downgrade na Pentium (x86 kompatibilní) • In-order execution • Ale: – – – – –
Více MC + jiný typ pamětí Neexistuje sdílená L3 cache 512bit SIMD AVX-512 like (32 vektorových registrů) Nepodporuje MMX,SSE 4 thready na vlákno (round robin)
• Clock speed about 1Ghz • Porovnání rychlostí (single core) – Vektorově: 2x performance compared to dual E5 CPUs – Scalar performance is 1/10th of E5 core
Xeon Phi zrychlení
Porovnání architektur Intel i7
Xeon Phi 7120P
Geforce TITAN
Počet jader
8
61
2688
Složitost jader
složité
jednodušší
velmi jednoduché
Počet vláken
8 nebo 16
61 nebo 122 nebo 244
100K+
Cache
L3 20MB
L2 30,5MB
L2 1,5MB
Typ pamětí
DDR4
vlastní GDDR
vlastní GDDR5
Příkon
140W
300W
250W