Architektura počítačů Paralelní zpracování

Podobné dokumenty
Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Architektura počítačů Agenda

Paralelní a distribuované výpočty (B4B36PDV)

OPS Paralelní systémy, seznam pojmů, klasifikace

Paralelní programování

Úvod do GPGPU J. Sloup, I. Šimeček

Pokročilé architektury počítačů

Charakteristika dalších verzí procesorů v PC

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Co je grafický akcelerátor

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Nvidia CUDA Paralelní programování na GPU

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů

Jan Nekvapil ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Operační systémy. Přednáška 1: Úvod

Pokročilé architektury počítačů

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Architektura počítačů Logické obvody

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

Pohled do nitra mikroprocesoru Josef Horálek

Architektura počítačů Výkonnost počítačů

Představení a vývoj architektur vektorových procesorů

Architektura počítačů Logické obvody

Charakteristika dalších verzí procesorů Pentium

Nvidia CUDA Paralelní programování na GPU

Paralelní systémy. SIMD jeden tok instrukcí + více toků dat jedním programem je zpracováváno více různých souborů dat

GPU A CUDA HISTORIE GPU CO JE GPGPU? NVIDIA CUDA

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

Úvod do problematiky návrhu počítačových systémů. INP 2008 FIT VUT v Brně

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

4. Úvod do paralelismu, metody paralelizace

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Architektura počítačů Výkonnost počítačů

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

Architektura grafických ip pro Xbox 360 a PS3

Architektura počítačů Implementace procesoru

Úvod SISD. Sekvenční výpočty SIMD MIMD

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Využití paralelních výpočtů v geodézii

PROCESOR. Typy procesorů

Architektura počítače

Architektury VLIW M. Skrbek a I. Šimeček

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

PV109: Historie a vývojové trendy ve VT

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

C2115 Praktický úvod do superpočítání

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 TECHNICKÉ VYBAVENÍ POČÍTAČŮ

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Architektura počítačů Výkonnost počítačů

Paralelní architektury - úvod

Profilová část maturitní zkoušky 2014/2015

PŘEDSTAVENÍ GRAFICKÉHO PROCESORU NVIDIA G200

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Architektura Intel Atom

Procesor z pohledu programátora

ZČU/FAV/KIV/PPR 1 Architektury paralelních počítačů, modely dekompozice výpočtu, interakce a výkonnost

Povídání na téma. SUPERPOČÍTAČE DNES A ZÍTRA (aneb krátký náhled na SC) Filip Staněk

Jiné výpočetní platformy J. Sloup, M. Skrbek, I. Šimeček

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Struktura a architektura počítačů (BI-SAP) 1

Paralelní architektury - úvod

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Hlavní využití počítačů

HW počítače co se nalézá uvnitř počítačové skříně

Úvod do architektur personálních počítačů

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

MIKROPROCESOR. (c) Ing. Josef Varačka. Title: XI 28 11:40 (1 of 8)

ARCHITEKTURA PROCESORŮ

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Paralelní a distribuované výpočty (B4B36PDV)

Architektura počítačů Agenda

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Přednáška. Strojový kód a data. 4. Přednáška ISA J. Buček, R. Lórencz

Struktura a architektura počítačů (BI-SAP) 7

MSP 430F1611. Jiří Kašpar. Charakteristika

GPGPU Aplikace GPGPU. Obecné výpočty na grafických procesorech. Jan Vacata

Profilová část maturitní zkoušky 2015/2016

Úvod do paralelních systémů

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2013/2014

LOGICKÉ OBVODY X36LOB

Kvantitativní principy návrhu počítačů

Technické prostředky počítačové techniky

Techniky zvýšení výkonnosti procesoru, RISC a CISC procesory

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

GPGPU. Jan Faigl. Gerstnerova Laboratoř pro inteligentní rozhodování a řízení České vysoké učení technické v Praze

Kvantitativní principy návrhu počítačů

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

PROCESORY. Typy procesorů

PRINCIPY POČÍTAČŮ. Schopnost logického uvažování a rešeršní práce v prostředí Internetu.

SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ

Miroslav Tichý, tic136

Procesor. Procesor FPU ALU. Řadič mikrokód

Luděk Matyska. Jaro 2015

Kvantitativní principy návrhu počítačů. doc. Ing. Róbert Lórencz, CSc.

Y36SAP

Procesy a vlákna (Processes and Threads)

Transkript:

Architektura počítačů Paralelní zpracování http://d3s.mff.cuni.cz http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty faculty of of mathematcs mathematcs and and physics physics

Paralelní zpracování Dosavadní metody paralelizace Paralelizmus na úrovni instrukčních kroků Pipelining Paralelizmus na úrovni instrukcí Superskalární zpracování Další metody paralelizace Paralelizmus na úrovni dat Vektorové zpracování Masivně paralelní zpracování Paralelizmus na úrovni procesů 2/27

