Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Podobne dokumenty
Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Organizacja pamięci współczesnych systemów komputerowych : pojedynczy procesor wielopoziomowa pamięć podręczna pamięć wirtualna

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

Architektura komputerów

Wydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

System pamięci. Pamięć podręczna

System pamięci. Pamięć podręczna

Zrównoleglenie i przetwarzanie potokowe

Architektura komputerów

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

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Plan wykładu. Architektura systemów komputerowych. Strategie zapisu. Cezary Bolek

Stronicowanie w systemie pamięci wirtualnej

architektura komputerów w. 7 Cache

Podstawy. Pamięć wirtualna. (demand paging)

, " _/'--- " ~ n\l f.4e ' v. ,,v P-J.. ~ v v lu J. ... j -:;.",II. ,""", ",,> I->~" re. dr. f It41I r> ~ '<Q., M-c 'le...,,e. b,n '" u /.

System pamięci. Pamięć wirtualna

Budowa komputera Komputer computer computare

Dr inż. hab. Siergiej Fialko, IF-PK,

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

System pamięci. Pamięć wirtualna

Architektura Systemów Komputerowych

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

System obliczeniowy laboratorium oraz. mnożenia macierzy

Systemy operacyjne III

Ograniczenia efektywności systemu pamięci

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

ARCHITEKTURA PROCESORA,

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

System pamięci. Pamięć wirtualna

Wydajność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

ARCHITEKTURA KOMPUTERÓW Bufory pamięci bufor zawiera kopie aktualnie przetwarzanych danych

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

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

Wprowadzenie do architektury komputerów. Pamięci w systemach komputerowych Pamięć podręczna

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

Wydajność obliczeń a architektura procesorów

Ograniczenia efektywności systemu pamięci

Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Poziomy abstrakcji cyfrowego systemu komputerowego. Procesor i pamięć. organizacja pamięci

W komputerze z programem zintegrowanym programy i dane mają tedencję do skupiania w wymiarze przestrzennym i czasowym.

architektura komputerów w. 8 Zarządzanie pamięcią

Hierarchia pamięci w systemie komputerowym

Programowanie Niskopoziomowe

METODY ELIMINACJI STUDENTÓW INFORMATYKI. Czyli co student INF-EKA powinien wiedzieć o MESI...

dr inż. Jarosław Forenc

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Analiza ilościowa w przetwarzaniu równoległym

Obliczenia Wysokiej Wydajności

Zarządzanie pamięcią operacyjną

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

Projektowanie. Projektowanie mikroprocesorów

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

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

Pamięć. Podstawowe własności komputerowych systemów pamięciowych:

Architektura mikroprocesorów TEO 2009/2010

Architektura systemów informatycznych

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

Przetwarzanie potokowe pipelining

Macierze All Flash. Czy to jest alternatywa dla macierzy klasy Enterprise? Krzysztof Jamiołkowski HP EG Storage Solutions Architect

Optymalizacja skalarna. Piotr Bała. Wykład wygłoszony w ICM w czercu 2000

Architektura systemów komputerowych. Przetwarzanie potokowe I

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

Budowa Mikrokomputera

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com

Numeryczna algebra liniowa

Materiały pomocnicze do laboratorium. 1. Miary oceny efektywności 2. Mnożenie macierzy 3. Znajdowanie liczb pierwszych

Architektura harwardzka Architektura i organizacja systemu komputerowego Struktura i funkcjonowanie komputera procesor, rozkazy, przerwania

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

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

Architektura systemów komputerowych. dr Artur Bartoszewski

Wykład 7. Zarządzanie pamięcią

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Architektura potokowa RISC

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

PAMIĘCI SYNCHRONICZNE

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

Nakładki. Kod przebiegu 2: 80 kb Tablica symboli: 20 kb wspólne podprogramy: 30 kb Razem: 200 kb

UKŁADY PAMIĘCI. Tomasz Dziubich

Magistrala systemowa (System Bus)

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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury

Pamięć wirtualna. A gdyby tak w pamięci przebywała tylko ta część programu, która jest aktualnie wykonywana?

Budowa systemów komputerowych

Architektura mikroprocesorów z rdzeniem ColdFire

Architektura komputerów egzamin końcowy

20. Czy serwerownia spełnia standardowe wymagania techniczne dla takich pomieszczeń?

Logiczny model komputera i działanie procesora. Część 1.

MATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018

dr inż. Jarosław Forenc

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Transkrypt:

Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci i przetwarzania przez procesor W rzeczywistości często występują algorytmy (programy), w których wydajność jest ograniczana wyłącznie przez wydajność procesora lub wyłącznie przez wydajność układu pobierania danych z pamięci Ta ostatnia sytuacja jest w ostatnich latach coraz powszechniejsza Krzysztof Banaś, Obliczenia wysokiej wydajności. 2

