di  -  lunedì 25 ottobre 2010

Come molti di voi, anche io ho letto su HWFiles la news che riporta i video e le immagini del 3DMark 11, la nuova versione del famigerano benchmark di Futuremark.

Come spesso accade, non ho fatto a meno di leggere alcuni dei commenti dei lettori e, leggendoli, mi sono reso conto che a grandi linee i tipo di osservazione che viene effettuata è quasi sempre lo stessa: c’è chi lamenta che l’ultima versione delle DirectX vengono utilizzate solo dai benchmark, chi si chiede se funzionerà con le schede video compatibili con le precedenti versioni delle DirectX, ecc…

Quando, tuttavia, si discute su un benchmark, uno dei dubbi che attanaglia la maggioranza degli appassionati è il seguente: ma sono davvero utili i benchmark sintetici? In altre parole, quanto il punteggio che mostra il 3DMark è indicativo delle performance di una scheda video con i videogame?

Essendomi occupato per tre anni di recensioni di schede video, oggi ho deciso di riportarvi ciò che ho compreso nel corso degli anni in cui mi sono avvalso di questi strumenti.

Partiamo subito da un concetto basilare: l’elaborazione della grafica tridimensionale di un gioco è composta da molteplici tipologie di calcolo ed ogni tipologia può incontrare il favore e lo sfavore dell’architettura di una GPU dipendentemente da come quest’ultima è strutturata.

Quanto appena detto vi avrà fatto intuire che il lavoro che tenta di fare un’azienda come Futuremark è estremamente complesso perché si tratta di stimare e tentare di prevedere quali saranno le tecniche di elaborazione grafica principalmente adottate dagli sviluppatori di videogame in un dato periodo di tempo (quello nel quale il benchmark può considerarsi al passo con i tempi). Fatta questa assunzione, sviluppano la nuova versione del 3DMark adottando queste tecniche di rendering e, il risultato, è un benchmark che presume di utilizzare un motore grafico simile a quelli dei videogame.

E’ evidente che, per quanto questo processo possa essere accurato, esistono dei margini di errore. In linea di principio penso di poter affermare che i ragazzi di Futuremark hanno quasi sempre saputo ben interpretare le tecniche di rendering che sarebbero state usate nel periodo di tempo di validità del loro 3DMark: un esempio è rappresentato dal 3DMark 2003 che faceva uso in alcune scene di stencil shadows, tecnica particolarmente in voga all’epoca per la generazione dinamica delle ombre (Doom 3 in primis ne faceva uso).

Il problema, tuttavia, è che nonostante tutto, i motori grafici dei videogiochi risulteranno essere sempre e comunque molto più eterogenei della batteria di test proposta dal 3DMark e, pertanto, nonostante gli sforzi profusi da Futuremark, il loro punteggio potrà sempre e solo essere un fugace punto di riferimento nella valutazione di una scheda video.

Gli unici test in grado di affermare la bontà dell’architettura di una GPU sono i giochi stessi che dovrà far girare, dove con questo intendo dire che una scheda video deve confrontarsi esclusivamente rispetto ai titoli del suo tempo. Quante volte ho visto ragazzi che hanno scelto una scheda video piuttosto che un’altra perché secondo loro sarebbe stata meglio in prospettiva futura. Volete sapere come è andata a finire? Nella maggioranza dei casi, quando il futuro è arrivato, il prodotto prescelto risultava essere deludente (soprattutto rispetto alle aspettative che un enthusiast di solito ha: impostazioni grafiche tutte a palla) e naturalmente nel frattempo erano uscite altre schede video dall’architettura ben più adatta e con risultati molto più soddisfacenti.

Qualcuno potrebbe pensare che anche le specifiche ottimizzazioni effettuate nei driver delle schede video per i vari 3DMark contribuiscano a renderne il punteggio poco affidabile, ma al riguardo vi disilludo subito: il lavoro di ottimizzazione fatto per i benchmark, non è differente da quello che è implementato a livello di singolo videogioco e non è un caso che spesso nelle release note dei driver trovate nell’elenco dei performance improvements, pochi specifici titoli che ottengono un incremento delle prestazioni in alcune situazioni. Se le ottimizzazioni fossero generali, dovrebbero avere uno spettro d’azione ben più ampio, ma non è quasi mai così anche perché immagino che non sia facile raggiungere simili risultati.

