Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 22 reacties
Bron: 3DCenter

3DCenter heeft de eerste van drie artikelen geplaatst die dieper ingaan op de architectuur van de nVidia NV40-chip, het kloppende hart van GeForce 6800 Ultra grafische kaarten. In dit eerste artikel legt 3DCenter de werking van de pipelines uit. In deel twee zal 3DCenter uitleggen hoe het maximum uit deze pipelines kan worden gehaald. In deel drie ten slotte, zal het zich vooral bezighouden met versie 3.0 van de shaders en andere mogelijkheden van de NV40.

Elke pipeline van de NV40 bestaat uit een tweetal Shader Units. De eerste kan een bewerking op een textuur uitvoeren, een vermenigvuldigingsinstructie (MUL) of een speciale functie uitvoeren. De tweede eenheid kan een vermenigvuldigings operatie samen met een optelling uitvoeren (MAD) of een Dot3-operatie uitvoeren. Deze operatie wordt gebruikt voor onder andere bumpmapping. Daarnaast is er in elke pipeline ook nog een mini-FPU en specifieke hardware voor DirectX 7- en DirectX 8-functies aanwezig. Elke Shader Unit heeft ook ondersteuning voor een aantal specifieke functies voor Pixelshader 2.0. Deze functies zitten echter verdeeld over beide units. Hierdoor kan de NV40 tot vier instructies per kloktik verwerken in een shaderunit. Deze instructies moeten dan wel allemaal verschillend zijn. Dit in tegenstelling tot ATi's R420 (Radeon X800), die maar twee instructies per pipeline en per kloktik kan uitvoeren. Dit mogen dan wel weer twee dezelfde instructies zijn.

nVidia NV40 architectuur
Moderatie-faq Wijzig weergave

Reacties (22)

3Dcenter maakt het verhaal verwarrend, en suggereert naar mening uiteindelijk verkeerde zaken.

Wordt een lang verhaal, maar maximaal kan de X800 5 instructies per klok uitvoeren, en 6800 4 instructies per klok. Maar er zitten haken en ogen aan in welke situatie je dat kan doen....

Neem even Beyond3D er bij. Daar staan beide cores volledig beschreven:
http://www.beyond3d.com/reviews/ati/r420_x800/index.php?p=8
http://www.beyond3d.com/previews/nvidia/nv40/index.php?p=10

De X800 heeft 2 ALU's, waarvan 1 volledig, en een met een beperkte groep instructies. (Hoe beperkt is niet duidelijk)
Beide ALU's kunnen simultaan 1 vector van 3 componenten en 1 scalar behandelen.
Daarnaast zit er een parallalle texture address in, zodat je tot maximaal 5 instructies per tik komt.

