Akceleracja sprzętowa symulacji elektromagnetycznych. graficznych (GPU)
|
|
- Rafał Staniszewski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Posiedzenie Polskiego Chapteru IEEE EMC-s Wrocław, 13 czerwca 2013 Akceleracja sprzętowa symulacji elektromagnetycznych za pomocą kart graficznych (GPU) Politechnika Śląska
2 Posiedzenie Polskiego Chapteru IEEE EMC-s, Wrocław, 13 czerwca 2013 Plan prezentacji Motywacja Potok graficzny Architektura GPU Model programistyczny CUDA Metoda momentów Przykłady obliczeniowe Podsumowanie 2
3 Motywacja Metody pełnofalowe wykorzystywane do rozwiązywania zadań elektromagnetyzmu obliczeniowego (CEM) angażują bardzo duże zasoby komputerowe (pamięć RAM, czas obliczeń) Współczesne karty graficzne dysponują ogromną mocą obliczeniową, która może zostać wykorzystana do realizacji zadań CEM Moc obliczeniowa kart graficznych jest obecnie stosunkowo łatwo dostępna 3
4 Posiedzenie Polskiego Chapteru IEEE EMC-s, Wrocław, 13 czerwca 2013 Motywacja Moc obliczeniowa kart graficznych 4
5 Posiedzenie Polskiego Chapteru IEEE EMC-s, Wrocław, 13 czerwca 2013 Cel prowadzonych prac Przystosowanie istniejących kodów numerycznych implementujących metody CEM do wykonania w heterogenicznym środowisku obliczeniowym CPU/GPU Określenie efektywności obliczeniowej zmodyfikowanych algorytmów 5
6 Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Potok graficzny Rasteryzacja Rasteryzacja Rendering Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki Vetrtex Vetrtex transforms transforms Primitive Primitive assembly assembly Rasterization Rasterization Raster Raster operations operations Frame Frame buffer buffer 6
7 Potok graficzny Systemy wyświetlania rastrowego (tworzenie obrazu w technologii VGA i SVGA Krok 1: Procesor przesyła przetworzony obraz wideo do karty graficznej (zajmuje się on m.in. : przetwarzaniem wierzchołków, dokonuje traingularyzacji oraz przeprowadza rendering) Krok 2: Przetworzony, cyfrowy sygnał wideo przesłany zostaje do karty graficznej Krok 3 Krok 4: Analogowy sygnał wideo (z wyodrębnionymi trzema składowymi koloru R, G i B) przesłany zostaje do monitora Przesłane dane zostają zapisane w pamięci karty. Przetwornik cyfrowoanalogowy DAC przetwarza cyfrowy sygnał obrazu na sygnał analogowy obrazu Krok 5: Trzy niezależne działa elektronowe emitują strumienie elektronów, które bombardują ekran monitora Krok 6 Dochodzi do pobudzenia luminoforów monitora i na ekranie wyświetlony zostaje obraz 7
8 Potok graficzny Systemy wyświetlania rastrowego (tworzenie obrazu w technologii VGA i SVGA Krok 1: Procesor przesyła przetworzony obraz wideo do karty graficznej (zajmuje się on m.in. : przetwarzaniem wierzchołków, dokonuje traingularyzacji oraz przeprowadza rendering) Krok 2: Przetworzony, cyfrowy sygnał wideo przesłany zostaje do karty graficznej Krok 3 Krok 4: Analogowy sygnał wideo (z wyodrębnionymi trzema składowymi koloru R, G i B) przesłany zostaje do monitora Przesłane dane zostają zapisane w pamięci karty. Przetwornik cyfrowoanalogowy DAC przetwarza cyfrowy sygnał obrazu na sygnał analogowy obrazu Krok 5: Trzy niezależne działa elektronowe emitują strumienie elektronów, które bombardują ekran monitora Zauważmy, że karty graficzne oparte na technologii VGS i SVGA nie uczestniczyły w żaden sposób w tworzeniu treści obrazu Krok 6 Dochodzi do pobudzenia luminoforów monitora i na ekranie wyświetlony zostaje obraz 8
9 Potok graficzny Systemy wyświetlania rastrowego (tworzenie obrazu w technologii VGA i SVGA Krok 2: Przetworzony, cyfrowy sygnał wideo przesłany zostaje do karty Krok 4: Analogowy sygnał wideo (z wyodrębnionymi trzema składowymi koloru R, G i B) przesłany zostaje do monitora Krok 1: graficznej Procesor przesyła przetworzony obraz wideo do karty graficznej (zajmuje się on m.in. : przetwarzaniem wierzchołków, dokonuje train- Przesłane dane zostają zapisane w tworzeniem i zmianami Krok 3treści obrazu gularyzacji oraz pamięci karty. Przetwornik cyfrowoanalogowy DAC przetwarza cyfro- przeprowadza renderingwy sygnał obrazu na sygnał analogowy obrazu Krok 5: Trzy niezależne działa elektronowe emitują strumienie elektronów, które bombardują ekran monitora Zauważmy, że karty graficzne oparte na technologii VGS i SVGA nie uczestniczyły w żaden sposób w tworzeniu treści obrazu Pojawienie się graficznego interfejsu użytkownika GUI (system operacyjny Windows, OS/2) spowodowało znaczący wzrost ilości przetwarzanych informacji graficznych, co przełożyło się na: duże obciążenie procesora głównego obliczeniami Krok związanymi 6 Dochodzi do pobudzenia luminoforów monitora i na konieczność przesyłania dużej ilości informacji poprzez ekranie wyświetlony magis- zostaje obraz tralę łączącą procesor główny z pamięcią wideo karty graficznej 9
10 Potok graficzny Systemy wyświetlania rastrowego (tworzenie obrazu w technologii VGA i SVGA Krok 1: Procesor przesyła przetworzony obraz wideo do karty graficznej (zajmuje się on m.in. : przetwarzaniem wierzchołków, dokonuje traingularyzacji oraz przeprowadza rendering) Przetworzony, cyfrowy sygnał wideo przesłany zostaje do karty graficznej Krok 3 Krok 4: Analogowy sygnał wideo (z wyodrębnionymi trzema składowymi koloru R, G i B) przesłany zostaje do monitora Przesłane dane zostają zapisane w pamięci karty. Przetwornik cyfrowoanalogowy DAC przetwarza cyfrowy sygnał obrazu na sygnał analogowy obrazu Krok 5: Trzy niezależne działa elektronowe emitują strumienie elektronów, które bombardują ekran monitora Jedynym rozsądnym sposobem pozwalającym zmniejszyć obciążenie procesora głównego oraz magistrali danych było przekazanie części uprawnień do tworzenia obrazu bezpośrednio karcie Krok 2: graficznej. Krok 6 Dochodzi do pobudzenia luminoforów monitora i na ekranie wyświetlony zostaje obraz 10
11 Potok graficzny Systemy wyświetlania rastrowego (tworzenie obrazu w technologii VGA i SVGA Krok 4: Analogowy sygnał wideo (z wyodrębnionymi trzema składowymi koloru R, Krok 2: G i B) przesłany zostaje Przetworzony, do monitora graficznej. cyfrowy sygnał wideo przesłany zostaje do karty Krok 1: graficznej Procesor przesyła przetworzony obraz wideo do karty graficznej i (zajmuje koprocesorowych. się on m.in. : przetwarzaniem wierzchołków, dokonuje train- Przesłane dane zostają zapisane w Krok 3 gularyzacji oraz pamięci karty. Przetwornik cyfrowoanalogowy DAC przetwarza cyfro- przeprowadza renderingwy sygnał obrazu na sygnał analogowy obrazu Krok 5: Trzy niezależne działa elektronowe emitują strumienie elektronów, które bombardują ekran monitora Jedynym rozsądnym sposobem pozwalającym zmniejszyć obciążenie procesora głównego oraz magistrali danych było przekazanie części uprawnień do tworzenia obrazu bezpośrednio karcie Efektem tych spostrzeżeń było powstanie kart akceleratorowych Krok 6 Dochodzi do pobudzenia luminoforów monitora i na ekranie wyświetlony zostaje obraz 11
12 Posiedzenie Polskiego Chapteru IEEE EMC-s, Wrocław, 13 czerwca 2013 Potok graficzny Koprocesory graficzne i akceleratory graficzne Karta akceleratorowa Karta koprocesorowa 12
13 Potok graficzny Karty graficzne generacji 0 do początku lat 90-tych XX-go wieku Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Rasteryzacja Rasteryzacja Karty graficzne generacji I lata Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) CPU Rasteryzacja Rasteryzacja Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki Kształtowanie Kształtowanie danych bufora danych bufora ramki ramki CPU PCI GPU 13
14 Potok graficzny Karty graficzne generacji II lata AGP Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Rasteryzacja Rasteryzacja GPU Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki 14
15 Potok graficzny Karty graficzne generacji II lata AGP Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Rasteryzacja Rasteryzacja GPU Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Jednostka T&L Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki 15
16 Potok graficzny Karty graficzne generacji II lata AGP Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Rasteryzacja Rasteryzacja GPU Karty graficzne generacji III lata Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Rasteryzacja Rasteryzacja Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Jednostka T&L Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki Programowalny Programowalny układ układ cieniowania cieniowania wierzchołków wierzchołków AGP 16 GPU
17 Potok graficzny Karty graficzne generacji II lata AGP Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Rasteryzacja Rasteryzacja GPU Karty graficzne generacji III lata Przetwarzanie Przetwarzanie wierzchołków wierzchołków Vertex Shader Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Rasteryzacja Rasteryzacja Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Jednostka T&L Pixel Shader Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki Programowalny Programowalny układ układ cieniowania cieniowania wierzchołków wierzchołków AGP 17 GPU
18 Potok graficzny Karty graficzne generacji IV lata AGP Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Programowalny Programowalny układ układ cieniowania cieniowania wierzchołków wierzchołków Rasteryzacja Rasteryzacja GPU Programowalny Programowalny układ układ cieniowania cieniowania pikseli pikseli Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki Pamięć Pamięć tekstur tekstur 18
19 Potok graficzny Karty graficzne generacji IV lata AGP Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Programowalny Programowalny układ układ cieniowania cieniowania wierzchołków wierzchołków Vertex Shader Rasteryzacja Rasteryzacja GPU Programowalny Programowalny układ układ cieniowania cieniowania pikseli pikseli Pixel Shader Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki Pamięć Pamięć tekstur tekstur 19
20 Potok graficzny Karty graficzne generacji IV.5 (cztery i pół) lata AGP Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Programowalny Programowalny układ układ cieniowania cieniowania wierzchołków wierzchołków Pamięć tekstur Pamięć tekstur Rasteryzacja Rasteryzacja GPU Programowalny Programowalny układ układ cieniowania cieniowania pikseli pikseli Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Pamięć tekstur Pamięć tekstur Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki 20
21 Potok graficzny Karty graficzne generacji IV.5 (cztery i pół) lata AGP Przetwarzanie Przetwarzanie wierzchołków wierzchołków Tworzenie Tworzenie geometrii geometrii (triangularyzacja) (triangularyzacja) Programowalny Programowalny układ układ cieniowania cieniowania wierzchołków wierzchołków Vertex Shader Pamięć tekstur Pamięć tekstur Rasteryzacja Rasteryzacja GPU Programowalny Programowalny układ układ cieniowania cieniowania pikseli pikseli Pixel Shader Obróbka Obróbka obrazu obrazu poddanego poddanego rasteryzacji rasteryzacji Pamięć tekstur Pamięć tekstur Kształtowanie Kształtowanie danych danych bufora bufora ramki ramki 21
22 Potok graficzny Karty graficzne generacji V od roku 2006 do chwili obecnej Programowalny Programowalny Programowalny Dane Programowalny Programowalny Programowalny Dane układ układ cieniowania układ Rasteryzacja cieniowa- układ układ cieniowania wejściowe geomeryzacja cieniowa- cieniowania cieniowania Raste- układ wejściowchołków wierz- wierzchołków geometrycznegninia pikseli trycznego pikseli PCI-E GPU Agregacja Agregacja i i przesył przesył danych danych wyjściowych wyjściowych 22
23 Potok graficzny Karty graficzne generacji V od roku 2006 do chwili obecnej Programowalny Programowalny Programowalny Agregacja Dane Programowalny Programowalny Programowalny Agregacja Dane układ i i przesył układ cieniowaniryzacja cieniowa- danych układ Raste- układ układ cieniowania wejściowe wierz- geomeryzacja cieniowa- wyj- cieniowania cieniowania Raste- układ przesył wejściowchołkótrycznegniściowych danych wyj- wierz- geomechołkónia pikseli trycznego pikseli ściowych Programowalny potok graficzny PCI-E GPU 23
24 Potok graficzny Karty graficzne generacji V od roku 2006 do chwili obecnej Agregacja Dane Agregacja Dane Programowalne i i przesył Programowalne zunifikowane zunifikowane jednostki jednostki cieniujące wejściowe unified shaders) wyj- cieniujące przesył wejściowściowych (ang. danych danych wyj- (ang. programmable programmable unified shaders) ściowych Programowalny potok graficzny PCI-E GPU Wprowadzenie zunifikowanych jednostek cieniowania (unified shaders) Pełne wsparcie dla obliczeń ogólnego przeznaczenia GPGPU 24
25 Architektura GPU Uwaga: Chcąc wykonywać obliczenia ogólnego przeznaczenia GPGPU na kartach graficznych, należy upewnić się, czy karta wyposażona jest w technologię CUDA lub ATI/AMD Stream Na opakowaniu kart graficznych należy więc poszukiwać jednego z prezentowanych logo. 25
26 Architektura GPU G80 G80 NVIDIA NVIDIA GT200 GT200 NVIDIA NVIDIA RV670 RV670 ATI ATI RV770 RV770 ATI/AMD ATI/AMD Architektura Architektura I-szej I-szej generacji generacji Architektura Architektura II-giej II-giej generacji generacji GF100 GF100 (Fermi) (Fermi) NVIDIA NVIDIA RV870 RV870 (Cypress) (Cypress) AMD AMD Architektura Architektura III-ciej III-ciej generacji generacji GK104 GK104 (Kepler) (Kepler) NVIDIA NVIDIA Maxwell Maxwell NVIDIA NVIDIA Cayman Cayman AMD AMD Tahiti Tahiti AMD AMD Architektura Architektura IV-tej IV-tej generacji generacji Architektura Architektura V-tej V-tej generacji generacji Karty graficzne V-tej generacji 26
27 Architektura GPU Procesor graficzny NVIDIA GK104 (Kepler) z technologią CUDA Podstawowym elementem architektury GK104 jest procesor strumieniowy SP, SPU (ang. Streaming Processor, Streaming Processor Unit) zwany również CUDA Core Procesor strumieniowy SP składa się z jednej 32-bitowej jednostki arytmetyczno-logicznej ALU (operacje na liczbach całkowitych) oraz jednej 64- bitowej jednostki zmiennoprzecinkowej FPU działającej z pojedynczą i podwójną precyzją Jednostki ALU i FPU nie mogą wykonywać obliczeń jednocześnie Core 27
28 Architektura GPU Procesor graficzny NVIDIA GK104 (Kepler) z technologią CUDA 192 procesory strumieniowe tworzą jeden multiprocesor strumieniowy SMX (ang. Streaming Multiprocessor) W skład SMX wchodzą także: 32 jednostki specjalne SFU (ang. Special Function Unit) do obliczania funkcji trygonometrycznych, wykładniczych i logarytmicznych 32 jednostki LD/ST (ang. Load/ Store Unit) ułatwiające zarządzanie adresami źródłowymi i docelowymi Pamięć współdzielona (ang. shared memory) 64kB Pamięć podręczna instrukcji (I Cache) 32kB Pamięć podręczna danych (Uniform Cache) 8 jednostek sterujących DU (ang. Dispatch Unit) rejestry 32-bitowe 28
29 Architektura GPU Procesor graficzny NVIDIA GK104 (Kepler) z technologią CUDA 2 multiprocesory strumieniowe SMX tworzą razem klaster GPC (ang. Graphics Processing Cluster) Klaster GPC zawiera dodatkowo: Jeden skalowalny silnik rastrujący (ang. Raster Engine) Dwa silniki polimorficzne (ang. Polymorph Engines) 32 jednostki teksturujące TU (ang. Texture Units) Pamięć podręczną tekstur TC (ang. Texture Cach) dwa bloki po jeden na każdy SMX o pojemności 32 kb 29
30 Architektura GPU Procesor graficzny NVIDIA GK104 (Kepler) z technologią CUDA 4 klastry GPC tworzy macierz procesorów strumieniowych SPA (ang. Streaming Processor Array) 1 GPU = 4 GPC 1 GPU = 8 SMX 1 GPU = 1536 SP 30
31 Architektura GPU Procesor graficzny NVIDIA GK104 (Kepler) z technologią CUDA Karta graficzna GeForce GTX
32 Architektura GPU Procesor graficzny NVIDIA GK110 (Kepler) z technologią CUDA 192 procesory strumieniowe tworzą jeden multiprocesor strumieniowy SMX (ang. Streaming Multiprocessor) W skład SMX wchodzą także: Pamięć współdzielona (ang. shared memory) 64kB Pamięć podręczna instrukcji (I Cache) Pamięć podręczna danych (Read-Only Data Cache) 48 kb 8 jednostek sterujących DU (ang. Dispatch Unit) rejestry 32-bitowe Brak silników sprzętowych wspmagających tworzenie grafiki (Raster Polymorph Engine) 32
33 Architektura GPU Procesor graficzny NVIDIA GK110 (Kepler) z technologią CUDA 192 procesory strumieniowe tworzą jeden multiprocesor strumieniowy SMX (ang. Streaming Multiprocessor) W skład SMX wchodzą także: 32 jednostki specjalne SFU (ang. Special Function Unit) do obliczania funkcji trygonometrycznych, wykładniczych i logarytmicznych 32 jednostki LD/ST (ang. Load/ Store Unit) ułatwiające zarządzanie adresami źródłowymi i docelowymi 64 jednostki DP (ang. Double Precision) zwiększające efektywność wykonywania operacji zmiennoprzecinkowych na liczbach podwójnej precyzji 33
34 Architektura GPU Procesor graficzny NVIDIA GK110 (Kepler) z technologią CUDA 1 GPU = 2880 SP, 1 GPU = 15 SMX, 1 SMX = 192 SP 34
35 Architektura GPU Procesor graficzny NVIDIA GK110 (Kepler) z technologią CUDA Akcelerator graficzny Tesla K20 35
36 Architektura GPU Procesor graficzny AMD Tahiti z technologią GCN (ang. Graphics Core Next) Podstawowym elementem architektury Tahiti jest jednostka arytmetyczno-logiczna ALU nazywana przez producenta procesorem strumieniowym SPU (ang. Streaming Processor Unit) Jednostki arytmetyczno-logiczne ALU wykonują operacje na liczbach całkowitych i zmiennoprzecinkowych zarówno pojedynczej jak i podwójnej precyzji ALU 36
37 Architektura GPU Procesor graficzny AMD Tahiti z technologią GCN (ang. Graphics Core Next) 16 jednostek ALU wraz z 64 kb rejestrem wykorzystywanym do przechowywania danych tworzy jeden rdzeń GCN SIMD (ang. Graphics Core Next SIMD) ALU 37
38 Architektura GPU Procesor graficzny AMD Tahiti z technologią GCN (ang. Graphics Core Next) 4 rdzenie GCN SIMD (16-wide Vector SIMD) tworzą tzw. jednostki obliczeniowe CU (ang. Compute Unit) 38
39 Architektura GPU Procesor graficzny AMD Tahiti z technologią GCN (ang. Graphics Core Next) Karta graficzna Radeon HD
40 Porównanie 40 Architektura GPU Pod względem oferowanej mocy obliczeniowej obydwa konkurencyjne rozwiązania wypadają podobnie Jeśli chodzi o cenę to karty graficzne firmy AMD są tańsze Jeśli chodzi o ilość oraz dostępność narzędzi programistycznych oraz liczbę powstałych apaplikacji to palmę pierwszeństwa należy oddać firmie NVIDIA
41 Architektura GPU - cechy Możliwość jednoczesnego wykonywania funkcji jądra i kopiowania danych z i do pamięci graficznej (ang. overlapping) 2-way overlapping 3-way overlapping 41
42 Architektura GPU - cechy Możliwość współbieżnego wykonywania kilku różnych funkcji jądra (ang. concurrent kernel execution) Sekwencyjne wykonywanie kilku różnych funkcji jądra Współbieżne wykonywanie kilku różnych funkcji jądra 42
43 Architektura GPU - cechy Pełne wsparcie dla standardu zapisu danych IEEE-754 znak bity kodu cechy bity ułamkowe mantysy Definicja formatu zmiennoprzecinkowego float Zakres: double Zakres: Wartości zdenormalizowane, wartości specjalne: QNaN, SNaN 43
44 Model programistyczny CUDA Technologia CUDA (ang. Compute Unified Device Architecture) to dziś: Uniwersalna architektura sprzętowo-programistyczna masowo równoległych, masowo wielordzeniowych procesorów (graficznych) firmy NVIDIA oraz Specjalny model programistyczny obejmujący: Specjalny interfejs programowania aplikacji Specjalny model pamięci Język wysokiego poziomu oparty na C, F95 Dedykowany kompilator (NVCC, PGI Fortran) 44
45 Model programistyczny CUDA Model przepływu danych 45
46 Model programistyczny CUDA Schemat wywołania funkcji jądra Kod jądra wykonywany jest jako krata wątków (ang. grid) Krata wątków dzieli się na bloki (ang. block of threads ), a każdy z bloków dzieli się na wątki (ang. threads) Zarówno krata jak i bloki wątków mogą mieć strukturę tablicy jedno-, dwu- lub trójwymiarowej Taki sposób podziału wątków ułatwia organizację obliczeń prowadzonych na procesorach strumieniowych 46
47 Model programistyczny CUDA Hierarchia wątków Każdy z wywołanych wątków jest wykonywany przez jeden procesor strumieniowy SP Wątki zgrupowane w bloki wątków są wykonywane współbieżnie na multiprocesorze strumieniowym SMX W zależności od dostępnych zasobów sprzętowych na jednym multiprocesorze strumieniowym SMX może być wykonywanych współbieznie do kilku bloków wątków Bloki wątkówi są zgrupowane w kratę wątków, na której jest wykonywana wywoływana funkcja jądra 47
48 Model programistyczny CUDA Osnowy (wiązki wątków) Jednostka sterująca DU multiprocesora strumieniowego SMX tworzy, zarządza, planuje i wykonuje współbieżnie wątki w grupach nazywanych osnową (wiązką) wątków Na osnowę (wiązkę) wątków składają się 32 wątki Przez pół-osnowę rozumie się pierwsze lub drugie 16 kolejnych wątków osnowy Wątki w osnowie wykonują tę samą instrukcję ale operują na różnych danych Dostęp do pamięci globalnej w ramach jednej transakcji uzyskuje jednocześnie po 16 wątków z każdego bloku wątków (jedna pół-osnowa) 48
49 Model programistyczny CUDA Organizacja dostępu do pamięci Lokalizacja: on-chip, rozmiar: mały Lokalizacja: off-chip, rozmiar: mały Lokalizacja: on-chip, rozmiar: mały Lokalizacja: off-chip, rozmiar: duży Lokalizacja: off-chip, rozmiar: mały Lokalizacja: off-chip, rozmiar: mały 49
50 Model programistyczny CUDA Dostępne narzędzia software owe i biblioteki numeryczne System operacyjny Windows Język programowania C, C++, kompilator nvcc firmy NVIDIA (darmowy) Język programowania C, kompilator Brook, Stanford University (darmowy) Język programowania C99, otwarty standard OpenCL (darmowy), kompilator MSVS (odpłatny z wyjątkiem środowisk akademickich), ICC (odpłatny), MinGW (darmowy) Język programowania Fortran, kompilator firmy PGI (odpłatny) Matlab parallel computing toolbox (odpłatny) Biblioteki: CUBLAS (darmowa), CULA (odpłatna z wyjątkiem środowisk akademickich), MAGMA (darmowa) 50
51 Model programistyczny CUDA Dostępne narzędzia software owe i biblioteki numeryczne System operacyjny Linux Język programowania C, C++, kompilator nvcc firmy NVIDIA (darmowy) Język programowania C, kompilator Brook, Stanford University (darmowy) Język programowania C99, otwarty standard OpenCL, kompilator GCC (darmowy), kompilator ICC (odpłatny) Język programowania Fortran, kompilator firmy PGI (odpłatny) Matlab parallel computing toolbox (odpłatny) Biblioteki: CUBLAS (darmowa), CULA (odpłatna z wyjątkiem środowisk akademickich), MAGMA (darmowa) 51
52 Metoda momentów Metody pełnofalowe wykorzystywane w elektrodynamice obliczeniowej Metoda momentów MoM (ang. Method of Moments) Metoda FDTD (ang. Finite Difference Timie Domain) Metoda elementów skończonych FEM (ang. Finite Element Method) 52
53 Metoda momentów Metody pełnofalowe wykorzystywane w elektrodynamice obliczeniowej Metoda momentów MoM (ang. Method of Moments) Metoda FDTD (ang. Finite Difference Timie Domain) Metoda elementów skończonych FEM (ang. Finite Element Method) Z wymienionych tutaj trzech metod pełnofalowych, metodę FDTD jest najłatwiej zaadoptować do realizacji na platformach/maszynach równoległych, natomiast metodę momentów najtrudniej. 53
54 54 Metoda momentów [ Z ][ I] [ V] Z macierz impedancyjna I poszukiwany prąd V znane pobudzenie
55 55 Metoda momentów [ Z ][ I] [ V] Z macierz impedancyjna I poszukiwany prąd V znane pobudzenie Najbardziej intensywne obliczeniowo jest: wypełnianie macierzy impedancyjnej rozwiązywanie układu równań
56 56 Metoda momentów [ Z ][ I] [ V]
57 57 Metoda momentów [ Z ][ I] [ V]
58 58 MoM CPU/GPU
59 59 MoM CPU/GPU
60 60 MoM CPU/GPU
61 61 MoM CPU/GPU
62 62 MoM CPU/GPU
63 63 MoM CPU/GPU
64 Obliczenia numeryczne Sprzęt CPU (3.6 GHz Intel Core i7 3820) GPU (Nvidia GeForce typu GTX 680) Oprogramowanie Implementacja CPU Kompilator Intel Fortran MKL Implementacja GPU Kompilator Fortranu PGI Biblioteka CULA R16a 64
65 Obliczenia numeryczne Przykład 1 Rozpraszanie fali elektromagnetycznej na bryle doskonale przewodzącej zamodelowanej za pomocą siatki złożonej z cienkich drucików CPU 65
66 Obliczenia numeryczne Przykład 1 Rozpraszanie fali elektromagnetycznej na bryle doskonale przewodzącej zamodelowanej za pomocą siatki złożonej z cienkich drucików CPU 66
67 Obliczenia numeryczne Przykład 1 Rozpraszanie fali elektromagnetycznej na bryle doskonale przewodzącej zamodelowanej za pomocą siatki złożonej z cienkich drucików GPU 67
68 Obliczenia numeryczne Przykład 1 Rozpraszanie fali elektromagnetycznej na bryle doskonale przewodzącej zamodelowanej za pomocą siatki złożonej z cienkich drucików GPU 68
69 Obliczenia numeryczne Przykład 1 Rozpraszanie fali elektromagnetycznej na bryle doskonale przewodzącej zamodelowanej za pomocą siatki złożonej z cienkich drucików 69
70 Obliczenia numeryczne Przykład 2 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny umieszczonej na powierzchni przewodzącej bryły Liczba segmentów 3865 Liczba niewiadomych T. Topa, A. Karwowski, A. Noga,,,Using GPU with CUDA to accelerate MoM-based electromagnetic simulation of wire-grid models, IEEE Antennas Wireless Propag. Lett., vol. 10, str ,
71 Obliczenia numeryczne Przykład 2 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny umieszczonej na powierzchni przewodzącej bryły 71
72 Obliczenia numeryczne Przykład 2 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny umieszczonej na powierzchni przewodzącej bryły CPU 36s GPU 6.2s Zysk 5.8x 72
73 Obliczenia numeryczne Przykład 3 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny śrubowej umieszczonej w ekranie cylindrycznym Liczba segmentów 277 Liczba płatków Liczba niewiadomych T. Topa, A. Noga, A. Karwowski,,,Adapting MoM with RWG basis functions to GPU technology using CUDA, IEEE Antennas Wireless Propag. Lett., vol. 10, str ,
74 Obliczenia numeryczne Przykład 3 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny śrubowej umieszczonej w ekranie cylindrycznym 74
75 Obliczenia numeryczne Przykład 3 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny śrubowej umieszczonej w ekranie cylindrycznym CPU 47.5s GPU 7.2s Zysk 6.6x 75
76 Obliczenia numeryczne Przykład 4 Badanie skuteczności ekranowania ekranu siatkowego Brak szczeliny Liczba segmentów 6228 Liczba niewiadomych 8307 Szczelina Liczba segmentów 6207 Liczba niewiadomych 8257 A. Karwowski, A. Noga, Interpolating broadband shielding behaviour of wire-grid cages from full-wave electromagnetic simulation, International Symposium on Electromagnetic Compatibility, EMC Europe 2012, Sep. 2012, Rome, Italy. 76
77 Obliczenia numeryczne Przykład 4 Badanie skuteczności ekranowania ekranu siatkowego Szczelina 77
78 Obliczenia numeryczne Przykład 4 Badanie skuteczności ekranowania ekranu siatkowego Brak szczeliny 78
79 Obliczenia numeryczne Przykład 4 Badanie skuteczności ekranowania ekranu siatkowego CPU 72,5s GPU 10.4s Zysk 6.95x Brak szczeliny 79
80 Obliczenia numeryczne Przykład 5 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny QSA umieszczonej na powierzchni przewodzącego pudełka w kształcie prostopadłościanu Liczba segmentów 3732 Liczba niewiadomych
81 Obliczenia numeryczne Przykład 5 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny QSA umieszczonej na powierzchni przewodzącego pudełka w kształcie prostopadłościanu Organizacja obliczeń numerycznych 81
82 Obliczenia numeryczne Przykład 5 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny QSA umieszczonej na powierzchni przewodzącego pudełka w kształcie prostopadłościanu Wykorzystywana platforma obliczeniowa (4 x GTX 680, 4-rdzeniowy procesor i7 3820) 82
83 Obliczenia numeryczne Przykład 5 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny QSA umieszczonej na powierzchni przewodzącego pudełka w kształcie prostopadłościanu 83
84 Obliczenia numeryczne Przykład 5 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny QSA umieszczonej na powierzchni przewodzącego pudełka w kształcie prostopadłościanu 84
85 Obliczenia numeryczne Przykład 5 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny QSA umieszczonej na powierzchni przewodzącego pudełka w kształcie prostopadłościanu CPU 35.2s 1 GPU 6s Zysk 5.9x 2 GPU 3s Zysk 11.6x 85
86 Obliczenia numeryczne Przykład 5 Wyznaczenie przebiegu częstotliwościowego impedancji wejściowej anteny QSA umieszczonej na powierzchni przewodzącego pudełka w kształcie prostopadłościanu CPU 35.2s 3 GPU 2s Zysk 17.6x 4 GPU 1.5s Zysk 23.5x 86
87 Podsumowanie Pokazano wyniki obliczeń numerycznych uzyskanych za pomocą metody momentów wspomaganej sprzętowo. Algorytmy metody zmodyfikowano tak, aby możliwa była jej implementacja na kartach graficznych firmy NVIDIA. Środowisko heterogeniczne CPU/GPU zastosowano przy wypełnianiu macierzy impedancyjnej i rozwiązywaniu układu równań. Zaproponowany kierunek rozwoju oprogramowania służącego do rozwiązywania problemów numerycznych elektrodynamiki obliczeniowej wydaje się być właściwy, gdyż stwarza możliwość przyspieszenia obliczeń w już prowadzonych projektach. 87
88 Dalsze prace Implementacja algorytmów MoM dla klastrów obliczeniowych złożonych z procesorów strumieniowych GPU i wielordzeniowych CPU T. Topa, A. Karwowski, A. Noga, "Multi-Core/Multi-GPU Hardware Acceleration of Frequency-Domain Numerical Simulations", Computer Physics Communications (submitted). Implementacja algorytmów out-of-core Wypełnianie macierzy impedancyjnej Rozwiązywanie układu równań Iteracyjne rozwiązywanie układu równań 88
89 89 Posiedzenie Polskiego Chapteru IEEE EMC-s Wrocław, 13 czerwca 2013 DZIĘKUJĘ ZA UWAGĘ
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
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
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
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),
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 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 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!
Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest
KARTA GRAFICZNA 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 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
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ść
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
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 współbieżne Wprowadzenie do programowania GPU. Rafał Skinderowicz
Programowanie współbieżne Wprowadzenie do programowania GPU Rafał Skinderowicz Literatura Sanders J., Kandrot E., CUDA w przykładach, Helion. Czech Z., Wprowadzenie do obliczeń równoległych, PWN Ben-Ari
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
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
OpenGL - Open Graphics Library. Programowanie grafiki komputerowej. OpenGL 3.0. OpenGL - Architektura (1)
OpenGL - Open Graphics Library Programowanie grafiki komputerowej Rados$aw Mantiuk Wydzia$ Informatyki Zachodniopomorski Uniwersytet Technologiczny! OpenGL: architektura systemu do programowania grafiki
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
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
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
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
PROJEKTOWANIE SYSTEMÓW KOMPUTEROWYCH
PROJEKTOWANIE SYSTEMÓW KOMPUTEROWYCH WYKŁAD NR 6 KARTY GRAFICZNE I PROCESORY GRAFICZNE dr Artur Woike Historia rozwoju kart graficznych IBM MDA Standard MDA (Monochrome Display Adapter) powstał w 1981
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
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
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
Przyspieszanie sprzętowe
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
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ą
Grafika komputerowa i wizualizacja
Grafika komputerowa i wizualizacja Radosław Mantiuk ( rmantiuk@wi.zut.edu.pl, p. 315 WI2) http://rmantiuk.zut.edu.pl Katedra Systemów Multimedialnych Wydział Informatyki, Zachodniopomorski Uniwersytet
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:
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.
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
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
Implementacja metody momentów z wykorzystaniem kart graficznych i architektury CUDA
doi:1.1199/48.21.3.8 Tomasz TOPA 1, Artur NOGA 1 Silesian University of Technology (1) Implementacja metody momentów z wykorzystaniem kart graficznych i architektury CUDA Streszczenie. W artykule omówiono
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
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
Sprawdzian test egzaminacyjny GRUPA I
... nazwisko i imię ucznia Sprawdzian test egzaminacyjny GRUPA I 1. Na rys. 1 procesor oznaczony jest numerem A. 2 B. 3 C. 5 D. 8 2. Na rys. 1 karta rozszerzeń oznaczona jest numerem A. 1 B. 4 C. 6 D.
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
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
Podręcznik użytkownika PCI-x Karta przechwytująca 4xHDMI
Podręcznik użytkownika PCI-x Karta przechwytująca 4xHDMI Spis treści 1. Specyfikacja... 3 1.1 Cechy:... 3 1.2 Rozdzielczość wideo na wejściu :... 3 1.3 Zawartość opakowania... 3 1.4 Wymagania systemowe...
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
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
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
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
Karty graficzne: budowa, zasada działania, standardy, parametry, dodatkowe funkcje
018 URZĄDZENIA TECHNIKI KOMPUTEROWEJ Karty graficzne: budowa, zasada działania, standardy, parametry, dodatkowe funkcje 1 UTK Treść niniejszej prezentacji oparto na artykułach pisma Komputer Świat Ekspert
Plan wykładu. Akcelerator 3D Potok graficzny
Plan wykładu Akcelerator 3D Potok graficzny Akcelerator 3D W 1996 r. opracowana została specjalna karta rozszerzeń o nazwie marketingowej Voodoo, którą z racji wspomagania procesu generowania grafiki 3D
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
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
Karta przedmiotu. Podstawy programowania procesorów graficznych. realizowanego w ramach projektu PO WER
Karta przedmiotu Podstawy programowania procesorów graficznych realizowanego w ramach projektu PO WER 2017-2019 Wydział Inżynierii Elektrycznej i Komputerowej Kierunek studiów: Informatyka Profil: Ogólnoakademicki
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
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...................................................
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
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
Budowa i zasada działania komputera. dr Artur Bartoszewski
Budowa i zasada działania komputera 1 dr Artur Bartoszewski Jednostka arytmetyczno-logiczna 2 Pojęcie systemu mikroprocesorowego Układ cyfrowy: Układy cyfrowe służą do przetwarzania informacji. Do układu
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
Architektura Komputerów
Architektura systemów Architektura Komputerów komputerowych Wykład nr. 9 dr Artur Bartoszewski Budowa karty graficznej Akceleratory graficzne Pamięć karty służy do przechowywania bitmapy przygotowanej
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
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,
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
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
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 Konsekwencje prawa Moore'a 4 Procesory wielordzeniowe 5 Intel Nehalem 6 Architektura Intel Nehalem
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ń
Odwzorowanie procedur całkowania numerycznego w metodzie elementów skończonych na architektury procesorów masowo wielordzeniowych
Instytut Podstawowych Problemów Techniki Polska Akademia Nauk Odwzorowanie procedur całkowania numerycznego w metodzie elementów skończonych na architektury procesorów masowo wielordzeniowych Filip Krużel
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
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
Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa... 9. Wstęp... 11
Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1 Spis treúci Przedmowa... 9 Wstęp... 11 1. Komputer PC od zewnątrz... 13 1.1. Elementy zestawu komputerowego... 13 1.2.
System komputerowy. System komputerowy
System komputerowy System komputerowy System komputerowy układ współdziałających ze sobą (według pewnych zasad) dwóch składowych: sprzętu komputerowego (hardware) oraz oprogramowania (software) po to,
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
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
Ogólne informacje. cią pracy, wielkości wyświetlan. cią obrazu, wietlaną rozdzielczości. częstotliwo. wieŝania obrazu.
Karty graficzne Ogólne informacje Karta rozszerzeń,, umiejscawiana na płycie p głównej poprzez gniazdo PCI lub AGP odpowiada w komputerze za obraz wyświetlany wietlany przez monitor. Karty graficzne róŝnir
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
Magistrala systemowa (System Bus)
Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki systemowa (System Bus) Pamięć operacyjna ROM, RAM Jednostka centralna Układy we/wy In/Out Wstęp do Informatyki
Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy
Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,
Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami
Larrabee GPGPU Zastosowanie, wydajność i porównanie z innymi układami Larrabee a inne GPU Różnią się w trzech podstawowych aspektach: Larrabee a inne GPU Różnią się w trzech podstawowych aspektach: Larrabee
dr inż. Jarosław Forenc
Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 6 (06.05.2011) Rok akademicki 2010/2011, Wykład
Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387
Mikroinformatyka Koprocesory arytmetyczne 8087, 80187, 80287, i387 Koprocesor arytmetyczny 100 razy szybsze obliczenia numeryczne na liczbach zmiennoprzecinkowych. Obliczenia prowadzone równolegle z procesorem
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
Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek
Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,
INŻYNIERIA OPROGRAMOWANIA
INSTYTUT INFORMATYKI STOSOWANEJ 2013 INŻYNIERIA OPROGRAMOWANIA Inżynieria Oprogramowania Proces ukierunkowany na wytworzenie oprogramowania Jak? Kto? Kiedy? Co? W jaki sposób? Metodyka Zespół Narzędzia
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
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
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
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
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
Klaster obliczeniowy
Warsztaty promocyjne Usług kampusowych PLATON U3 Klaster obliczeniowy czerwiec 2012 Przemysław Trzeciak Centrum Komputerowe Politechniki Łódzkiej Agenda (czas: 20min) 1) Infrastruktura sprzętowa wykorzystana
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
WIDMOWA I FALKOWA ANALIZA PRĄDU SILNIKA LSPMSM Z WYKORZYSTANIEM OPENCL
POZNAN UNIVE RSITY OF TE CHNOLOGY ACADE MIC JOURNALS No 85 Electrical Engineering 06 Wojciech PIETROWSKI* Grzegorz D. WIŚNIEWSKI Konrad GÓRNY WIDMOWA I FALKOWA ANALIZA PRĄDU SILNIKA LSPMSM Z WYKORZYSTANIEM
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ć
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
Grafika komputerowa. Grafika komputerowa. Grafika komputerowa
OpenGL - Koncepcja i architektura Aplikacja odwo!uje si" poprzez funkcje API OpenGL bezpo#rednio do karty graficznej (z pomini"ciem systemu operacyjnego). Programowanie grafiki komputerowej Rados!aw Mantiuk
LEKCJA TEMAT: Współczesne procesory.
LEKCJA TEMAT: Współczesne procesory. 1. Wymagania dla ucznia: zna pojęcia: procesor, CPU, ALU, potrafi podać typowe rozkazy; potrafi omówić uproszczony i rozszerzony schemat mikroprocesora; potraf omówić
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
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
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
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ę
PRACA DYPLOMOWA INŻYNIERSKA. Rafał Karolewski. Rok akademicki 2011/2012
Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Rok akademicki 2011/2012 PRACA DYPLOMOWA INŻYNIERSKA Rafał Karolewski Realizacja algorytmu ewolucyjnego na programowalnych
Technika mikroprocesorowa
Technika mikroprocesorowa zajmuje się przetwarzaniem danych w oparciu o cyfrowe programowalne układy scalone. Systemy przetwarzające dane w oparciu o takie układy nazywane są systemami mikroprocesorowymi
Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII
Spis treści Od autora..................................................... Obliczenia inżynierskie i naukowe.................................. X XII Ostrzeżenia...................................................XVII
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
Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych
Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie