Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Podobne dokumenty
Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Procesory. Schemat budowy procesora

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Architektura mikroprocesorów TEO 2009/2010

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Klasyczny cykl pracy procesora sekwencyjnego. współczesne architektury. c Dr inż.

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Obliczenia Wysokiej Wydajności

Programowanie procesorów graficznych GPGPU

Bajt (Byte) - najmniejsza adresowalna jednostka informacji pamięci komputerowej, z bitów. Oznaczana jest literą B.

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Płyty główne rodzaje. 1. Płyta główna w formacie AT

Materiały dodatkowe do podręcznika Urządzenia techniki komputerowej do rozdziału 5. Płyta główna i jej składniki. Test nr 5

dr inż. Jarosław Forenc

Klasyfikacja systemów komputerowych. Architektura von Neumanna Architektura harwardzka Zmodyfikowana architektura harwardzka. dr inż.

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Klasyfikacje systemów komputerowych, modele złożoności algorytmów obliczeniowych

Architektury Komputerów. Tomasz Dziubich p.530, konsultacje czwartek i 11-12, dziubich@eti.pg.gda.pl

Nowoczesne technologie przetwarzania informacji

Zegar - układ wysyłający regularne impulsy o stałej szerokości (J) i częstotliwości (f)

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami

Budowa Mikrokomputera

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Wykład 7. Architektura mikroprocesorów powtórka

Architektura von Neumanna

Architektura von Neumanna. Jak zbudowany jest współczesny komputer? Schemat architektury typowego PC-ta. Architektura PC wersja techniczna

Architektura mikroprocesorów z rdzeniem ColdFire

16. Taksonomia Flynn'a.

Architektura mikroprocesora DSI I

JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski

Witold Komorowski: RISC. Witold Komorowski, dr inż.

Wykład 6. Mikrokontrolery z rdzeniem ARM

Budowa komputera Komputer computer computare

MESco. Testy skalowalności obliczeń mechanicznych w oparciu o licencje HPC oraz kartę GPU nvidia Tesla c2075. Stanisław Wowra

Architektura systemów komputerowych. dr Artur Bartoszewski

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Programowanie współbieżne Wykład 1. Rafał Skinderowicz

Libra.cs.put.poznan.pl/mailman/listinfo/skisrkolo.

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

dr inż. Jarosław Forenc

Architektura komputerów

Klasyfikacja systemów komputerowych. Architektura von Neumanna. dr inż. Jarosław Forenc

Programowanie Współbieżne

Obliczenia Wysokiej Wydajności

Architektura komputerów egzamin końcowy

MMX i SSE. Zbigniew Koza. Wydział Fizyki i Astronomii Uniwersytet Wrocławski. Wrocław, 10 marca Zbigniew Koza (WFiA UWr) MMX i SSE 1 / 16

Programowanie współbieżne. Iwona Kochańska

Architektura Komputerów

Programowanie aplikacji równoległych i rozproszonych

Porównaj CISC, RISC, EPIC.

Wprowadzenie. Klastry komputerowe. Superkomputery. informatyka +

Architektura komputerów

Arkusz1. Wyniki CPUbenchmark.net na dzień

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Obliczenia równoległe na klastrze opartym na procesorze CELL/B.E.

Podstawy Informatyki Systemy sterowane przepływem argumentów

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Budowa mikroprocesora. Znaczenie poszczególnych układów:

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Introduction to Computer Science

Architektura Systemów Komputerowych 2

Dydaktyka Informatyki budowa i zasady działania komputera

CUDA część 1. platforma GPGPU w obliczeniach naukowych. Maciej Matyka

Procesory firmy ARM i MIPS

3.Przeglądarchitektur

Pytania. W obecnie wykorzystywanych komputerach osobistych jest stosowana architektura: jednoszynowa. pamięciowo-centryczna.

Architektura systemów komputerowych. dr Artur Bartoszewski

Przetwarzanie Równoległe i Rozproszone

Artur Janus GNIAZDA PROCESORÓW INTEL

dr inż. Jarosław Forenc

3.Przeglądarchitektur

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

dr inż. Jarosław Forenc

Mikroprocesory rodziny INTEL 80x86

i3: internet - infrastruktury - innowacje

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Programowanie kart graficznych