Proč je těžké psát paralelní programy? Paralelní program musí být rychlejší než sekvenční Jinak nedává smysl ho psát Očekává se, že bude škálovat s počtem procesorů S rostoucím počtem procesorů stále obtíněějí Plánování, synchronizace, load-balancing Připomenutí Amdahlův zákon Limit teoretckého zrychlení sekvenčního algoritmu při paralelním zpracování n... počet paralelně běíících vláken B <0, 1>... poměrná část neparalelizovatelné část algoritmu Speedup(n)= 1 (1 B) B+ n 3/27

Co brání zrychlování? Sekvenční část Jaký program mohu 90x zrychlit na 100 procesorech? Speedup(n)= 1 (1 B) B+ n n = 100, Speedup(n) = 90 B= Speedup (n) n 90 100 = =0.0012 99 90 ( n 1) Speedup (n) Sekvenční část můíe být pouze 0.1% programu. 4/27

Co brání zrychlování? Velikost problému (weak/strong scaling) Součet 10 proměnných (sekvenční) a součet dvou matc 10x10 (paralelní), čas na součet t. Na 1 procesoru: 100t + 10t = 110t Na 10 procesorech: (100/10)t + 10t = 20t Zrychlení 110t/20t = 5.5 (55% potenciálního zrychlení) Na 40 procesorech: (100/40)t + 10t = 12.5t Zrychlení 110t/12.5t = 8.8 (22% potenciálního zrychlení) Součet 10 proměnných a součet dvou matc 20x20. Na 1 procesoru: 400t + 10t = 410t Na 10 procesorech: (400/10)t + 10t = 50t Zrychlení 410t/50t = 8.2 (82% potenciálního zrychlení) Na 40 procesorech: (400/40)t + 10t = 20t Zrychlení 410t/20t = 20.5 (51% potenciálního zrychlení) 5/27

Co brání zrychlování? Load-balancing Součet 10 proměnných a součet dvou matc 20x20 na 40 procesorech. Předpoklad rovnoměrně rozdělené práce, tě. kaídý procesor vykonal 2.5% práce. Co kdyby ěeden procesor udělal 2x více (5%)? Jeden procesor udělá 20 součtů (5% ze 400), ostatních 39 se podělí o zbývaěících 380. Čas zpracování ěe Max (380t/39, 20t/1) + 10t = 30t Zrychlení klesá z 20.5 na 410t/30t = 14. Ostatních procesory ěsou vyuíity méně neí polovinu času, počítaěí pouze 380t/39 = 9.7t Co kdyby ěeden procesor udělal 5x více (12.5%)? Čas zpracování ěe Max (350t/39, 50t/1) + 10t = 60t Zrychlení klesá z 20.5 na 410t/60t = 7. Ostatních procesory ěsou vyuíity méně neí 20% času. 6/27

Flynnova taxonomie Architektura zpracování dat Michael J. Flynn (1966) SISDí Single Instructin, Single Data stream Tradiční skalární procesor (von Neumann) SIMDí Single Instructin, Multile Data streams Vektorový procesor MISDí Multile Instructin, Single Data stream [1] Potenciálně heterogenní systém odolný vůči výpadkům MIMDí Multile Instructin, Multile Data streams Víceprocesorový systém Programovací model pro MIMD: SPMD (Single Program Multple Data) Superskalární procesory na pomezí SISD/SIMD 7/27

Flynnova taxonomie (2) SIMD Instructons ALU Instructons MISD Data Data SISD Instructons ALU MIMD Instructons ALU ALU ALU ALU Data Data ALU ALU ALU 8/27

Vektorové zpracování Příkladí Sčítání tří dvojic jednobytových čísel Skalární zpracování for {0, 1, 2} i: mem_a[i] r1 (rizšíření na velikist sliva) mem_b[i] r2 (rizšíření na velikist sliva) add(r1, r2) r3 r3 mem_c[i] (restrikce na 8 bitů) Vektorové zpracování mem_a[0, 1, 2, 3] vr1 mem_b[0, 1, 2, 3] vr2 vector_add(vr1, vr2) vr3 (sčítání ii sližkách) vr3 mem_c[0, 1, 2, 3] 9/27

Vektorové zpracování (2) Vektorová rozšíření skalární instrukční sady IA-32 MMX (MultMedia extensiins, od Penta MMX) 64bitové registry MM0 aí MM7 (aliasy na FPU registry) 1 64bitový integer (ěen několik operací), 2 32bitový integer, 4 16bitový integer, 8 8bitový integer Logické operace, bitové posuny, sčítání, odčítání, násobení, porovnávání (vje po sloíkách), konverze formátů Saturační aritmetka Omezení výsledku na interval <min, max> 3DNow! (od K6-2) 2 32bitový single precision Floatng point aritmetka (po sloíkách), celočíselné průměrování, hledání maxima atd. 10/27

