Pla wykładu Architektura systemów komputerowych Wydajość systemów komputerowych Cezary Bolek Katedra Iformatyki Wydajość systemu komputerowego Cykl zegarowy Liczba cykli zegarowych a istrukcję Wyzaczaie wydajości Zwiększeie wydajości Miary wydajości MIPS Architektura systemów komputerowych Cezary Bolek Wady SPEC Wydajość systemu komputerowego Rzeczywisty czas wykoaia zadaia Liczy się wszystko: czas oczekiwaia, operacje we/wy, obsługa przez system operacyjy PoŜytecze, lecz mało miarodaje do ocey brak obiektywizacji Na razie: czas wykoaia programu przez CPU Czas potrzeby a realizację istrukcji programu Nie brae pod uwagę czas realizacji operacji we/wy oraz czas obsługi przez OS MoŜe być wyraŝoe w sekudach Architektura systemów komputerowych Cezary Bolek 3 Bądź odiesioe do liczby cykli zegarowych Cykle zegarowe Cykl zegarowy = okres zegara = / szybkość zegara Cykl Cykl Cykl 3 Szybkość zegara = częstotliwość zegara = cykle a sek. Ghz = 0 9 cykli/sek. Zegar o częstotliwości GHz ma okres = /( 0 9 ) = 0.5 s Często uŝywa się cykle zegarowe w celu przedstawieia czasu wykoywaia programu przez CPU. Architektura systemów komputerowych Cezary Bolek 4 Czas wykoaia CPU = Cykle CPU okres zegara Cykle CPU = Szybkość zegara
Zwiększeie wydajości Aby zwiększyć wydajość aleŝy: Zmiejszyć liczbę cykli iezbędych do realizacji programu Zmiejszyć długość cyklu zegarowego (zwiększyć szybkość zegara) Przykład: Program realizujący pewe zadaie w ciągu 0 sekud a komputerze X z zegarem GHz Cel: system komputerowy Y realizujący dae zadaie w ciągu 6 sekud Ale: system Y wymaga o 0% więcej cykli zegarowych Jaka musi być szybkość zegara systemu Y? Rozwiązaie Architektura systemów komputerowych Cezary Bolek 5 Liczba cykli systemu X = 0 s. 0 9 cykli/s = 0 0 9 cykli Liczba cykli systemu Y =. 0 0 9 = 0 9 cykli Liczba cykli zegarowych a istrukcję Clock Cycles per Istructio (CPI) RóŜe istrukcje potrzebują róŝej liczby cykli zegarowych MoŜeie wymaga więcej cykli iŝ dodawaie Dostęp do pamięci wymaga więcej cykli iŝ dostęp do rejestrów CPI określa 3średią 4 5 6liczbę 7 8cykli zegarowych a istrukcję I I I3 I4 I5 9034CPI I6 I7 = 4/7 = cykl systemów komputerowych Cezary Bolek 6 Zmiaa długości cyklu zegarowego często powoduje zmiaę liczby cykli dla określoych istrukcji Szybkość zegara Y = 0 9 cykli / 6 s. = 3.67 GHz Architektura Czas wykoaia programu Aby wykoać pewie program potrzeba: wykoać określoą liczbę istrukcji określoej liczby cykli zegarowych wyikającą z tego określoego czasu Liczba cykli zegarowych wyika z liczby wykoaych istrukcji: Cykle zegarowe CPU = Liczba istrukcji CPI Czas wykoywaia programu (wydajość): Wyzaczaie wydajości ZałoŜeie: dwa systemy o takim samym model programowym jedostki cetralej (ISA), lecz odmieie zaimplemetowae Dla pewego programu: Komputer A - zegar 4GHz (cykl zegarowy 50ps) oraz CPI=,0 Komputer B - zegar GHz (cykl zegarowy 500ps) oraz CPI=, Wydajość: Obydwa komputery wykoują taką samą liczbę istrukcji N Czas wykoywaia CPU (A) = N,0 50 ps = 500 N ps Czas wykoywaia CPU (B) = N, 500 ps = 600 N ps Architektura systemów komputerowych Cezary Bolek 7 Czas = Liczba istrukcji CPI długość cyklu Architektura systemów komputerowych Cezary Bolek 8 600 I Komputer A jest szybszy od B: =, razy 500 I
Określaie CPI RóŜe klasy istrukcji wykoywae są róŝej liczbie cykli ZałoŜeie: CPI i = liczba cykli zegarowych dla ist. klasy i C = liczba istrukcji klasy i Cykle CPU = (CPI i C i ) CPI = i = (CPI i C i ) Architektura systemów komputerowych Cezary Bolek 9 Projektaci często wyzaczają CPI a podstawie symulacji i = C i i = Określaie CPI - przykład Dla określoego zestawu istrukcji procesora MIPS Jaki jest średie CPI? Jaki jest średi, procetowy udział kaŝdej klasy istrukcji w czasie wykoywaia? Klasa Częst CPI CPI Częst % czasu ALU 50% 0,5 = 0,5 0,5/, = 3% Load 0% 5 0, 5 =,0,0/, = 45% Store 0% 3 0, 3 = 0,3 0,3/, = 4% Brach 0% 0, = 0,4 0,4/, = 8% Architektura systemów komputerowych Cezary Bolek 0 Średie CPI = 0,5 +,0 + 0,3 + 0,4 =, MIPS jako miara wydajości MIPS: Millios Istructios Per Secod, Milio istrukcji a sekudę UŜywaa jako miara wydajości systemów komputerowych Szybszy system większe MIPS MIPS określa średią szybkość wykoywaia istrukcji Istructio Cout MIPS = Executio Time 0 6 = MIPS moŝe określać czas wykoywaia Clock Rate CPI 0 6 Architektura systemów komputerowych Cezary Bolek Ist Cout Executio Time = MIPS 0 6 = Ist Cout CPI Clock Rate Wady MIPS jako miary wydajości Nie uwzględia moŝliwości poszczególych istrukcji Nie moŝa porówywać komputerów z róŝymi zestawami istrukcji gdyŝ udział poszczególych istrukcji jest róŝy Współczyik MIPS dla róŝych programów a tym samym komputerze jest róŝy Nie moŝa uŝywać tego samego współczyika MIPS dla wszystkich programów MIPS moŝe maleć wraz ze wzrostem rzeczywistej wydajości WyŜszy współczyik MIPS ie zawsze musi ozaczać wyŝszą wydajość Architektura systemów komputerowych Cezary Bolek MIPS ie uwzględia architektury całego komputera, odosi się tylko do CPU
MIPS przykład / Dwa róŝe kompilatory zostały uŝyte do wygeerowaia kodu dla komputera taktowaego częstotliwością 4GHz. UŜyte zostały istrukcje aleŝące do trzech klas: A, B i C, które realizowae są w odpowiedio:, i 3 cyklach zegarowych. Pierwszy kompilator wygeerował kod, który podczas realizacji wykouje: 5 miliardów istrukcji klasy A, miliard istrukcji klasy B i miliard istrukcji klasy C Drugi: 0 miliardów istrukcji klasy A, miliard istrukcji klasy B i miliard istrukcji klasy C Architektura systemów komputerowych Cezary Bolek 3 Który kompilator geeruje wyŝszy współczyik MIPS? Który kompilator geeruje szybciej wykoyway kod? MIPS przykład / Liczba cykli CPU dla obydwu kodów: Liczba cykli CPU (kompilator ) = (5 + + 3) 0 9 = 0 0 9 Liczba cykli CPU (kompilator ) = (0 + + 3) 0 9 = 5 0 9 Czas wykoywaia dla obydwu kodów: Czas wykoywaia (kompilator ) = 0 09 cykli / 4 0 9 Hz =,5 s. Czas wykoywaia (kompilator ) = 5 09 cykli / 4 0 9 Hz = 3,75 s. Kompilator geeruje szybszy kod (krótszy czas wykoyw.) Współczyik MIPS dla obydwu kompilaotrów: MIPS = Liczba istrukcji / (Czas wykoywaia 0 6 ) MIPS (kompilator ) = (5++) 0 9 / (,5 0 6 ) = 800 Architektura systemów komputerowych Cezary Bolek 4 MIPS (kompilator ) = (0++) 0 9 / (3,75 0 6 ) = 300 Kod wygeeroway przez kompilator charakteryzuje się wyŝszym współczyikiem MIPS Miary wydajości Wydajość ajlepiej jest oceić w kotekście szybkości działaia rzeczywistych aplikacji Programy geerujące typowe obciąŝeie Reprezetujące klasy typowych zastosowań Kompilatory, edytory, CAD/CAM, przetwarzaie grafiki SPEC (System Performace Evaluatio Corporatio) załoŝoa w 988 r. orgaizacja z siedzibą w Warreto, Virgiia, zajmująca się ustaawiaiem stadardowych bechmarków oceiających wydajość komputerów. Jej pierwszym testem wydajości był SPECmark badający CPU, w którym jedostką był ekwiwalet wydajości maszyy VAX /780. ChociaŜ testy SPEC w dalszym ciągu badają CPU, orgaizacja opracowała teŝ ie testy, p. do ocey podsystemu graficzego czy rozmaitych kategorii aplikacji. Architektura Architektura systemów komputerowych Cezary Bolek 5 SPEC CPU006 Iteger bechmarks (C ad C++) 4 FP bechmarks (Fortra 77, 90, ad C) Name Descriptio Name Descriptio gzip Compressio wupwise Quatum chromodyamics vpr FPGA placemet ad routig swim Shallow water model gcc GNU C compiler mgrid Multigrid solver i 3D potetial field mcf Combiatorial optimizatio applu Partial differetial equatio crafty Chess program mesa Three-dimesioal graphics library parser Word processig program galgel Computatioal fluid dyamics eo Computer visualizatio art Neural etworks image recogitio perlbmk Perl applicatio equake Seismic wave propagatio simulatio gap Group theory, iterpreter facerec Image recogitio of faces vortex Object-orieted database ammp Computatioal chemistry bzip Compressio lucas Primality testig twolf Place ad route simulator fma3d Crash simulatio usig fiite elemets sixtrack High-eergy uclear physics apsi Meteorology: pollutat distributio systemów komputerowych Cezary Bolek 6 Miarą jest rzeczywisty czas wykoaia odiesioy do systemu wzorcowego
SPECmark przykładowe zestawy komputerowe System CINT006 CFP006 Rdze ie Proce sory Rdzei/ proc. Procesor Taktowaie proc. [GHz] Pamięć M90 ( T7600,.33 T3400 ( E6850, 3.00 T3400 ( E8500, 3.6 690 ( Xeo 560, 3.00 3 33.7 36.8 53. 9.5 8.8 30.5 4.3 4 Core T7600 Core E6850 Core E8500 Xeo 560 333 3000 366 3000 GB (x GB 667 MHz CL5 DDR SDRAM) 4 GB (4x GB 800 MHz ECC CL6 DDR) 4 GB (4x GB 800 MHz ECC CL6 DDR) 8 GB (8x GB 667 MHz ECC CL5 DDR FB- DIMM) Koiec XPS M70 ( Core T7600) 3.9 9.9 Core T7600 333 Architektura systemów komputerowych Cezary Bolek 7 GB (xgb Hyix DDR-667 CL5) Architektura systemów komputerowych Cezary Bolek 8