architektura komputerów w. 4 Realizacja sterowania

COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. Wprowadzenie do systemów wieloprocesorowych

Technologia Informacyjna Wykład II Jak wygląda komputer?

Funkcje procesora: kopiowanie danych z pamięci do rejestru z rejestru do pamięci z pamięci do pamięci (niektóre procesory)

Historia informatyki

Wstęp. Przetwarzanie współbieżne, równoległe i rozproszone

Systemy operacyjne III

System obliczeniowy laboratorium oraz. mnożenia macierzy

Procesor (CPU Central Processing Unit) informacje dodatkowe

Procesor (ang. processor), także CPU (ang. Central Processing Unit) urządzenie cyfrowe sekwencyjne, które pobiera dane z pamięci, interpretuje je i

dr inż. Jarosław Forenc

Podstawy obsługi komputerów. Budowa komputera. Podstawowe pojęcia

Transkrypt:

Architektury komputerów Architektury i wydajność Tomasz Dziubich

Przetwarzanie potokowe Przetwarzanie sekwencyjne Przetwarzanie potokowe

Architektura superpotokowa W przetwarzaniu potokowym podczas niektórych etapów potoku pojawiają się zadania zajmujące mniej niż połowę cyklu zegara Przy podwojeniu szybkości zegara wewnętrznego pozwala to na wykonywanie dwóch zadań w tym samym czasie zegara zewnętrznego Jest to architektura superpotokowa

Architektura superskalarna

Pentium Mezger P., Anatomia PC, XI, Helion, 2007

Podstawowe dane Pentium

Pentium MMX Mezger P., Anatomia PC, XI, Helion, 2007

Podstawowe dane Pentium MMX

Pentium Pro Mezger P., Anatomia PC, XI, Helion, 2007

Podstawowe dane Pentium Pro

Szczegółowy potok Intel Xeon

Pentium 4

Podstawowe dane Pentium 4

Intel Core 2 Duo Dual Core

Architektura Intel Core Następca Netburst (Pentium) Większy nacisk położony na liczbę rdzeni, pamięć podręczną, predykcję niż taktowanie Wirtualizacja Wydajna komunikacja między węzłami (QPI) Liczba faz potoku 14 (z 31) Macro-Ops Fusion Micro-Ops Fusion

Intel Core Block Diagram

Listopad 2008 Intel Core i7 4 procesory x86 SMT Dedykowany L2, współdzielony L3 cache Ulepszone spekulacyjne przewidywanie wykonywania rozkazów (cache) Wbudowany kontroler DDR3 (on chip) System Agent QuickPath Interconnect (uzgadnianie spójności cache)

Intel Core i7 Block Diagram

Intel Itanium2 Dual-Core

Wydajność procesorów wielordzeniowych

Wzrost mocy obliczeniowej procesorów

Architektura CUDA Compute Unified Device Architecture Procesory G80 składały się z 128 procesorów strumieniowych (rok 2008) Podstawową jednostką obliczeniową w procesorach nvidii jest multiprocesor, który zbudowany jest z procesorów strumieniowych, współdzielonej pamięci lokalnej (w ramach multiprocesora), zestawu rejestrów oraz pamięci cache. Aktualnie procesory nvidii Tesla (seria K) liczą do 2688 rdzeni (2-4TFlops) Pamięć prywatna Pamięć prywatna Pamięć prywatna Pamięć prywatna Jednostka robocza Jednostka robocza Jednostka robocza Jednostka robocza Grupa robocza Pamięć lokalna Grupa robocza Pamięć lokalna Pamięć globalna / Pamięć stała Urządzenie OpenCL Host Pamięć hosta

