Procesor strumieniowy - wpływ na liczenie BOINC

Zaczęty przez GRID, 01 Styczeń 2012, 21:47

GRID

Czasami na forum czytam że jakaś tam karta graficzna ma tyle i tyle procesorów strumieniowych
Co to jest procesor strumieniowy ? I jaki ma wpływ na szybkość liczenia BOINC? Czy karta graficzna ma jeszcze inne podzespoły odpowiedzialne za szybkość przetwarzania projektów BOINC?.

mimeq

#1
Jakis staroc ale chyba tlumaczy zasade na starszym modelu ATI

http://www.in4.pl/recenzje.htm?rec_id=413&rectr_str_numer=2

Nieliczac taktowania rdzeni/pamieci sa bodajze 3 podstawowe parametry okreslajce wydajnosc karty:


  • ROP -potoki renderujące - Potoczna nazwa jednostek w chipsecie karty graficznej zajmujących się przetwarzaniem pikseli obrazu - nadawaniem im koloru odpowiedniego do ich położenia na obrazie. Karta graficzna może w jednym cyklu zegarowym jednocześnie renderować tyle pikseli, ile ma potoków renderujących. Karty z większą liczbą potoków są najczęściej wydajniejsze od ich odpowiedników z mniejszą liczbą potoków.
  • jednostki teksturujące - Do ich zadań należą wszystkie operacje na teksturach, w tym: kompresja, dekompresja tekstur, wykonywanie operacji filtrowania anizotropowego dwu- bądź trzyliniowego, mapowanie tekstur, mapowanie nierówności (ang. bump-mapping), wygładzanie krawędzi (ang. anti-aliasing), nakładanie cieni oraz dodawanie w procesie postprocessingu tzw. efektów atmosferycznych (mgły, dymu itp.)
  • procesory strumieniowe


U obu producentow wystepuja PS sa jednak inaczej zbudowane i do chwili obecnej najsliniesza karta NV posiada 1024 PS (dwurdzeniowa GTX590), natomiast najsilniejszy model ATI z rodziny 6xxx (dwurdzeniowa 6990) 3072 SPu

Do obliczen BOINC znaczenie ma chyba tylko ilosc PS/CUDA - ale to tylko moje amatorskie gdybanie  %)









Argento

Nie jestem pewien, ale przetwarzanie strumieniowe jest architekturą obróbki grafiki, a tym samym właśnie do tego służą ów jednostki.


--
Pozdrawiam
Z poważaniem
Argento

Agbar

Procesor strumieniowy to już raczej architektura procesora (wiem: masło maślane).

Większa ilość procesorów pozwala na większe zrównoleglenie.
GPU działa mniej więcej tak:

Masz program i dane. Ładujesz to na GPU. Dla każdego procesora ładujesz odpowiednie dane, ale wszystkie wykonują ten sam program. W sensie: wszystkie wykonują tę samą instrukcję w tym samym momencie. Trik polega na tym, że na innych danych.

Jeżeli zadanie składa się z niezależnych podzadań to pewnie da się każde podzadanie wykonać osobno. Np. jeżeli miałbyś zadanie które polega na podzieleniu tysiąca liczb przez 3, można napisać program, który sprawdzi ile masz dostępnych procesorów  (np. 128) i wykona dzielenie na wszystkich dostępnych. W ten sposób zajmie to ok. 10 razy wykonanie pojedynczego dzielenia.

Ale gdybyś miał dostęnych 160 procesorów zajęłoby to ok. 6 razy pojedyncze dzielenie, czyli 1/3 czasu mniej.

Oczywiście przykład jest dziecinnie prosty, a w rzeczywistości może się okazać, że zadanie nie jest możliwe do zrównoleglenia w takim stopniu. Procesor GPU jest też znacznie bardziej skomplikowany i nie wszystkie (pod?)procesory robią to samo. Dalej dochodzą jeszcze takie czynniki jak przepustowość pamięci, PCI-Express (szyny), wszędzie są jakieś cache, kolejki, a w sterownikach siedzi diabeł ]:->