Procesory Graficzne
-
Upload
marek-keder -
Category
Documents
-
view
222 -
download
0
Transcript of Procesory Graficzne
-
7/25/2019 Procesory Graficzne
1/12
1
1. Procesory graficzne
1.1. Wstp
Procesory graficzne okrelane jako GPU (ang. Graphics Processing
Unit) realizuj#model przetwarzania drobnoziarnistego SIMD (ang.
Single Instruction Multiple Data). Procesory te charakteryzuj#si&bardzo
du(#moc#obliczeniow#, ktr#mo(na wykorzysta+nie tylko do
przetwarzania grafiki, a tak(e do wykonywania oblicze-nie zwi#zanych z
przetwarzaniem grafiki.
GPU posiadaj#du(#ilo+rdzeni nazywanych procesorami
strumieniowymi, ktre mog#wykonywa+te same operacje na r(nych
danych (strumieniach) przez co pojawia si& znaczne zrwnoleglenie
przetwarzania danych, a co za tym idzie znacz#ce przyspieszenie.
Wiod#ca w dziedzinie GPU firma Nvidia produkuje trzy rodziny uk/adw:
GE Force dla komputerw osobistych
Quatro - dla specjalizowanych stacji roboczych
Tesla - dla przetwarzania rwnoleg/ego w systemach
profsjonalnych
Klaster NVIDIA Tesla.
Klastry sk/adaj#si&z jednostek sk/adaj#cych si&z 4 procesorw GPU z
ktrych ka(dy posiada 250 rdzeni. Jednostki montowane s# w
obudowach 1U i umieszczane w szafach. Moc jednostki oko/o 4 Tflops.
PDF created with pdfFactory Pro trial version www.pdffactory.com
http://www.pdffactory.com/http://www.pdffactory.com/http://www.pdffactory.com/ -
7/25/2019 Procesory Graficzne
2/12
2
Rys. 1-1 Jednostka Tesla S2050 w obudowie 1U
PDF created with pdfFactory Pro trial version www.pdffactory.com
http://www.pdffactory.com/http://www.pdffactory.com/http://www.pdffactory.com/ -
7/25/2019 Procesory Graficzne
3/12
3
1.2. Architektura procesora graficznego
(Na przyk/adzie NVIDIA - GeForce GTX 200)
Procesor graficzny to sie+jednostek obliczeniowych wykonuj#cychrwnolegle kod programu.Podstawow#jednostk#ktra podlega przetwarzaniu jest w#tek. W#tkigrupowane s#w tworz#ce hierarchi&grupy jak:
Bloki (do 512 watkw)
osnowy (ang. Warp) 32 w#tki
Uk/ad GeForce GTX 200 posiada do 240 jednostek obliczeniowych.
Rys. 1-2 Architektura uk#adu GT200
Organizacja uk/adu:
Dziesi&+ jednostek TPC (ang. Thread Processing Cluster)
Ka(da z jednostek zawiera 3 multiprocesory strumieniowe SM (ang.
Streaming Multiprocessor)
Multiprocesor strumieniowy SM sk/ada si& z omiu procesorwstrumieniowych ST (ang. Streaming Multiprocessor)
PDF created with pdfFactory Pro trial version www.pdffactory.com
http://www.pdffactory.com/http://www.pdffactory.com/http://www.pdffactory.com/ -
7/25/2019 Procesory Graficzne
4/12
4
Rys. 1-3 Architektura multiprocesora strumieniowego ST
W sk/ad jej budowy wchodz#nast&puj#ce elementy:
Bufor instrukcji, bufor do ktrego /adowane s#instrukcje z komputera,w celu p0niejszego ich wykonania.
Pami&+cache sta/ych 8KB bufor sta/ych, zadaniem tego bufora jestprzyspieszenie odczytu z obszaru pami&ci sta/ej.
ST osiem jednostek obliczeniowych, ich zadaniem jestwykonywanie oblicze- pojedynczej precyzji. Ka(da z jednostekzawiera swj zestaw 32-bitowych rejestrw.
SFU zadaniem tych jednostek jest obliczanie funkcji przest&pnychnp. trygonometrycznych, wyk/adniczych i logarytmicznych.
Pami&+dzielona 16KB. Dost&p do tej pami&ci maj#wszystkie w#tki zdanej karty.
PDF created with pdfFactory Pro trial version www.pdffactory.com
http://www.pdffactory.com/http://www.pdffactory.com/http://www.pdffactory.com/ -
7/25/2019 Procesory Graficzne
5/12
5
1.3. Model pamici
Ka(dy w#tek posiada dost&p do nast&puj#cych typw pami&ci:
pami&ci lokalnej,
pami&ci dzielonej,
pami&ci sta/ych,
pami&ci tekstur
pami&ci globalnej
rejestrw
Rys. 1-4 Model pamici GPU
PDF created with pdfFactory Pro trial version www.pdffactory.com
http://www.pdffactory.com/http://www.pdffactory.com/http://www.pdffactory.com/ -
7/25/2019 Procesory Graficzne
6/12
6
Rejestry - dost&p do nich odbywa si&najszybciej.
Pami&+ lokalna - Dane ktre nie mieszcz# si& w rejestrachumieszczone b&d# w pami&ci lokalnej. Ka(dy w#tek ma w/asn#
pami&+lokaln#.
Pami&+ dzielona S/u(y do komunikacji pomi&dzy w#tkamiwchodz#cymi w sk/ad tego samego bloku.
Pami&+sta/ych przeznaczona tylko do odczytu. Widoczna dlawszystkich w#tkw.
Pami&+tekstur przeznaczona tylko do odczytu. Pami&+
zoptymalizowana jest pod k#tem odczytu danych znajduj#cych si&blisko siebie. Widoczna dla wszystkich w#tkw.
Pami&+globalna dost&p do niej maj#wszystkie w#tki jak i procesorg/wny. Przeznaczona do odczytu i zapisu.
PDF created with pdfFactory Pro trial version www.pdffactory.com
http://www.pdffactory.com/http://www.pdffactory.com/http://www.pdffactory.com/ -
7/25/2019 Procesory Graficzne
7/12
7
1.4. Przetwarzanie
Zasady przetwarzania na procesorach graficznych:
Podstawow#jednostk#przetwarzania jest w#tek. Multiprocesor
przydziela ka(dy w#tek do pojedynczego procesora skalarnego.
Ka(dy w#tek posiada swj w/asny zestaw instrukcji oraz stan
rejestrw. Watki rozpoczynaja wykonywanie kodu od tego samego
adresu.
Wszystkie w#tki z tej grupy wykonuj#t same instrukcje jednak, ka(dyz w#tkw mo(e si&rozga/&zia+i wykonywa+w/asn#cie(k&instrukcji.
Watki nie wykonujace kodu nalezacego do danego rozga/ezienia sausypiane. Po ukonczeniu wykonywania kodu ostatniej sciezkirozga/ezienia, watki zbiegaj#sie w tym samym miejscu programu ikontynuja przetwarzanie rwnolegle.
Zaleca si&aby wszystkie w#tki wykonywa/y te same instrukcje.
W#tki moga komunikowac sie za pomoca pamieci wsp/dzielonej
W#tki mog#si&synchronizowac za pomoca barier.
W#tki grupowane s#w grupy nazywane blokami w#tkw.
Bloki watkw moga, ale nie musza, byc wykonywane rwnolegle. Tensam program mo(e by+wykonywny na procesorze graficznym, ktrypotrafi przetwarzac jeden blok w danej chwili, jak i na procesorze,ktry jest w stanie przetwarza+wiele blokw w tym samym czasie
Szeregowanie w#tkw:
Przyporzadkowywanie blokw watkw do multiprocesorw jestzadaniem nale(acym do globalnego kontrolera szeregowania blokw(ang. Global Thread Block Scheduler), ktry komunikuje siebezposrednio z kazdym z multiprocesorw w uk/adzie poprzezdedykowan#szyn&instrukcji.
Po przydzieleniu bloku watkw do multiprocesora watki przypisywane
s#do konkretnych procesorw strumieniowych.
PDF created with pdfFactory Pro trial version www.pdffactory.com
http://www.pdffactory.com/http://www.pdffactory.com/http://www.pdffactory.com/ -
7/25/2019 Procesory Graficzne
8/12
8
1.5. R$nice pomidzy procesorem oglnegoprzeznaczenia a procesorem graficznym GPU
R(nice w sposobie przetwarzania: Procesor oglnego przeznaczenia skonstruowany jest tak, aby jak
najefektywniej wykonywa+jeden (lub kilka) w#tw sekwencyjnychinstrukcji.
Procesory graficzne przystosowane s#do szybkiego przetwarzaniawielu rwnolegle dzia/ajacych watkw.
Procesory graficzne zbudowane sa z wielu jednostek wykonawczych,
z ktrych kazda pracuje nad fragmentem danych
Liczba przetwarzanych w#tkw:
Procesory oglnego zastosowania moga wykonywa+1-2 watki nardzen.
Procesory graficzne potrafia wykonywac nawet 1024 watki w ramachjednego multiprocesora.
Prze/#czanie watkw: Prze/aczanie watkw w tradycyjnym CPU wymaga kilkuset cykli
procesora,
Procesor graficzny ma mozliwosc prze/aczenia kilkunastu watkw wciagu jednego cyklu.
R(nice w dost&pie do pami&ci:
Procesory graficzne - odczyt piksela z pamieci zawsze pociaga zasoba odczyt pikseli sasiadujacych. Procesory graficzne nie potrzebujaduzych pamieci cache
Procesory oglnego przeznaczenia korzystaj#z wielu obszarwpami&ci w tym samym czasie. Posiadaj#rozbudowane uk/ady pami&cipodr&cznych.
PDF created with pdfFactory Pro trial version www.pdffactory.com
http://www.pdffactory.com/http://www.pdffactory.com/http://www.pdffactory.com/ -
7/25/2019 Procesory Graficzne
9/12
9
R(nice w budowie CPU i GPU
PDF created with pdfFactory Pro trial version www.pdffactory.com
http://www.pdffactory.com/http://www.pdffactory.com/http://www.pdffactory.com/ -
7/25/2019 Procesory Graficzne
10/12
10
1.6. Model przetwarzania w technologii CUDA
Firma Nvidia opracowa/a model przetwarzania rwnoleg/ego na
produkowanych kartach graficznych wraz z interfejsem
programistycznym. Interfejs ten nosi nazw&CUDA (ang. Compute
Unified Device Architecture). Interfejs ten przeznaczony jest dla
programistw tworz#cych aplikacje w C i C++.
Karta graficzna jest koprocesorem dla g/wnego procesora ktry zleca
jej wykonanie oblicze-.
Karta graficzna do/#czona jest do komputera poprzez magistral&PCI i
komunikuj#si&z procesorem poprzez wspln#pami&+.
Kod programu jest sekwencj#kodu wykonywanego na procesorze
g/wnym i na procesorach graficznych karty.
Kod ktry ma by+wykonany przez procesory graficzne nosi nazw&
kernela. Kernel i dane na ktrych ma operowa+kopiowane s#do
pami&ci karty i tam wykonywane.
PDF created with pdfFactory Pro trial version www.pdffactory.com
http://www.pdffactory.com/http://www.pdffactory.com/http://www.pdffactory.com/ -
7/25/2019 Procesory Graficzne
11/12
11
Rys. 1-5 Wykonywanie programw na procesorze g#wnym iprocesorach graficznych
Kernel wykonuje si&w postaci w#tkw ktre grupowane s#w gridy i
bloki. Bloki s#strukturami dwu wymiarowymi i mog#by+zidentyfikowane
przez 2 wymiarowe wsp/rz&dne: blockIdx.x oraz blockIdx.y . W#tki
wchodz#ce w sk/ad bloku maj#organizacj&3 wymiarow#i
identyfikowane s#przez 3 zmienne threadIdx.x, threadIdx.y oraz
threadIdx.z. W#tek ma dost&p do tych zmiennych i wykorzystuje je do
adresowania struktur danych ktre ma przetwarza+. Blok mo(e sk/ada+
si&z do 512 w#tkw.
Wszystkie w#tki wykonuj#ten sam kod. Jednak ze wzgl&du na istnienie
instrukcji warunkowych mo(e si&zdarzy+(e fragmenty kodu
wykonywane przez r(ne w#tki b&d#r(ne. Wtedy poszczeglne ga/&zie
kodu wykonane b&d#sekwencyjnie. Ten w#tek ktry w danym
momencie nie wykonuje rozga/&zienia b&dzie czeka/na w#tek ktry go
PDF created with pdfFactory Pro trial version www.pdffactory.com
http://www.pdffactory.com/http://www.pdffactory.com/http://www.pdffactory.com/ -
7/25/2019 Procesory Graficzne
12/12
12
wykonuje. Gdy obydwie ga/&zie kodu si&wykonaj#w#tki znw b&d#
wykonywa+si&rwnolegle.
Rys. 1-6 Organizacja przetwarzania w modelu CUDA