ATI Radeon HD 4850, test e analisi architettura

Dopo l'anteprima pubblicata la settimana scorsa, ecco l'analisi architetturale della nuova scheda di ATI Radeon HD 4850, corredata da ulteriori test prestazionali. Presente nei test anche la nuova GeForce 9800 GTX+, presentata in risposta alla Radeon HD 4850 che desta più di una preoccupazione in casa NVIDIA.
di Alessandro Bordin , Paolo Corsini pubblicato il 25 Giugno 2008 nel canale Schede VideoNVIDIAATIGeForceRadeonAMD
Architettura della GPU RV770
Abbiamo evidenziato, nella parte iniziale di questa analisi, come la nuova serie di schede Radeon HD 4800 sia dotata di GPU nota con il nome in codice di RV770, all'interno della quale trovano posto ben 800 stream processing unit. Questo numero è ottenuto affiancando 10 core SIMD, all'interno dei quali sono contenuti 80 stream processing unit. A titolo di confronto nelle soluzioni RV670 trovavamo 4 core SIMD, sempre ciascuno dotato al proprio interno di 80 stream processor per un totale di 320 SP: l'architettura di fondo è quindi rimasta invariata rispetto a RV670, con tuttavia un sensibile incremento delle unità di elaborazione.
Nell'immagine è raffigurata una coppia di core SIMD, ciascuna composta da 80 stream processing unit al proprio interno. Per ogni core SIMD troviamo un thread sequencer dedicato, inserito all'interno dell'Ultra Threaded Dispatch Processor, componente che nel percorso logico di funzionamento della GPU è posizionato immediatamente dopo il command processor e il setup engine. Ogni SIMD core è dotato di una propria logica di controllo, di 4 texture units per un totale di 40 presenti in tutta la GPU e di una cache L1 dedicata; ad ogni SIMD core, che dialoga con gli altri presenti nella GPU attraverso un Global Data Share da 16 Kbytes di capacità, è associata una cache locale da 16 Kbytes
.
Le singole stream processing unit sono accorpate in gruppi di 5 all'interno della GPU, in quella che AMD chiama stream processor. 4 dei 5 streaming processors sono identici per costruzione e funzionalità, mentre il quinto può eseguire le stesse operazioni dei 4 precedenti oltre a quelle di tipo trascendentale: per questo motivo del grafico è stato schematizzato con una dimensione leggermente superiore. Ogni 5 stream processing units troviamo vari registri di tipo general purpose, ai quali accedono direttamente, e una unità di branch execution dedicata.
Confrontando questa architettura con quella sviluppata da NVIDIA con le GPU GT200 notiamo immediatamente come quelle che NVIDIA indica con il nome di stream processors per AMD siano più correttamente da indicare con il nome di stream processing units. Se gli stream processor delle GPU NVIDIA sono unità indipendenti tra di loro che possono eseguire una operazione per ciclo di clock, nell'architettura RV770 di ATI (ma lo stesso valeva per quella RV670) gli stream processors posson eseguire un massimo di 5 operazioni per ciclo di clock, nel momento in cui il codice è tale da occupare tutte e 5 le stream processing units integrate in uno stream processor.
La conseguenza diretta di questo è che l'architettura NVIDIA GT200 può sempre eseguire 240 istruzioni per volta utilizzando tutti gli stream processors di cui è dotata, mentre per le soluzioni RV770 di ATI si possono avere scenari ideali sino a 800 istruzioni eseguite per volta, occupando tutte le stream processing units, oppure un minimo di 160 istruzioni eseguite per volta nel momento in cui queste siano tali da non poter essere accorpate tra di loro. L'architettura degli stream processors utilizzati da ATI nella GPU RV770, infatti, richiede necessariamente che i 5 stream processing units integrati in uno stream processor siano tutti al lavoro sullo stesso thread.
Abbiamo segnalato la presenza di 40 texture units all'interno delle GPU RV770, contro le 16 integrate da AMD in quelle RV670: ogni SIMD Core ha associata una texture unit, all'interno della quale sono presenti 4 processori per l'indirizzamento delle textures per un totale di 40 presenti nella GPU. Ogni texture unit è poi dotata al proprio interno di un'unità dedicata a texture decompressor, 16 FP32 texture samplers e 4 PF32 texture filters.
Rispetto alle architetture RV670, quindi, resta invariata l'architettura base di una singola texture unit ma il loro numero complessivo passa dalle precedenti 4 a 10. ATI ha introdotto significativi cambiamenti nelle cache delle texture units: sono sempre presenti cache L1 e L2, ma rispetto a RV670 ora le cache L2 sono direttamente allineate con i canali memoria. La cache L1 è ora unica per ogni SIMD Core, con la conseguenza di un raddoppio del quantitativo di memoria L1 a disposizione di ogni singolo SIMD Core rispetto a RV670 e a un incremento pari a 5 volte del quantitativo totale di cache L1.
Abbiamo segnalato poco sopra come nelle GPU RV770 siano presenti 160 stream processors, con associati a ciascuno di essi 5 stream processing units: il rapporto tra stream processor e texture units in RV770 è quindi pari a 4:1, lo stesso presente nelle soluzioni RV670. A titolo di confronto le architetture NVIDIA GT200 vantano un rapporto pari a 3:1, grazie ai 240 stream processors associati a 80 texture units. E' evidente come ATI ritenga che le moderne architetture GPU siano sempre meno dipendenti dalla pura potenza di elaborazione delle textures, e sempre maggiormente legate alla potenza elaborativa degli shader; questo spiega anche perché ATI abbia integrato 5 stream processing units all'interno di ogni stream processor, potendo quindi vantare una potenza di elaborazione massima più elevata di GT200 nel momento in cui il set di istruzioni vede più operazioni, e quindi più SP in uso, associati allo stesso thread.
La bandwidth tra le cache è aumentata, passando sino a 384 Gbytes al secondo tra L1 e L2; la cache L1 è inoltre capace di una bandwidth massima teorica sino a 480 Gbytes al secondo con operazioni di texture fetch. A completare l'analisi delle cache segnaliamo anche la presenza di una cache dedicata al vertex caching.
A chiudere l'analisi architetturale della GPU RV770 troviamo le render Back-Ends, quelle che altro non sono che l'equivalente delle ROPs così come vengono indicate da NVIDIA nelle proprie architetture video. Il loro numero, pari a 16, non è cambiato rispetto a quanto implementato nelel GPU RV670. ATI ha operato a incrementarne l'efficienza complessiva di fatto raddoppiandone la capacità di elaborazione sia a 32bit che a 64bit di profondità colore nel momento in cui vengono utilizzate modalità di AA MultiSample 2x, 4x e 8x. Di fatto, quindi, il fill rate in anti aliasing è raddoppiato rispetto a quanto messo a disposizione dalle architetture RV670, risolvendo auspicabilmente uno dei principali limiti prestazionali delle schede video Radeon HD 3850 e Radeon HD 3870. Raddoppiato anche il numero massimo di pixel con soli valori Z che possono venir processati contemporaneamente rispetto a RV670: da 32 sino a 64.