Zulke 'trucjes' betekenen wel dat je meteen de performance van de videokaart zelf niet meer eerlijk kunt vergelijken tenzij de andere fabrikanten ook uitwerken hoe ze dit moeten doen.
(of als je het op de een of andere manier uit kunt zetten)
Dan wordt het een vergelijking wie of dat het beste implementeert.
Ander probleem zou kunnen zijn dat als programma's en spellen ook gaan inspringen op de mogelijkheden van meer threads dat met elkaar gaat botsen en het juist performance kan gaan kosten...
edit:
@twabi2:
Als je een paar videokaarten benchmarkt in een systeem dan is de hoeveelheid RAM van het systeem als het goed is altijd hetzelfde...
En als je de hoeveelheid geheugen op de kaart bedoeld, dat vind ik uiteraard geen trukje, dat wordt gewoon vermeld en je kunt het vergelijken met de scores van een andere videokaart.
@ algemeen:
Ik geloof dat ik niet goed wordt begrepen, ik ben niet tegen optimalisaties - zolang die eerlijk zijn en dus geen vertekend beeld geven - , en in testsystemen waar alles behalve de videokaart constant gelijk blijft kun je eerlijk zien wat er gebeurt.
Alleen kun je nu minder (goed) zien in hoeverre er werk zal wordt gedaan door de CPU (dat hiervoor door de GPU werd gedaan).
[edit2]
waarom overbodig?

