R600 pod drobnohľadom

Sampler hardware


 

Každé výraznejšie zvýšenie výkonu shader core, voči predchádzajúcej architektonickej generácii sa musí odzrkadliť aj na zvýšení výkonu a schopností inej časti čipu. Nie je preto prekvapením, že sa viditeľne zvýšili schopnosti a výkon práve samplerov voči R580 alebo R520. Takisto môžno argumentovať, že to čip R600 aj potreboval pri pohľade na sampler hardware konkurencie – G80.

Čip R600 obsahuje štvoricu výpočtových jednotiek, ktoré sú väčšinou nazývané nie celkom presne texturovacími jednotkami (TMUs). My ich ale nazývame presnejšie „samplermi“ ,nakoľko odzrkadluje tento názov ich väčšie schopnosti filtrovať a adresovať ako by ste od textúrovacej jednotky očakávali.

Každá sampler jednotka dokáže adresovať 8 adries, fetch 16 FP32 hodnôt pre bilineárne filtrovanie a 4 FP32 hodnoty pre point sampling, všetko samozrejme za 1 takt. Teda vykonávať bilineárne filtrovanie s výkonom 4 INT8 alebo 4 FP 16 bilerps za takt z týchto fetch hodnôt. Neverte tomu čo ste mohli inde čítať o tom, že R600 vykonáva FP 16 filtrovanie s polovičným výkonom – nakoľko to nie je pravda. INT16 s 3 alebo 4 kanálmi ale čip nevie počítať s plnou rýchlosťou. Benchmark výsledky tieto tvrdenia potvrďujú – INT8 a FP 16 bilineárne filtrovanie s 1 až 4 kanálmi vykazujú rovnaké hodnoty.

Pokiaľ sa teraz zameriame na unifikovaný data fetch v shaderoch, dokáže čip vykonať Fetch4 fetch namiesto bilineárneho fetch za 1 takt. Ako bolo spomínané už na predchádzajúcej strane – každá sampler jednotka je „priviazná“ k určitému sub „quadu“ v shader clustery a odovzdávaja jemu potrebné dáta. Podporované je samozrejme aj 32-bit RGBE filtrovanie (nakoľko si to vyžadujú Direct3D 10 špecifikácie), aby mohli vývojári použiť tento formát pre HDR rendering vo svojich nových enginoch. Okrem toho všetkého dokáže čip pristupovať k veľmi veľkym - až 8Kx8K textúram, pre fetch alebo filtrovacie operácie.

Všetky fetch a filtrovacie schopnosti sú dostupné pre každý druh threadov, nakoľko nevedia sampler jednotky rozoznať čo ich využíva. Každá sampler jednotka má dosah na 32KiB lokálnu pamäť L1 cache a zdielanú L2 cache veľkosti až 256KiB, aby sa minimalizovali „misses“ (straty) L1 cache a maximalizovali „hits“ (zásahy).

Čip využíva okrem toho vertex cache pre urýchlenie nefiltrovaných fetch-ov. R600 podpruje tie isté dekompresné formáty z pamäti cache ako R580 pre DXT formáty a 1, 2 kanálové „hĺbkové“ formáty od ATi.

Všetky filtrovacie stupne sú dostupné pre všetky podporované formáty spolu s nelineárnymi. Napriek týmto vylepšeniam sa výraznejšia vylepšenia nedotkli AF (anizotropného filtra). HQAF R5xx série je teraz štandardne pri R600 zapnuté. Takisto sa mierne zlepšila presnosť 16xAF a bolo odstránených pár bugov, ktoré spôsobovali v určitých scénach shimmering textúr. R600 vykazuje napriek tomu v AF testerovi takmer identický obraz ako R580/R520. Má rovnaký výber mipmap levelov a v určitých uhloch (podotýkam veľmi ostrých) nefiltruje matematicky korektne 16x ale len s nižším AF. Kvalita AF R600 zostáva napriek tomu subjektívne na vysokej úrovni, ale objektívne je AF konkurencie – G80 lepšie. R600 podporuje aj urýchľovanie depth stencil textúr a PCF, vďaka čomu získavajú karty založené na tomto čipe v benchmarku „3DMark 2006“ viditeľný prírastok výkonu za 1 takt.

Počet jednotiek a ich fetch, filter výkon je v tomto čipe vyšší ako v R580, napriek tomu je toto oblasť v ktorej R600 (niekedy až veľmi) zaostáva za výkonom sampler jednotiek G80. Sampler jednotky pracujú na base frekvencii 742MHz ako zvyšok čipu. U G80 s jeho ortogonálnym sampler hardwarom je filtrovací výkon len záležitosť, ktorá závisí od dostupných bilerps za 1 takt, pokiaľ neberieme v úvahu priepustnosť pamäte.
 


 

Samozrejme netreba zabúdnúť, že sampler hardware R600 nepracuje s inými výpočtovými jednotkami v pevnom poradí – je „fully threaded“. Obsahuje arbiter a sequencer určený výhradne pre sampler jednotky. Je to hardware podobný tomu, ktorý má každý shader cluster v shader core, ale s rozdielnou heuristikou riadenia spracovávaných threadov. Práve vďaka tomu, že je sampler array „fully threaded“ sa mu darí skrývať latenciu, využívajúc pamäťový radič , aby bolo zaistené vyťaženie shader core, ktorý predstavuje clienta sampler array cez pamäťový radič. Pamätáte sa ešte na to ako som písal, že shader core môže dať uspať a odložiť thready pokiaľ čaká na sampler dáta? Tie dva schedulers spolupracujú, aby bolo zabezpäčené práve toto uspatie. Lebo prístup k pamäti DRAM pre získanie dáta a nasledovné odoslanie cez obvody pre filtrovanie môže stáť až stovky voľných taktov. Veď nechceme predsa nechať zbytočne čakať shader core.

