NVIDIA GeForce 7800 GTX: arrivano le 24 pipeline

Alla presentazione di una nuova generazione di processori grafici il primo quesito che gli appassionati si pongono riguarda essenzialmente la portata delle innovazioni: “evoluzione o rivoluzione ?”. Quest'oggi NVIDIA presenta la scheda GeForce 7800 GTX: anche noi ci poniamo tale interrogativo al quale, nel corso di questa analisi, daremo una risposta.
di Paolo Corsini , Raffaele Fanizzi pubblicato il 22 Giugno 2005 nel canale Schede VideoNVIDIAGeForce
Raster Operations Unit
Una volta completate tutte le operazioni legate ai pixel, tali informazioni vengono processate dalle ROPs. Le ROPs (Raster Operations Unit) sono le unità di un processore grafico che hanno il compito di scrivere all’interno del frame buffer il valore di ogni singolo pixel. NVIDIA con G70 non ha introdotto novità di particolare rilievo all’interno di questa componente e pertanto la sua architettura resta immutata rispetto a quanto abbiamo visto con NV40. L’unica differenza tra le due GPU relativa alle ROPs è legata al rapporto tra il numero di pipeline ed il numero di ROPs: contrariamente a quanto visto con NV40, G70 non possiede un numero di ROPs pari al numero di pipeline. Ciò significa che anche se dal punto di vista teorico G70 è in grado di elaborare ventiquattro pixel per ciclo di clock, di fatto non può scriverne più di sedici all’interno del frame buffer. NVIDIA ha già adottato con successo una soluzione simile all’interno di NV43, il processore grafico alla base delle schede GeForce 6600: in questo caso le pipeline ammontano ad otto, mentre le ROPs sono quattro. Il motivo delle ottime performance della GeForce 6600 nonostante questo collo di bottiglia è dovuto alla scarsissima probabilità che ogni pipeline sia in grado di elaborare effettivamente un pixel per ciclo di clock. La semplice applicazione del filtro trilineare (senza ottimizzazioni) richiede, infatti, due cicli di clock e l’esecuzione di pixel shaders complessi aumenta notevolmente questo valore. NVIDIA ha fatto tesoro, quindi, dell’esperienza maturata con la precedente famiglia di GPU GeForce ed ha evitato di inserire all’interno di G70 un numero di unità ROPs che sarebbe risultato essere sovrabbondante.
Tra le molte funzionalità delle unità ROPs ereditate da NV40, ricordiamo il multiple render target e l’OpenEXR floating point blending.
La prima è la capacità di memorizzare i risultati di un pixel shader su più buffer contemporaneamente. Questo dà vita ad alcune interessanti tecniche di rendering come ad esempio il deferred shading.
L’OpenEXR floating point blending, invece, è un’operazione molto utile nel caso in cui si vogliano implementare effetti come l’High Dynamic Range o, più in generale, qualsiasi effetto di post-processing che richieda texture floating point a 16 bit. L’OpenEXR è un formato di texture FP16 ideato dalla Industrial Light and Magic, celebre azienda impegnata nella realizzazione di effetti speciali cinematografici, fondata da George Lucas, il creatore della saga di Star Wars.
Segnaliamo, infine, che esattamente come per NV40, anche G70 supporta un frame buffer in formato integer ad 8 bit (per componente di colore), floating point a 16 bit e floating point a 32 bit, anche se solo nel primo caso, quello comunemente utilizzato, è supportato l’antialiasing di tipo multisampling.