Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność...

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

Transcript of Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność...

Page 1: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Wydajność obliczeń a architektura procesorów

Page 2: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 2

Wydajność komputerów

Modele wydajności-> szacowanie czasu wykonania zadania Wydajność – szybkość realizacji wyznaczonych zadań, np.:

liczba rozkazów na sekundę CPI (cycles per instruction) – liczba taktów zegara do

wykonania rozkazu Próba szacowania czasu:

jakie rozkazy procesora wykonywane są w celu realizacji zadania

jaki jest czas realizacji każdego z rozkazów (w liczbie taktów – CPI dla każdego z rozkazów)

jaka jest częstotliwość pracy procesora wymnożyć, wysumować - gotowe

Page 3: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 3

Wydajność komputerów

Podstawowe parametry sprzętu:

– Częstotliwość zegara

– Drożność procesora (IPC jako odwrotność CPI)

– Przepustowość magistrali pamięć-procesor

Problem - dlaczego parametry podstawowych elementów systemu komputerowego nie pozwalają na oszacowanie jego wydajności przy realizacji praktycznych zadań? złożoność architektury procesora

złożoność układu pamięci

współpraca sprzętu, systemu operacyjnego i kompilatorów, interpreterów, maszyn wirtualnych

Page 4: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 4

Architektura von Neumanna

Page 5: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 5

„Prawo” Moore'a (1965!)

Page 6: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 6

Przetwarzanie potokowe

• ilustracja przetwarzania potokowego - przyrost szybkości działania:

– analiza zgrubna• założenie tego samego czasu na przetwarzanie rozkazu:

wprowadzenie k-etapowego potoku zwiększa wydajność k-krotnie (dla odpowiednio długiej sekwencji rozkazów)

– analiza „praktyczna” • podawane przez producentów sprzętu:

maksymalna liczba rozkazów kończonych w każdym takcie zegara (ewentualnie mniejsza niż jeden) IPC

max

częstotliwość zegara taktującego procesor• procesory o rozbudowanych potokach mogą kończyć jeden rozkaz w

każdym takcie i mieć znacznie szybsze taktowanie• teoretycznie maksymalna wydajność procesora to iloczyn: drożność

procesora (IPCmax

) x częstotliwość taktowania

Page 7: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 7

Realizacja sprzętowa

Page 8: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 8

Przetwarzanie potokowe - AK

• problemy przetwarzania potokowego:

– hazardy: sytuacje zaburzające idealne przetwarzanie potokowe (w innych kontekstach na sytuacje zaburzające przetwarzanie równoległe używa się nazw konflikty, zależności)

• hazardy zasobów – przetwarzanie dwóch rozkazów wymaga dostępu do pojedynczego zasobu w tym samym czasie

• hazardy sterowania – związane z rozkazami skoku

• hazardy danych – związane z zależnościami między argumentami jednocześnie przetwarzanych rozkazów (techniki optymalizacji: przemianowanie rejestrów, przesyłanie (forwarding) argumentów)

Page 9: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 9

Hazardy sterowania - AK

• Statystyka: skoki stanowią ponad 20% rozkazów• Skoki bezwarunkowe:

– unikanie przestojów przez pobieranie z wyprzedzeniem

• Skoki warunkowe– szczelina opóźnienia rozkazu (branch delay slot)– przewidywanie rezultatu rozgałęzienia:

• skok nigdy nie wykonany• skok zawsze wykonany• statyczne przewidywanie (np. na podstawie kierunku skoku)• dynamiczne przewidywanie (na podstawie historii skoków)

Page 10: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 10

Przykład

PowerXCell

Page 11: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 11

Przykład

Dobry kod

007681 0D 123456 fma $118,$124,$67,$118

007681 1D 123456 lqd $79,160($53)

007682 0D 234567 fma $120,$124,$65,$120

007682 1D 234567 lqd $123,176($53)

007683 0D 345678 fma $67,$124,$67,$68

007683 1D 345678 lqd $121,192($53)

007684 0D 456789 fma $68,$124,$69,$70

007684 1D 456789 lqd $119,208($53)

007685 0D 567890 fma $65,$124,$65,$66

007685 1D 567890 lqd $117,224($53)

007686 0D 678901 fma $69,$124,$69,$72

007686 1D 678901 lqd $66,240($53)

Page 12: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 12

Przykład

Zły kod

005616 1 678901 lqd $54,5568($1)

005622 0 -----2345 rotmi $42,$54,-31

005626 0 ---67 a $42,$54,$42

005628 0 -8901 rotmai $52,$42,-1

005632 0 ---23 cgti $42,$52,0

