Obliczenia równoległe w grafice komputerowej

Slides:



Advertisements
Podobne prezentacje
Video DR-S Cyfrowy rejestrator wideo
Advertisements

Monitory i systemy graficzne
Modele oświetlenia Punktowe źródła światła Inne
Zadanie z dekompozycji
Skalowalny algorytm estymacji ruchu dla systemów rozproszonych
Implementacja algorytmów na procesory kart graficznych
Odśmiecanie Grzegorz Timoszuk
Podstawowe elementy zestawu komputerowego
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Opis, budowa, zasada działania, funkcje, technologie
Magistrala & mostki PN/PD
Schemat blokowy komputera
Systemy operacyjne Bibliografia:
Animacja Animacja jest procesem automatycznego generowania serii obrazów, gdy kolejny obraz przedstawia pewną zmianę w stosunku do poprzedniego. Ta definicja.
Autorzy: Łukasz Sztandarski Bartłomiej Granat
Budowa Komputera.
Heterogeniczne procesory wielordzeniowe w urządzeniach audio
Zastosowanie technologii CUDA w sztucznej inteligencji
Heterogeniczne procesory wielordzeniowe w urządzeniach audio
Heterogeniczne procesory wielordzeniowe w urządzeniach audio
Możliwości biblioteki logiczno-fizycznej opartej na systemie masa-sprężyna jako środowiska modelowania rzeczywistości wirtualnej. Przegląd zagadnień Seminarium.
Wykonał: Tomasz Nocek kl. III B
CUDA (Compute Unified Device Architecture)
Komputery macierzowe.
Architektura komputerów
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Rozwój aplikacji przy wykorzystaniu ASP.NET
CUDA & CUDA.NET – czyli istne CUDA Piotr Ablewski
Instytut Tele- i Radiotechniczny WARSZAWA
WinPakSE/PE Zintegrowany System Ochrony Obiektów
Opracował : Przemysław Drzymała
Modelowanie elementów świata 3D przy użyciu biblioteki Managed Directx
Budowa systemu komputerowego
Karty graficzne Karta graficzna, często określana też mianem akcelerator grafiki, to element komputera tworzący sygnał dla monitora. Podstawowym zadaniem.
Autor: Justyna Radomska
Budowa komputera.
Zaawansowane techniki renderingu
ZASTOSOWANIE RENDERINGU W GRAFICE KOMPUTEROWEJ
InTouch.
Podsystem graficzny i audio
Maszyna wirtualna ang. virtual machine, VM.
Buforowanie D e f i n i c j a.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Architektura PC.
Użytkowanie i programowanie Matlaba
Elementy zestawu komputerowego
Grafika komputerowa Jest to dziedzina rozwijająca się niezwykle dynamicznie, a jednocześnie wymagająca znacznej mocy obliczeniowej. Łatwo możemy to zaobserwować,
Wojciech Toman. Dotychczasowe podejście do oświetlenia Idea deferred shadingu Typowe problemy wraz z propozycjami rozwiązania Optymalizacja wydajności.
Algorytm Z-Bufora (bufora głębokości)
ZAPIS BLOKOWY ALGORYTMÓW
BUDOWA I ZASADA DZIAŁANIA
Grafika i komunikacja człowieka z komputerem
Grafika i komunikacja człowieka z komputerem
Grafika i komunikacja człowieka z komputerem
Xbox 360 a Playstation 3 technologie kodowania informacji
Metody komunikacji i synchronizacji w obliczeniach równoległych Michał Radziszewski.
Struktura systemu operacyjnego
Draver/GRK/cw3_result.jpg. Grafika 3D Wprowadzenie.
Grafika 2d - Podstawy. Kontakt Daniel Sadowski FTP: draver/GRK - wyklady.
WYSZUKIWANIE I OPTYMALIZACJA TRAS DLA URZĄDZEŃ MOBILNYCH ANDROID W OPARCIU O SIEĆ/GRAF DOSTĘPNYCH DRÓG Piotr Dąbrowski, Tomasz Pyśk, Piotr Wojciechowski.
S KANER TĘCZÓWKI OKA Praca dyplomowa inżynierska – Maciej Stępski
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Kompilacja iteracyjna Piotr Błaszyński. Szybkie programy Prawa ograniczające:  prawo Moore'a (jego granice),  prawo Gatesa,  prawo Amdahla,  prawo.
Schemat blokowy komputera
Optymalizacja programów Open-Source
CARAT Hardware-Zalecana konfiguracja
Twardy dysk - pamięć masowa
Podział mikroprocesorów
Informacje ogólne Mgr Inż. Jerzy Orlof
Zapis prezentacji:

Obliczenia równoległe w grafice komputerowej Michał Radziszewski

Plan prezentacji Równoległość – motywacja Karty graficzne – rasteryzacja Techniki śledzenia promieni Przetwarzanie strumieniowe Technologie SLI i Crossfire Obliczenia GPGPU vs. maszyny wieloprocesorowe Podsumowanie

Równoległość – motywacja Obecna technologia nie pozwala na zwięk-szenie częstotliwości ponad ~3GHz bez znacznego wzrostu poboru prądu Optymalizacje architektury też mają swoje granice © Tom’s Hardware

Równoległość – motywacja Obecnie jedyną możliwością znacznego zwiększenia mocy obliczeniowej pojedyn-czego komputera jest zwiększenie liczby procesorów bądź rdzeni w procesorze

Rasteryzacja Obiekty trójwymiarowe opisane poprzez tablice wierzchołków i trójkątów Przekształcanie wierzchołków niezależne Rysowanie trójkątów: poprzez bufor głębi, rozbicie na poszczególne piksele, wypełniane niezależnie Idealne do zrównoleglenia Niestety słaba jakość generowanej grafiki

Rasteryzacja – cd.

Rasteryzacja – cd. Podstawowy algorytm używany w grafice kompu-terowej – od początków tej dyscypliny do dziś W komputerach PC równoległe wykonanie znacznie wcześniej niż wiele rdzeni – od 2. połowy lat ‘90

Techniki śledzenia promieni Powstały w celu generacji grafiki o jakości znacznie przewyższającej rasteryzację Podstawowy algorytm: śledzenie promieni światła ‘pod prąd’, od kamery, szukając przecięć z elementami sceny odbicia od elementów uwzględnienie oświetlenia pochodzącego ze źródeł światła

Techniki śledzenia promieni – cd.

Techniki śledzenia promieni – cd.

Techniki śledzenia promieni – cd. Przy podstawowej metodzie obliczanie kolo-ru każdego fragmentu obrazu wynikowego jest niezależne Metody bardziej zaawansowane wprowadza-ją pewne zależności Mimo to, śledzenie promieni jest doskona-łym kandydatem do zrównoleglenia Źle działa na kartach graficznych

Techniki śledzenia promieni – cd. Do zrównoleglenia algorytmów śledzenia promieni najlepiej nadają się maszyny wieloprocesorowe Od opublikowania biblioteki DirectX 9 są próby uruchomienia tych algorytmów na kartach graficznych Ta druga opcja, mimo nieznacznego wzrostu wydajności, wciąż narzuca zbyt poważne ograniczenia na oprogramowanie

Mapowanie fotonów Zaawansowany algorytm oparty o śledzenie promieni Technika dwuprzebiegowa śledzenie promieni od źródeł światła, rejestracja fotonów w mapie w punktach przecięcia z geometrią sceny rendering podobnie jak w zwykłej metodzie śledzenia promieni, ale z użyciem mapy fotonów zamiast oryginalnych źródeł światła

Mapowanie fotonów – cd. © Henrik Wann Jensen

Mapowanie fotonów – cd. Bardzo dobre rezultaty Niestety duże zużycie pamięci, w szczególności dla złożonych scen Nieco trudniejsze w zrównolegleniu, niż podstawowy algorytm śledzenia promieni Śledzenie fotonów – zrównoleglenie podobnie jak w przypadku metody podstawowej, rejestracja fotonów w tablicy

Mapowanie fotonów – cd. Nieco trudniejsze w zrównolegleniu, niż podstawowy algorytm śledzenia promieni budowa struktury kd-tree na podstawie tablicy fotonów – tez można zrównoleglić, choć nieco trudniej rendering mapy fotonów – zrównoleglenie identyczne jak w przypadku metody podstawowej

Przetwarzanie strumieniowe Podejścia SIMD i MIMD A może jedna procedura i wiele danych?

Przetwarzanie strumieniowe – cd. Model pewnej klasy algorytmów równoległych Abstrakcyjny model procesora strumieniowe-go pozwala wykonać dowolny program na każdym elemencie strumienia wejściowego Przetwarzanie elementów strumienia niezależne, bez zachowania kolejności Procesor strumieniowy narzuca pewne ograniczenia, ale oferuje lepszą wydajność

