Anoniem: 126513 schreef op dinsdag 14 maart 2006 @ 22:54:
[...]
Mss kun je nog even vertellen waarom de shaderprestatie ohne AA van de R580 in bijv FEAR tegenvalt tegenover de GTX, komt dit omdat de G71 2 ALU's per pipeline heeft, dus eigenlijk krachtiger is dan ze lijkt? Maar de R580 heeft toch ook 2,5 ALU per pipeline. Natuurlijk zijn deze twee manieren van pipeline/shaderengine erg verschillend van elkaar en mss slecht met elkaar te vergelijken. Duidelijk is dat ATi meer aandacht heeft besteed aan het AA gedeelte icm met HDR. Kost dit hun extra transistoren speciaal toegevoegt voor hardwarematige HDR+AA, of ( ik weet niet of AA bij ATi ook bij de ROP's wordt behandeld, neem aan van wel ) doen deze ROP's dat gewoon ernaast. En geen TWIMTBP verhaal bitte, ATi heeft veel meer geld!
Je moet hier vooral kijken naar de manier hoe de pipelines zijn opgebouwd en hoe de ROPs werken. De ROPs doen ook bij ATi de AA. Maar daar waar het bij nVidia OF FP blending OF MSAA is, is het bij ATi een kwestie van EN FP Blending EN MSAA. Dit kost meer transistoren en daar heeft ATi ook het een en ander in geinvesteerd vnl in veelzijdigheid en snelheid (wat niet meer dan logisch is dat ze dat zouden doen omdat Xenos dit ook allemaal kan). Ik heb
hier een klein stukje geschreven in de FAQ van het ATi topic.
Daaruit een kleine quote:
Als een shader unit z'n taak sneller af heeft dan een ROP, wat voorkomt in scenarios met weinig shader gebruik, dan is het aan ROPs dus de beperkende factor en zal R580 nooit sneller zijn dan R520 (behalve dan door de iets hogere kloksnelheid).
Als er echter enorm veel shaders (of lange shaders) gebruikt worden, dan zijn het de ROPs die dus moeten wachten op de shaderunits en zal de R580 in het extreme geval zelfs tot 3x sneller kunnen zijn dan R520.
F.E.A.R. is nog maar het begin van shaderheavy games. Eigenlijk begon het al min of meer met Far Cry (daarna HL2 en daarna BF2/COD2), maar hier wist nVidia het bij te benen door brute kracht (dus gewoon meer fragment pipes en texture units toe te voegen ten op zichte van ATi in het kader van "more is better"). Hoe langer de shaders worden en/of hoe meer shaders er gebruikt worden, des te meer zal de R580 tot z'n recht komen. ATi pakt het dus iets verfijnder aan dan nVidia. Ook zij gaan "more is better", maar gaan dan intern (dus binnen de fragmentpipe) de breedte in itt extern in de breedte bij nV. Bij F.E.A.R. is het een mengelmoesje van de situatie dat de ROP uit z'n neus staat te vreten of dat de pixelshaderprocessors staan te niksen. Wellicht kan Oblivion iets meer helderheid bieden.
En over de ALUs per fragment pipeline haal je wat dingen door elkaar. Beide hebben er 2, maar ze zijn fundamenteel verschillend. Hier zit het grote verschil bij beide IHVs. Simpel gezegd:
nVidia:
- ALU 1 (ADD/MUL/MADD
of Texture Addressing Ops) [fully featured, maar is met 1 van de 2 bezig]
- ALU 2 (ADD/MUL/MADD) [fully featured]
ATi:
- ALU 1 (ADD + Input Modifier, Scalar ADD + Input Modifier)
- ALU 2 (ADD/MUL/MADD, Scalar ADD/MUL/MADD) [fully featured]
- Branch Execution Unit (1 Flow Control Instruction)
Bij nVidia bestaat elke pixelshaderprocessor uit 2 ALUs, die fully featured zijn (MADD/ADD/MUL). Alleen een van de twee ALUs per pixelshaderprocessor hour zich ook bezig met Texture Addressing. In het meest optimale geval kunnen er dus 48 MADD instructies worden gegeven die met pixelprocessing te maken hebben, maar meestal zullen het er minder zijn, omdat er ook getextured moet worden. In vergelijking tot NV40: deze had ook 2 ALUs per fragment pipe, alleen eentje was een MADD en de andere was een MUL. Daarvan hield één van de twee zich ook nog bezig met texture ops. Bij G70 zijn de beide ALUs gelijk getrokken, behalve dan dat eentje zich nog altijd met texture ops bezig houdt.
Bij ATi bestaat elk van de 48 pixelshaderprocessors uit 2 ALUs, eentje is fully featured (MADD/ADD/MUL), de ander is een mini-ALU (ADD) en daarnaast is er ook nog per stuk een dedicated branching unit. Daarnaast heeft ATi aparte units for Texture Addressing. In het meest optimale geval kunnen er dus 96 ADD instructies worden uitgevoerd, of 48 MADDs en 48 ADDs.
Zoals je ziet... hoe meer shaders er gebruikt gaan worden, des te happier voelt de R580 zich thuis. En des te meer dynamic branching er gebruikt wordt, des te meer zal de R580 gaan schijnen (ook onder andere door de threaded architecture). Op dit moment zitten we in een situatie waarin we duidelijk naar meer shaderpower gaan.
G71 houdt R580 echter wel netjes bij... hoe dan? Pure brute kracht.
24 fragment pipes @ 650 Mhz vs 16 fragment pipes @ 650Mhz (dus een 50% hogere fillrate bij nV)
24 texture mapping units @ 650 Mhz vs 16 texture @ 650Mhz (dus een 50% hogere texture rate)
8 vertexshaders @ 700 Mhz vs 8 vertex shaders @ 650Mhz
32 Z/Stencil ops @ 650Mhz vs 16 Z/Stencil ops @ 650Mhz.
De verschillen met AA/AF zijn voornamelijk te wijten aan de memory controller, ringbus en ROP efficientie van ATi (bv min of meer verdubbelde Z/Stencil met 2xAA/4xAA). Maar wanneer er meer shaders aan te pas komen zal het verschil groter worden tussen R580 en G71, ten voordele van R580, want die is per fragment pipe nu efficienter.
Waarom denk je dat ATi al een tijd lang aan devs geen X1800 gaf om games op te ontwikkelen, maar een X1600? Zodat ze gewend konden raken aan de 3 pixelshaderunits per pipe configuratie.
Technical PR Officer @ MSI Europe. My thoughts and opinions may not reflect the ones of my employer.