005634 1 -4567 brz $42,.LC__88

005635 1 5678 brz $27,.LC__88

005636 0D 67 a $54,$127,$7

006244 0 ----456789 dfm $115,$115,$113

006257 0 -------7890123456789 dfm $115,$115,$44

006264 0 ------4567890123456 fscrrd $114

006277 0 ------------78 selb $113,$114,$45,$46

Page 13: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 13

Procesory współczesne - AK

• Wzrost złożoności układów mikroprocesorowych pozwala poszerzyć ich funkcjonalność i przyspieszyć działanie

• Uzyskuje się to poprzez między innymi:– wprowadzenie wielu jednostek funkcjonalnych realizujących ten sam

etap przetwarzania potokowego - superskalarność

– zwiększenie liczby etapów potoku – superpotokowość

– użycie układów przewidywania rozgałęzień

– pobieranie rozkazów z wyprzedzeniem (prefetching)

– realizowanie operacji w zmienionej kolejności (out-of-order execution, pula kilkudziesięciu rozkazów przetwarzanych współbieżnie)

– dodanie nowych rozkazów (np. wektorowych=SIMD)

– sprzętowe wsparcie wielowątkowości

Page 14: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 14

Page 15: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 15

Architektura procesora/rdzenia

Elementy architektury mające wpływ na wydajność: superpotokowość – co ile taktów potok jest w stanie kończyć

kolejny rozkaz (przeciętnie)

superskalarność – ile rozkazów procesor jest w stanie kończyć w jednym takcie

wykonywanie poza kolejnością – w jaki sposób procesor może zmieniać kolejność wykonywania rozkazów, w celu zwiększenia wydajności przetwarzania

przewidywanie rozgałęzień – na ile występowanie rozkazów skoku w programie (instrukcje warunkowe, a zwłaszcza pętle) spowalnia przetwarzanie potokowe

pobieranie z wyprzedzeniem – jak wiele czasu zajmie oczekiwanie na dane dla rozkazu

Page 16: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 16

Profile wykonania

Do badania przebiegu wykonania programu służą programy tworzące profile wykonania (profilers)

Dzielą się m.in. ze względu na sposób przeprowadzania pomiaru zbierające dane w trakcie standardowego wykonania oparte na wykonaniu w ramach symulatorów środowiska

wykonania Programy zbierające dane mogą wykorzystywać przerwania

(czasowe lub związane ze zdarzeniami) albo instrumentację kodu

Profilery mogą wykorzystywać dane zbierane w licznikach sprzętowych (hardware counters)

Page 17: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 17

Liczniki sprzętowe

Współczesne procesory udostępniają interfejs do zbierania danych dotyczących rozmaitych zdarzeń związanych z wykonaniem kodu

Typowymi zdarzeniami są liczba taktów zegara przypadających na wykonanie programu liczba wykonanych operacji liczba błędnie przewidzianych rozgałęzień liczba dostępów do różnych poziomów pamięci operacyjnej liczba operacji wejścia/wyjścia liczba błędów strony

Page 18: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 18

Wydajność komputerów raz jeszcze

Próba szacowania: jakie rozkazy procesora wykonywane są w celu realizacji

zadania (uwaga: różne kompilatory mogą użyć różnych zestawów rozkazów)

jaki jest czas realizacji każdego z rozkazów (w liczbie taktów) (uwaga: czas realizacji rozkazu zależy od tego czy rozkaz był niedawno używany (czy jest rozkodowany, w L1), czy argumenty były niedawno używane (są w L1, L2, L3...), czy rozkazy i dane pobierane są ze strony pamięci o adresie w TLB, jakie inne rozkazy są wykonywane współbieżnie przez procesor (hazardy))

różnice mogą być kilkudziesięciokrotne lub nawet większe (np. w przypadku błędu strony)

Page 19: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 19

Wnioski

Przydatne wzory: T

w = L

r x t

c = L

r x CPI

śr x t

t = L

r / wydajność

wydajność = 1 / tc = IPC

śr x częstotliwość_taktowania

wydajność wyrażana jest w liczbie rozkazów na jednostkę czasu (np. sekundę lub nanosekundę)

czas wykonania w odpowiednich jednostkach czasu (sekundach, nanosekundach)

wydajność maksymalna związana z IPCmax

może znacząco się

różnić od wydajności rzeczywistej związanej z IPCśr, CPI

śr i t

c

IPCmax

oblicza się na podstawie budowy i sposobu działania

procesora IPC

śr, CPI

śr i t

c dają się obliczyć w praktyce wyłącznie na

podstawie pomiarów: tc = T

w / L

r

Page 20: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 20

CISC - AK

• architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX wieku

• złożone rozkazy– złożone tryby adresowania

– wiele trybów adresowania

– różna długość rozkazów i znacząco różny czas wykonania

– złożone pobieranie z pamięci i rozkodowywanie

• duża liczba rozkazów (na liście rozkazów procesora)

Chęć optymalizacji przetwarzania potokowego doprowadziła do zmiany sposobu projektowania procesorów – przejścia od architektur CISC do RISC

Page 21: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 21

CISC- AK

• złożony rozkaz:– pobierz dwa argumenty z adresów w pamięci wyznaczonych przez

złożone tryby adresowania, wykonaj operację, zapisz wynik w miejscu pamięci obliczonym w złożony sposób

• złożony tryb adresowania:– obliczenie adresu na podstawie: adresu podstawowego, jawnie

określonego przesunięcia oraz przesunięcia odpowiadającego indeksowi przechowywanemu w odpowiednim rejestrze, który należy pomnożyć przez współczynnik skalowania

Page 22: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 22

CISC - AK

• zalety CISC– ułatwienie programowania w asemblerze– zmniejszenie liczby rozkazów w skompilowanym kodzie

(mniejsze wymagania co do szybkości przesyłania rozkazów i rozmiaru pamięci podręcznej do ich przechowywania)

• wady CISC– utrudnione działanie optymalizujących kompilatorów– złożone dekodowanie rozkazów– utrudniona realizacja przetwarzania potokowego

Page 23: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 23

RISC - AK

• rewolucja RISC lat 80-tych XX wieku• ograniczenie liczby rozkazów procesora (złożone rozkazy

zamienione na sekwencje prostych rozkazów)• ograniczenie liczby formatów rozkazów• rozkazy proste i proste tryby adresowania• oddzielenie rozkazów wykonywania operacji od rozkazów

pobierania z pamięci i zapisywania– load-store architecture

• zwiększenie liczby rejestrów

Page 24: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 24

RISC - AK

• Zalety RISC:– duża szybkość ułatwionego rozkodowywania rozkazów – ułatwienie przetwarzania potokowego– umożliwienie zwiększenia częstotliwości zegara– ułatwienie działania optymalizujących kompilatorów

• Wady RISC:– duża liczba rozkazów w kodzie– konieczne szybkie przesyłanie rozkazów z pamięci (motywacja

dla rozwoju pamięci podręcznej)

Page 25: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 25

Porównanie CISC-RISC - AK

Parametry Typowy Typowy procesor CISC procesor RISC

liczba rozkazów kilkaset kilkadziesiątmaksymalna długość rozkazu kilkadziesiąt bajtów kilka bajtów

liczba formatów rozkazów kilkadziesiąt kilka

liczba trybów adresowania kilkadziesiąt kilka

adresowanie pośrednie tak nie

maksymalna liczba argumentów kilka jeden

Page 26: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 26

VLIW – EPIC – IA64 - AK

• Wykonywanie poza kolejnością jest sprzeczne z optymalnym stosowaniem kompilatorów – po co kompilator ma ustalać optymalny przepływ obliczeń skoro procesor i tak go zmieni

• Koncepcja: niech kompilator dba o kolejność wykonania i decyduje o równoległości realizacji rozkazów

• VLIW – bardzo długie słowo maszynowe• EPIC - kilka rozkazów do równoległego wykonania

jawnie kodowanych w jednym długim słowie

Page 27: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 27

VLIW – EPIC – IA64 - AK

• Przerzucenie wykrywania równoległości i sterowania równoległym wykonaniem na kompilator pozwala zmniejszyć złożoność procesora – brak jednostek wykonywania poza kolejnością– brak jednostek przemianowania rejestrów

• Można zwiększyć liczbę rejestrów i jednostek funkcjonalnych oraz (znacznie) rozmiar pamięci podręcznej (do kilkunastu MB)

Page 28: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 28

VLIW – EPIC – IA64 - AK

• IA-64 – architektura Intela oparta na ideach VLIW i EPIC:– predykatywne wykonywanie rozgałęzień– spekulatywne ładowanie z pamięci

• Szczegóły techniczne procesorów Itanium:– słowo 128 bitów (3x41 rozkazy + 5 szablon)– 4 FPU i 6 ALU– 2x128 rejestrów– trzy poziomy pamięci podręcznej, do 16MB (i więcej)

Page 29: Wydajność obliczeń a architektura procesoróbanas/OWW/OWW_W02_Procesory.pdf · Wydajność komputerów ... • architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX

Krzysztof Banaś Obliczenia Wysokiej Wydajności 29

Itanium 2 - AK