Procesory Graficzne

download Procesory Graficzne

of 12

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