Čá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 P max =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 P max =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 P max =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 2n 2 FP čísel Výsledek n 2 FP čísel Potřeba 2n 3 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