Salve a tutti,
riprendo questo thread anche se forse un po' in ritardo.
L'ultima patch del 3DMark ha sorpreso un po' tutti, non c'è dubbio... ed è serviata a riaprire le solite guerre di religione tra i tifosi delle due case. :(
Colgo l'occasione per esporvi il mio personale punto di vista sulla cosa.
Molto si è detto sia di ATI che di Nvidia, a volte è stata colpevolizzata la prima mentre altre volte la secondo.
Nello specifico del 3DMark 2003 credo però che è stata Nvidia a giocare sporco, e qui di seguito ci sono le mie ragioni.
E' assolutamente necessario ricordare che, nonostante abbia una 8500, personalemente non tifo nè parteggio per nessuna delle due case (anzi aspetto con molto interesse il chip volari).
Passiamo ora al vero oggetto di questo post: Nvidia e le DX9, andando poi nello specifico sul 3DMark 2003.
E' ormai storia vecchia che Nvidia abbia scelto, per l'implementazione delle DX9, una strada tutta sua (il che non implica automaticamente che sia errata, beninteso). In pratica i tecnici Nvidia puntavano molto sulla potenza e sulla flessibilità del loro chip NV30, da cui derivano NV35 e derivati. Questo in un primo momento ha portato Nvidia a sottovalutare l'importanza di una banda di memoria effettivamente elevata (il primo NV30 aveva un bus di connessione verso la memoria di 128 bit), "errore" che è stato corretto anche con NV35.
Grazie al bus di memoria a 256 bit NV35 è riuscito, nei giochi pre-DX9, a superare (seppur di poco) la rispettiva ammiragli ATI, sia con l'uso di filtri che senza. Per quello che riguarda il filtro AA però, nonostante la scheda Nvidia sia leggermente avanti in termini prestazionali, l'implementazione ATI viene giudicata in genere la migliore sia grazie all'AA di tipo RGMS che grazie alla correzione dinamica della gamma.
Nei giochi DX9 si è però manifestato un problema molto difficile da superare per NV30-35: quello delle relative basse performance delle sue unità shader.
Un leggero distacco a favore dell'R300 poteva esserci (vista la natura diversa delle unità shader, soprattutto di quelle vertex) però all'inizio questo distacco si è rivelato quasi imbarazzante. Ed eccoci arrivare al 3DMark 2003. Questa, come PRIMA applicazione DX9 (anche se qui ci sarebbe molto da disquisire...) mostrava come NV30-35 avevano apparentemente grossi problemi nella gestione di shader (in particolare pixel shader) scritti e pensati in funzione delle DX9. All'inizio si era pensato un po' di tutto: saranno i driver, sarà l'applicazione (in questo caso il 3DMark) e in effetti, con il rilascio di driver che fecero aumentare notevolmente il punteggio in questo bench, si persò che tutto era stato risolto. Intanto Futuremark rilascio la prima patch che fece abbassare di molto i risultati del 3DMark, e, siccome la storia si ripete quasi sempre, oggi ci troviamo in una situazione molto simile. Con una notevole differenza però: in occasione di quella prima patch, Futuremark pubblico un PDF dove mostrava chiaramente che i driver Nvidia NON RENDERIZZAVANO PARTI DEL BENCHMARK FORTI DEL FATTO CHE TANTO QUESTE NON SAREBBERO MAI STATE VISUALIZZATE (in pratica erano al di fuori dei cosiddetti clipping planes). Ciò che rendeva possibile questo è il fatto che in un benchmark come 3DMark la telecamera esegue sempre lo stesso percorso, quindi già a priori si poteva sapere cosa visualizzare e cosa no. Questa quindi NON ERA ALTRO CHE UN'OTTIMIZZAZIONE VOLTA AD ACCELLERARE SOLO E SOLTANTO IL 3DMARK E NON QUALCHE ALTRO GIOCO/PROGRAMMA! E' da notare che anche ATI fu in parte colpita da qualla patch perchè fu costretta ad ammettere che ANCHE I LORO DRIVER AVEVANO UNA CERTA OTTIMIZZAZIONE, che in pratica riordinava le istruzioni shader al fine di avere un piccolo aumento di velocità (al massimo si ebbe un 4% di performance in più).
Qui trovate una spiegazione di questo primo mio "papiro":
http://news.hwupgrade.it/10035.html
Qui trovate un'altro interessante articolo:
http://www.tech-report.com/etc/2003q2/3 ... dex.x?pg=1
Qui trovare l'accordo di "pace fatta" tra Nvidia e Futuremark:
http://news.hwupgrade.it/10599.html
Qui trovate un ulteriore interessantissimo articolo:
http://www.digit-life.com/articles2/antidetect/
Comunque il passare del tempo ha reso palese che i chip NV30-35 avevano dei problemi a gestire le DX9 così come microsoft le aveva create, in particolare così come aveva creato il complilatore HLSL (spero di non aver sbagliato la sigla). Infatti anche altri giochi DX9 come Tomb Rider (la cui analisi trovate al link
http://www.beyond3d.com/misc/traod_dx9perf/) e HL2 (a questo link l'analisi
http://techreport.com/etc/2003q3/valve/index.x?pg=1) presentavano problemi prestazionali con i chip Nvidia. Anche John Carmak si è espresso in merito ai presunti problemi degli ultimi chip Nvidia; le sue ultime dichiarazione le potete trovare al link
http://news.hwupgrade.it/10818.html (tra l'altro in precedenza lo stesso Carmack aveva affermato che senza utilizzare codice scritto apposta per Nvidia l'R300 era 2 volte più veloce dell'NV30).
Grazie a questi contributi e alla loro notevole preparazione tecnica, un paio di frequentatori del forum di hwupgrade mi hanno spiegato che quello che probabilmente limita molto l'NV30-35 è il basso numero di registri interni, che costringono il chip grafico a frequenti accessi al framebuffer (lo stesso problema che sembra avere la Radeon 9600 in alcuni frangenti); inoltre la stessa spiegazione, corredata di una notevole analisi tecnica l'ho letta anche su un sito decisamente autorevole in materia (non riesco a ripescare l'articolo, sorry...).
E' in questo contesto che Nvidia ha deciso di rilasciare, integrato nei Detonator 50 e superiori, un loro proprio compilatore che ottimizzi le prestazioni dei pixel shader in modo generico e senza creare un risultato matematicamente diverso. Questa è davvero una ottima cosa e sono il primo ad esserne contento, anche se questo dovesser portare a qualche basso peggioramento della precisione colore. Però in quest'ultimo caso (se quindi il compilatore integrato nei driver alteri matematicamente il risultato dell'elaborazione) un benchmark, proprio per la sua natura di essere un programma che deve stressare al massimo l'hardware, deve poter eseguire il suo codice senza essere penalizzato nell'eseguire le sue funzioni. Sarebbe come far eseguire a un processore un benchmark floating point in doppia precisione e ad un'altro processore un benchmark floating point in singola precisione... non ci sarebbe una comparazione in tutto e per tutto simile.
E' qui arriviamo a un nocciolo fondamentale: l'R300 non utilizza la precisone a 32bit per canale (è limitato a 24) quindi l'NV30 (non avendo questa via di mezzo ma trovandosi a poter eseguire solo codice a 32 bit per canale o a 16 bit per canale) potrebbe essere limitato ingiustamente in una comparazione a 32 bit, ma avvantaggiato (altrettanto ingiustamente) a 16 bit.
Probabilmente la soluzione migliore è quella di confrontare le prestazioni dell'R300 e dell'NV30 facendo girare questo in modalità mixed-mode (leggete il link su half life 2 per capiere a cosa mi riferisco), però in questo modo i programmatori dovrebbero scrivere codice specifico per i chip Nvidia (e i benchmark non dovrebbero avere codice specifico in modo da poter effettuare una giusta comparazione...).
In conclusione, l'NV30-35 HA DELLE OGGETTIVE DIFFICOLTA' nell'eseguire codice DX9 così come è generato dal compilatore microsoft. Per questo Nvidia ha aggiunto un suo compilatore ai driver stessi. E NON E' QUESTO COMPILATORE CHE VIENE CRITICATO DALLA FUTUREMARK: a loro interessa solo che il risultato matematico dell'eleborazione non sia modificato. Quello che la futuremark critica è il fatto che, a fronte di un loro piccolo cambiamento nel flusso degli shader (almeno così dicono ufficialmente), questo compilatore sembre NON OTTIMIZZARE PIU' COME DOVREBBE e quindi sembra che anche questo compitalore SIA STATO CREATO ANCHE CON LO SCOPO DI ACCELLERARE GLI SHADER SPECIFICI DEL 3DMARK (in pratica gli riconosce e gli "esegue" o compila in modo particolare.
E' per questo che, in questa occasione, non mi sento di criticare la Futuremark. Almeno lei ci sta provando a far si che il loro benchmark rimanga attendibile e non di parte, visto che anche le ottimizzazioni di ATI sono state individuate (certo so che ormai è quasi impossibile fare un benchmark che non "penda" da una parte o dall'altra, ma la mia natura è quella di fidarmi delle persone e per il momento voglio fidarmi di futuremark). Se un giorno avrò le prove che il loro benchmark è in quelche modo "truccato" sarò il primo a criticarla.
Dulcis in fundo alcuni altri link:
Recensione di 5600 step B e R9600 PRO
http://www.tech-report.com/reviews/2003 ... dex.x?pg=6
Recensione di 5700 e R9600 XT
http://www.tech-report.com/reviews/2003 ... dex.x?pg=1
Recensione di 5960 e R9800 XT
http://www.tech-report.com/reviews/2003 ... dex.x?pg=1
Non mi permetto di dire che una scheda è meglio dell'altra anche perchè probabilmente non è possibile dichiarare un vincitare (a volte vanno meglio le ATI a volte le Nvidia), però date un'occhiata ai valori dei test sugli shader e capirete perchè tendo a credere, in questo caso specifico, più a Futuremark che a Nvidia.
Un'ultima nota: ha detto ma preferisco ribadire che NON SONO DI PARTE, se leggete il link che ho postato c'è un articolo dove sia ATI che Nvidia sono "beccate" a barare pesantemente (a volte con dei guadagni superiori al 30%) nei test del 3DMARK 2001 (si avete letto bene, 2001)... ma ai tempi (2 anni fa) questi cheat non furono rilevati...
CIAO! :)
PS: scusatemi davvero per la lunghezza, ma un post completo era necessario per esprimere il mio punto di vista e per non farmi passare per fanatico o tifoso che sia!