Bij de 6800 zitten er ook 2 ALU's in. Die ALU's hebben 4 componenten, die willekeurig in tweeen opgesplits kan worden. Bij 1 vector van 3 componenten, en 1 scalar van 1 component, ziet dat er dus gelijk uit als die van ATI.
De texture adress zit geintegreerd in de eerste ALU, zodat je OF de ALU, of de texture Adress gebruikt.
Dus maximaal 4 instructies (twee ALU's) per klok.

Als ik het goed begrijp komt 3dcenter als volgt aan hun waarden: Zij vinden de gelimiteerde ALU van ATI geen echte ALU, en laten 'm daarom helemaal weg...
We don't regard Radeon's Mini-FPUs as "real" shading units, because they are not able to perform any instruction.
De parrallel texture adress hebben ze simpelweg vergeten. (Misschien niet aan gedacht dat die anders werkt als bij NVidia). Dus komen ze tot 1 ALU, met 2 instructies per klok.

Interessant is dat 3dcenter i.t.t. Beyond3D aangeeft dat de ALU's van de 6800 geen van beiden volledig zijn. Maar ze gaan ze wel beiden meetellen. Beetje raar, als je net de onvolledig ALU van de X800 heb genegeerd, hetgeen ze zelf ook opmerken:
But, inconsequently, we are counting two shader units for NV40's pipes, while both units are limited also.
Persoonlijk snap ik daar niets van... zelf tot de conclusie komen dat je inconsequent bent, en desondanks gewoon doorgaan....

Dus komen ze tot de conclusie dat de 6800 4 instructies kan doen, (2 ALU's, met 2 instructies) mits de instructies dusdanig zijn dat beide ALU's ze in hun instructieset hebben zitten. De instructies moeten verschillend zijn.

Maar dat vergelijken ze dan met complete instructie set voor de X800. En dat is volgens hun dus 2 instructies.
Heel raar, want volgens de redenatie van verschillende instructies zodat iedere ALU zijn werk perfect kan doen, kan de X800 5 instructies uitvoeren.

Ga je alleen uit van complete instructie sets, dan kan de 6800 er 2 doen, en de X800 3. (2 uit de ALU, plus een texture fetch.)


Ik kan niet anders concluderen dat 3dcenter een rare gedachtenkronkel maakt. Je kunt met deze vergelijkingen niet anders uitkomen, dan dat de X800 meer instructies per klok aankan, dan de 6800.


In de praktijk zitten er natuurlijk nog wat extra adders onder het gras. Een van de vragen is natuurlijk hoe beperkt de instructiesets van de betreffende ALU's is bij ATI en NVidia, en hoe vaak je in de situatie komt dat een ALU de instructie niet kan uitvoeren. Dat kan bij de verschillende cores verschillend uitpakken. Sterker, dat kan bij verschillende shaders verschillend uitpakken!
Verder kan de parallelle texture adress van ATI een zeer groot verschil maken, aangezien hij nog steeds 5 instructies kan leveren, (2 volledig ALU, 2 kleine ALU, 1 texture) terwijl NVidia dan tot 3 instructies teruggaat (1 texture, 2 kleine ALU).
Als laatste kan NVidia twee vectors met 2 componeten tegelijk behandelen in hun ALU, terwijl ATI dat tweemaal door hun vector ALU moet laten doen... Vraag is dan natuurlijk weer hoe vaak dat voorkomt, en of de renderer het zaakje zodanig kan rangschikkend dat de scalar ALU ook aan het werk wordt gezet....


Ik denk niet dat je serieus tot de conclusie kunt komen dat de 6800 in de praktijk meer instructies per klok kan uitvoeren dan de X800.
En bedenk je dan nog wel even dat de X800 op een hogere klok draait...
Gelukkig zijn er nog mensen die wel begrijpen hoe het zit en 3Dcenter kunnen corrigeren. Ze spreken zichzelf inderdaad gigantisch tegen en komen op die manier tot dat bizarre verhaal.

Maar dat is niet bepaald de eerste keer voor die site. Als je tot in de details wilt weten hoe een gpu in elkaar zit dan is er eigenlijk maar 1 site waar je betrouwbare informatie kan krijgen, en dat is beyond3D waar jij ook al naar refereerde.
3DCenter heb ik al zo vaak zien blunderen dat ik die site maar geheel links laat liggen.
k ben benieuwd waar dit naar toe leid. Ik denk eventueel NV games en ATI games...

Ik denk toch (en hoop ook) van niet. Compatibiliteit moet toch mogelijk zijn. Vandaar dat er ook een soort van standaarden zijn waar men omheen bouwd. Shader language 3 etc.....

Maar je hebt gelijk, slik slik, een beetje off-topic. Maar zie x86 en .Net Jit compiler, hij optimaliseert voor iedere processor anders en toch zijn alle procs bv. allemaal x68 compatible. Misschien gaat zoiets ook wel in de game-industrie gebeuren, een soort Jit compiler (of pre-compiled in verschillende versies). Op zo'n manier haal je wel het beste uit je chip, maar heeft allicht ook weer nadelen. Ik wacht alles in spanning af.

Time will learn.
De verschillen tussen ATI en NV zijn niet anders dan die tussen Intel en AMD.

Voordeel van grafische kaarten is dat daar nog een driver tussenzit. Dat zorgt er voor dat generieke code al redelijk geoptimaliseerd kan worden voor de GPU architectuur.

Just-in-time compilers zitten op dit moment bijvoorbeeld al ingebakken in de drivers van ATI en NVidia.

(Althans, dat beweren ze.... in de praktijk heb je toch af en toe het gevoel dat er ook vaak pre-compiled wordt, in combinatie met applicatie detectie.... ;) )
\[off-topic]\[zeik-modus] Time will tell (time will learn is Nederlands) \[/off-topic]\[/zeik-modus]
Interresant, zo heeft elke GPU zo z'n eigen puntjes, en zijn ze compleet verschillend!

Sterker nog, het doet me een beetje denken aan een andere markt, maar dan tikkie omgedraait.

De ATI chip doet dus welliswaar veel MHz-en, maar doet minder per MHz, maar heeft als ander voordeel dat hij 2x hetzelfde ding kan doen.

De NV chip doet veel per MHz, en kan niks 2x tegelijk doen, maar doet wél 4 verschillende tegelijk.

Kortom: compleet andere chips, de ene zal in het ene goed zijn, de ander in het andere. Een ATI chip zal in principe veel dingen die vaak gebruikt worden kunnen doen, zoals blaadjes aan een boom, of veel dezelfde shaders, de NV chip zal per pipe veel verschillende dingen kunnen doen.

Erg game afhankelijk dus. De ene game stikt van de blaadjes aan de bomen, en over-use van één bepaalde functie, farcry bijvoorbeeld, terwijl de andere game gek is op zoveel mogelijk verschillend tegelijk, doom3 is gek op alle effecten die een kaart kan tegelijk bijvoorbeeld.

Ik ben benieuwd waar dit naar toe leid. Ik denk eventueel NV games en ATI games...
Vergeet even niet dat shader instructies zo ongeveer op assemble niveau zitten.

Of de ALU's verschillende instructies krijgt kun je dus absoluut niet bepalen aan de hand van of er blaadjes e.d. gerenderd worden... Het zit op een veel dieper niveau.
En het maakt al helemaal niet uit of de shaders opnieuw gebruikt worden. Slechts of binnen in die shader, de gebruikte instructies op elkaar lijken.

Met alle respect, maar je conclusies aangaande Farcry en Doom3 slaan dus helemaal nergens op...
Sorry. :D
je vergelijking is een beetje fout...

een shader gaat niet over een object zoals een grasspriet, maar over een vertex van zo'n grasspriet... die ene vertex krijgt al een meertal functies over zich heen, en die zullen most likely verschillend zijn.

voordeel voor ATI is wel dat volgens mij aan het einde van iedere vertex shader 2 matrices met de vertex worden gemultiplied (world en camera matrix) wat 2 dezelfde functies zijn (MUL).
Erg game afhankelijk dus. De ene game stikt van de blaadjes aan de bomen, en over-use van één bepaalde functie, farcry bijvoorbeeld
Hiermee zeg je dus dat ATI sneller zou moeten zijn dan nvidia in far cry maar benchmarks wijzen uit dat de nvidia's nog steeds de snelste zijn en ook in far cry!! :9
Volgens mij ben je niet meer helemaal bij....

Ten eerste... ATi's X800XT PE was altijd al sneller in Far Cry, met name in alle eyecandy modes (dus 4xAA + 8xAF en alles op max). En dit zijn toch zeker de belangrijkste modes, want je betaald geen ¤499,- euro om zonder AA en AF te spelen, anders was een 9800Pro voor ¤199 ook nog wel voldoende geweest. Pure mode mag dan soms naar nV gaan, maar it's the IQ-modes that really counts.

Ten tweede:
http://www.tweakers.net/nieuws/33604/
http://www.xbitlabs.com/articles/video/display/farcry20b_13.htm
http://www.digit-life.com/articles2/gffx/fc12-2.html

Dankzij Shadermodel 2.0b gaat ATi net zo gemakkelijk weer over nVidia heen, die dus haar voorsprong verliest die ze dankzij Shadermodel 3.0 had opgebouwd.... Zelfde performancewinst, alleen ander shadermodel.
specifieke hardware voor DirectX 7- en DirectX 8-functies
betekend dit dat mensen met linux (die dus geen DirectX kunnen draaien), geen gebruik kunnen maken van deze functies, en dus de kaart niet optimaal kunnen benutten? En hoe zit het met DX9?
OpenGL heeft alle functionaliteit van DirectX via extensies geleverd door de drivers.
Zeer interessant dit! Alleen presteren Ati kaarten toch beter naarmate de stress toe neemt? (toch?) zo kan ik rustig op mijn 9800 Pro @ XT alle settings van Far Cry op Very High/Ultra High + AA/AF ed, alle eyecandy aan dus en dat speelt behoorlijk goed! Dat is volgensmij -behalve dat ati kaarten ook nog eens hogere MHz'en hebben (wat volgensmij gewoon echt goed is voor gamen)- een ontzettend voordeel voor mensen met de "budget" kaarten (9800 series, 9700 en zelfs 9600)!

@Doomhammer

Helemaal gelijk, zo maakt Doom 3 heel erg veel gebruik van Shadowing en pixel lighting ed en Far Cry gewoon heel erg veel (bewegende) objecten als bomen, blaadjes en zelfs de grassprietjes, vandaar dat de NV kaarten dus een stuk beter presteren op de Doom 3 benchmarks dan de Ati omdat het aantal instructies per kloktik veel meer zijn. Precies het omgekeerde met de Ati kaarten dus bij Far Cry.
Ik ben benieuwd waar dit naar toe leid. Ik denk eventueel NV games en ATI games...
Die zijn er toch al?

Ati: Half-Life 2
NV: Doom 3
Die zijn er toch al?

Ati: Half-Life 2
NV: Doom 3
Jemig, als Doom 3 dan al zo lekker draait op mijn ATI 9700.. hoe zal Half-Life 2 dan wel niet draaien als ik jou mag geloven :)

