GeForce 8800 GTX

Salve, mi scuso per il ritardo dell’articolo, ma negli ultimi tempi ho avuto un po’ da fare… Continuiamo con il nostro tour sulle schede video presentando le novità e l’architettura dell’ultima famiglia di GeForce, ovvero la GeForce 8 che si distingue totalmente dalle precedenti…. Più in dettaglio parleremo della GeForce 8800 GTX e del processore Nvidia G80, ma una volta apprese le informazioni di queste schede, sarete in grado di districarvi anche con le informazioni tecniche delle altre schede della stessa famiglia. Con la serie 8 Nvidia si lancia nel campo delle DirectX10 con il chip WGF 2.0, che riassumendo offre le seguenti funzionalità relative alle DirectX:

  • routine di vertex shader e pixel shader unificate
  • maggiori possibilità di effetti
  • meno dipendenza dalla CPU
  • gestione della GPU degli stream in/out
  • supporto all’alta definizione

Fino a qualche anno fa la GPU di una scheda video non era comparabile ad un processore in termini di istruzioni. La GPU infatti poteva eseguire solo istruzioni ben precise e non un flusso di programma qualsiasi; la lunghezza del programma era inoltre limitata. Le cose ora sono un po’ cambiate. Innanzitutto non esistono più dei circuiti per la gestione dedicata dei vertex shader e dei pixel shader, ma si è unificato il tutto in un unica catena di montaggio chiamata unified shader. La differenza principale è che avendo una vertex shader si può processare un’informazione vertex in meno tempo rispetto ad una unified, perché il circuito è ottimizzato per eseguire solo istruzioni di quel tipo. Allora la domanda sorge spontanea… Se le unified sono meno performanti, come mai sono state preferite ? Tentiamo di rispondere a questa domanda facendo un esempio. Alcune immagini come sappiamo richiedono molte routine di pixel shaders e pochissime di vertex, altre invece richiedono molte routine di vertex e poche di pixel. In una delle due situazioni citate è ovvio che una coda rimane sicuramente vuota perché non ha informazioni da processare. Paragoniamo ora le code a degli operai. Supponiamo di avere una scheda del vecchio modello, e di avere 10 operai specializzati nei vertex e 10 nei pixel. Supponiamo inoltre che arrivi un immagine con 100 vertex e 10 pixel, e che ogni operaio specializzato impieghi 3 secondi a fare il lavoro a lui assegnato. Abbiamo quindi 100 vertex / 10 operai * 3 sec = 30 sec e parallelamente 10 pixel / 10 operai * 3 secondi = 3 secondi. Tempo totale 30 secondi. Supponiamo ora di avere una scheda del nuovo modello, dove gli operai vanno più lentamente nel svolgere il lavoro, ma sanno svolgere lavoro di ogni tipo. Supponiamo che arrivi la medesima immagine (100 ver 10 pix) e che gli operai finiscano il lavoro in 4 secondi. 100 vertex + 10 pixel = 110 istruzioni 110 istruzioni / 20 operai * 4 secondi = 22. Tempo totale 22 secondi. Abbiamo visto che se l’immagine è fortemente sbilanciata vi è un miglioramento con il nuovo modello. Nei giochi tuttavia questo accade molto spesso e ecco dunque perché sono state preferite le unified shader. Tale tecnologia tuttavia non è stata introdotta da Nvidia, bensì da ATI con il nome di Xenos nell’R500 implementata anche nella Xbox…

Parliamo ora dell’ EXECUTION CORE. Questa è la parte più veloce della scheda in termini di frequenza. E’ composta da 128 Stream Processor divisi in 8 blocchi. Ogni blocco ha a disposizione 4 moduli per l’elaborazione delle texture e una cache condivisa di primo livello (L1). Ognuno di questi 8 blocchi è suddiviso in due parti chiamati shader processors, ognuno dei quali è quindi formato da 8 stream processors. Questi 8 blocchi hanno accesso a sei cache di secondo livello (L2) e sei registri (general purpose) che vengono condivisi fra tutti i blocchi. Questo serve affinché una parte di calcolo effettuata da un blocco possa essere elaborata ulteriormente anche da un altro blocco.

Clicca per ingrandire

