FACULTY OF INFORMATICS Masaryk University PA039: Architektura superpočítačů a náročné výpočty Luděk Matýska Jaro 2020 Luděk Matýska • Úvod • Jaro 2020 FACULTY OF INFORMATICS Masaryk University Pravidla hry ■ Účast na přednáškách není povinná ■ Zkouška ■ Pouze písemná, 90 minut ■ Termíny budou k dispozici během dubna ■ Kolokvium ■ Projekt, nutno se přihlásit před koncem března Luděk Matýska • Úvod • Jaro 2020 2/68 FACULTY OF INFORMATICS Masaryk University High Performance Computing ■ Formule 1 v oblasti počítačů ■ Velmi drahé stroje, ovšem špičkových parametrů (výkonu) ■ Špecifické uživatelské skupiny ■ Rozsáhlé simulace ■ Modelování (automobily, letadla,...) ■ S jídlem roste chut ■ Požadavky rostou rychleji než výkon procesorů ■ Roste ale i složitost procesorů Kvalita programování určuje použitelnost Luděk Matýska • Úvod • Jaro 2020 3/68 FACULTY OF INFORMATICS Masaryk University High Performance Computing II ■ Procesory ■ CISC ■ RISC ■ Vektorové procesory ■ Streaming procesory (např. GPU) ■ Speciální systémy FPGA,...). ■ Paměti - výkon se zpožduje za procesory Luděk Matýska • Úvod • Jaro 2020 FACULTY OF INFORMATICS Masaryk University H PC-požadavky ■ KLesá poměr teoretický_výkon/dosažený_výkon ■ Reakce: je třeba Lépe pochopit ■ architekturu použitého počítače; příčiny, proč určitý kód je podstatně rychlejší než zdánlivě ekvivalentní varianta; ■ způsoby měření reálného výkonu (programu a/nebo procesoru) Luděk Matýska • Úvod • Jaro 2020 5/68 FACULTY OF INFORMATICS Masaryk University High Throughput Computing ■ Nejvyšší aktuální výkon versus Nejvyšší využití ■ dlouhodobé efektivní využití počítačových systémů ■ velké množství menších úloh ■ Není kritická rychlost zpracování jedné úlohy ■ Podstatný celkový čas zpracování ■ Efektivita ■ maximalizace „investice" ■ celková propustnost systému Luděk Matýska • Úvod • Jaro 2020 6/68 FACULTY OF INFORMATICS Masaryk University PA039: Architektura superpočítačů a náročné výpočty Procesory a paměti Luděk Matýska Jaro 2020 Luděk Matýska • Procesory • Jaro 2020 7/68 FACULTY OF INFORMATICS Masaryk University Základní aspekty - co určuje výkon ■ Latence (zpoždění) ■ zpracování/přenos signálů uvnitř procesorů či paměti ■ přenos dat mezi procesorem a pamětí ■ zpoždění přímo v paměti ■ Rychlost obnovení (cycLe times) ■ rychlost přepínání obvodů ■ frekvence obovdů (vnitřní „hodiny") ■ obnovení paměti (dynamická pamět) ■ Propustnost (rychlost přenosu jednotky dat) ■ rychlost přenosu dat na chipu ■ počet instrukcí per cyklus ■ rychlost přenosu mezi komponentami ■ Granularita ■ hustota na chipu ■ hustota paměti ■ velikost úlohy Luděk Matýska • Procesory • Jaro 2020 FACULTY OF INFORMATICS Masaryk University Procesory - CISC CompLex Instruction Set Computer ■ Příklady: ■ PDP 11,VAX, IBM 370, Intel 80x86, Motorola 680x0,... ■ Princip: ■ Nedělej programem to, co může udělat hardware ■ Pojem CISC fakticky vytvořen až jako protiklad proti RISC procesorům Luděk Matýska • Procesory • Jaro 2020 9/68 FACULTY OF INFORMATICS Masaryk University Důvody existence ■ Velikost a rychlost paměti ■ Srovnání s rychlostí samotných procesorů ■ Přímá podpora překladačů ■ Adresování (přístup k paměti) Luděk Matýska • Procesory • Jaro 2020 10/68 FACULTY OF INFORMATICS Masaryk University Mikroprogramování CISC - složité instrukce ■ Řídící část procesoru příliš rozsáhlá Mikroinstrukce: Dekompozice na jednodušší instrukce ■ Složitá instrukce == mikroprogram Jednodušší návrh hardware ■ Instrukce jsou emulovaný Je možno „snadno" změnit instrukční sadu konkrétního počítače =>* rodina počítaču (IBM 360, 370, VAX,...) Nevýhody: příliš složité instrukce, stále složitější analýza instrukcí, zátěž zpětné kompatibility (v rámci rodiny) Luděk Matýska • Procesory • Jaro 2020 11/68 FACULTY OF INFORMATICS Masaryk University Zvyšování výkonu ■ Rychlost hodin udává výkon procesoru ■ Omezeno aktuálními technologickými možnostmi ■ Nelze neomezeně zvyšovat ■ Závislosti mezi komponentami ■ Rychlost šíření signálu ■ Řešení: paralelizace procesů Luděk Matýska • Procesory • Jaro 2020 12/68 FACULTY OF INFORMATICS Masaryk University Pipelining Překrývání instrukcí v různých fázích rozpracovanosti instrukce — 1 - 2 - 3 - 4 - 5 1 - 2 - 3 - 4 - 5 1 - 2 - 3 - 4 - 5 1 - 2 - 3 - 4 - 5 1 - 2 - 3 - 4 - 5 1 - 2 - 3 - 4 - 5 1 - 2 - 3 - 4 - 5 Tři základní oblasti: 1. Zpracování instrukcí 2. Přístupy k paměti 3. Výpočty v pohyblivé řádové čárce výsledky Luděk Matýska • Procesory • Jaro 2020 FACULTY OF INFORMATICS I Masaryk University Pipelining II Běžný rozklad instrukcí (pět i úrovňový pipelining): Instruction Fetch instrukce je načtena z paměti Instruction Decode instrukce je rozeznána (dekódována) Operand Fetch jsou připraveny operandy (načteny z registrů a/nebo paměti) Execute instrukce je provedena Writeback výsledky jsou zapsány zpět (do registrů a/nebo paměti) Jednotlivé instrukce jsou zpracovávány paralelně, s posunem o jednu fázi pipeline. Luděk Matýska • Procesory • Jaro 2020 14/68 FACULTY OF INFORMATICS I Masaryk University Pipelining a pamět ■ „Neviditelný" pipelining ■ Předsunutí čtení (zápisu) z (do) paměti před vlastní instrukci pracující s daty ■ „Viditelné" pipelines ■ Explicitní instrukce, s přesně definovaným počtem cyklů do dokončení. ■ Např. Intel 80860 Luděk Matýska • Procesory • Jaro 2020 15/68 FACULTY OF INFORMATICS Masaryk University Procesory - RISC Reduced Instruction Set Computer ■ První RISC: CDC 6600 (Seymour Cray) ■ První polovina 60. let (1964) Explicitní RISC koncept představují osmdesátá Léta ■ Podmínky vzniku RISC systémů ■ Zavedení vyrovnávacích pamětí (cache) ■ Dramatický pokles ceny a vzrůst velikosti hlavních pamětí ■ Lepší pipelining ■ Kvalitně optimalizující překladače Luděk Matýska • Procesory • Jaro 2020 16/68 FACULTY OF INFORMATICS Masaryk University RISC podmínky II ■ Rychlost přístupu k paměti přestala být (hlavním) úzkým místem ■ vužití vyrovnávacích pamětí (cache) ■ využití interních registrů (méně přímých přístupů do paměti) ■ Velikost programu přestala být podstatná (i rozsáhlé programy se snadno vejdou do paměti) ■ Problém: zadržen/'(stall) při čekání na výsledek předchozí instrukce (v CISC příliš složité vazby) ■ Není třeba složitých instrukcí (naopak); čitelnost assembleru přestává být podstatná Luděk Matýska • Procesory • Jaro 2020 17/68 FACULTY OF INFORMATICS Masaryk University Charakteristiky RISC ■ Jednotná délka instrukcí ■ Pečlivý výběr skutečně používaných instrukcí ■ Jednoduché adresní módy ■ Architektura Load/Store ■ Dostatek registrů ■ „Odložené" skoky (delayed branches) ■ Příklady: ■ Na začátku předchůdci MIPS (Stanford) a SUN SPARC (UoC, Berkeley) architektur ■ IBM s její Power Architecture (dnes PowerPC a POWER7) ■ HP s PA-RISC ■ DEC Alpha ■ Intel I860 a i960 či Motorola 88000 ■ ARC, ARM,... Luděk Matýska • Procesory • Jaro 2020 FACULTY OF INFORMATICS Masaryk University RISC - pokročilý návrh ■ IdeáL RISC první generace: ■ Jedna instrukce každý tik hodin ■ Dnešní realita: ■ Více jak jedna instrukce na tik Luděk Matýska • Procesory • Jaro 2020 19/68 FACULTY OF INFORMATICS Masaryk University Nové vlastnosti ■ SuperskaLární ■ SuperpipeLine ■ (VeLmi) dlouhé instrukce ((Very) Long Instruction Word, (V)LIW) Luděk Matýska • Procesory • Jaro 2020 20/68 FACULTY OF INFORMATICS Masaryk University Superskalární procesory ■ Vícenásobné procesní jednotky ■ Aritmetické (ALU), Floating point (FPU) a další ■ Příklady: ■ RS/6000, SuperSPARC a vyšší, Motorola 88110, HP PA 7100 a vyšší, DEC Alpha, MIPS R8000 a vyšší, Intel Pentium, IBM P4, P5 Luděk Matýska • Procesory • Jaro 2020 21/68 FACULTY OF INFORMATICS Masaryk University Superskalární procesory - vlastnosti ■ ParaLeLismus v hardware ■ Sekvenční programy ■ „Automatická" paralelizace technickými prostředky ■ Současné načtení více instrukcí ■ Instrukce MADD (Multiply Add) ■ Operace X*Y+Z Luděk Matýska • Procesory • Jaro 2020 22/68 FACULTY OF INFORMATICS Masaryk University Superpipeline ■ DaLší zjednodušení obvodů ■ Rozsáhlejší dekompozice pipeline ■ Rychlejší provádění jednotlivých částí ■ Výsledkem rychlejší výpočet ■ Jiná forma paralelismu ■ Nazývány též hluboké (deep) pipelines Luděk Matýska • Procesory • Jaro 2020 23/68 FACULTY OF INFORMATICS Masaryk University 16. úrovňová pipeline EU EU EU IRF Instruction Fetch instruction Decode Instruction Dispatch Operand Read AG DC1 DC2 EX1 Data Cache Access Execute Exceptions and MT handling Commit 2<3Hi ni 50I, «ORAMp 15 ML S50mm2 Luděk Matýska • Procesory • Jaro 2020 64/68 FACULTY OF INFORMATICS Masaryk University P0WER8 Core Execution Improvement vs. POWER7 • SMT4^SMT8 • 8 dispatch • 10 issue • 16 execution pipes: • 2FXU,2LSU,2LU,4FPU, 2 VMX, 1 Crypto, 1 DFU, 1 CR, 1 BR • Larger Issue queues (4x 16-entry) • Larger global completion, Load/Store reorder • Improved branch prediction • Improved unaligned storage access ISU IFU FXU DFU VSU BR LSU Larger Caching Structures vs. POWER7 • 2x L1 data cache (64 KB) • 2x outstanding data cache misses • 4x translation Cache Wider Load/Store • 32B -> 64B L2 to L1 data bus • 2x data cache to execution dataflow Enhanced Prefetch • Instruction speculation awareness • Data prefetch depth awareness • Adaptive bandwidth awareness • Topology awareness Core Performance vs . POWER7 ~16x Single Thread ~2x Max SMT Luděk Matýska • Procesory • Jaro 2020 65/68 FACULTY OF INFORMATICS Masaryk University Víceprocesorové systémy ■ Frekvenci už nelze príLiš zvyšovat ■ Zvyšování výkonu zvýšením počtu jader ■ Propojení více procesorů (socketů) Luděk Matýska • Procesory • Jaro 2020 66/68 FACULTY OF INFORMATICS Masaryk University Víceprocesorové systémy ■ Míra škáLování (počet socketů) ■ AMD: 4, Intel 8, IBM 32 ■ vlastní řešení HP (Intel) 8, Bull 16, SGI -100 ■ Distribuovaná pamět ■ centralizovaná by byla úzkým místem ■ NUMA(Non-Uniform Memory Architecture) Luděk Matýska • Procesory • Jaro 2020 67/68 FACULTY OF INFORMATICS Masaryk University Víceprocesorové systémy ■ Koherence cache ■ přečtu, co jsem sám zapsal ■ přečtu, co zapsal dříve někdo jiný ■ pořadí zápisů vidí všichni stejné ■ Stavy řádků cache ■ uncached, shared, modified,... ■ Protokoly udržování koherence ■ adresářové ■ snooping Luděk Matýska • Procesory • Jaro 2020 68/68