Maar ik denk niet dat er games komen die maar op 1 kaart gaan werken, simpelweg omdat je dan veel klanten misloopt.
Ja, goed punt GSF-JohnDoe. Want volgens mij is dit zo. Dus onder linux (Fedora 2 in mij geval :) ) gaat de performance dramatich achteruit door "slechte" ATI drivers en DirectX ondersteuning...

Weet iemand of DirectX Functies van de Nvidia GPU wel onder linux werken?
Ik heb even geprobeerd of ik de nvidiadrivers aan de praat kreeg onder linux. Ik gebruik geen fedora, maar BLAG. Bij mij was het geen probleem. (drivers installeren voor linux is altijd een probleem, maar het werkt). Ik krijg OpenGL applicaties moeiteloos aan het draaien, maar wanneer ik DX9 aanroep, krijgen de drivers problemen op een of andere manier. Het lijkt wel screenart. Het kan aan mij liggen hoor (verkeerde versie Xfree86 of zo), maar het wil niet goed gaan.

De driver die ik gebruikt heb:
download.nvidia.com/XFree86/Linux-x86/1.0-6111/NVIDIA-Linux-x86-1.0-61 11-pkg1.run
Met een FX5600 128M.

Edit: Ik dacht ooit software te hebben gezien die voor DX de lib-gl aan zou roepen, maar ik heb het nog niet gevonden. Misschien heb jij meer geluk?
Weet iemand of DirectX Functies van de Nvidia GPU wel onder linux werken?
Nee, niemand op deze aardkloot weet dat.
Ik heb toevalligeen 6800 Ultra (Overgeklokte Asus Gamers Edition) En ik speel ook Doom en Far Cry.

Ik zal de laatste zijn om te roepen dat 1 kaart per definitie beter is dan de andere, maar ik geloof er heilig in dat Nvidia nu een flink grote stap gedaan heeft om het Ati behoorlijk moeilijk te maken. Ze moesten wel, na de FX Serie. Als ik de 11200 punten in 3dmark meereken en de prestaties zoals ik ze heb in voorgenoemde games, denk ik dat de 6800 langer mee zal gaan dan de Atx800 series.

Het is naar mijn mening altijd zo geweest dat Nvidia (Vooral nadat ze voodoo overkochten) meer voor brute kracht ging om voor te blijven, dan voor slimme techniek, wat meer het werkgebied van Ati was. Daar is nu verandering in gekomen ...
Ik heb een vraag aan je op je gallery. (off topic)
Alleen de 6800 schijnt snel warm te worden, waardoor de prestaties minder worden. :
Als ik jou was zou ik deze pagina eens goed lezen: http://www.tweakers.net/reviews/164 .
Het is dus niet de bedoeling dat we allemaal posts krijgen met: "Ik ben de eerste."

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True