Tesla. Architektura Fermi

Podobne dokumenty
Programowanie procesorów graficznych GPGPU

Przetwarzanie Równoległe i Rozproszone

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

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

Programowanie Współbieżne

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

i3: internet - infrastruktury - innowacje

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

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Wprowadzenie do programowania w środowisku CUDA. Środowisko CUDA

JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski

Moc płynąca z kart graficznych

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

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

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek

LEKCJA TEMAT: Współczesne procesory.

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

Libra.cs.put.poznan.pl/mailman/listinfo/skisrkolo.

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

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Budowa Mikrokomputera

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

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

Programowanie współbieżne Wprowadzenie do programowania GPU. Rafał Skinderowicz

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

Budowa i zasada działania komputera. dr Artur Bartoszewski

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

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

Projektowanie. Projektowanie mikroprocesorów

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Nowoczesne technologie przetwarzania informacji

Programowanie kart graficznych. Sprzęt i obliczenia

Programowanie kart graficznych

Procesory. Schemat budowy procesora

Architektura komputerów

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

Programowanie kart graficznych

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

CUDA obliczenia ogólnego przeznaczenia na mocno zrównoleglonym sprzęcie. W prezentacji wykorzystano materiały firmy NVIDIA (

Programowanie aplikacji równoległych i rozproszonych

Przegląd architektury PlayStation 3

Architektura potokowa RISC

Architektura mikroprocesorów z rdzeniem ColdFire

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

CUDA. cudniejsze przyk ady

Mikroprocesory rodziny INTEL 80x86

Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami

Wstęp do programowania 2

Zastosowanie technologii nvidia CUDA do zrównoleglenia algorytmu genetycznego dla problemu komiwojażera

Programowanie procesorów graficznych GPGPU

Organizacja pamięci w procesorach graficznych

Wstęp do obliczeń równoległych na GPU

16. Taksonomia Flynn'a.

Budowa komputera Komputer computer computare

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

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

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

Literatura. 3/26/2018 Przetwarzanie równoległe - wstęp 1

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

Programowanie CUDA informacje praktycznie i. Wersja

Programowanie współbieżne Wykład 2. Iwona Kochańska

Algorytmy i Struktury Danych

LEKCJA TEMAT: Zasada działania komputera.

Wykład 6. Mikrokontrolery z rdzeniem ARM

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

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Kurs Zaawansowany S7. Spis treści. Dzień 1

Architektura mikroprocesorów TEO 2009/2010

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Architektura systemów komputerowych

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]

Podstawy Informatyki Systemy sterowane przepływem argumentów

Obliczenia Wysokiej Wydajności

Załącznik nr 6 do SIWZ nr postępowania II MJ Zaoferowany. sprzęt L P. Parametry techniczne

Akceleracja sprzętowa symulacji elektromagnetycznych. graficznych (GPU)

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Architektura systemów komputerowych. dr Artur Bartoszewski

Karty graficzne możemy podzielić na:

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

4. Procesy pojęcia podstawowe

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

Programowanie Niskopoziomowe

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Interfejsy w Java. Przetwarzanie równoległe. Wątki.

Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej. Krzysztof Banaś Obliczenia równoległe 1

Struktura i działanie jednostki centralnej

Architektura komputerów

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

System obliczeniowy laboratorium oraz. mnożenia macierzy

Task Parallel Library

Organizacja typowego mikroprocesora

Zarządzanie pamięcią operacyjną

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

PAKIET nr 12 Instytut Fizyki Teoretycznej

System operacyjny MACH

Transkrypt:

Tesla Architektura Fermi

Tesla Tesla jest to General Purpose GPU (GPGPU), GPU ogólnego przeznaczenia Obliczenia dotychczas wykonywane na CPU przenoszone są na GPU Możliwości jakie daje GPU dla grafiki komputerowej: http://www.refractivesoftware.com/videos.html Polecam drugie wideo

Tesla cechy: Procesory równoległe Skalowalne Oparte o architekturę CUDA Pamięć ECC Do 6 GB pamięci GDDR5 na każdy układ GPU Wydajność obliczeń zmiennoprzecinkowych podwójnej precyzji: 515 Gflops

Tesla cechy c.d. Maksymalny pobór mocy: 225 W zestawy narzędzi dla CUDA: C/C++/Fortran OpenCL i DirectCompute NVIDIA Parallel Nsight dla Visual Studio

Tesla dostępna jako: Pojedyncze urządzenia: karta wpinana w port PCI-Express Wolnostojące zestawy kilku kart; wersja Desktop Zestawy kilku urządzeń w formie modułów 1U do montowania w szafach montażowych. Wersja Server

Architektura Fermi Architektura Tesla o nazwie kodowej Fermi jest nową generacją rewolucyjnej architektury zaprezentowanej w Karcie graficznej GeForce 8800, która stworzyła podstawy dla CUDA.

Architektura CUDA wsparcie GPU dla języka programowania C/C++, dzięki czemu programiści nie muszą uczyć się nowych języków uniwersalne potoki przetwarzające wierzchołki, geometrię, piksele oraz programy obliczeniowe - wcześniej istniały tylko potoki dedykowane do przetwarzania wierzchołków lub pikseli

Architektura CUDA Tryb wykonawczy SIMT: Single-Instruction Multiple-Thread; wiele niezależnych wątków wykonuje się równocześnie wykorzystując jedną instrukcję Wprowadzenie współdzielonej pamięci i synchronizacji barierowej dla komunikacji między-wątkowej

Fermi W czerwcu 2008. roku pojawiła się druga generacja tej zunifikowanej architektury. Wraz z nią zaprezentowano układ Tesla. W tej generacji zwiększono ilość procesorów z 128 do 240, podwojono rozmiary rejestrów procesorów. Dodano wsparcie dla liczb zmiennoprzecinkowych podwójnej precyzji.

Fermi NVidia - producent Tesla nazywa technologię Fermi największym skokiem od czasów wprowadzenia technologii CUDA

Termin - Kernel Kernele mogą być pojmowane jako ciało pętli. Na przykład wykonując sekwencyjne obliczenia na CPU, kod może wyglądać następująco: void transform_10k_by_10k_grid(float in[10000][10000], float out[10000][10000]) { for(int x = 0; x < 10000; x++) { for(int y = 0; y < 10000; y++) { // The next line is executed 100 million times out[x][y] = do_some_hard_work( in[x][y] ); } } } Dla GPU kernelem będzie ciało pętli oraz zestaw danych

Architektura Fermi 3 miliardy tranzystorów 512 procesorów CUDA Rdzeń CUDA wykonuje jedną operację na liczbach całkowitych lub zmiennoprzecinkowych w cyklu zegara 512 procesorów CUDA zorganizowane w 16 Streaming Multiprocessor - 32 rdzenie CUDA na SM

Architektura Fermi GPU posiada 6 x 64 bitowe partycje pamięci obsługuje do 6GB GDDR5 interfejs PCI-Express GigaThread globalny zarządca procesów (scheduler) dystrybuuje bloki wątków do zarządcy procesów Streaming Multiprocessor

Architektura Fermi

Termin: Thread block (Blok wątków) Zbiór równocześnie wykonujących się wątków, które mogą ze sobą kooperować dzięki barierze synchronizacyjnej i pamięci współdzielonej. Blok wątków posiada ID bloku wewnątrz sieci.

Termin: Grid (sieć) Sieć jest tablicą bloków wątków, które korzystają z tego samego kernela, czytają dane z pamięci globalnej, zapisują wyniki do pamięci globalnej i synchronizują się z zależnymi kernela

Pamięć prywatna W technologii CUDA każdy wątek ma prywatną przestrzeń pamięciową przeznaczoną na rejestry, wywołania funkcji, oraz automatyczne zmienne tablicowe języka C.

Pamięć współdzielona Każdy blok wątków ma swoją pamięć współdzieloną, służącą do komunikacji między wątkami, wymianę danych oraz wymianę wyników w algorytmach równoległych

Pamięć globalna Sieci bloków współdzielą wyniki w pamięci globalnej po globalnej synchronizacji.

Hierarchia

Wykonanie sprzętowe Hierarchia wątków jest dopasowywana do hierarchii procesorów na GPU. GPU wykonuje jedną lub więcej sieć kerneli. Streaming Multiprocessor (SM) wykonuje jeden blok wątków lub więcej. Procesory CUDA oraz inne jednostki obliczeniowe wykonują wątki. SM wykonują wątki w grupach liczących 32 wątki, które nazwane zostały "warp"

Procesor CUDA posiada Arithmetic Logic Unit (ALU) oraz Floating Point Unit (FPU) FPU obsługuje Fused Multiply Add (FMA): algorytm wykonujący z większą precyzją mnożenie i dodawanie macierzy, niż standardowe sekwencyjne mnożenie i dodawanie tych argumentów

Streaming Multiprocessor 32 procesory CUDA 16 jednostek zapis/odczyt 4 specjalne jednostki funkcyjne: Special Function Units (SFU) wykonują takie funkcje jak sinus, cosinus, obliczanie liczby odwrotnej, pierwiastek kwadratowy jedna operacja na wątek na cykl zegara

Streaming Multiprocessor

Dual Warp Scheduler Warp - grupa 32 równoległych wątków Na każdy Streaming Multiprocessor przypada 2 warp schedulers oraz 2 dispatch units (planista niskopoziomowy, przydziela czas procesora), dzięki czemu dwa warpy mogą być wykonywane równocześnie

Zunifikowana przestrzeń adresowa w architekturze Fermi występują trzy rodzaje pamięci: lokalna pamięć wątku, pamięć współdzielona dla sieci wątków, pamięć globalna przestrzenie te zostały zunifikowane, jest to jedna ciągła przestrzeń adresowa

Zunifikowana przestrzeń adresowa implementacja zunifikowanej przestrzeni adresowej umożliwiło zastosowanie języków C/C++ możliwe jest przekazywanie obiektów z każdej przestrzeni adresowej, ponieważ sprzętowa jednostka dokona mapowania adresu na odpowiednią przestrzeń pamięci

Zunifikowana przestrzeń adresowa

Improved Conditional Performance through Predication Mechanizm wykonujący krótkie segmenty kodu instrukcji warunkowych bez znanego wyniku instrukcji warunkowej

NVIDIA Parallel DataCache 64kB pamięć L1 na Streaming Multiprocessor Jedna pamięć L2-768kB - służąca do wszystkich operacji (load, store, texture) Architektura Fermi umożliwia konfigurowanie pamięci L1 jako cache lub pamięć współdzielona

NVIDIA Parallel DataCache Np. 48kb na cache L1 i pozostałe 16 na pamięć współdzieloną Można dostosować rozmiary pamięci do wykonywanych zadań, dzięki czemu uzyskiwane jest znaczne przyspieszenie obliczeń. Na przykład symulacja zjawisk elektrodynamicznych często korzysta z pamięci wpsółdzielonej

Hierarchia pamięci

Concurrent Kernel Execution możliwe jest wykonywanie różnych kerneli jednej aplikacji w jednym czasie mechanizm ten umożliwia efektywniejsze wykorzystanie czasu procesorów dla aplikacji wykonujących wiele małych kerneli Przykład: symulacja fizyczna obliczająca symulację płynów oraz ciała stałego

Concurrent Kernel Execution