Nvidia FCAT e i problemi del multi-GPU
L'industria misura i frame al secondo renderizzati con software come Fraps e benchmark in-game che catturano i frame alla memoria della scheda video ogni secondo. In apparenza, sembra un metodo in grado di generare dati accurati.
Il problema è che può esserci una discrepanza significativa tra l'uscita del motore di gioco e ciò che si vede sul monitor. E quando si va oltre i problemi che possono impattare su una configurazione a singola GPU per iniziare a considerare la complessità data da più chip grafici che lavorano insieme, si fanno largo altre due variabili che impattano sulla vostra esperienza: i frame persi e ciò che Nvidia chiama "runt frame", cioè frame che sono renderizzati e mostrati, ma sono composti da così poche scanline che possono essere considerati irrilevanti per il frame rate, o addirittura dannosi per la fluidità dell'animazione.
Brevemente, anche dopo il caricamento di un frame in memoria, nella pipeline grafica c'è ancora molta attività; e questa richiede tempo. Il risultato è che alcuni frame si perdono prima che siano mostrati a schermo. Gli altri frame vengono visualizzati, ma solo in una piccola parte dello schermo. La definizione di Nvidia di un "runt" è qualsiasi frame che viene mostrato in meno di 21 scan line, cioè una linea o fila in un modello di scansione raster.
I frame persi e i frame "runt" non hanno un impatto positivo su ciò che vedete mentre giocate a un videogame, ma sono ancora tenuti in considerazione dai benchmark. Questo è un problema, in particolare se una combinazione di hardware renderizza il più rapidamente possibile senza tener conto della costanza. Più frame persi e "runt" vengono generati, meno precisione si può ottenere da applicazioni come Fraps. Le notizie buone è che questi due problemi affliggono principalmente le configurazioni multi-GPU. Nei test a singola scheda, Fraps e le soluzioni gli strumenti in-game sono molto più accurati.
Perché il punto è: come catturare dati sul frame rate con configurazioni AMD CrossFire e Nvidia SLI senza frame runt e drop che interferiscono con il risultato?
Abbiamo registrato l'uscita verso il display e l'abbiamo analizzata, immagine dopo immagine. Un lavoro faticoso? Sì. infatti, fa perdere così tanto tempo che Nvidia ha sviluppato la propria suite di strumenti per rendere possibile l'operazione senza perdere troppo tempo.
Parte di ciò che usiamo è disponibile commercialmente e sotto licenza open source. Per esempio, il sistema testato è stato connesso a un amplificatore di distribuzione Gefen dual-link DVI, che a sua volta "esce" su un monitor e una scheda di acquisizione Datapath Limited VisionDVI-DL, collegata a un secondo sistema. Per un'analisi accurata, il video registrato deve essere impeccabile, senza frame persi. Quindi, abbiamo adottato un trio di SSD in RAID 0 per far fronte al flusso non compresso – di ben 650 MB/s alla risoluzione più alta supportata dalla scheda).
Il sistema in test esegue una sovrapposizione, che applica una barra colorata a ogni frame che arriva dalla scheda video in una sequenza ripetuta di 16 colori. Questo software è di Nvidia, ma è necessario per automatizzare l'analisi. I rappresentanti dell'azienda affermano che i ragazzi di Beepa potrebbero aggiungere questa funzione di sovrapposizione a Fraps, eliminando la componente Nvidia dall'equazione.
Il gameplay, con le barre in sovrapposizione, è stato catturato da VirtualDub sull'SSD. Da qui, un'altra applicazione Nvidia legge all'interno del video e crea un foglio di calcolo Excel ricco d'informazioni analizzando i frame del video, ricercando la sequenza barra colore. Sapendo che cosa l'aspetta, l'utility può facilmente vedere se un frame è perso (colore mancante) o se un frame occupa meno di 21 linee di scansione sullo schermo (è un frame "runt").
Il file Excel è pieno zeppo di dati così Nvidia ha sviluppato una serie di script in Perl capaci di analizzare i dati e creare l'analisi tra frame rate/tempo di frame, insieme ai grafici che riflettono l'informazione.
Nvidia ha chiamato questo pacchetto completo FCAT, che sta per Frame Capture Analysis Tool. I dati prestazionali che giungono da FCAT, modificati per rimuovere i frame persi e quelli "runt", dovrebbero essere maggiormente in linea con quanto visto dai giocatori.