Talvolta può capitare che nella fase di produzione della scheda, le memorie, i registri, i controller non siano ben condivisi fra tutti i blocchi per difetti di fabbricazione. In tal caso la scheda non viene buttata, ma si vende comunque, ad un costo più basso, e magari anche con un altro nome (causa le prestazioni inferiori). Ok, vediamo ora il flusso dei dati. Innanzitutto il dato passa attraverso l’Input Assembler, che lo converte in FP32 (floating point a 32 bit). Interviene a questo punto il Thread Processor che cambia il codice e lo ottimizza (spostando opportunamente i branch, riorganizzando gli stalli). Qui possiamo vedere un esempio di come il thread processor abbia un ruolo fondamentale, facendo un confronto tra le istruzioni eseguite dalla serie 7 e quella della serie 8.

Il Thread Processor esegue quest’ottimizzazione in base al GigaThread che a sua volta è un evoluzione di una tecnologia introdotta da ATI con la sua serie X1000 con il nome di Ultra Threading. Tale tecnologia consiste nel far eseguire più istruzioni possibili (utilizzando la memoria come buffer ) per minimizzare lo stato idle dei processor nel caso di operazioni di I/O dipendenti da altre unità, salti, accessi in memoria. Cosa interessante è che uno stream processor è in grado di fare due calcoli scalari contemporaneamente (e nessun calcolo vettoriale a differenza delle generazioni precedenti). Questo veniva fatto anche in ATI (che faceva 2 calcoli scalari e 2 vettoriali contemporaneamente tramite 4 ALU). Da questo punto di vista ATI esegue più operazioni a parità di clock ma Nvidia risulta più veloce poiché possiede un numero maggiore di stream processor rispetto ad ATI (128 contro 48 dell’R580). Ogni stream processor inoltre funge anche da ALU floating point. Ciò significa che un blocco oltre ad elaborare informazioni di vertici, geometrie, pixel può anche realizzare calcoli fisici o altri calcoli computazionali dello standard CUDA (Compute Unified Device Architecture). Questo significa che una scheda può fare dei calcoli fisici, calcolare in base a questi gli shader vertex geometry e pixel e farne il rendering in un flusso continuo (e non più a pezzi).

Passiamo ora a descrivere il GRAPHIC PROCESSOR Possiamo dividerlo in due parti, una è il core che abbiamo descritto sopra e uno è il LUMENEX ENGINE, che praticamente gestisce il flusso dati datogli dal core e lo ottimizza per la visione su schermo (antialiasing, luminosità, saturazione ecc.), gestisce quindi memorie di texture, interfacce, TMUs e ROPs. Le TMUs sono le parti blu (Texture Management Unit), ovvero 4 per ogni blocco. A sua volta ogni TMU contiene un’unità di campionamento TA e due unità di filtraggio TF.

La velocità di processamento delle texture con filtro anisotropo 2x o con il filtro bilineare è di 32 bit per ciclo (o 16 se le texture sono da FP16 ). Il Lumenex Engine lavora a 575 Mhz, quindi facendo un calcolo torico possiamo dire che il massimo delle operazioni consentite su una scena con filtro bilineare a anisotropo inseriti è di 18.4 gigatexels al secondo. Parliamo ora della parte Raster del Lumenex Engine. Essa è raggruppata in 6 sezioni e ognuna di esse può processare 4 pixel per ciclo (quindi un totale di 24 pixel per ciclo con colore e valore Z). Se viene impiegato solo il buffer Z (ovvero il buffer dove stà la coordinata di profondità dei pixel), il numero di pixel che viene processato è pari a 192 per ciclo in modalità normale e 48 in modalità multisampling 4x ( più texture applicate insieme con calcoli di priorità).