Ďalej sa pozrieme na ROPs.

Komentáre (18)
subz3ro
Good work, cruxo. Opäť sa ukazuje, kto je u nás odborníkom v oblasti technológií grafických kariet :)
gabriel
Tak musim pochvalit -> clanok je po stranke obsahovej fantasticky na svoje si pridu urcite vsetci ako bezni tak aj velmi narocni citatelia. Co je vsak este lepsie je forma akou je clanok pisany -> tentokrat je to resp. to precita aj bezny clovek.
epto
fiha. riadne dlhy clanok. aj ked musim sa priznat, mne obycajnemu cloveku vela pojmov nic nehovorilo. nemozem povedat, ze som v oblasti PC "lama". PC pouzivam uz roky, zhruba 15-20 som ich uz aj poskladal. ale moj zaujem o vykonnu graficku kartu uz nie je na prvom mieste nakolko PC vyuzivam hlavne na pracu. tymto nechcem clanok kritizovat, len ze som niektore casti rovno preskocil a precital az vyhodnotenie.
Pavol Bobik
Ano, dobra recenzia, klobu dole :)
MichiGen
Naozaj skvely rozbor, myslim ze vsetko dolezite sa podarilo v tejto recenzii obsiahnut :)
koro
good job
Ryko
Tak musim zatlieskat cruxovi... uz davno som necital tak kvalitne spracovyn clanok v oblasti graf.kariet... absoutne vycerpavajuce informacie o zlozeni a fungovani chipu... imho by to mozno chcelo vysvetlit niektore odborne pojmy, aby bol clanok pristupnejsi pre sirsie spektrum ludi... lae zas takych clankov je na nete dost... este raz vdaka za squele citanie...
glide
proste perfektne
thimy
Nebolo by odveci opravit: 12 - Custom Filter AntiAlaising Premysliet zakladnu myslienku, spracovat podklady a vôbec napisat takyto clanok muselo zabrat kopu casu. fakt respect
A2C
Klaniam sa
noben
....asi nepoviem nič, lebo mám stále otvorené ústa a oči vyplešťené na monitore....
cpy
Musim uznat tak dobre a vystizne zrobenu recenziu som este necital (alebo si nepamatam zeby som taku cital) Tie videa na porovnanie su fakt vybornym doplnkom recenzie.
teho
vrela vdaka za super clanok na slovenskom nete nevidaneee.
Dwarden
clanek pekny, ale skoda tech starych ovladacu, bylo by fajn otestovat znovu s nadchazejicim ovladaci 7.8 (uz RC3 ukazuje znacne zlepseni ve vykonu 2xxx serie pri pouziti AA, take je tu novy AA mod k dispozici od ovladacu 7.7)
crux2005
Žiaľ, potom by sa dalo čakať v podstate donekonečna. Samozrejme na prepad výkon s AA a novými ovládačmi sa v blízkej budúcnosti pozrieme ;-) "take je tu novy AA mod k dispozici od ovladacu 7.7" Aký nový AA mod máte na mysli ?
mirke
Tak konecne som si nasiel cas to precitat a musim uznat, ze z mojho pohladu sa jedna o kvalitnu a rozsiahlu recenziu, ktora pokial viem nema na nete obdoby. Patri ti velka poklona odo mna. Inac velmi rad som pomohol, mozno aj nabuduce zase s novym highendo od ATI :D
Dwarden
nejde mi o nekonecne cekani spis o o to, ze test byl proveden na 7.5 coz znaci 3 mesice zpet tj. otazka zni proc ne 7.6 nebo 7.7 jinak ten novy AA je popsan v seznamu zmen u 7.7 " 12x and 24x Anti-Aliasing support for the ATI Radeon™ HD 2900 XT and ATI Radeon™ HD 2600 Series This release of Catalyst™ introduces support for 12X and 24X Anti-Aliasing for the ATI Radeon™ HD 2900 XT, and ATI Radeon™ HD 2600 Series. These new Anti-Aliasing settings are available through the new Anti-Aliasing Edge Detect Filter. Selecting 4X Anti-Aliasing plus selecting the Edge Detect filter deliver the equivalent of 12X Anti-Aliasing. Selecting 8X Anti-Aliasing plus selecting the Edge Detect filter deliver the equivalent of 24X Anti-Aliasing. " dalsi co jsem mel na mysli je moznost aktualizace vysledku testu napr. tedy az vyjdou 7.8 s komentarem typu "AMD.ATI evidentne zlepsuje/zhorsuje ovladace" :) a napriklad pridat test kvality prehravani videa :)
crux2005
Ovládač Catalyst 7.5 sme boli nútený použiť, nakoľko predstavoval v dobe testovania najaktuálnejšie WHQL ovládač. Catalysty 7.7 sme nemohli použiť nakoľko sa objavili až testne pred uverejnením článku. Okrem toho sme sa pozreli aj na výkon Catalystov 7.6, avšak v daných testoch sme nezaznamenali voči Catalystom 7.5 žiadne výkonnostné zmeny. Pokiaľ si pozorne čítal, tak si si určite všimol, že som túto zmenu spomenul v článku ;-) "Okrem toho je od Catalystu 7.7 dostupný štandardne aj edge detect mód. (Poznámka: my sme museli pre testovanie kvality EDCFAA použiť ešte beta ovládače a špeciálnu utilitku, ktorá nám túto možnosť sprístupnila)" Ďakujem za návrhy, budem určite rozmýšlať na ich možnom spracovaní. btw: každá pozitívna odoza ma samozrejme teší :)
Pridať nový komentár
TOPlist