Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałApolinary Dziwiński Został zmieniony 10 lat temu
1
Obliczenia równoległe w grafice komputerowej
Michał Radziszewski
2
Plan prezentacji Równoległość – motywacja
Karty graficzne – rasteryzacja Techniki śledzenia promieni Przetwarzanie strumieniowe Technologie SLI i Crossfire Obliczenia GPGPU vs. maszyny wieloprocesorowe Podsumowanie
3
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
4
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
5
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
6
Rasteryzacja – cd.
7
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
8
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
9
Techniki śledzenia promieni – cd.
10
Techniki śledzenia promieni – cd.
11
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
12
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
13
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
14
Mapowanie fotonów – cd. © Henrik Wann Jensen
15
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
16
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
17
Przetwarzanie strumieniowe
Podejścia SIMD i MIMD A może jedna procedura i wiele danych?
18
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ść
19
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
20
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
21
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)
22
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
24
Obliczenia GPGPU GPGPU – General Purpose GPU – obliczenia ogól-nego przeznaczenia na procesorach graficznych © Goodnight, Woolley, Lewin, Luebke, Humphreys: Graphics Hardware 2003
25
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
26
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
27
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
28
Nvidia CUDA Compute Unified Device Architecture
Środowisko programistyczne dedykowane GPGPU Kompilator implementujący podzbiór języka C © Nvidia
29
Nvidia CUDA – GPU Tesla
30
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
31
Maszyny wieloprocesorowe – cd.
© Ulrich Drepper,
32
Ś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ń
33
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.