La parte ROP supporta tutti i filtri, tra cui citiamo antialiasing trasparente, multisampling e supersampling. In questa parte è stato superato il problema principale delle famiglie precedenti ovvero che non era possibile eseguire calcoli simultanei di tipo FSAA e FP HDR. Il sistema ROP gestisce inoltre filtri di tipo 8x, 8xQ, 16x e 16xQ che discuteremo in seguito. Per quanto riguarda la memoria non vi è un cambiamento sostanziale rispetto alle famiglie di tipo 7, tranne un miglioramento sul controller. I blocchi sono aumentati (da 4 a 6) e così il bus è salito da 256 bits (4×64) a 384 bits (6×64). E’ stato aggiunto il controllo alle GDDR4 (le memorie di ultima generazione)… come informazione aggiuntiva possiamo dire che con memorie di tipo GDDR3 900 (che essendo di tipo double data rate arrivano a 1800 Mhz), la banda passante è di circa 86.4GB/s… Purtroppo attualmente non si hanno informazioni riguardo le frequenze delle GDDR4, quindi non possiamo ancora darvi informazioni per quanto riguarda la banda passante con questo tipo di memorie… Sviluppando questo nuovo tipo di schede, Nvidia ha fatto molta attenzione non solo alla velocità di funzionamento ma anche alla qualità dell’immagine (cosa che nella famiglia 7 non si era realizzata perdendo su questo piano il confronto con ATI). Vi sono netti miglioramenti nell’applicazione dei filtri anisotropo e antialiasing, ma prima vorrei parlare un po’ del filtro FSAA (Full Scene AntiAliasing). Innanzitutto questo filtro è un mix di filtri (in particolare nella modalità 8xS è il mix del filtro multisampling e del filtro supersampling). Purtroppo come è possibile immaginare, questo filtro regala una superba immagine ma il prezzo da pagare in prestazioni è altissimo. Per questo motivo l’utilizzo dell’FSAA oltre una modalità di 4x era nella serie 7 assolutamente impraticabile (ricordiamo che l’antagonista ATI X1000 riusciva a mettere in conto un massimo calcolo con una velocità di 6x, non così sofisticato come quello di Nvidia per quanto riguarda la bellezza dell’immagine, ma di sicuro di utilizzo più pratico). Con questo nuovo chip Nvidia ha risolto i problemi introducendo la nuova modalità 8x FSAA chiamata 8xQ nei settaggi del driver ForceWare e i nuovi filtri antialising che prendono il nome di CSAA (coverage sampling antialiasing method) nelle modalità di 8x, 16x e 16xQ. Teoricamente è possibile usare anche un filtro multisampling 16x ma è nella modalità CSAA che il filtro da il massimo di se (poiché a differenza del multisampling esegue anziché un campionamento fisso un campionamento intelligente, riducendo i calcoli e incrementando le prestazioni senza degradare in modo sensibile l’immagine). Facendo un paragone il CSAA riesce a dare una qualità paragonabile al multisampling 16x ma a prestazioni del multisampling 4x. Il CSSA esegue meno campionamenti dell’MSAA, questo permette che i campionamenti vadano bene su una superficie più vasta (essendo fatti su pezzi piccoli anziché su maglia), aumentando le prestazioni (poiché risultano necessari meno calcoli per i pixel successivi all’elaborazione per i quali non viene rielaborato il sampling ma solo caricato). Le modalità di filtering CSAA sono disponibili in 8x, 16x, 16xQ. Le prime due modalità operano a maglia di 8 e 16 pixel per i qual vengono salvati 4 dati (3 di colore e una di coordinata Z). L’ultima aggiunge un profondità a 8 bit per il colore ed eguaglia un MSAA a 16x.

Si dice che questo nuovo filtro permette di eguagliare il filtro MSAA in SLI delle vecchie schede e grazie al riutilizzo dei calcoli viene dichiarato un aumento prestazionale di banda del 20%. Il dato è comunque da confermare. Per quanto riguarda il filtro anisotropo Nvidia annuncia che non sarà dipendente dall’angolo di inclinazione della texture e che sarà migliore di casa ATI (questa informazione è anch’essa da confermare). Tutta la complessità del chip di questa scheda richiede 691 milioni di transistor, (la parte del TMDS ovvero quella che è dedicata a spedire il flusso video all’esterno senza interferenze ecc. è stato spostato e non risiede in questo chip !). La complessità è molto più alta di quella delle moderne CPU: tanto per citarne una l’Intel KentsField ne ha 581 milioni… La frequenza ottimale dichiarata è 575 MHz per il core e 1375 MHz per gli shader processors. La tecnologia di sviluppo è stata affidata alla TSMC (taiwan semiconductor manufactoring company) con 0.09 micron. L’offerta è presente con due schede la 8800 GTX o GTS (quest’ultima più lenta rispetto alla prima). Con la scheda più potente al lancio vi sono stati degli errori nella grafica 3D causati da una partita risultata male di alcuni pezzi, che tuttavia non ne hanno posticipato l’uscita. Per la sorella minore nessun problema riscontrato. Ecco una piccola tabella per comparare diverse schede (notate la banda passante grazie al bus da 384 bit…):

Sembra che questa scheda non abbia rivali… Per i più puntigliosi si può dire che la scheda sia un po’ larga, ma i milioni di pezzi che la compongono devono pur starci non vi pare? Nell’ultima foto potete vedere il confronto con la 1900XTX.. 29.7 cm contro 23…