Memory wall Krzysztof Banaś, Obliczenia wysokiej wydajności. 3

Szacowanie wydajności pamięci Jak szacować czas realizacji operacji pobierania z pamięci (w algorytmach o wydajności ograniczanej przez pamięć ten czas służy do określania ostatecznej wydajności przy realizacji algorytmu): t mem = liczba_dostępów * czas_dostępu Czas dostępu do pojedynczej danej (pojedynczego argumentu) jest często podawany jako parametr pamięci i dla pamięci RAM wynosi ok. kilkudziesięciu ns Krzysztof Banaś, Obliczenia wysokiej wydajności. 4

Szacowanie wydajności pamięci Przykład oszacowania dla algorytmu mnożenia macierz razy wektor (rozmiar macierzy nxn): liczba_dostępów - 2n 2 czas_dostępu 100ns t mem = 200n 2 [ns] Dla porównania czas wykonania 2n 2 operacji algorytmu w przypadku uwzględnienia teoretycznych możliwości czterodrożnego procesora o częstotliwości 2.5GHz t proc = 0.2n 2 [ns] Pamięć spowalnia wykonanie zadania 1000 razy? Krzysztof Banaś, Obliczenia wysokiej wydajności. 5

Szacowanie wydajności pamięci Obydwa czasy wykonania można wykorzystać do obliczenia wydajności przy realizacji algorytmu: GFLOPS = liczba_operacji / czas_realizacji ograniczona przez CPU 10 GFLOPS ograniczona przez pamięć 0.01 GFLOPS! Wydajność ograniczoną przez pamięć można obliczać z wzoru stosującego ważny parametr charakteryzujący algorytmy s pm liczba operacji na jedno pobranie danych: GFLOPS = s pm / czas_dostępu W rzeczywistości czas dostępu musi być znacznie krótszy niż przyjęty w przykładzie projektanci dążą do tworzenia systemów zrównoważonych Krzysztof Banaś, Obliczenia wysokiej wydajności. 6

Pamięć podręczna Przyczyna nr 1 skrócenia rzeczywistego czasu dostępu pamięć podręczna Przybliżone przykładowe rozmiary i czasy dostępu dla różnych rodzajów pamięci: rejestry kilkaset B < 1ns podręczna (L1) kilkanaście kb ok. 1 ns podręczna (L2 3) kilka MB kilka ns główna kilka GB kilkadziesiąt ns dyskowa kilkaset GB kilka ms Optymalne wykorzystanie pamięci podręcznej ma kluczowe znaczenie dla wydajności programów. Krzysztof Banaś, Obliczenia wysokiej wydajności. 7

Pamięć podręczna Orientacyjne rozmiary pamięci różnych poziomów i czasy dostępu (tym razem w liczbie taktów) Krzysztof Banaś, Obliczenia wysokiej wydajności. 8

Pamięć podręczna Działanie pamięci podręcznej: procesor zgłasza chęć dostępu do komórki pamięci sprawdzana jest odpowiadająca jej linia pamięci podręcznej (lub zbiór linii): trafienie (hit) wartość jest udostępniana chybienie (miss) przeładowywana jest zawartość całej linii pamięci odczyt lub zapis komórki z pamięci podręcznej jeśli procesor dokonuje zapisu konieczna jest strategia utrzymywania spójności pamięci podręcznej (w stosunku do pamięci głównej) Krzysztof Banaś, Obliczenia wysokiej wydajności. 9

Pamięć podręczna Organizacja pamięci podręcznej: linie pamięci o pojemności kilku słów (np. 64B, 128B) odwzorowanie obszarów (bloków) pamięci głównej w linie pamięci podręcznej statyczne bezpośrednie, direct mapped (każdy blok ma swoją linię) dynamiczne: skojarzeniowe, fully associative (każdy blok może być odwzorowany w dowolną linię całej pamięci) sekcyjno skojarzeniowe, set associative (każdy blok może być odwzorowany w dowolną linię z pewnej grupy) architektura harvardzka: osobna pamięć podręczna dla danych, osobna dla kodu (dla unikania hazardu zasobów) Krzysztof Banaś, Obliczenia wysokiej wydajności. 10

Pamięć podręczna Krzysztof Banaś, Obliczenia wysokiej wydajności. 11

Pamięć podręczna Działanie pamięci podręcznej: strategie podmiany linii w dynamicznych pamięciach podręcznych: losowo FIFO najdłużej przechowywana LRU (least recently used) najdawniej użyta LFU (least frequently used) najrzadziej używana Krzysztof Banaś, Obliczenia wysokiej wydajności. 12

Pamięć podręczna Strategia korzystania z hierarchii pamięci w procesorach Opteron L2 do przechowywania linijek usuniętych z L1 Odczyt z RAM z pominięciem L2 Krzysztof Banaś, Obliczenia wysokiej wydajności. 13

Lokalność odniesień Przydatność pamięci podręcznej zależy od stopnia lokalności odniesień do danych w programie lokalność czasowa: dane raz użyte niedługo zostaną użyte ponownie (warto je zachować w szybszej pamięci) lokalność przestrzenna: jeśli w programie użyto jakichś danych to za chwile zostaną użyte dane sąsiadujące w pamięci (warto pobierać do pamięci podręcznej całe bloki) Miarą lokalności odniesień w trakcie wykonywania programu jest współczynnik trafień (hit ratio) proporcja trafień do chybień Krzysztof Banaś, Obliczenia wysokiej wydajności. 14

Lokalność odniesień Zastosowanie pamięci podręcznej przynosi zazwyczaj wzrost wydajności, ponieważ wiele programów ma w sposób naturalny wysoki stopień lokalności odniesień (w praktyce stosunek trafień do chybień sięga nawet powyżej 90%) Chcąc zwiększać wydajność programów dzięki optymalnemu wykorzystaniu pamięci podręcznej należy maksymalizować stopień lokalności odniesień w kodzie (grupować odniesienia do tych samych i sąsiadujących danych w jedno miejsce) Ciekawą alternatywą są tzw. cache oblivious algorithms Krzysztof Banaś, Obliczenia wysokiej wydajności. 15

Czas dostępu do pamięci Obliczenie średniego czasu dostępu do danej w pamięci dla konkretnego programu t c czas dostępu do pamięci podręcznej (czas obsługi trafienia) t m czas dostępu do pamięci głównej h współczynnik trafień w pamieć podręczną t av średni czas dostępu do danej dla programu t av = h t c + (1 h) t m Wydajność: s pm / t av Czas dostępu może być wyrażany w liczbie taktów zegara, należy go wtedy odpowiednio przeliczyć. Krzysztof Banaś, Obliczenia wysokiej wydajności. 16

Czas dostępu do pamięci Dla pamięci podręcznej wielopoziomowej można stosować wzór: t ci czas dostępu do pamięci podręcznej (hit time) poziomu i t mi czas obsługi chybienia w pamięci podręcznej poziomu i (m.in. podmiany linii) miss time m i współczynnik chybień w pamięć podręczną poziomu i t av średni czas dostępu do danej dla programu t av = t c1 + m 1 * ( t c2 + m 2 * ( t c3 + m 3 * t m3 ) Powyższy wzór zakłada 3 poziomową pamięć podręczną o identycznym sposobie działania dla każdego poziomu (co jak wiadomo nie zawsze ma miejsce, np. przypadek victim cache) Krzysztof Banaś, Obliczenia wysokiej wydajności. 17

Czas dostępu do pamięci Przykład (mnożenie macierz wektor): t c =4ns, t m =100ns h=0.875 > t av = 16ns s pm = 2n 2 /2n 2 = 1 > wydajność 0.0625 GFLOPS wynik wciąż silnie zależy od bardzo długiego czasu dostępu do pamięci głównej czas dostępu do pamięci nie uwzględnia technik ukrywania opóźnienia (latency hiding np. wielobankowość pamięci) i jest z tego względu pesymistyczny Krzysztof Banaś, Obliczenia wysokiej wydajności. 18

Rzeczywisty współczynnik trafień Współczynnik trafień w programach SPEC_int Krzysztof Banaś, Obliczenia wysokiej wydajności. 19

Rzeczywisty czas dostępu do pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 20

Optymalizacja wydajności pamięci podręcznej Parametry wydajności pamięci podręcznej: czas obsługi trafienia (hit time) współczynnik trafień (hit rate) lub chybień (miss rate) czas obsługi chybienia (miss penalty) przepustowość pamięci podręcznej (dla sekwencji operacji) dostęp do sekwencji 1000 wartości może być znacznie szybszy niż 1000 odrębnych dostępów (dzięki np. pamięci podręcznej: potokowej, wielobankowej, nieblokującej itp.) Do dyspozycji programisty: maksymalizacja współczynnika trafień redukcja wpływu czasu obsługi chybienia przez pobieranie z wyprzedzeniem (software prefetching) Krzysztof Banaś, Obliczenia wysokiej wydajności. 21

Przydatne wzory Jeśli czas wykonania w całości przeznaczony na dostęp do pamięci (obliczenia w tle ): T w = L a x t av t av - obliczane na podstawie czasów dostępu do różnych poziomów hierarchii pamięci powinno uwzględniać sposób dostępu (access pattern) w praktyce uzyskiwane eksperymentalnie t a = rozmiar_danych / przepustowość_pamięci w takim wypadku wydajność obliczana z wzoru L o / T w = L o / ( L a x t av ) = s pm x przepustowość_pamięci ważny parametr charakteryzujący algorytmy s pm liczba operacji na jedno pobranie danych Krzysztof Banaś, Obliczenia wysokiej wydajności. 22