Personalmente ho sempre utilizzato benchmark sintetici come il 3DMark nelle mie recensioni, ma solo per valutare alcuni specifici aspetti più basso livello di una scheda video come, ad esempio, il fill rate in single e multitexturing, il numero di poligoni generati al secondo o l’elaborazione di alcuni particolati vertex e pixel shader. Queste valutazioni sono utili per comprendere come funziona l’architettura di una GPU e per fare alcune stime della sua efficienza rispetto alla concorrenza, ma per misurare le prestazioni di una scheda video e capire quanto sia valida ho sempre usato e consiglio di utilizzare semplicemente i giochi.

20 Commenti »

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.

  • # 1
    Giordano
     scrive: 

    Concordo pienamente: Anche io anni fa seguivo innanzitutto i benchmark (3d m01, 03, Aquamark 3 a quel tempo) e rimanevo puntualmente deluso dalle prestazioni. Ora ho completamente cambiato filosofia: Io gioco ai seguenti giochi, quella che va meglio prendo…. Anche se per un bel pò sarà difficile schiodarmi dalle Ati

  • # 2
    pek
     scrive: 

    mah, i bench li vedo come test della stabilità del sistema più che altro… o almeno, io li uso per quello: appena preso un pc nuovo 24h di benchmark… in caso di crash, parto con prime95, test memoria eccetera

  • # 3
    supertigrotto
     scrive: 

    sono sempre stato un consolaro (e anche un commodore sessantaquattraro,anzi centoventottaro D,la versione desktop).
    Quest’anno volevo farmi finalmente un pc serio per lavoro e gioco ma,vedendo che tanti si lamentano che le conversioni dei giochi da consolle,rendono i giochi graficamente inferiori,mi sta passando la voglia di farmelo.
    Poi vedo che le software house stanno snobbando sempre di più i pc con la scusa della pirateria.
    Non è che in realtà,sviluppare per consolle costa meno?
    Un pc è composto da tanti tipi di processore e da tanti tipi di schede grafiche,mentre una consolle rimane invariata fino alla fine del suo ciclo vitale.
    Ottimizzare un gioco per pc,probabilmente richiede molto più tempo e denaro per fare un bel lavoro ottimale?
    Sbaglio ad averla pensata così?
    Considerando che la base installata di pc è nettamente superiore alla base installata di consolle,il discorso pirateria è solo una scusa che non regge.
    Redazione,che dite?
    Ho sbagliato la valutazione???

  • # 4
    G
     scrive: 

    Apprezzo il discorso teorico, ma pragmaticamente questi bench per molti sono la molla psicologica per cambiare scheda, cioè… vedono quelle scene “inutili” scattare… e vogliono una scheda nuova, anche quando invece hanno un computer che con gli ultimi giochi reggono tranquillamente.

    Alla fine tutto si riduce a questo… io li trovo utili finchè capisco a che punto tirare un overclock di una scheda, cioè per un paio di giorni, poi non li lancio più

  • # 5
    Diobrando_21
     scrive: 

    @supertigrotto

    giochi su pc inferiori graficamente alle versioni console? Ma chi ti ha detto una cosa simile? Se c’è una cosa in cui il pc è enormemente superiore è proprio la grafica. Comprati il pc e vedrai che le console le lasci a prender polvere…te le dice uno che l’ha fatto ;)

  • # 6
    supertigrotto
     scrive: 

    @JOJO anzi Diobrando :-)
    Il pc già ce l’ho,con 2 anni di servizio ma ce l’ho!
    Dico solo l’osservazione che hanno fatto notare molti,ormai i giochi sono conversioni da consolle,la grafica superiore del pc viene sfruttata marginalmente,solo i bench cercano di tirare il collo alle schede video.
    Infatti vanno benissimo ancora le schede di vecchia generazione per la maggiorparte dei giochi in circolazione.
    Infatti ultimamente il game pc è poco seguito,se invece di fare conversioni alla buona,spingessero di più,con le potenzialità del pc avremmo grafiche inarrivabili per le consolle,invece,allo stato attuale il divario c’è ma è abbastanza risicato,tranne alcuni titoli che sfruttano a dovere la differenza di prestazioni del pc.

  • # 7
    carlo
     scrive: 

    Personalmente sono favorevole all’uso dei benchmark sintetici della madonion 3dmark,anzi,prima seguivo sempre lo sviluppo del settore VGA,da quando un paio di anni fà hwupgrade tolse questo tipo di test smisi di seguire il settore delle vga in modo appassionato,rimetteteli.

  • # 8
    Nessuno
     scrive: 

    La domanda posta è più che lecita. In effetti la comparazione tra GPU di architettura diversa è difficile perché dipende molto da come è implementato il sistema di bench. Una modalità potrebbe favorire una architettura o un’altra, e non è detto che poi nei giochi questo sia realmente così.
    Sicuramente sono utili per confrontare GPU della stessa architettura in modo da conoscere in maniera precisa in quale “posizione di performance” si piazzano una relativamente all’altra.
    Con i giochi stessi è evidente che a seconda del motore grafico usato una particolare GPU può risultare migliore o peggiore di un’altra. Crysis sembra rendere meglio su architettura AMD, FarCry2 o LosrPlanet su nvidia etc..

    Ma la domanda che manca è: quanta di tutta questa potenza elaborativa viene in realtà sfruttata?
    Oggi le GPU fanno tesselation a manetta ma nei giochi la differenza tra averla o no è pressochè nulla. Per trovare differenze tra un gioco DX11 vs uno DX9 bisogna usare il lentino (o guardare gli FPS in calo pauroso nel primo caso). In verità di motori basati solo su DX11 non ce ne sono ancora.
    A cosa serve dunque avere una nuova scheda dalle capacità DX11 se poi in verità i giochi sono in DX9 e senza gli inutili effetti aggiunti vanno alla stessa velocità su schede di vecchia generazione?

    Ma, io sono fermo da 2 generazioni, e a parte i soliti 2 famosi gioconi che sembra non si possano giocare se non a 2500×1600 16xAA texture ultra mega high, tutto il resto gira in FullHD senza problemi. Quando vedo i benchmark che dimostrano che l’ultima nata fa millemila FPS e ha una potenza di calcolo incrementata di qualche gazzilione etc.. rido alla grande.
    Finchè svilupperanno giochi per PS3/XBox non c’è alcun motivo di cambiare.

  • # 9
    Raffaele Fanizzi (Autore del post)
     scrive: 

    @Nessuno
    La tua domanda è assolutamente lecita e la risposta è sia di carattere commerciale, che di carattere tecnico.

    E’ verissimo, fino a quando i giochi verranno fatti per le console, i giochi per PC dovranno necessariamente essere votati al ribasso se non per qualche piccolo effettuccio che viene aggiunto in fase finale.

    Tuttavia c’è anche un altro discorso: quante delle attuali schede video è realmente in grado di far girare giochi full DX11 se questi uscissero? Lo hai detto tu stesso: aggiungono un briciolo di tessellation e il numero di fps crolla.

    Quindi secondo me non è solo una questione commerciale. Se si potesse dare un valore aggiunto realmente utilizzabile su PC, cioè che quando è attivo non fa crollare le prestazioni di tutto, allora penso che gli sviluppatori lo farebbero. Il problema è che non si può.

    Del resto è successo qualcosa di simile anche con le DirectX 9: prima di vederle realmente sfruttate abbiamo dovuto attendere anni e svariate generazioni di GPU.

  • # 10
    Nessuno
     scrive: 

    Il dubbio è se un motore completamente in DX11 abbia vantaggi rispetto a uno in DX9 dove gli effetti sono aggiunti senza usare completamente i vantaggi offerti dalla nuove API.

    Per ora a parte Unigine non mi sembra ci siano motori solo DX11 che permettano di fare qualche valutazione in questo senso.

    Inoltre sarebbe da capire se \tutte\ queste novità valgano davvero il calo di prestazioni. Così come si può giocare senza Physx, si può farlo anche senza tesselation e ombre morbide o object occlusion. Mi viene il dubbio che le prossime console potrebbero benissimo essere equipaggiate con GPU DX9 super potenziate e la qualità generale aumenterebbe comunque senza scomodare funzioni che richiedono milioni di transistor e watt aggiuntivi per 2 effetti in croce e decine di FPS in meno.

    Ultima cosa riguardo alla tesselation, se oggi con questi \mostri\ di schede da centinaia e centinaia di SP si hanno problemi a gestire i poligoni aggiunti, cosa si aspettava di ottenere AMD dalle implementazioni custom sulle \vecchie\ schede pre DX11?

    Riguardo ai benchmark e il loro valore, vedere anche la polemica riguardo al bench di Ubisoft con HAWX 2. Si comprende come una implementazione possa favorire una o l’altra architettura a seconda di quello che si vuole mostrare (pura qualità/potenza, compromesso in linea con la giocabilità).
    E questo va oltre le API o funzioni già messe a disposizione, dato che con gli shader programmabili è possibile realizzare qualsiasi effetto come meglio si crede (con tempo e soldi a disposizione).

  • # 11
    n0v0
     scrive: 

    già quelli “realistici” (grafica, video, giochi) lasciano il tempo che trovano, ma i sintetici sono assolutamente inutili. C’ è qualcuno che li guarda davvero?

  • # 12
    Raffaele Fanizzi (Autore del post)
     scrive: 

    @Nessuno

    Le precedenti implementazioni della tessellation di ATI erano ben diverse da quella attuale in quanto erano di tipo fixed function e, pertanto, erano molto limitate e non programmabili. Ricordo ancora la patch per Serious Sam per il TruForm della Radeon 8500. Il bello delle soluzioni fixed function è che in linea di principio hanno elevate prestazioni da subito e sono utilizzabili da subito. Al contrario, da quando il tutto si basa sulla programmabilità della GPU e dei suoi SP, le prestazioni sono strettamente legate alle loro capacità computazionali. Queste ultime possono raddoppiare tra una generazione e l’altra, ma se un particolare effetto richiede 20 volte la potenza di calcolo per essere trattato fluidamente, allora il risultato (per farla breve) è un crollo delle prestazioni. Con R200, se non si usava il TruForm al massimo non si usava un’unità dedicata, ma il resto delle unità continuava a funzionare come prima. Viceversa l’abilitazione del TruForm al più aggiungeva dell’overhead, ma nulla toglieva alla potenza di calcolo del resto della GPU.

  • # 13
    backorder it
     scrive: 

    i bench sintetici avranno ancora il loro motivo di essere per lungo tempo,magari affiancati agli altri estesi.

  • # 14
    goldorak
     scrive: 

    Benchmark sintetici inutili, piu’ interessanti invece le tech demo, ma ahime’ sia ATI che Nvidia considerano le tech demo acqua passata.
    Chi si ricorda delle tech demo per la radeon 8500 che metteva in risalto l’antenato del tessellation ?
    E per R300 cerano delle tech demo magnifiche con i pixel shader etc…
    Queste sono molto piu’ interessanti per mettere in risalto le caratteristiche della scheda video che non qualche benchmark sintetico privo di significato.
    Ma per il videogiocatore l’unico benchmark serio e’ quello dettato dal videogame (e non intendo dei percorsi prestabiliti all’interno del gioco). Ma giocare uno o piu’ livelli e vedere come rende la scheda video con i framerate massimi e minini. HardOCP credo sia l’unico sito che fa questo genere di banchmark per valutare la bonta’ di una scheda video. Molti siti invece sono ancora rimasti all’epoca della pietra con i benchmark sintetici che mentono il piu’ delle volte.

  • # 15
    Nessuno
     scrive: 

    [quote]Le precedenti implementazioni della tessellation di ATI erano ben diverse da quella attuale in quanto erano di tipo fixed function[/quote]
    In buona parte anche la nuova implementazione di ATI è di tipo fixed function, mentre quella nvidia usa gli shader per i calcoli geometrici. Ma a parte questo, il problema non è solo come funziona il tesselatore, ma cosa poi elabora i risultati che sputa fuori.
    Se entro con una mesh di 8 poligoni e ne esco con una di 32 o 64 (o 512 se voglio esagerare e in un certo senso sfruttare la tesselizzazione) ci vuole la potenza adeguata per effettuare tutte le operazioni di texturing e rasterizzazione su questi nuovi poligoni.
    Mi chiedo come il vecchio HW potesse avere pretese di elaborare una mole di dati così alta.

    Comunque ogni bench, sintentico o meno, preso singolarmente è inutile perchè mette in evidenza solo l’implementazione di una determinata tipologia di algoritmi, quindi può dare risalto o meno ad una architettura che si adatta più o meno ad essi.

  • # 16
    maumau138
     scrive: 

    Mah, non ho mai ritenuto 3dMark e gli altri bench sintetici esaurienti. Al massimo possono dare un’idea di massima della potenza di una scheda o di un processore, ma visto che alla fine quello che conta è come i vari giochi vengono scritti, non li ho mai ritenuti esaustivi.
    Spero comunque che la nuova versione del 3DMark non sia stata scritta con il compilatore Intel difettoso, ma dubito; è abbastanza grave che una suite di benchmark soffra di un bug così importante.

  • # 17
    shodanshok
     scrive: 

    @ Nessuno: il punto non è che la tesselation di ATI è più “fixed function” di quella Nvidia, quanto il fatto che quest’ultima ha scelto un approccio distruibuito mentre ATI no.

    Per capirci, Nvidia fa tesselation in ogni PolyMorph engine e, essendoci uno di questo engine per ogni SM cluster, le prestazioni sono maggiri rispetto ad ATI, che invece fa tesselation in un’unica unità a monte del resto del chip. Qui trovi maggiori info: http://www.techreport.com/articles.x/18332/2

    Riguardo all’argomento dell’articolo, sono d’accordo con Raffaele nel considerare in giochi come il metro di paragone giusto per schede che, in fin dei conti, servono principalmente a giocare. Questo non vuol dire che reputo i benchmark sintetici inutili, anzi, tempo fa ne ho scritto uno che misurava parametri di basso livello come fill-rate e banda passante. Il punto è che, in quanto sintetici, devono essere inquadrati nell’ottica giusta: essi servono a completare il quadro di analisi di una scheda video e, soprattutto, permettono di capire “come funziona”. Tuttavia, _non_ possono sostituirsi ai giochi (ricordo anni fa recensioni basate praticamente solo su GLExcess e 3DMark2001).

    Sono più o meno d’accordo anche con il fatto che l’acquisto va fatto guardando le esigenze odierne, ma ci sono stati casi in cui è stato bene anche guardare al futuro. L’esempio di NV30, che con SM 2.0 crollava, rende abbastanza bene l’idea: chi all’epoca ha preso un R300 fa fatto sicuramente una scelta migliore. Il fatto è che nello scegliere “solo per il futuro”, sostanzialmente facciamo delle previsioni, che possono anche essere sbagliate…

    Ciao.

  • # 18
    Nessuno
     scrive: 

    il punto non è che la tesselation di ATI è più “fixed function” di quella Nvidia, quanto il fatto che quest’ultima ha scelto un approccio distruibuito mentre ATI no.

    Sì, come funzionano i due tesselatori più o meno lo conosco.
    Il fatto è che quello di tipo “fixed” di ATI non prende in considerazione la potenza del restante chip che deve elaborare i dati in uscita, per cui è molto probabile che in alcuni casi sia sovradimensionato su schede di fascia media dove non ci sono sufficiente SP per fare texturing, filling e ROP mentre in altri casi potrebbe essere sottodimensionato, cioè non in grado di generare poligoni sufficienti per la quantità di SP e ROP a disposizione. L’aproccio di nvidia sotto questo punto è più bilanciato perché le capacità di tesselizzazione (ma non esiste una parola italiana migliore?) è rapportato alle capacità totali del chip.
    La mia domanda era però, viste le difficoltà che oggi hanno le GPU con comunque grandi numeri di SP e ROP rispetto al passato, come si potesse pensare che il vecchio tesselizzatore potesse dare questo grande aiuto quando le unità di elaborazione erano una frazione.
    Benchmark fatti ad hoc potrebbero aver dato impressioni diverse a suo tempo.

  • # 19
    shodanshok
     scrive: 

    @ Nessuno:
    il punto è che i vecchi tessellatori (TrueForm su R200, RT-patch su NV30 e altre tecniche su R600 e RV770) erano tutti fixed function, un po’ come il motore di triangle setup. Quindi questi tessellatori _non_ dipendevano dal resto del chip (inteso come shader core e ROPS).

    Le DX11, invece, hanno spaccato l’operazione di tessellamento in 3 passaggi, uno di tipo fixed, due che girano sullo shader core (qui trovi un articolo di Yossarian al riguardo: http://www.appuntidigitali.it/7872/parti-funzionali-di-una-gpu-il-tessellator-iii-parte/). Per quanto riguarda le parti che girano sullo shader core, puoi aumentarne le performance aumentando la potenza dello shader core. Per aumentare le prestazioni della parte fixed function, invece, hai due strade:
    – o la emuli sullo shader core, con il consueto overhead dell’emulazione ma permettendoti di scalare la potenza del tessellatore insieme a quella degli shader
    – oppure aggiunti più unità hardware fixed function e le coordini in modo che possano lavorare insieme sullo stesso problema (la tessellazione).

    La prima strada, per il momento, non è stata seguita da nessuno (non sempre è conveniente rimpiazzare hardware fixed function), mentre la seconda è stata seguita solo da Nvidia. ATI invece, pensando che la tessellazione non verrà usata a fattori molto elevati, ha preferito mantenere le cose “semplici” e affidarsi a un solo tessellatore.

    Ciao.

  • # 20
    Teo
     scrive: 

    A mio giudizio ci sono troppi errori di grammatica e di ortografia in questo articolo. Quando si scrive come “giornalisti”, certe figure è meglio evitarle.

Scrivi un commento!

Aggiungi il commento, oppure trackback dal tuo sito.

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.