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;