Przetwarzanie strumieniowe – cd. Podstawowa metoda śledzenia promieni jest idealnym kandydatem na przetwarzanie strumieniowe Opis sceny reprezentowany przez pamięć tylko do odczytu Strumień wejściowy – numery promieni Strumień wyjściowy – światło wpadające do kamery wzdłuż danego promienia

Przetwarzanie strumieniowe – cd. Niestety, mapowanie fotonów nie daje się opisać przy pomocy jednej procedury Pierwszy krok strumieniowy – numery fotonów na wejściu, ich energie i położenia na wyjściu Budowa mapy fotonów na podstawie wyjścia poprzedniego kroku, ogólny (nie-strumieniowy) algorytm równoległy Drugi krok strumieniowy – rendering, w pamięci do odczytu opis sceny + mapa fotonów

Technologie SLI/Crossfire Zwiększenie mocy obliczeniowej poprzez użycie kilku kart graficznych bądź karty dwuprocesorowej Metody SFR (Split Frame Rendering) i AFR (Alternate Frame Rendering)

Technologie SLI/Crossfire – cd. Niestety, technologie te są przykładem na to, jak teoretycznie bardzo dobre rozwiązanie można zepsuć w praktyce Replikacja danych w pamięci, karta mająca w sloganach reklamowych 1GB pamięci potrafi przechowywać 512MB danych Niektóre aplikacje mogą skorzystać z trybu multi-GPU, a inne nie (nie wiadomo dlaczego) Niestabilne działanie, błędy w sterownikach

Obliczenia GPGPU GPGPU – General Purpose GPU – obliczenia ogól-nego przeznaczenia na procesorach graficznych © Goodnight, Woolley, Lewin, Luebke, Humphreys: Graphics Hardware 2003

Obliczenia GPGPU – cd. Ogromna moc obliczeniowa (450 GFlops peak Nvidia Tesla GPU vs. 80 GFlops peak 4-rdzeniowego 3GHz CPU) Pojedyncza precyzja Ograniczenia na możliwe algorytmy Brak zarządzania pamięcią, dynamicznych struktur danych, rekurencji, funkcji wirtual-nych, max. 1.5GB pamięci na procesor

Algorytmy GPGPU Algebra liniowa (np. mnożenie macierzy) Równania różniczkowe cząstkowe FFT I wiele innych, ogólnie: wszystkie te algorytmy, które operują na regularnych strukturach danych Budowa i przeszukiwanie drzew niestety działa źle

Algorytmy GPGPU – cd. Jeżeli dany algorytm da się bezproblemowo uruchomić w technologii GPGPU, to algorytm ten będzie działał wielokrotnie szybciej niż na CPU W przeciwnym wypadku straty wydajności na podziale na elementy CPU i GPGPU oraz na transmisje danych powodują nieopłacal-ność podejścia GPGPU

Nvidia CUDA Compute Unified Device Architecture Środowisko programistyczne dedykowane GPGPU Kompilator implementujący podzbiór języka C © Nvidia

Nvidia CUDA – GPU Tesla

Maszyny wieloprocesorowe Moc obliczeniowa znacznie większa niż w przypadku maszyn jednoprocesorowych Jednak wyraźnie mniejsza niż nawet pojedynczego GPU Możliwość uruchamiania dowolnych algorytmów, podwójna precyzja W przypadku rozwiązań Intela wąskim gardłem jest dostęp do pamięci, pod koniec tego roku ma to ulec poprawie

Maszyny wieloprocesorowe – cd. © Ulrich Drepper, http://lwn.net

Śledzenie promieni CPU vs. GPU Algorytm używa nieregularnych struktur danych – np. drzew kd do przechowywania geometrii sceny Trudność tę można obejść, jednak kosztem utraty wydajności Obecne implementacje GPU nieco szybsze, jednak za cenę poważnych ograniczeń (np. same trójkąty, niewielkie sceny) i nieprecy-zyjnych obliczeń

Podsumowanie Do uruchamiania algorytmu rasteryzacji najlepiej nadaje się wydajna karta graficzna z pojedynczym GPU Należy unikać technologii SLI i Crossfire Do śledzenia promieni najlepsze są maszyny wieloprocesorowe, oparte o CPU Rozwiązania GPGPU zapewniają ogromną moc obliczeniową, niestety dla wąskiej klasy algorytmów