[/edit]
Het is nu ook al het geval. Wie het beste driver implementeerd heeft de snelste kaart. NVIDIA heeft bijvoorbeeld betere OpenGL drivers waardoor Doom3 een stuk sneller is dan op een ATI kaart, terwijl ATI kaarten bijna alles in Direct3D winnen.
Ik vindt multithreading geen trucje.
Het is stom dat ze dat nog niet eerder hebben gedaan. Zijn ati's drivers niet al multithreaded?
Is dit trouwens threading op de GPU of op de CPU?
Als het op CPU is hadden ze op deze manier al een tijd gebruik kunnen maken van HT.
multithreading is een techniek die bij intensieve processen die niet multiproces draaien, gewoon gebruikt moet worden.
Verwacht echter niet dat je spelletje nu opeens een berg fps erbij heeft, er wordt niets sneller, alleen efficienter.
-R-
De reden dat ze het niet al gebruikten is dat het geen snelheidswinst oplevert, terwijl de drivers wel flink herschreven moeten worden, wat dus geld kost en nieuwe bugs introduceert.
Maar multithreading wordt nu een buzzword met al dat gedoe over multicore cpu's.
Je hebt zelfs kans dat de drivers al multithreaded waren, maar dat het nooit verteld is omdat het niet interessant is. Maar nu kan de PR afdeling het goed gebruiken.
Overigens spreek je jezelf flink tegen.
Het doel van multithreading is juist dat de boel wel sneller werkt. Je cpu wordt efficienter gebruikt en dus is de code sneller uitgevoerd.
De reden dat het hier niets helpt is dat het uitvoeren van de drivercode maar zo ontzettend weinig cpu gebruikt bij een spel.
Verder ben ik het met je eens dat multithreading geen trucje is.
Bij trucjes denk ik aan zaken die alleen in benchmarks gebruikt kunnen worden, of waarbij beeldkwaliteit wordt aangetast of zo iets dergelijks.
Multithreading kan universeel worden toegepast en tast geen beeldkwaliteit aan. Het is dus geen trucje.
Efficientere code is niet per definitie snellere code.
Er wordt efficienter met de resources van de PC omgegaan (dus niet de GPU).
Er is dus nagenoeg geen snelheidswinst. Alleen de drivercode wordt wat efficienter uitgevoerd, maar de GPU code blijft gewoon dezelfde snelheid. (En dan begin ik niet eens over synchronisatie mechanismes, waarbij er altijd een op de ander moet wachten).
-R-
Leg dan eens uit wat jouw definitie van efficienter is?
Bv wat efficienter met de cpu resources omgegaan. Wat betekent dat dan?
Ik kan daarbij maar 1 ding bedenken en dat is dat de cpu minder staat te wachten....
En als ie minder staat te wachten is je code dus eerder uitgevoerd. en dat betekent dat het sneller is.
Maar daar ben je het dus niet mee eens, dus kun jij duidelijk uitleggen wat jij bedoeld met efficienter met de cpu resources omgaan?
@Rune
In dit geval wordt de code van de driver geoptimaliseerd zodat de resources van de PC effectiever benut kunnen worden. De GPU (hardware) wordt daar niet sneller van maar er worden bijvoorbeeld wel meer vertices per seconde berekend. De gevraagde operatie (het weergeven van het scherm) kan dus op dezelfde hardware sneller worden uitgevoerd.
Tuurlijk kan een ontwikkelaar er ook voor kiezen om de beeldkwaliteit te laten toenemen zonder dat de snelheid afneemt maar uiteindelijk zorgt de driver optimalisatie er,hopelijk, voor dat de ontwikkelaar meer performance uit dezelfde hardware kan halen. De hardware wordt dan ook in de beleving van de gebruiker wel degelijk "sneller".
Ok.. stel het multiproces spul als volgt voor:
stel je hebt 4 kassa's bij een supermarkt. (4 threads)
je hebt als je geluk hebt 2 kassieres (2 cpu's of 1 dual core of zelfs 1 HT (windows snapt het verschil niet tussen HT en SMP)).
En je hebt een kassa systeem waar maar 1 kassa tegelijk gebruikt kan worden voor 1 klant (synch IO, windows is niet zo goed in async IO)
Gezien het feit dat parallelisme altijd serialiseerbaar moet zijn, moet er gebruik gemaakt worden van een synchronisatie mechanisme. Bv een bedrijfsleider die bepaalt welke kassiere waar gaat zitten en aan de ene kassiere doorgeeft dat de andere klaar is met de kassa.
Zijn de klanten nu sneller geholpen dan dat ze zouden zijn als ze in een rij zouden staan?
Nee. Het kassa systeem is hier het traagste systeem. Zowel in 1 lange rij als in 4 korte rijen wacht je op het kassa systeem. Het voordeel is wel dat de andere kassiere alvast voorbereidingen kan treffen voor als het kassasysteem weer vrij is. (efficienter gebruik resources, variabelen kunnen gevuld worden, gegevens kunnen klaargezet worden, geheugen kan gealloceerd worden.).
Maar nu. Zelfs al zou je het kassasysteem opvoeren zodat de kassieres er tegelijkertijd gebruik van kunnen maken (async IO in het geval van nvidia, dan kom je weer een ander probleem tegen. Op een gegeven moment zijn de klanten in de rij op. Want we hebben twee kassieres die de rijen afhandelen, maar er is maar een persoon die klanten de winkel binnenlaat (directx (is niet multithreaded, en niet multiprocess)) dus dan wacht je weer op die persoon.
Moraal van dit verhaal: wacht tot de drivers uit zijn, installeer het op een machine met 4 xeons en kijk hoeveel sneller je spelletje loopt (er vanuit gaande dat het spel ook multithreaded is, want anders is dat weer een vertragende factor (al loop je dan nog steeds tegen je ST directX aan). (nouja... niet echt een moraal)
-R-
edit: typos
Ok. Dus je geeft aan dat als er van die 4 kassa's steeds maar 1 tegelijkertijd gebruikt kan worden dan kan de tweede kassiere toch al wel voorbereidingen treffen voor als het kassasysteem weer vrij is.
Maar die voorbereidingen geven je wat snelheids winst want je hoeft ze niet meer te doen op het moment dat het kassasysteem vrij is. Toch?
En dan betekent dat toch dat de klanten uiteindelijk wel sneller geholpen zijn...?
Het andere geval waarbij je aangeeft dat op een gegeven moment de klanten in de rij op zijn is weer iets heel anders.
Je drivercode is dan wel degelijk sneller geworden, maar het blijkt vervolgens dat dat de bottleneck niet was.
En daar geef ik je helemaal gelijk in.
(heb dat ook al in andere reacties betoogt)