Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1 Implementacja algorytmów na procesory kart graficznych mgr inż. Krzysztof Wegner Katedra Telekomunikacji Multimedialnej i Mikroelektroniki Politechnika.

Podobne prezentacje


Prezentacja na temat: "1 Implementacja algorytmów na procesory kart graficznych mgr inż. Krzysztof Wegner Katedra Telekomunikacji Multimedialnej i Mikroelektroniki Politechnika."— Zapis prezentacji:

1 1 Implementacja algorytmów na procesory kart graficznych mgr inż. Krzysztof Wegner Katedra Telekomunikacji Multimedialnej i Mikroelektroniki Politechnika Poznańska Seminarium Przetwarzanie obrazów i multimedia, kwiecień 2009

2 Karta Graficzna GPU Podstawowym zadaniem karty graficznej jest przechowywanie informacji o tym jak powinien wyglądać obraz na ekranie monitora i odpowiednim sterowaniu monitorem. Nowoczesne procesory graficzne udostępniają wiele funkcji ułatwiających i przyśpieszających tworzenie obrazu. 2 NVIDIA GeForce GTX 285ATI Radeon 4850

3 Możliwości GPU Akceleracja 2D Rysowanie figur Warstwy i kafelki Podwójne buforowanie Akceleracja 3D Mapowanie wypukłości Efekty cząsteczkowe Pixel Shader Vertex Shader Transform & Lighting HDR 3

4 Możliwości GPU Filtrowanie anizotropowe Full Scene Anti-Aliasing Obliczanie fizyki gry – NVIDIA PhysX Bardzo duża moc obliczeniowa 4

5 Możliwości wykorzystania W celu renderowania grafiki GPU W celu obliczeń ogólnego przeznaczenia GPGPU 5

6 Architektura Karty Graficznej Potok przetwarzający

7 Porównanie kart graficznych AIT Radeon HD 4850NVIDIA GeForce GTX285 Ilość tranzystorów 965 milionów1400 milionów Technologia wykonania 55nm65nm Ilość procesorów strumieniujących Ilość jednostek teksturujących 4080 Częstotliwość GPU 625 MHz648 MHz Wydajność zmiennoprzecinkowa 1 Tflops1.063 Tflops Wielkość pamięci 512MB GDDR31024MB GDDR3 Przepustowość pamięci 200 GB/s155 GB/s 7

8 Dostępne zasoby Zmienne - Pamięć Bufor wierzchołków(x y z, nx ny nz, t s, r g b a) 8 x Float x Int32 Bufor tekstury (RGBA) 4 x Float32 4 x Int32 Buffor ramki Jednostki Obliczeniowe Vertex Sheader Pixel Sheader 8

9 Filozofia wykorzystania GPU Zapis danych w teksturze lub układzie wierzchołków (Array to Texture) Ograniczenie pojedynczej tekstury do rozmiaru 8192x8192 punktów Ograniczenie do 32 tekstur 9 Tablica Tekstura

10 Filozofia wykorzystania GPU Zaprogramowanie jednostek Pixel Shader i Vertex Shader Shader Model 4.0 Do 4096 instrukcji Do 4096 zmiennych lokalnych Wykorzystanie języków wysokiego poziomu Równoległość wykonywania obliczeń 10

11 Języki programowania Wszystkie języki oparte o język C OpenGL Shader Language GLSL Stworzony przez OpenGL ARB Część API OpenGL 2.0 High Level Shader Language HLSL Stworzony przez Microsoft Część API DirectX C for Graphics Stworzony przez NVIDIE razem z Microsoftem 11

12 Filozofia wykorzystania GPU Wykonanie obliczeń następuje podczas renderowania obrazu Na ekranie rysuje się wielki prostokąt pokrywający obszar docelowej tablicy co inicjuje obliczenia Odczytuje się bufor ramki zawierający wynik obliczeń zaszyty w wyrenderowanym obrazie 12