daxpy(n, 2.0,x,y) Przykładowy kod Oblicza y=y+2.0*x dla rozmiaru wektora n void daxpy(int n, double a, double *x, double *y) { for (int i=0; i<n; ++i) y[i]=a*x[i]+y[i]; } host int nblocks = (n+255)/256 daxpy <<<nblocks, 256>>> (n,2.0,x,y) device void daxpy(int n, double a, double *x, double *y) { int i= blockidx.x*blockdim.x + threadidx.x; (if (i<n) y[i]=a*x[i]+y[i]; }

Różnice pomiędzy CPU a GPU GPU: Większość tranzystorów składa się na ALU CPU: Większość tranzystorów składa się na cache

Architektura CUDA

Prawo Moore a Ekonomicznie optymalna liczba tranzystorów w układzie scalonym podwaja się co 18 miesięcy. Termin ten jest też używany do określenia praktycznie dowolnego postępu technologicznego. "Prawo Moore'a", mówiące że "moc obliczeniowa komputerów podwaja się co 18 miesięcy" jest nawet popularniejsze od oryginalnego prawa Moore'a

Prawo Moore a (1965)

Prawo Moore a

Wydajność procesorów Wydajność procesora wydajność systemu

Wydajność procesorów

Wydajność procesorów/systemów pomiaru wydajności wykorzystuje się benchmark i częstotliwość zegara MIPS liczba rozkazów wykonywana w ciągu sekundy, wyrażona w milionach (5340 dla procesora Pentium 4 2.8 GHz) MFLOPS liczba rozkazów zmiennoprzecinkowych wykonywana w ciągu sekundy, wyrażona w milionach (3479 dla procesora Pentium 4 2.8 GHz) dhrystones/s wartość uzyskiwana poprzez wykonanie charakterystycznego programu zawierającego rozkazy stałoprzecinkowe (1 MIPS to ok. 2000 dhrystones/s); whetstones/s wartość uzyskiwana poprzez wykonanie charakterystycznego programu zawierającego rozkazy zmiennoprzecinkowe Inne Linpack (algebra liniowa, eliminacja Gaussa, mnożenie macierzy) www.netlib.org

MiBench

Rodziny procesorów Intel x86 (komputery PC): 16 bitowe: 8086/88, 80286 32 bitowe: i386, i486, Pentium, Pentium Pro, Pentium II, Celeron, Pentium III, Celeron II, Pentium IV, Xeon 64 bitowe: Core, Itanium 2 (architektura EPIC) AMD (zgodna z x86): 32 bitowe: AMD486, 5x86, K5, K6, Athlon, Duron, Athlon XP 64 FX, Sempron Motorola 68k (komputery Apple): 68000, 68020 (16-bit), 68030, 68040, 68060 (32-bit) architektury RISC/ ARM (32, 64- bitowe systemy UNIX): Alpha (DEC/Compaq), MIPS (SGI), SPARC (Sun), PA (HP), Power (IBM), PowerPC (IBM/Motorola)

Top500 SuperComputers

top500

Prawo Amdahl a (1967) Przyspieszenie S(N) określa się jako stosunek czasu wykonania algorytmu na 1 procesorze oraz na N procesorach. Przez p oznaczono czas przeznaczony na wykonanie kodu który można zrównoleglić. S( N) S( N) Czas _ wykonania _ zadania _ w _ systemie _ Czas _ wykonania _ zadania _ w _ systemie _ s p p s n jednoprocesorowym wieloproce sorowym

Prawo Amdahl a

Prawo Amdahl a - skalowalność Wydajność systemu zależy od wydajności najwolniejszego komponentu

Klasyfikacja Flynn a (1966)

Klasyfikacja Dunncun a (1990) Synchroniczne Wektorowe SIMD Procesory wektorowe Pamięć asocjacyjna Systoliczne Wieloprocesorowe MIMD Pamięć wspólna Pamięć rozproszona Paradygmat MIMD MIMD/SIMD Przepływ danych (data flow) Redukcja Czoło fali

Systemy SISD Klasyczny, sekwencyjny komputer o architekturze von Neumann a

Systemy MISD Kategoria wymyślona wręcz sztucznie w komputerach MISD działa n procesorów, które współdzielą pamięć operacyjną Istnieją w przypadku zastosowania algorytmów równoległych w innych architekturach przykładem zastosowania komputerów MISD może być sprawdzenie czy pewna liczba Z jest liczbą pierwszą; stosując prymitywny sposób sprawdzenia musimy wykonać Z 2 dzieleń: Z/2, Z/3, Z/4,..., Z/(Z-1); jeśli zatem dostępnych jest Z 2 procesorów, to każdy z nich pobiera liczbę Z i wykonuje dzielenie przez inny dzielnik; oznacza to, że postawione zadanie może być wykonane w jednym cyklu;