Vektorové zpracování (3) Vektorová rozšíření skalární instrukční sady IA-32/AMD64 SSE (Streaming SIMD Extensiins, od Penta III) SSE, SSE2, SSE3, SSSE3, SSE4, XOP, FMA4, CVT16 128bitové registry XMM0 aí XMM7, pozděěi aí XMM15 4 32bitový single precision 2 64bitový double precision, 2 64bitový integer, 4 32bitový integer, 8 16bitový integer, 16 8bitový integer Aritmetcké, logické, konverzní operace Kombinované aritmetcké operace (aritmetka po sloíkách do křííe apod.) Aritmetka s komplexními čísly Fused multply-add, permutace sloíek Výpočet CRC32, počet ěedničkových bitů 11/27

Vektorové zpracování (4) Vektorová rozšíření skalární instrukční sady IA-32/AMD64 AVX (Advanced Vectir Extensiins, od Sandy Bridge/Bulldozer) AVX2, AVX-512 (od Haswell) 256bitové registry YMM0 aí YMM15 AVX-512: 512bitové registry ZMM0 aí ZMM15 Tříoperandový formát instrukcí Power/PowerPC AltVec (od G4, POWER6) Přibliíně srovnatelné s SSE 12/27

Vektorové zpracování (5) Vektorová rozšíření skalární instrukční sady SPARC VIS (Visual Instructin Set, od UltraSPARC II) RISCová flozofe, ěednodujjí vektorové operace MIPS MDMX (MIPS Digital Media extensiin), MIPS-3D Přibliíně srovnatelné s MMX ARM Advanced SIMD/NEON Přibliíně srovnatelné s SSE 13/27

Víceprocesorové systémy Široké spektrum implementací Víceěádrové procesory Vlastně ěen důsledněěi oddělené pipelines superskalárního procesoru Některé část mohou být mezi ěádry stále sdílené (L2 cache) Víceprocesorové systémy Symmetric/Shared Memiry Multiricessing (SMP) Nezávislá obecná ěádra v oddělených pouzdrech Sdílený přístup do hlavní pamět (Unifirm Memiry Access, UMA) Specializované koprocesory Nezávislá ěádra, některá z nich velmi specializovaná (Cell) Nin-Unifirm Memiry Access (NUMA) Nezávislá ěádra s lokální hlavní pamět Přístup do nelokální pamět ěiného ěádra můíe být transparentní (ovjem draíjí) nebo netransparentní (řízen sofwarem) Clustery, některé typy cloudu (IaaS) 14/27

Masivně paralelní zpracování Základní myšlenka SIMD/MIMD architektura s (relatvně) ěednoduchými procesory a (relatvně) malou lokální pamět Omezená a řízená komunikace mezi procesory CM-1 Connecton Machine (1983) 65536 1bitových procesorů, kaídý 4 kb RAM Propoěovací síť topologie hyperkrychle Společná řídící logika, I/O procesor Vhodné pro extrémně dobře paralelizovatelné úlohy Umělá inteligence Symbolické manipulace [2] 15/27

Masivně paralelní zpracování (2) Evoluce grafckých procesorů (GPU) Původně koprocesory pro urychlování konkrétních grafckých operací Kreslení grafckých primitv (čáry, kruínice) Přesuny bloků obrazové pamět bez zásahu CPU (blit) Pozděěi implementace sloíitěějích operací pro 3D grafku Efektvní pipelining na úrovni ěednotlivých fází kreslení 3D scény Geometrické transformace Řejení viditelnost Mapování textur Úpravy na úrovni pixelů Algoritmy zadrátovány do hardware 16/27

Masivně paralelní zpracování (3) Evoluce grafckých procesorů (GPU) Programovatelný zásah do grafcké pipeline Vertex shaders, iixel shaders Původně ěen ěednoduchá a krátká sekvence vektorových operací (často bez moínost cyklů, omezené větvení) Paralelní aplikace steěného algoritmu na vjechny hrany scény (resp. vjechny pixely) současně První pokusy o vyuíit pro negrafcké výpočty Víceméně ěako vedleějí efekt velkého foatng-point výkonu Input Assembler Vertex Shader Geometry Shader Setup & Rasterizer Pixel Shader Raster Ops/ Out Merger 17/27

Masivně paralelní zpracování (4) Evoluce grafckých procesorů (GPU) General-Puriise Cimiutng GPU (GPGPU) Čím dál větjí část zadrátovaných grafckých algoritmů řejena SIMD kódem Masivně paralelní architektura Input Assembler Vertex Shader Unifed Processor Array Geometry Shader Setup & Rasterizer Pixel Shader Raster Ops/ Out Merger 18/27

Masivně paralelní zpracování (5) GeForce 8800 (NVIDIA Tesla) [4] 19/27

Masivně paralelní zpracování (7) GeForce 8800 (NVIDIA Tesla) Texture/Processor Cluster 2x Streaming Multprocessor 8x Streaming Processor 2x Special Functon Unit Texture Unit (texture cache) Streaming Processor 96 HW vláken 1024 32-bit FP registrů běžné FP operace Special Functon Unit transcendentní funkce interpolace atributů pixelů [4] 20/27

Masivně paralelní zpracování (8) [4] GeForce 8800 (NVIDIA Tesla) warp = skupina 32 vláken instrukce vykonána všemi vlákny ve 4 taktech plánování warpů podle dostupnost dat a priorit 21/27

Masivně paralelní zpracování (9) Odlišnost v cílech návrhu CPU a GPU CPU musí dobře zvládat různé typy úloh, ať uí paralelních, nebo sekvenčních u GPU se předpokládá (ideálně) datově paralelní úloha, vjechna vlákna vykonávaěí steěný program (kernel) GPU nepasuěe do Flynnovy taxonomie, v případě GPU se hovoří o SIMT datový paralelizmus identfkován dynamicky, na rozdíl od vektorového/simd zpracování (analogické k dynamické identfkaci instrukčního paralelizmu u superskalárních procesorů na rozdíl od VLIW) CPUí minimalizace latence pozorovatelná jedním vláknem Velké cache, hit rato > 99%, working set řádu ěednotek MB Jednotky/desítky vláken, sofstkované řízení GPUí maximalizace propustnost všech vláken Počet aktvních vláken omezen prostředky => velké mnoíství prostředků Masivní mult-threading maskuěe latence => malé cache, hit rato > 90% Working set v řádu stovek MB, nevykazuěe silnou časovou lokalitu Stovky vláken, sdílená řídící logika 22/27

Shrnut Aneb co si z předmětu odnést... Správné fungování vyšších vrstev abstrakce závisí na správném využit nižších vrstev abstrakce Vejkeré programy, ať uí ěsou napsány v čemkoliv, nakonec běíí ve stroěovém kódu na procesoru Základy vnitřního fungování procesoru se dají snadno pochopit Skutečné procesory se od těch z přednájky lijí ěen tm, íe několik set chytrých lidí mělo mnoho roků na přemýjlení, ěak z nich dostat maximum (za danou cenu) Občas je dobré podívat se do historie Nové inovatvní myjlenky stále přicházeěí, ale obvykle stoěí na dřívěějích zkujenostech, pokusech a omylech 23/27

Shrnut (2) Aneb co si z předmětu odnést... Moorův zákon není zákon Jeho udríování v platnost ěe pracné Neznamená automatcké zvyjování hrubého sekvenčního výkonu Je potřeba přemýjlet nad novými paradigmaty (paralelní zpracování) Zachytt výkonnost počítače nelze jedním číslem Občas ani dvě čísla nestačí Vídy ěe důleíité vědět, s ěakým workloadem pracuěi, zda ěeě můě benchmark správně aproximuěe, ěakou metriku vlastně optmalizuěi atd. 24/27

Shrnut (3) Aneb co si z předmětu odnést... Počítače jsou složeny jako stavebnice Sekvenční obvody, kombinační obvody, funkční bloky, logická hradla, logické operace Aplikační binární rozhraní (ABI) Sada konvencí společná hardwaru a sofwaru Kódování celých a necelých čísel, big/litle endian, kódování instrukcí, vyuíit registrů, vyuíit instrukční sady (volání podprogramů atd.) 25/27

Shrnut (4) Aneb co si z předmětu odnést... Optmalizace má největší účinek pro nejčastější případy Amdahlův zákon Pozor na marná očekávání Když nelze zvýšit hrubý výkon, je možné zvyšovat propustnost Vícecyklové zpracování, pipelining, paralelní zpracování, zpracování mimo pořadí, spekulatvní provádění, masivně paralelní architektury Na výkonnost se více či méně podíleěí vjechny část řetězce (programátor, překladač, procesor, paměťový subsystém atd.) Výkonnost programu na dnejních počítačích můíe extrémně ovlivnit (ne)správné vyuíit cache 26/27

Reference [1] [2] [3] [4] htp://upload.wikimedia.org/wikipedia/commons/0/0e/michael_flynn.ěpg htp://upload.wikimedia.org/wikipedia/commons/6/61/frostburg.ěpg D. A. Paterson, J. L. Hennessy. Computer Organizaton & Design. 5th ed., Elsevier, 2014 E. Lindholm et al. NVIDIA Tesla: A Unifed Graphics and Computng Architecture. IEEE Micro, 28(2):39-55, 2008 27/27