13 Dodawanie 2 wektorów CPU Umieszczenie danych w 2 tablicach A i B Program float* add(float* A,float* B) { for(coords=0; coords<9

14 Dodawanie 2 wektorów CPU Wywołanie obliczeń C=add(A,B); Czas Obliczeń 9 taktów GPU Wywołanie obliczeń GL_Draw_Quad(); Read_FrameBuffer(C); Czas Obliczeń 1 takt A B AB C C

15 Podstawowe operacje Każdy algorytm można rozbić na następujące operacje Scater – Rozpraszanie Operacje typu output[j] = f(input); Realizacja na VertexShader Gather – Zbieranie/grupowianie Operacje typu output = f(input(i),input(j)) Realizacja na PixelShader 15

16 Wyznaczanie maksimum Operacja typu Gather – zbieranie/grupowianie Implementacja na pixel shader Oczywiste podejście Tekstura wejściowa 9 Tekstura wyjściowa Pixel Shader 16 taktów Nie wszystkie jednostki obliczeniowe wykorzystane

17 Wyznaczanie maksimum Podejście zrównoleglone Tekstura wejściowa Tekstura tymczasowa 9 Tekstura wyjściowa Pixel Shader 4 takty Pixel Shader 4 takty 8 taktów zamiast 16 Przyśpieszenie x2

18 Różnice CPU Struktury Danych Zmienna globalna/lokalna Tablica Z tablicy można czytać i pisać do niej jednocześnie A[i] = A[i]+B[i] Funkcje Dozwolone wywołanie funkcji Dozwolone skoki warunkowe Wskaźniki Sekwencyjne wykonanie GPU Struktury Danych Tylko zmienna lokalna Tekstura / Bufor Wierzchołków Z tekstury można tylko czytać lub tylko do niej pisać A[i] = A[i]+B[i] Vertex/Pixel Shader Dozwolone wywołanie funkcji Brak skoków warunkowych Brak wskaźników Równoległe wykonanie 18

19 Zalety GPU Wykorzystanie zalet przetwarzania równoległego Wielokrotne przyśpieszenie obliczeń Możliwość użycia darmowej mocy obliczeniowej komputera 19

20 Wady GPU Konieczność innego podejścia do typowych problemów Konieczności pisania programów w innym języku Brak elastyczności struktury karty graficznej Stały schemat przepływu danych Problem z załadowaniem danych do tekstury Nie wszystkie algorytmy da się zrównoleglić 20

21 Implementacja na GPU Wyznaczanie mapy głębi 21 Widok 10 Tekstura 1 Widok 7 Tekstura 2 Koszt dopasowania Tekstura 3 Monochromatyczna mapa zakodowana w składowych RGBA kliku punktów tekstury Pixel Shader Proste odejmowanie 4 punktów Jeden przebieg Jeden render

22 Implementacja na GPU Miękka segentacja 22 Widok 10 Tekstura 1 Miękkie Segmenty widoku 10 Tekstura 4 Zapisane jako wektory kolumnowe Pixel Shader Wyznaczenie segmentu danego punktu Wykonywane w n przebiegach Każda linie oddzielnie

23 Implementacja na GPU Pasowanie segmentów i wyznaczanie głębi 23 Koszt dopasowania Tekstura 3 Miękkie Segmenty widoku 10 Tekstura 4 Miękkie Segmenty widoku 7 Tekstura 5 Wstępna mapa głębi Tekstura 6 Pixel Shader Wyznaczanie najlepszego dopasowania danego punktu

24 Implementacja na GPU Porównanie szybkości algorytmu na CPU i GPU 24 ATINVIDIACPU 20x2020, ,379 30x3037,62850,591383,654 40x4062,07389,950693,675

25 Dziękuje za uwagę Pytania? 25


Pobierz ppt "1 Implementacja algorytmów na procesory kart graficznych mgr inż. Krzysztof Wegner Katedra Telekomunikacji Multimedialnej i Mikroelektroniki Politechnika."

Podobne prezentacje


Reklamy Google