Il refrigeratore è davvero grande e occupa la maggior parte della scheda. Per rimuoverlo è necessario svitare 11 viti grandi e 8 piccole… Questa è la scheda nuda:

Per usare questa scheda si consiglia per non restare a piedi almeno un alimentatore da 12 V da almeno 450 W (si consiglia di avere almeno 30 A disponibili). E’ presente poi nell’angolo in basso a destra un piccolo speaker. Qui potete vedere il cuore del controller PWM (situato nella parte dietro il processor control block) :

La parte restante del chip è costituita dall’ NVIO-1-A3:

Ecco uno sguardo veloce ai compiti di quest’ultimo chip :

Ovviamente avere un chip separato come l’NVIO rende tutto più complicato ma era l’unico modo possibile per non fare interferire le RAMDAC che hanno una frequenza molto alta. Inoltre si pensa che questa tecnologia sia general purpose ovvero che non sia stata creata solo con lo scopo di essere inserita solo in questa scheda ma che possa servire anche in altre e con altri circuiti. La presenza di due connettori MIO confermano tre punti:

  • il primo è che il trasferimento dati è bidirezionale
  • il secondo che la banda è molto grande poiché sono usati allo stesso tempo
  • il terzo è che si prevede una possibile configurazione Quad SLI (ve la sentite di avere un alimentatore da oltre 1200W ?)

Dedicandoci al sistema di dissipazione, vediamo diverse pipe in rame e un dissipatore molto esteso


Il tutto poggia su una base di alluminio. Si nota che rispetto ad alcuni componenti il sistema sembra sbilanciato ma il tutto viene risolto con l’ausilio di pasta termica spalmata sotto in tutta la scheda. La ventola ricopre un ruolo importante, tanto che il sistema così brevettato dissipa maggiore calore rispetto a sistemi con una ventola di diverso tipo ma a stessa potenza. Qui abbiamo la foto della ventola :

La sua rumorosità al massimo è alta, ma il sistema di controllo della velocità svolge correttamente il suo lavoro in base alla temperatura, rendendo la dissipazione non fastidiosa (a meno che non abitiate in un deserto…).

Qui di seguito possiamo mostrarvi i grafici della rumorosità di diverse schede (in laboratorio alla prova erano presenti 36 dBA ):

Qualche nota sui consumi…come dichiarato da Nvidia il consumo non è eccezionale e al massimo si attesta su 145W. Possiamo dire con certezza che tutto riguardo potenza e dissipazione è stato sviluppato ai massimi livelli.

Ecco per gli appassionati qualche immagine dei filtri:

——————————————

CSAA 8x vs. Supersampling and SLI AA 8x

Half-Life 2


CSAA 8x


Supersampling


SLI AA 8x

Elder Scrolls: Oblivion


CSAA 8x


Supersampling


SLI AA 8x

———————————–

MSAA 4x/8x vs. CSAA 8x

Half-Life 2


MSAA 4x


MSAA 8x


CSAA 8x

Elder Scrolls: Oblivion


MSAA 4x


MSAA 8x


CSAA 8x

————————————————

MSAA 4x/8x vs. CSAA 16x/16xQ

Half-Life 2


MSAA 4x


MSAA 8x


CSAA 16x


CSAA 16xQ

Elder Scrolls: Oblivion


MSAA 4x


MSAA 8x


CSAA 16x


CSAA 16xQ

—————————————————–

CSAA 16x/16xQ vs. SLI AA 16x

Half-Life 2


CSAA 16x


CSAA 16xQ


SLI AA 16x

Elder Scrolls: Oblivion


CSAA 16x


CSAA 16xQ


SLI AA 16x

—————————————-

Anisotropic Filtering

G80

R580


Quality


High Quality


High Quality

——————————————————————————-

Fill rate :

Performance dei pixel shader:

Performance vertex shader:

Detto questo, sperando di non aver annoiato nessuno,

saluto tutti i lettori cui do appuntamento al prossimo articolo !

(fonte xbitlabs)

by Hochwart

Annunci

~ di Hochwart su giugno 27, 2007.

3 Risposte to “GeForce 8800 GTX”

  1. 30 Ampere????
    Il mio spaccalegna ne consuma 8!!

    8) e metterci un alimentatore a metanolo??
    un monocilindrico ci dovrebbe stare nel case!! 🙂

  2. io propongo la fissione nucleare… diventi verde ma vuoi vedere che AntiAliasing ? xD

  3. Ottima scheda!

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger hanno fatto clic su Mi Piace per questo: