Programowanie współbieżne Wprowadzenie do programowania GPU. Rafał Skinderowicz
|
|
- Eleonora Romanowska
- 9 lat temu
- Przeglądów:
Transkrypt
1 Programowanie współbieżne Wprowadzenie do programowania GPU Rafał Skinderowicz
2 Literatura Sanders J., Kandrot E., CUDA w przykładach, Helion. Czech Z., Wprowadzenie do obliczeń równoległych, PWN Ben-Ari M., Podstawy programowania współbieżnego i rozproszonego, WNT. Kirk, David B., and W. Hwu Wen-mei. Programming massively parallel processors: a hands-on approach. Newnes, Scarpino, Matthew. OpenCL in Action: how to accelerate graphics and computation. Manning, Specyfikacja OpenCL. Pacheco P., Parallel Programming with MPI, Morgan Kaufmann, 1996.
3 Plan wykładu 1 Wprowadzenie 2 Historia rozwoju GPU Historia rozwoju GPU 3 Model programowania GPU Model programowania GPU 4 CUDA CUDA 5 Architektura GPU Architektura GPU 6 OpenCL OpenCL
4 Bariery technologiczne Rozwój procesorów napotyka na kilka istotnych problemów: Tranzystory nie mogą być nieskończenie małe Taktowanie tranzystorów może być zwiększane do pewnej granicy Tranzystor pracujący z większą częstotliwością generuje więcej ciepła Chłodzenie miliardów tranzystorów we współczesnych procesorach jest dużym problemem
5 GPU Procesor graficzny (ang. Graphics Procssing Unit, GPU) to specjalizowana jednostka obliczeniowa zoptymalizowana pod kątem przetwarzania grafiki
6 GPU historia Pierwsze dedykowane układy graficzne pojawiły się w latach 80 XX wieku (grafika 2D) 1992 Wydano OpenGL v1.0 (v4.5 w 2014) 1995 Microsoft wydał Direct3D (v12 w 2014) df Voodoo Graphics akcelerator tylko do grafiki 3D 1997 Riva 128 (DirectX5) 1999 GeForce 256 Nvidia popularyzuje skrót GPU 2007 Nvidia wydała CUDA v1.0 (v6.0 w 2014) 2009 Apple wydało OpenCL v1.0 (v2.0 w 2013)
7 CPU vs GPU CPU: tradycyjne CPU są bardzo złożone (bogata lista rozkazów, rozbudowana jednostka kontrolna) elastyczność programowania i spora wydajność potrzebują stosukowo dużo mocy GPU: mniej złożona jednostka kontrolna więcej jednostek do przetwarzania równoległego większa efektywność mierzona liczbą operacji / wat bardziej restrykcyjny model programowania
8 CPU vs GPU GPU Duża liczba prostych jednostek przetwarzania, zegar taktowania nie musi dorównywać CPU Większy nacisk na dużą przepustowość (ang. throughput), niż na niskie opóźnienie (ang. latency) w wykonywaniu pojedynczych instrukcji
9 Przepustowość a opóźnienie Załóżmy, że chcemy przetransportować 40 osób na odległość 1000km Mamy do wyboru 2 pojazdy: samochód (4 osoby, 140 km/h) oraz autobus (40 osób, 70 km/h)
10 Przepustowość a opóźnienie Załóżmy, że chcemy przetransportować 40 osób na odległość 1000km Mamy do wyboru 2 pojazdy: samochód (4 osoby, 140 km/h) oraz autobus (40 osób, 70 km/h) Samochód: Opóźnienie (czas podróży): 7h 10min Przepustowość: 0.56 osoby/godz.
11 Przepustowość a opóźnienie Załóżmy, że chcemy przetransportować 40 osób na odległość 1000km Mamy do wyboru 2 pojazdy: samochód (4 osoby, 140 km/h) oraz autobus (40 osób, 70 km/h) Samochód: Opóźnienie (czas podróży): 7h 10min Przepustowość: 0.56 osoby/godz. Autobus: Opóźnienie: 1000km/70km/h 14h 17min Przepustowość: 2.8 osoby/godz.
12 CPU vs GPU Rysunek : Porównanie zapotrzebowania na energię przykładowego CPU i GPU
13 CPU vs GPU Theoretical peak (GFLOP/s) GeForce 8800 GTX GeForce GTX 280 GeForce GTX 480 GeForce 7800 GTX GeForce 6800 Ultra BloomfieldSandy Bridge GeForce FX 5800 Tesla C1060 Willamette Prescott Westmere WoodcrestHarpertown Release date GeForce GTX 580 GeForce GTX TITAN GeForce GTX 680 Tesla C2075 GeForce GTX 780 TI K20X Ivy Bridge Haswell K40 NVIDIA GPU SP NVIDIA GPU DP Intel SP Intel DP Rysunek : Porównanie teoretycznej wydajności CPU vs Nvidia GPU (Autor: Michael Galloy)
14 Zastosowania GPU Ze względu na dużą wydajność w stosunku do zapotrzebowania na energię GPU są obecenie wykorzystywane w większości najszybszych superkomputerów (patrz top500.org) Tianhe-2 (nr 1 na w czerwcu 2014) złożony jest z procesorów Intel Xeon E (12 rdzeni) oraz koprocesorów Xeon Phi moc obliczeniowa 31 PFLOPS Titan (nr 2 w czerwcu 2014) zawiera procesorów AMD Opteron 6274 (16 rdzeni) oraz kart Nvidia Tesla K20X moc obliczeniowa 17,59 PFLOPS Rysunek : Tianhe 2 (źródło: phys.org)
15 Model programowania GPU Heterogeniczny - obliczenia wykonywane na CPU oraz GPU (kernele) CPU pełni rolę nadzorcy lub gospodarza (ang. host) GPU inaczej określany jest jako urządzenie (ang. device) GPU ma odrębną pamięć, stąd konieczne są operacje transferu danych i wyników obliczeń RAM GPU Programowanie GPU wymaga zastosowania dodatkowej biblioteki / języka, np. CUDA, OpenCL
16 Początki programowania GPU W 2001 roku pojawił się układ GPU z serii GeForce 3 z programowalnymi shaderami wierzchołków i pikseli Wykorzystywano udostępnianą przez DirectX, OpenGL oraz Cg możliwość tworzenia własnych shaderów, czyli krótkich programów do przetwarzania wierzchołków i pikseli Ten model pozwalał uzyskać istotne przyspieszenia w niektórych zastosowaniach
17 Shadery pikseli Jednostka cieniująca (shader) dla pikseli wyznacza kolor piksela na podstawie położenia (x, y) piksela na ekranie i dodatkowych informacji: kolorów tekstury współrzędnych teksturowych innych atrybutów przekazanych do shadera Szybko zauważono, że w miejsce kolorów można podstawić inne dane numeryczne Dane wejściowe kodowane były w teksturze, a wyniki odczytywane z kolorów poszczególnych pikseli wygenerowanej tekstury Wady: ograniczone możliwości odczytu i zapisu danych (w kolorach tekstur) ograniczone wsparcie dla liczb zmiennoprzecinkowych konieczna znajomość programowania grafiki, bibliotek OpenGL, Direct3D
18 Model programowania GPU wady Do wad należało: programista musiał posiadać wiedzę na temat programowania grafiki, w tym języka shaderów dane musiały być przekazywane w nienaturalnej postaci, tj. współrzędnych wierzchołków, pikseli tekstur API nie udostępniało możliwości swobodnego odczytu / zapisu pamięci, co istotnie ograniczało możliwe zastosowania brak obsługi obliczeń na liczbach zmiennoprzecinkowych podwójnej precyzji dodatkowo ograniczał zastosowania
19 Rozwój GPU obliczenia ogólne W 2006 r. Nvidia wyprodukowała karty graficzne (architektura G80) umożliwiające wykonywanie obliczeń ogólnego przeznaczenia Wraz z kartami graficznymi z serii G80 udostępniona została technologia CUDA (ang. Compute Unified Device Architecture) umożliwiająca stosunkowo łatwe wykorzystanie GPU do obliczeń ogólnego przeznaczenia Odpowiedzią ATI (AMD) jest AMD APP (Accelerated Parallel Processing) SDK, który wspiera standard OpenCL
20 Model programowania CUDA Programy korzystające z CUDA pisane są w językach C 1, C++ 2 oraz Fortran W modelu CUDA procesor główny CPU stanowi tzw. procesor macierzysty (ang. host) Procesor graficzny GPU nazywany jest urządzeniem (and. device) Procesor graficzny złożony jest z tzw. wieloprocesorów (ang. multiprocessors) Program uruchamiany jest na CPU, oznaczone funkcje nazywane jądrami obliczeniowymi (ang. kernel) wykonywane są przez GPU 1 Nie jest w pełni obsługiwany standard C99 2 Obsługiwany jest wybrany podzbiór C++ (host ISO14882:2003, na urządzeniu podzbiór)
21 CUDA kompilacja programu Kod źródłowy programu Kompilator NVCC Kod hosta Preprocesor, kompilator, linker Kod urządzenia (PTX) Kompilator just-in-time urządzenia Heterogeniczna platforma obliczeniowa z CPU i GPU
22 CUDA schemat wykonania programu CPU - kod sekwencyjny Kod równoległy na GPU KernelA<<<nBIK, ntid>>>(args)... CPU - kod sekwencyjny Kod równoległy na GPU KernelA<<<nBIK, ntid>>>(args)...
23 Schemat wykonania typowego programu dla GPU CPU alokuje pamięć na GPU CPU kopiuje dane wejściowe z RAM do pamięci GPU CPU uruchamia program (kernel) na GPU CPU kopiuje wynik z pamięci GPU do RAM
24 CUDA podział pracy Kernel w modelu CUDA wykonywany jest równolegle przez wiele wątków (ang. thread) Wszystkie wątki kernela należą do jednej kraty (ang. grid) Wątki wewnątrz kraty podzielone są na bloki
25 CUDA podział pracy Podział na bloki wynika z architektury GPU Wątki w bloku wykonywane są na tym samym wieloprocesorze strumieniowym (SM) Wątek ma unikalny ID wewnątrz bloku Blok ma unikalne ID wewnątrz kraty Host Kernel 1 Kernel 2 Block (1, 1) Thread (0, 0) Device Thread (1, 0) Grid 1 Block (0, 0) Block (0, 1) Grid 2 Thread (2, 0) Block (1, 0) Block (1, 1) Thread (3, 0) Thread (4, 0) Block (2, 0) Block (2, 1) Thread (0, 1) Thread (0, 2) Thread (1, 1) Thread (1, 2) Thread (2, 1) Thread (2, 2) Thread (3, 1) Thread (3, 2) Thread (4, 1) Thread (4, 2) 9
26 CUDA wątek Wątek to niezależny przepływ sterowania, ma: identyfikator (ang. thread ID) unikalny wewnątrz bloku wskaźnik instrukcji (ang. program counter) wartości rejestrów lokalną, prywatną pamięć dane wejściowe i wyniki obliczeń
27 CUDA blok Wątki w bloku wykonywane są na tym samym procesorze (SM) Wątki w ramach bloku mają dostęp do współdzielonej pamięci możliwa bezpośrednia komunikacja Mogą być synchronizowane za pomocą lokalnych blokad Wątki w ramach bloku dzielone są na tzw. osnowy (ang. warp) Blok watków Lokalna pamięć bloku
28 CUDA SIMT Wątki w ramach bloku CUDA wykonywane są w modelu SIMT (ang. single instruction multiple thread) odpowiednik modelu SIMD znanego z klasycznych procesorów Wszystkie wątki w ramach warpu wykonują tę samą instrukcję, ale dla różnych danych SISD a b a 1 a 2 b 1 b SIMD szer = 2 c c 1 c 2
29 CUDA SIMT SIMT powoduje, że każde rozgałęzienie w kodzie skutkuje bezczynnością części wątków W celu zapewnienia dobrej wydajności należy eliminować rozgałęzienia w ramach warpu (32 wątki), ale niekoniecznie w ramach bloku n =... Branch if (n>0) Path B Ścieżka B Path A Ścieżka A
30 CUDA kraty Krata złożona jest z bloków, wykonujących ten sam kernel Bloki w kracie mają dostęp do pamięci globalnej zmiany widoczne po synchronizacji Bloki wewnątrz kraty muszą być niezależne - dowolna kolejność wykonania bloków, również sekwencyjnie Niezależność wykonania bloków poprawia skalowalność Możliwa jest komunikacja między blokami, ale nie synchronizacja Krata 0 Krata 1 Pamięć globalna
31 Architektura GPU na przykładzie Nvidia Rozwój technologiczny powoduje, że architektury programowalnych kart graficznych podlegają częstym zmianom Lista architektur GPU Nvidia obejmuje (od najstarszej): Tesla (2007) Fermi (2010) Kepler (2012) Maxwell (2014)
32 Architektura GPU na przykładzie Nvidia Fermi Rysunek : Schemat GPU w architekturze Nvidia Fermi
33 Architektura GPU na przykładzie Nvidia Fermi 3 miliardy tranzystorów 16 multiprocesorów (SM) x 32 rdzeni CUDA = GB pamięci RAM (GDDR5) 384 bitowa szyna pamięci Połączenie CPU GPU za pomocą PCI-Express Moduł GigaThread pełni rolę planisty przydzielającego bloki wątków do poszczególnych SM
34 Nvidia Fermi multiprocesor strumieniowy Multiprocesor strumieniowy zawiera 32 rdzenie CUDA Każdy zawiera jednostę ALU oraz FPU (ang. Floating Point Unit) W pojedynczym cyklu zegara wykonywane są operacje arytmetyczne na liczbach całkowitych 32-bitowych oraz zmiennoprzecinkowych pojedynczej precyzji W poprzedniej generacji mnożenie l. całk. miało tylko 24 bitową precyzję (w jednym cyklu)
35 Nvidia Fermi multiprocesor strumieniowy LD/ST jednostki odczytu / zapisu danych dla poszczególnych wątków (DRAM, cache) SFU jednostki do obliczania funkcji takich jak sin, cos, odwrotność, pierw. kwadratowy łącznie 4 instr. cykl, 8 cykli na warp jeden SM może wykonać 16 operacji zmiennoprzecinkowych podwójnej precyzji / cykl
36 Nvidia Fermi planista SM SM wyposażony jest w 2 planistów (ang. warp scheduler) SM może jednocześnie wykonywać 2 grupy (osnowy, ang. warp) po 32 wątków Instrukcje z obu warpów są przydzielane do odpowiednich jednostek ALU/FPU (po 16) oraz SFU i LD/ST Operacje na liczbach podwójnej precyzji z jednej osnowy nie mogą być wykonywane jednocześnie z instrukcją drugiej osnowy
37 Nvidia Fermi pamięć SM SM wyposażony jest w 64kB konfigurowalnej pamięci 16kB pamięci współdzielonej + 48kB pamięci podręcznej 1 poziomu (L1) 48kB pamięci współdzielonej + 16kB pamięci podręcznej 1 poziomu Pamięć podręczna ma na celu wyeliminowanie opóźnień wynikających z konieczności transferu danych z pamięci głównej urządzenia oraz hosta Wątki wykonywane na SM mogą się efektywnie komunikować za pomocą pamięci współdzielonej Opóźnienie pamięci współdzielonej to średnio cykli Przepustowość 1600 GB/s Karta wyposażona jest również w pamięć podręczną drugiego poziomu 768kB opóźnienie cykli
38 Nvidia Fermi porównanie architektur GPU G80 GT200 Fermi Tranzystory 681 mln 1.4 mld 3 mld CUDA cores DFLOPS - 30 op. / cykl 256 op. / cykl SFLOPS 128 op./cykl 240 op./cykl 512 op./cykl SFU Planiści na SM Pamięć współdzielona SM 16 kb 16 kb 16 kb / 48 kb L1 cache kb / 48 kb L2 cache kb Pamięć z ECC Nie Nie Tak Adresowanie 32-bitowe 32-bitowe 64-bitowe
39 Wprowadzenie Historia rozwoju GPU Model programowania GPU CUDA Architektura GPU OpenCL Nvidia Kepler 7,1 mld tranzystorów 1 Tflop operacji na liczbach zmiennoprzecinkowych podwójnej precyzji (Kepler GK110) Większa efektywność energetyczna, tj. stosunek liczby operacji na wat (ok 3 razy w stosunku do Fermi) Rysunek : Nvidia Kepler GK110 GPU
40 Wprowadzenie Historia rozwoju GPU Model programowania GPU CUDA Nvidia Kepler Rysunek : Schemat procesora GK110 Architektura GPU OpenCL
41 Nvidia Kepler multiprocesor strumieniowy 192 rdzenie CUDA (6x więcej od Fermi) 64 jednostki zmiennoprzecinkowe podwójnej precyzji 32 SFU 32 jednostki adresowe (LD/ST) 4x planista umożliwiający jednoczene wykonywanie do 4 warpów (po 32 wątki) Instrukcje na liczbach podówjnej precyzji mogą być wykonywane jednocześnie z innymi Liczba rejestrów na wątek zwiększona do 255 (4x więcej od Fermi) Pamięć podręczna L2 1536KB (2 x więcej od Fermi) Pamięć podręczna i współdzielona w przeliczeniu na rdzenie uległa zmniejszeniu Rysunek : Multiprocesor strumieniowy (SMX) w GPU Kepler
42 Nvidia Kepler vs Fermi Fermi GF104 Kepler GK110 L. warpów na SM L. wątków na SM L. bloków wątków na SM 8 16 Rejestry 32-bitowe Rejestry / wątek Wątki na blok Pamięć współdzielona 16K/48K 16K/32K/64K Maks. wymiar kraty 2ˆ16-1 2ˆ32-1
43 Wydajność maksymalna a praktyczna GPU cechują się bardzo dużą wydajnością teoretyczną mierzoną FLOPS W praktyce jednak wydajność jest mniejsza od teoretycznej, co wynika z bardzo wielu czynników, m.in. Stopnia równoległości obliczeń w programie Rodzaju obliczeń, w tym stopnia heterogeniczności, liczby rozgałęzień Opóźnień wynikających z transferu danych we / wy Przykładowo, dla problemu mnożenia macierzy i ręcznie optymalizowanego kodu assemblerowego osiągnięto wydajność ok. 77.3% teoretycznej na GPU Kepler GK Lai, Junjie, and Andre Seznec. Performance upper bound analysis and optimization of sgemm on fermi and kepler gpus. Code Generation and Optimization (CGO), 2013 IEEE/ACM International Symposium on. IEEE, 2013.
44 Nvidia Compute Capability Każda karta Nvidii ma określony tzw. Compute Capability w postaci numeru wersji, np. 2.1 Jest to specyfikacja określająca architekturę karty, m.in. liczbę rdzeni na SM, maks. liczbę wątków, bloków, rejestrów Compute Capability może być stosowany przez programy do sprawdzenia możliwości obliczeniowych dostępnych kart graficznych w sposób usystematyzowany
45 OpenCL OpenCL to: Platforma programistyczna do tworzenia aplikacji działających na platformach sprzętowych złożonych z procesorów (CPU), kart graficznych (GPU) Architektura podobna do CUDA w większości przypadków istnieją bezpośrednie odpowiedniki dla poszczególnych metod, typów danych itp.
46 OpenCL historia Autorem OpenCL jest Apple, które posiada prawa do nazwy Apple przesłało propozycję przekształcenia OpenCL w otwarty standard do konsorcjum Khronos Group Do grupy pracującej nad OpenCL należą m.in. Nvidia, AMD, Intel, IBM Specyfikacja dla OpenCL 1.0 została udostępniona w 2008 roku Wersja OpenCL 1.1 została udostępniona w 2010 r. Wersja OpenCL 1.2 została udostępniona w 2011 r. W 2013 roku wydano OpenCL 2.0
47 WebCL W 2014 roku udostępniono wersję 1.0 nowej specyfikacji WebCL, która rozszerza HTML5 o możliwość wykonywania kosztownych obliczeniowo zadań za pomocą GPU i innych urządzeń wspierających OpenCL Definiuje sposób wykorzystania OpenCL z poziomu JavaScript W ramach OpenCL 1.0 udostępniono translator umożliwiający konwersję kodu OpenCL do WebCL Standard wspierany jest m.in. przez Adobe, AMD, Aptina, ARM, Google, Imagination Technologies, Mozilla, Intel, Nokia, NVIDIA, Opera Software, Samsung, and Qualcomm
48 OpenCL OpenCL umożliwia tworzenie oprogramowania działającego na platformach wyposażonywch w heterogeniczne jednostki obliczeniowe, takie jak: procesory ogólnego przeznaczenia (ang. Central Processing Unit, CPU) karty graficzne (ang. Graphic Processing Units, GPU) procesory sygnałowe (DSP) układy FPGA (ang. Field Programmable Gate Array) - cyfrowe programowalne układy logiczne dedykowane koprocesory do obliczeń równoległych (np. Intel Xeon Phi) Rysunek : Intel Xeon Phi
49 OpenCL Parametr Nazwa urządzenia Xeon E Xeon Phi 5110P Tesla K20X Cores SMX Logical Cores 16 (HT) 240 (HT) 2,688 CUDA cores Frequency 2.60GHz 1.053GHz 735MHz GFLOPs (double) 333 1,010 1,317 SIMD width 256 Bits 512 Bits N/A Memory GB 8GB 6GB Memory B/W 51.2GB/s 320GB/s 250GB/s Threading software software hardware Tabela : Porównanie przykładowych platform sprzętowych: CPU koprocesor GPU
50 CUDA czy OpenCL CUDA jest bardziej popularna więcej dokumentacji, przykładów, programów W większości przypadków obie technologie pozwalają uzyskać podobną wydajność 4 OpenCL to otwarty standard wspierany przez wiele firm, włączając Nvidię OpenCL oferuje większą przenośność kodu pomiędzy różnymi platformami 4 Fang, Jianbin, Ana Lucia Varbanescu, and Henk Sips. A comprehensive performance comparison of CUDA and OpenCL. Parallel Processing (ICPP), 2011 International Conference on. IEEE, 2011.
51 Perspektywy Intel planuje sprzedaż procesora Xeon z zintegrowanym układem FPGA, który umożliwia przyspieszenie wybranych zadań nawet do 20x (nie zweryfikowane) Microsoft zastosował układy FPGA (Startix V) do przyspieszenia działania serwerów Bing poprawiono przepustowość fragmentu systemu odpowiedzialnego za obliczanie rangi indeksowanych dokumentów o 95% przy zwiększeniu zapotrzebowania na energię elektryczną o 10% 5 5 Putnam A. i in. (23 osoby), A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services, 41st Annual International Symposium on Computer Architecture (ISCA), 2014.
52 Trudności programowania GPU Problem z kompatybilnością kodu np. CUDA działa na kartach Nvidia, ale nie ATI Mnogość modeli kart graficznych uzyskanie najlepszej wydajności wymaga często ręcznej optymalizacji dla konkretnego modelu Programowanie dla GPU wymaga dobrej znajomości architektury i jest w pewnym sensie niskopoziomowe Trudniejsze debugowanie programów dla GPU Wykorzystanie mocy GPU wymaga odpowiednich algorytmów Rozwój standardów i bibliotek z pewnością zniweluje dużą część ww problemów
53 C++ AMP W 2012 roku Microsoft opublikował otwartą specyfikację dla C++ AMP (Accelerated Massive Parallelism) rozszerzenie dla C++ plus biblioteka programistyczna (na wzór STL) Umożliwia tworzenie programów, w których część obliczeń wykonywana jest na GPU C++ AMP wykorzystuje DirectX11 i działa na Windows 7 i nowszych 1 void AddArrays(int n, int m, int * pa, int * pb, int * psum) { 2 concurrency::array_view<int,2> a(n, m, pa), b(n, m, pb), sum(n, m, psum); 3 concurrency::parallel_for_each(sum.extent, 4 [=](concurrency::index<2> i) restrict(amp) 5 { 6 sum[i] = a[i] + b[i]; 7 }); 8 }
Tesla. Architektura Fermi
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
Programowanie procesorów graficznych GPGPU
Programowanie procesorów graficznych GPGPU 1 GPGPU Historia: lata 80 te popularyzacja systemów i programów z graficznym interfejsem specjalistyczne układy do przetwarzania grafiki 2D lata 90 te standaryzacja
Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego
Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Mariusz Uchroński 3 grudnia 2010 Plan prezentacji 1. Wprowadzenie 2.
Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1
Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1 Organizacja przedmiotu Dr inż. Robert Banasiak Dr inż. Paweł Kapusta 1 2 Nasze kompetencje R n D Tomografia 3D To nie tylko statyczny obraz!
Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1
Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1 Wprowadzenie Procesory graficzne GPU (Graphics Processing Units) stosowane są w kartach graficznych do przetwarzania grafiki komputerowej
Przetwarzanie Równoległe i Rozproszone
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI I TECHNOLOGII INFORMACYJNYCH Przetwarzanie Równoległe i Rozproszone www.pk.edu.pl/~zk/prir_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl
Programowanie kart graficznych
CUDA Compute Unified Device Architecture Programowanie kart graficznych mgr inż. Kamil Szostek AGH, WGGIOŚ, KGIS Wykorzystano materiały z kursu Programowanie kart graficznych prostsze niż myślisz M. Makowski
Programowanie Współbieżne
Programowanie Współbieżne Agnieszka Łupińska 5 października 2016 Hello World! helloworld.cu: #include global void helloworld(){ int thid = (blockidx.x * blockdim.x) + threadidx.x; printf("hello
Architektury komputerów Architektury i wydajność. Tomasz Dziubich
Architektury komputerów Architektury i wydajność Tomasz Dziubich Przetwarzanie potokowe Przetwarzanie sekwencyjne Przetwarzanie potokowe Architektura superpotokowa W przetwarzaniu potokowym podczas niektórych
Budowa komputera. Magistrala. Procesor Pamięć Układy I/O
Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz
PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK
1 PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK POLITECHNIKA CZĘSTOCHOWSKA 2 Trendy rozwoju współczesnych procesorów Budowa procesora CPU na przykładzie Intel Kaby Lake
PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK
1 PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK POLITECHNIKA CZĘSTOCHOWSKA 2 Część teoretyczna Informacje i wstępne wymagania Cel przedmiotu i zakres materiału Zasady wydajnego
JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski
JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski Agenda GPU Dlaczego warto używać GPU Budowa GPU CUDA JCuda Przykładowa implementacja Co to jest? GPU GPU Graphical GPU Graphical Processing GPU
Budowa komputera. Magistrala. Procesor Pamięć Układy I/O
Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz
i3: internet - infrastruktury - innowacje
i3: internet - infrastruktury - innowacje Wykorzystanie procesorów graficznych do akceleracji obliczeń w modelu geofizycznym EULAG Roman Wyrzykowski Krzysztof Rojek Łukasz Szustak [roman, krojek, lszustak]@icis.pcz.pl
Procesory. Schemat budowy procesora
Procesory Procesor jednostka centralna (CPU Central Processing Unit) to sekwencyjne urządzenie cyfrowe którego zadaniem jest wykonywanie rozkazów i sterowanie pracą wszystkich pozostałych bloków systemu
Programowanie aplikacji równoległych i rozproszonych
Programowanie aplikacji równoległych i rozproszonych Dr inż. Krzysztof Rojek krojek@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Strumienie operacji na GPU Domyślne
Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer
Sprzęt komputerowy 2 Autor prezentacji: 1 prof. dr hab. Maria Hilczer Budowa komputera Magistrala Procesor Pamięć Układy I/O 2 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący
Programowanie kart graficznych
Programowanie kart graficznych Sławomir Wernikowski swernikowski@wi.zut.edu.pl Wykład #1: Łagodne wprowadzenie do programowania w technologii NVIDIA CUDA Terminologia: Co to jest GPGPU? General-Purpose
Libra.cs.put.poznan.pl/mailman/listinfo/skisrkolo.
Konrad Szałkowski Libra.cs.put.poznan.pl/mailman/listinfo/skisrkolo Skisr-kolo@libra.cs.put.poznan.pl Po co? Krótka prezentacja Skąd? Dlaczego? Gdzie? Gdzie nie? Jak? CPU Pamięć DDR3-19200 19,2 GB/s Wydajność
Budowa Mikrokomputera
Budowa Mikrokomputera Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Podstawowe elementy komputera Procesor Pamięć Magistrala (2/16) Płyta główna (ang. mainboard, motherboard) płyta drukowana komputera,
CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu
CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki
Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer
Sprzęt komputerowy 2 Autor prezentacji: 1 prof. dr hab. Maria Hilczer Budowa komputera Magistrala Procesor Pamięć Układy I/O 2 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący
Architektura mikroprocesorów TEO 2009/2010
Architektura mikroprocesorów TEO 2009/2010 Plan wykładów Wykład 1: - Wstęp. Klasyfikacje mikroprocesorów Wykład 2: - Mikrokontrolery 8-bit: AVR, PIC Wykład 3: - Mikrokontrolery 8-bit: 8051, ST7 Wykład
Moc płynąca z kart graficznych
Moc płynąca z kart graficznych Cuda za darmo! Czyli programowanie generalnego przeznaczenia na kartach graficznych (GPGPU) 22 października 2013 Paweł Napieracz /20 Poruszane aspekty Przetwarzanie równoległe
Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC
Architektura Systemów Komputerowych Rozwój architektury komputerów klasy PC 1 1978: Intel 8086 29tys. tranzystorów, 16-bitowy, współpracował z koprocesorem 8087, posiadał 16-bitową szynę danych (lub ośmiobitową
Architektura von Neumanna
Architektura von Neumanna Klasyfikacja systemów komputerowych (Flynna) SISD - Single Instruction Single Data SIMD - Single Instruction Multiple Data MISD - Multiple Instruction Single Data MIMD - Multiple
Obliczenia Wysokiej Wydajności
Obliczenia wysokiej wydajności 1 Wydajność obliczeń Wydajność jest (obok poprawności, niezawodności, bezpieczeństwa, ergonomiczności oraz łatwości stosowania i pielęgnacji) jedną z najważniejszych charakterystyk
CUDA część 1. platforma GPGPU w obliczeniach naukowych. Maciej Matyka
CUDA część 1 platforma GPGPU w obliczeniach naukowych Maciej Matyka Bariery sprzętowe (procesory) ok na. 1 10 00 la raz t y Gdzie jesteśmy? a ok. 2 razy n 10 lat (ZK) Rozwój 1985-2004 i dalej? O roku ów
Programowanie kart graficznych. Sprzęt i obliczenia
Programowanie kart graficznych Sprzęt i obliczenia CUDA Szczegóły implementacji sprzętowej Architektura SIMT: podstawą konstrukcji urządzeń CUDA jest skalowalna macierz wielowątkowych multiprocesorów strumieniowych
Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1
Programowanie procesorów graficznych GPGPU Krzysztof Banaś Obliczenia równoległe 1 OpenCL projektowanie kerneli Przypomnienie: kernel program realizowany przez urządzenie OpenCL wątek (work item) rdzeń
Wykorzystanie architektury Intel MIC w obliczeniach typu stencil
Wykorzystanie architektury Intel MIC w obliczeniach typu stencil Kamil Halbiniak Wydział Inżynierii Mechanicznej i Informatyki Kierunek informatyka, Rok IV Instytut Informatyki Teoretycznej i Stosowanej
CUDA. cudniejsze przyk ady
CUDA cudniejsze przyk ady Agenda: CPU vs. GPU Mnożenie macierzy CPU Mnożenie macierzy - GPU Sploty Macierze CPU vs. GPU CPU: GPU: Mnożenie wykonywane w kolejnych iteracjach pętli. Przechodzimy przez pierwszy
Wprowadzenie do programowania w środowisku CUDA. Środowisko CUDA
Wprowadzenie do programowania w środowisku CUDA Środowisko CUDA 1 Budowa procesora CPU i GPU Architektura GPU wymaga większej ilości tranzystorów na przetwarzanie danych Control ALU ALU ALU ALU Cache DRAM
16. Taksonomia Flynn'a.
16. Taksonomia Flynn'a. Taksonomia systemów komputerowych według Flynna jest klasyfikacją architektur komputerowych, zaproponowaną w latach sześćdziesiątych XX wieku przez Michaela Flynna, opierająca się
Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.
Procesory wielordzeniowe (multiprocessor on a chip) 1 Procesory wielordzeniowe 2 Procesory wielordzeniowe 3 Intel Nehalem 4 5 NVIDIA Tesla 6 ATI FireStream 7 NVIDIA Fermi 8 Sprzętowa wielowątkowość 9 Architektury
RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,
RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, zapoczątkowana przez i wstecznie zgodna z 16-bitowym procesorem
Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej. Krzysztof Banaś Obliczenia równoległe 1
Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej Krzysztof Banaś Obliczenia równoległe 1 Model równoległości danych Model SPMD (pierwotnie dla maszyn SIMD) Zrównoleglenie
Metody optymalizacji soft-procesorów NIOS
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011
Obliczenia Wysokiej Wydajności
Obliczenia wysokiej wydajności 1 Wydajność obliczeń Wydajność jest (obok poprawności, niezawodności, bezpieczeństwa, ergonomiczności i łatwości stosowania i pielęgnacji) jedną z najważniejszych charakterystyk
Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1
i sieci komputerowe Szymon Wilk Superkomputery 1 1. Superkomputery to komputery o bardzo dużej mocy obliczeniowej. Przeznaczone są do symulacji zjawisk fizycznych prowadzonych głównie w instytucjach badawczych:
Klasyfikacja systemów komputerowych. Architektura von Neumanna Architektura harwardzka Zmodyfikowana architektura harwardzka. dr inż.
Rok akademicki 2011/2012, Wykład nr 6 2/46 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2011/2012
Nowoczesne technologie przetwarzania informacji
Projekt Nowe metody nauczania w matematyce Nr POKL.09.04.00-14-133/11 Nowoczesne technologie przetwarzania informacji Mgr Maciej Cytowski (ICM UW) Lekcja 2: Podstawowe mechanizmy programowania równoległego
Programowanie współbieżne Wykład 1. Rafał Skinderowicz
Programowanie współbieżne Wykład 1 Rafał Skinderowicz Wprowadzenie Plan wykładu Historia, znaczenie i cele współbieżności w informatyce. Podstawowe pojęcia, prawo Moore a i bariery technologiczne. Sposoby
dr inż. Jarosław Forenc
Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2011/2012 Wykład nr 6 (27.04.2012) dr inż. Jarosław Forenc Rok akademicki
Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1
Literatura 1. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010, 2013 2. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 3. Designing
Akceleracja sprzętowa symulacji elektromagnetycznych. graficznych (GPU)
Posiedzenie Polskiego Chapteru IEEE EMC-s Wrocław, 13 czerwca 2013 Akceleracja sprzętowa symulacji elektromagnetycznych za pomocą kart graficznych (GPU) Politechnika Śląska Posiedzenie Polskiego Chapteru
XIV International PhD Workshop OWD 2012, October 2012 NOWOCZESNE TECHNIKI WYKONYWANIA ZAAWANSOWANYCH OBLICZEŃ NUMERYCZNYCH
XIV International PhD Workshop OWD 2012, 20 23 October 2012 NOWOCZESNE TECHNIKI WYKONYWANIA ZAAWANSOWANYCH OBLICZEŃ NUMERYCZNYCH MODERN ADVANCED COMPUTATIONAL METHOD Konrad Andrzej Markowski, Warsaw University
Literatura. 3/26/2018 Przetwarzanie równoległe - wstęp 1
Literatura 1. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010, 2013 2. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 3. Designing
Programowanie współbieżne. Iwona Kochańska
1 Programowanie współbieżne Iwona Kochańska 2 Organizacja przedmiotu Wykład: 1 godzina tygodniowo (piątek, 10:15) 2 kolokwia w trakcie semestru Ocena końcowa: 0.5*(średnia z kolokw.)+0.5*projekt Projekt:
Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1
Procesy i wątki Krzysztof Banaś Obliczenia równoległe 1 Procesy i wątki Proces: ciąg rozkazów (wątek główny) i ewentualnie inne wątki stos (wątku głównego) przestrzeń adresowa dodatkowe elementy tworzące
Zastosowanie technologii nvidia CUDA do zrównoleglenia algorytmu genetycznego dla problemu komiwojażera
Zastosowanie technologii nvidia CUDA do zrównoleglenia algorytmu genetycznego dla problemu komiwojażera Adam Hrazdil Wydział Inżynierii Mechanicznej i Informatyki Kierunek informatyka, Rok V hrazdil@op.pl
Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1
Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional
Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor
Plan wykładu 1. Pojęcie podsystemu graficznego i karty graficznej 2. Typy kart graficznych 3. Budowa karty graficznej: procesor graficzny (GPU), pamięć podręczna RAM, konwerter cyfrowo-analogowy (DAC),
10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu
Literatura 1. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 2. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010. 3. Designing
Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych
Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych Ł. Kuczyński, M. Woźniak, R. Wyrzykowski Instytut Informatyki Teoretycznej i Stosowanej
Budowa komputera Komputer computer computare
11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału
Redukcja czasu wykonania algorytmu Cannego dzięki zastosowaniu połączenia OpenMP z technologią NVIDIA CUDA
Dariusz Sychel Wydział Informatyki, Zachodniopomorski Uniwersytet Technologiczny w Szczecinie 71-210 Szczecin, Żołnierska 49 Redukcja czasu wykonania algorytmu Cannego dzięki zastosowaniu połączenia OpenMP
Systemy na Chipie. Robert Czerwiński
Systemy na Chipie Robert Czerwiński Cel kursu Celem kursu jest zapoznanie słuchaczy ze współczesnymi metodami projektowania cyfrowych układów specjalizowanych, ze szczególnym uwzględnieniem układów logiki
Architektura komputerów
Architektura komputerów Wykład 12 Jan Kazimirski 1 Magistrale systemowe 2 Magistrale Magistrala medium łączące dwa lub więcej urządzeń Sygnał przesyłany magistralą może być odbierany przez wiele urządzeń
Algorytmy dla maszyny PRAM
Instytut Informatyki 21 listopada 2015 PRAM Podstawowym modelem służącym do badań algorytmów równoległych jest maszyna typu PRAM. Jej głównymi składnikami są globalna pamięć oraz zbiór procesorów. Do rozważań
Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz
Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................
Programowanie współbieżne Wykład 1. Rafał Skinderowicz
Programowanie współbieżne Wykład 1 Rafał Skinderowicz Plan wykładu Historia, znaczenie i cele współbieżności w informatyce. Podstawowe pojęcia, prawo Moore a i bariery technologiczne. Sposoby realizacji
Podstawy Informatyki Systemy sterowane przepływem argumentów
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer
Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury
1976 r. Apple PC Personal Computer 1981 r. pierwszy IBM PC Komputer jest wart tyle, ile wart jest człowiek, który go wykorzystuje... Hardware sprzęt Software oprogramowanie Komputer IBM PC niezależnie
4 NVIDIA CUDA jako znakomita platforma do zrównoleglenia obliczeń
Spis treści Spis treści i 1 Wstęp 1 1.1 Wprowadzenie.......................... 1 1.2 Dostępne technologie, pozwalające zrównoleglić obliczenia na kartach graficznych....................... 1 1.2.1 Open
Przegląd architektury PlayStation 3
Przegląd architektury PlayStation 3 1 Your Name Your Title Your Organization (Line #1) Your Organization (Line #2) Sony PlayStation 3 Konsola siódmej generacji Premiera: listopad 2006 33,5 mln sprzedanych
Programowanie Rozproszone i Równoległe
Programowanie Rozproszone i Równoległe OpenMP (www.openmp.org) API do pisania wielowątkowych aplikacji Zestaw dyrektyw kompilatora oraz procedur bibliotecznych dla programistów Ułatwia pisanie programów
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Opiekun naukowy: dr
Algorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 12: Wstęp
Praca dyplomowa magisterska
Praca dyplomowa magisterska Implementacja algorytmów filtracji adaptacyjnej o strukturze transwersalnej na platformie CUDA Dyplomant: Jakub Kołakowski Opiekun pracy: dr inż. Michał Meller Plan prezentacji
Organizacja pamięci w procesorach graficznych
Organizacja pamięci w procesorach graficznych Pamięć w GPU przechowuje dane dla procesora graficznego, służące do wyświetlaniu obrazu na ekran. Pamięć przechowuje m.in. dane wektorów, pikseli, tekstury
UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386
Budowa procesora 80386 Struktura wewnętrzna logiczna procesora 80386 Pierwszy prawdziwy procesor 32-bitowy. Zawiera wewnętrzne 32-bitowe rejestry (omówione zostaną w modułach następnych), pozwalające przetwarzać
GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza dźwięku i obrazu
Synteza dźwięku i obrazu GRAFIKA KOMPUTEROWA Rozwiązania sprzętowe i programowe Przyspieszanie sprzętowe Generowanie obrazu 3D wymaga złożonych obliczeń, szczególnie jeżeli chodzi o generowanie płynnej
Architektura komputerów
Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna
Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek
Implementacja sieci neuronowych na karcie graficznej Waldemar Pawlaszek Motywacja Czyli po co to wszystko? Motywacja Procesor graficzny GPU (Graphics Processing Unit) Wydajność Elastyczność i precyzja
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.
Wstęp 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. Przedstawienie architektur sprzętu wykorzystywanych do
Nowinki technologiczne procesorów
Elbląg 22.04.2010 Nowinki technologiczne procesorów Przygotował: Radosław Kubryń VIII semestr PDBiOU 1 Spis treści 1. Wstęp 2. Intel Hyper-Threading 3. Enhanced Intel Speed Technology 4. Intel HD Graphics
Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,
Przetwarzanie równoległe PROJEKT OMP i CUDA Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego przy użyciu komputera równoległego z procesorem wielordzeniowym z pamięcią
GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza i obróbka obrazu
Synteza i obróbka obrazu GRAFIKA KOMPUTEROWA Rozwiązania sprzętowe i programowe Przyspieszanie sprzętowe Generowanie obrazu 3D wymaga złożonych obliczeń, szczególnie jeżeli chodzi o generowanie płynnej
1. Wprowadzenie Opis sytuacyjny Specyfikacja techniczna... 3
dla użytkowników Działu Komputerów Dużej Mocy Wrocławskiego Centrum Sieciowo- Superkomputerowego Politechniki Wrocławskiej Załącznik nr 4 do SIWZ znak: ZP/BZP/148/2017 1. Wprowadzenie... 3 2. Opis sytuacyjny....
Karty graficzne możemy podzielić na:
KARTY GRAFICZNE Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest odbiór i przetwarzanie otrzymywanych od komputera
Programowanie procesorów graficznych GPGPU
Programowanie procesorów graficznych GPGPU 1 OpenCL projektowanie kerneli Przypomnienie: kernel program realizowany przez urządzenie OpenCL wątek (work item) rdzeń (processing element): jeden wątek wykonywany
CZYM JEST KARTA GRAFICZNA.
Karty Graficzne CZYM JEST KARTA GRAFICZNA. Karta graficzna jest kartą rozszerzeń, umiejscawianą na płycie głównej poprzez gniazdo PCI lub AGP, która odpowiada w komputerze za obraz wyświetlany przez monitor.
XIII International PhD Workshop OWD 2011, October 2011 REALIZACJA OBLICZEŃ W ARCHITEKTURZE MASOWO RÓWNOLEGŁEJ W HETEROGENICZNYCH SYSTEMACH
XIII International PhD Workshop OWD 2011, 22 25 October 2011 REALIZACJA OBLICZEŃ W ARCHITEKTURZE MASOWO RÓWNOLEGŁEJ W HETEROGENICZNYCH SYSTEMACH CALCULATIONS IN THE MASSIVELY PARALLEL ARCHITECTURE IN HETEROGENEOUS
Nowinki technologiczne procesorów
Elbląg 22.04.2010 Nowinki technologiczne procesorów Przygotował: Radosław Kubryń VIII semestr PDBiOU 1 Spis treści 1. Wstęp 2. Intel Hyper-Threading 3. Enhanced Intel Speed Technology 4. Intel HD Graphics
CUDA obliczenia ogólnego przeznaczenia na mocno zrównoleglonym sprzęcie. W prezentacji wykorzystano materiały firmy NVIDIA (http://www.nvidia.
CUDA obliczenia ogólnego przeznaczenia na mocno zrównoleglonym sprzęcie W prezentacji wykorzystano materiały firmy NVIDIA (http://www.nvidia.com) 1 Architektura karty graficznej W porównaniu z tradycyjnym
Julia 4D - raytracing
i przykładowa implementacja w asemblerze Politechnika Śląska Instytut Informatyki 27 sierpnia 2009 A teraz... 1 Fraktale Julia Przykłady Wstęp teoretyczny Rendering za pomocą śledzenia promieni 2 Implementacja
Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1
Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie
Mo liwoœæ zastosowania GPU do przetwarzania obrazów dla celów analizy sceny**
AUTOMATYKA 2011 Tom 15 Zeszyt 3 Magdalena Szymczyk*, Piotr Szymczyk* Mo liwoœæ zastosowania GPU do przetwarzania obrazów dla celów analizy sceny** 1. Wprowadzenie Aplikacje stosowane do przetwarzania obrazu
SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM
SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM Marcin Tomana marcin@tomana.net SKRÓT WYKŁADU Zastosowania systemów operacyjnych Architektury sprzętowe i mikroprocesory Integracja systemu operacyjnego
Klasyfikacja systemów komputerowych. Architektura von Neumanna. dr inż. Jarosław Forenc
Rok akademicki 2010/2011, Wykład nr 6 2/56 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2010/2011
Architektura komputerów
Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania
Akceleracja obliczeń algebry liniowej z wykorzystaniem masywnie równoległych, wielordzeniowych procesorów GPU Świerczewski Ł.
Akceleracja obliczeń algebry liniowej z wykorzystaniem masywnie równoległych, wielordzeniowych procesorów GPU Świerczewski Ł. Wprowadzenie do koncepcji budowy akceleratorów graficznych Pierwsze procesory
Załącznik nr 6 do SIWZ nr postępowania II.2420.1.2014.005.13.MJ Zaoferowany. sprzęt L P. Parametry techniczne
L P Załącznik nr 6 do SIWZ nr postępowania II.2420.1.2014.005.13.MJ Zaoferowany Parametry techniczne Ilość sprzęt Gwaran Cena Cena Wartość Wartość (model cja jednostk % jednostkow ogółem ogółem i parametry
dr inż. Jarosław Forenc
Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 6 (28.03.2011) Rok akademicki 2010/2011, Wykład
która metoda jest najlepsza
która metoda jest najlepsza dr inż. Marek Żabka Instytut Matematyki Wydział Matematyki Stosowanej Politechnika Śląska 20 września 2012r Nowa metoda tworzenia grafiki na stronie internetowej: element,,canvas
Projektowanie. Projektowanie mikroprocesorów
WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna
Architektura von Neumanna. Jak zbudowany jest współczesny komputer? Schemat architektury typowego PC-ta. Architektura PC wersja techniczna
Architektura von Neumanna CPU pamięć wejście wyjście Jak zbudowany jest współczesny komputer? magistrala systemowa CPU jednostka centralna (procesor) pamięć obszar przechowywania programu i danych wejście
Wykład 6. Mikrokontrolery z rdzeniem ARM
Wykład 6 Mikrokontrolery z rdzeniem ARM Plan wykładu Cortex-A9 c.d. Mikrokontrolery firmy ST Mikrokontrolery firmy NXP Mikrokontrolery firmy AnalogDevices Mikrokontrolery firmy Freescale Mikrokontrolery