4 - Katedra Informatyki > Home
Transkrypt
4 - Katedra Informatyki > Home
Plan wykładu Architektura systemów komputerowych Wydajność systemu komputerowego Wydajność systemów komputerowych Cykl zegarowy Cezary Bolek Liczba cykli zegarowych na instrukcję Katedra Informatyki Wyznaczanie wydajności Zwiększenie wydajności Miary wydajności MIPS Wady SPEC Architektura systemów komputerowych Wydajność systemu komputerowego 2 Cezary Bolek Cykle zegarowe Rzeczywisty czas wykonania zadania Cykl zegarowy = okres zegara = 1 / szybkość zegara Liczy się wszystko: czas oczekiwania, operacje we/wy, obsługa przez system operacyjny Cykl 1 PoŜyteczne, lecz mało miarodajne do oceny – brak obiektywizacji Cykl 2 Cykl 3 Szybkość zegara = częstotliwość zegara = cykle na sek. Na razie: czas wykonania programu przez CPU 2 Ghz = 2×109 cykli/sek. Zegar o częstotliwości 2 GHz ma okres = 1/(2×109) = 0.5 ns Czas potrzebny na realizację instrukcji programu Często uŜywa się cykle zegarowe w celu przedstawienia czasu wykonywania programu przez CPU. Nie brane pod uwagę czas realizacji operacji we/wy oraz czas obsługi przez OS MoŜe być wyraŜone w sekundach Bądź odniesione do liczby cykli zegarowych Architektura systemów komputerowych Cezary Bolek Czas wykonania CPU = Cykle CPU × okres zegara = 3 Architektura systemów komputerowych Cezary Bolek Cykle CPU Szybkość zegara 4 Zwiększenie wydajności Liczba cykli zegarowych na instrukcję Aby zwiększyć wydajność naleŜy: Clock Cycles per Instruction (CPI) Zmniejszyć liczbę cykli niezbędnych do realizacji programu RóŜne instrukcje potrzebują róŜnej liczby cykli zegarowych Zmniejszyć długość cyklu zegarowego (zwiększyć szybkość zegara) MnoŜenie wymaga więcej cykli niŜ dodawanie Przykład: Dostęp do pamięci wymaga więcej cykli niŜ dostęp do rejestrów CPI określa średnią liczbę cykli zegarowych na instrukcję Program realizujący pewne zadanie w ciągu 10 sekund na komputerze X z zegarem 2 GHz I1 Cel: system komputerowy Y realizujący dane zadanie w ciągu 6 sekund Ale: system Y wymaga o 10% więcej cykli zegarowych 1 Jaka musi być szybkość zegara systemu Y ? I2 2 3 I3 4 5 6 I4 I5 7 8 9 I6 I7 10 11 12 13 14 CPI = 14/7 = 2 cykl Rozwiązanie Liczba cykli systemu X = 10 s. × 2 × 109 cykli/s = 20 × 109 cykli Zmiana długości cyklu zegarowego często powoduje zmianę liczby cykli dla określonych instrukcji Liczba cykli systemu Y = 1.1 × 20 × 109 = 22 × 109 cykli Szybkość zegara Y = 22 × 109 cykli / 6 s. = 3.67 GHz Architektura systemów komputerowych Cezary Bolek 5 Czas wykonania programu Architektura systemów komputerowych Cezary Bolek 6 Wyznaczanie wydajności Aby wykonać pewien program potrzeba: określonej liczby cykli zegarowych ZałoŜenie: dwa systemy o takim samym model programowym jednostki centralnej (ISA), lecz odmiennie zaimplementowane wynikającą z tego określonego czasu Dla pewnego programu: wykonać określoną liczbę instrukcji Komputer A - zegar 4GHz (cykl zegarowy 250ps) oraz CPI=2,0 Liczba cykli zegarowych wynika z liczby wykonanych instrukcji: Komputer B - zegar 2GHz (cykl zegarowy 500ps) oraz CPI=1,2 Wydajność: Cykle zegarowe CPU = Liczba instrukcji × CPI Obydwa komputery wykonują taką samą liczbę instrukcji – N Czas wykonywania CPU (A) = N × 2,0 × 250 ps = 500 × N ps Czas wykonywania programu (wydajność): Czas wykonywania CPU (B) = N × 1,2 × 500 ps = 600 × N ps Czas = Liczba instrukcji × CPI × długość cyklu Architektura systemów komputerowych Cezary Bolek Komputer A jest szybszy od B: 7 Architektura systemów komputerowych 600 × I 500 × I Cezary Bolek = 1,2 razy 8 Określanie CPI Określanie CPI - przykład RóŜne klasy instrukcji wykonywane są róŜnej liczbie cykli Dla określonego zestawu instrukcji procesora MIPS ZałoŜenie: CPIi = liczba cykli zegarowych dla inst. klasy i C = liczba instrukcji klasy i Jaki jest średni, procentowy udział kaŜdej klasy instrukcji w czasie wykonywania ? Jaki jest średnie CPI ? ∑ (CPI × C ) n ∑ (CPI × C ) i n Cykle CPU = i i CPI = i=1 i=1 ∑C i n i i=1 Projektanci często wyznaczają CPI na podstawie symulacji Architektura systemów komputerowych Cezary Bolek MIPS jako miara wydajności Architektura systemów komputerowych Cezary Bolek = 50% 20% 10% 20% 1 5 3 2 0,5×1 = 0,5 0,2×5 = 1,0 0,1×3 = 0,3 0,2×2 = 0,4 0,5/2,2 = 23% 1,0/2,2 = 45% 0,3/2,2 = 14% 0,4/2,2 = 18% Architektura systemów komputerowych Cezary Bolek 10 Współczynnik MIPS dla róŜnych programów na tym samym komputerze jest róŜny = Nie moŜna uŜywać tego samego współczynnika MIPS dla wszystkich programów Clock Rate MIPS moŜe maleć wraz ze wzrostem rzeczywistej wydajności CPI × 106 WyŜszy współczynnik MIPS nie zawsze musi oznaczać wyŜszą MIPS moŜe określać czas wykonywania MIPS × 106 ALU Load Store Branch gdyŜ udział poszczególnych instrukcji jest róŜny MIPS określa średnią szybkość wykonywania instrukcji Execution Time = % czasu Nie moŜna porównywać komputerów z róŜnymi zestawami instrukcji Szybszy system ⇒ większe MIPS Inst Count CPI × Częst Nie uwzględnia moŜliwości poszczególnych instrukcji UŜywana jako miara wydajności systemów komputerowych Execution Time × 106 CPI Wady MIPS jako miary wydajności MIPS: Millions Instructions Per Second, Milion instrukcji na sekundę MIPS = Częst Średnie CPI = 0,5 + 1,0 + 0,3 + 0,4 = 2,2 9 Instruction Count Klasa wydajność Inst Count × CPI MIPS nie uwzględnia architektury całego komputera, odnosi się tylko do CPU Clock Rate 11 Architektura systemów komputerowych Cezary Bolek 12 MIPS – przykład 1/2 MIPS – przykład 2/2 Liczba cykli CPU dla obydwu kodów: Dwa róŜne kompilatory zostały uŜyte do wygenerowania kodu dla komputera taktowanego częstotliwością 4GHz. UŜyte zostały instrukcje naleŜące do trzech klas: A, B i C, które realizowane są w odpowiednio: 1, 2 i 3 cyklach zegarowych. Liczba cykli CPU (kompilator 1) = (5×1 + 1×2 + 1×3)×109 = 10×109 Liczba cykli CPU (kompilator 2) = (10×1 + 1×2 + 1×3)×109 = 15×109 Czas wykonywania dla obydwu kodów: Czas wykonywania (kompilator 1) = 10×109 cykli / 4×109 Hz = 2,5 s. Czas wykonywania (kompilator 2) = 15×109 cykli / 4×109 Hz = 3,75 s. Pierwszy kompilator wygenerował kod, który podczas realizacji wykonuje: 5 miliardów instrukcji klasy A, 1 miliard instrukcji klasy B i 1 miliard instrukcji klasy C Kompilator 1 generuje szybszy kod (krótszy czas wykonyw.) Współczynnik MIPS dla obydwu kompilaotrów: Drugi: 10 miliardów instrukcji klasy A, 1 miliard instrukcji klasy B i 1 miliard instrukcji klasy C MIPS = Liczba instrukcji / (Czas wykonywania × 106) Który kompilator generuje wyŜszy współczynnik MIPS ? MIPS (kompilator 1) = (10+1+1) × 109 / (3,75 × 106) = 3200 MIPS (kompilator 1) = (5+1+1) × 109 / (2,5 × 106) = 2800 Kod wygenerowany przez kompilator 2 charakteryzuje się wyŜszym współczynnikiem MIPS Który kompilator generuje szybciej wykonywany kod ? Architektura systemów komputerowych Cezary Bolek 13 Miary wydajności Cezary Bolek 14 SPEC CPU2006 Wydajność najlepiej jest ocenić w kontekście szybkości działania rzeczywistych aplikacji 12 Integer benchmarks (C and C++) Programy generujące typowe obciąŜenie Reprezentujące klasy typowych zastosowań Kompilatory, edytory, CAD/CAM, przetwarzanie grafiki SPEC (System Performance Evaluation Corporation) załoŜona w 1988 r. organizacja z siedzibą w Warrenton, Virginia, zajmująca się ustanawianiem standardowych benchmarków oceniających wydajność komputerów. Jej pierwszym testem wydajności był SPECmark badający CPU, w którym jednostką był ekwiwalent wydajności maszyny VAX 11/780. ChociaŜ testy SPEC w dalszym ciągu badają CPU, organizacja opracowała teŜ inne testy, np. do oceny podsystemu graficznego czy rozmaitych kategorii aplikacji. Architektura systemów komputerowych Architektura systemów komputerowych Cezary Bolek 14 FP benchmarks (Fortran 77, 90, and C) Name Description Name Description gzip vpr gcc mcf crafty parser eon perlbmk gap vortex bzip2 twolf Compression FPGA placement and routing GNU C compiler Combinatorial optimization Chess program Word processing program Computer visualization Perl application Group theory, interpreter Object-oriented database Compression Place and route simulator wupwise swim mgrid applu mesa galgel art equake facerec ammp lucas fma3d sixtrack apsi Quantum chromodynamics Shallow water model Multigrid solver in 3D potential field Partial differential equation Three-dimensional graphics library Computational fluid dynamics Neural networks image recognition Seismic wave propagation simulation Image recognition of faces Computational chemistry Primality testing Crash simulation using finite elements High-energy nuclear physics Meteorology: pollutant distribution Miarą jest rzeczywisty czas wykonania odniesiony do systemu wzorcowego 15 Architektura systemów komputerowych Cezary Bolek 16 SPECmark – przykładowe zestawy komputerowe CINT2006 CFP2006 Rdze nie Proce sory Rdzeni/ proc. Dell Precision M90 (Intel T7600, 2.33 GHz) 23 19.5 2 1 2 Intel Core 2 Duo T7600 2333 2 GB (2x1 GB 667 MHz CL5 DDR2 SDRAM) Dell Precision T3400 (Intel E6850, 3.00 GHz) 33.7 28.8 2 1 2 Intel Core 2 Duo E6850 3000 4 GB (4x1 GB 800 MHz ECC CL6 DDR2) 3166 4 GB (4x1 GB 800 MHz ECC CL6 DDR2) System Procesor Taktowanie proc. [GHz] Pamięć Dell Precision T3400 (Intel E8500, 3.16 GHz) 36.8 30.5 2 1 2 Intel Core 2 Duo E8500 Dell Precision 690 (Intel Xeon 5160, 3.00 GHz) 53.2 42.3 4 2 2 Intel Xeon 5160 3000 8 GB (8x1 GB 667 MHz ECC CL5 DDR2 FBDIMM) XPS M1710 (Intel Core 2 Duo T7600) 23.9 19.9 2 1 2 Intel Core 2 Duo T7600 2333 2 GB (2x1GB Hynix DDR2-667 CL5) Architektura systemów komputerowych Cezary Bolek Koniec 17 Architektura systemów komputerowych Cezary Bolek 1 8