PDA

View Full Version : G80: ancora architettura separata per pixel e vertex shader?


Redazione di Hardware Upg
21-02-2006, 14:27
Link alla notizia: http://www.hwupgrade.it/news/skvideo/16477.html

Il debutto della prossima generazione di architettura video NVIDIA non sembra essere particolarmente lontano; emergono quindi le prime indiscrezioni

Click sul link per visualizzare la notizia.

!SengiR!86!
21-02-2006, 14:36
ma quindi g80 non supporterà le dx10? non ho capito bene le ultime righe... cioè in pratica per g80 vertex e pixel sahder non saranno ancora unificate però dice che nel futuro sicuramente saranno unificate?

bs82
21-02-2006, 14:40
ahi ahi...mentre ati con r600 si basera sull struttura unificata directx 10(e oltre) di xbox360....qua vedremo nvidia ancora rantolare nel fango... speriamo non sia vero ...sennò non ci sarà concorrenza..
è anche vero che ati lavora a stretto contatto con MS e quindi ati e directx è un binomio infallibile...

Trykx
21-02-2006, 14:41
l'importante per loro è buttare fuori più skede video possibili...

Catan
21-02-2006, 14:45
no aspettate prima di gettare fango su nvidia(e nn sono di parte propio adesso mi è arrivava una x1900)per essere dx10 o wgf2.0 compliant solo l'uotput che esce deve essere visto a ps e vs unificate.e gia in tempi non sospetti nvidia ha detto che per g80 è intenzionata a mantere in hw le cose separate e fare tramite software la unificazione a livello output(soluzione nn propio elegante che mi ricorda il famoso compilatore di nv3x)mentre ati gia da tempo ed epserienza con r500 preferisce andare su una unificazione hw

bs82
21-02-2006, 14:53
ma appunto si sa che non è l'unica strada quella di unificare a monte PS e VS...

però non so se tu hai presente che razza di prestazioni e flessibilità di programmazione permette un'archittettura del genere!!!

L'unificazione dei PS e VS è un grande passo che ATI ha già fatto con Xenos di XBOX360....e MS è stra contenta!

Ti ricordo che questo passo ha un peso nella storia delle schede video 3D pari a quella della venuta del Transofm&Lighting...

restare indietro in questi anni prendendo una strada così conservativa....permetterà ai videogiocatori di trovare giovamenti solo con vecchi giochi (come succede attualmente con g70 e g71) dove operazioni su texture e shaders si equivalgono...

Ati ha scelto la strada dell'innovazione e del futuro...privaleggiando le operazioni sui shaders con r520/r580 e unificando il tutto con r500 (xbox360)...

Tu non immagini che zappata sui piedi si tirerà nvidia se continuera con questa politica conservativa...

GREZZO16
21-02-2006, 14:54
infatti

nvidia supporterà pienamente le dx10 che permettono agli sviuppatori di utilizzare una unità sola per PS e VS, solo che nvidia ha i suoi buoni motivi per tenerli separati.
è come dire "siete in 2, potete andare in 2 auto separate e vedervi all'arrivo, oppure andare direttamente in una macchina in 2"

giapel
21-02-2006, 14:55
Raga,non so voi ma io non ne posso piu' di snetire novita' di schede video e affini..............ma poi,che prezzi!!!Cavolo,ma che lavoro fate per spendere centinaia e centinaia di euro per una scheda video?Non e' che io prenda 200 euro al mese ma sinceramente spendere 500-600 euro o piu' per una scheda video mi sembra una bestemmia.

leoneazzurro
21-02-2006, 14:55
ma quindi g80 non supporterà le dx10? non ho capito bene le ultime righe... cioè in pratica per g80 vertex e pixel sahder non saranno ancora unificate però dice che nel futuro sicuramente saranno unificate?

Significa che G80 supporterà le DX10 ma dal punto di vista dell'organizzazione interna dell'hardware non utilizzerà una struttura a shader unificati. L'importante non è tanto la struttura HW, quanto il supporto logico alle API.
IMHO G80 sarà molto simile a un R580 come struttura generale, con le chiare differenze id progetto necessarie per l'applicazione delle DX10.

Cimmo
21-02-2006, 14:59
ma che ci fai su sto sito se non vuoi sentire niente delle novita'? E poi chi ti costringe a fare niente?

giapel
21-02-2006, 15:04
X cimmo :

Allora,io AMO questo mondo,ma sinceramente in questo periodo si sta esagerando con le novita'.L'utente medio,non come noi che stiamo qui e ne capiamo chi piu' chi meno,e'assolutamente confuso e nelle mani di chi vuoel appioppargli la cosa piu' costosa.
Oltreche',non pensate anche voi che certe schede costino veramente troppo?
Tutto questo....attenzione.....non significa che io non ami le novita' (ben vengano :) ) o che sia retrogrado :D ;)

P.S.

Ho parlato di 'costrizioni'? :confused:

bs82
21-02-2006, 15:06
GREZZO16 carissimo... hai posto il problema e ti sei dato la risposta senza accorgertene ;-) fra le due opzioni quale è la più redditizia?

leoneazzurro..non sono poi così sicuro che l'archittettura interna sia poi così influente...ricordati che nelle schede video si parla sempre di qualità e prestazioni, ed entrambe dipendono pesantemente dall'archittetura interna...

il fatto è che il programmatore avrà parecchie grane...perchè le directx 10 PREVEDONO l'utilizzo dei PS e VS unificati...e ci saranno dei comandi e dei path appositi...

Ora il programmatore sa che il chip grafico lavorerà in parte sui shaders e in parte sulle textures... Se tutto viene unificato, non ci sarà quesa differenziazione, non ci sarà più la differenza tra 2D e 3D (come in MS Vista) e sarà relativamente più facile programmare!

Cimmo
21-02-2006, 15:08
Si le schede video costano molto, io ho risolto boicottando la fascia medio-alta di qualsiasi oggetto a meno che non ne abbia una gran necessita'

giapel
21-02-2006, 15:10
Commento tecnico :

comunque tanto di cappello a questi programmatori che fanno veramente lavori STUPENDI e che meritano tutto quello che si guadagnano :) :).
Io spero sia possibile in futuro piu' che aumentare la realta' di certi ambienti anche integrare efficacemente il supporto al periferiche 3D come gli occhiali e certi caschi,che finora han fatto abbastanza pena.Non siete d'accordo? :)

!SengiR!86!
21-02-2006, 15:14
Significa che G80 supporterà le DX10 ma dal punto di vista dell'organizzazione interna dell'hardware non utilizzerà una struttura a shader unificati. L'importante non è tanto la struttura HW, quanto il supporto logico alle API.
IMHO G80 sarà molto simile a un R580 come struttura generale, con le chiare differenze id progetto necessarie per l'applicazione delle DX10.

ah ok grazie, ma secondo voi facendo l'unificazione via software il risultato sarà più macchinoso o a prestazioni dovrebbe essere ugale all'unificazione fisica?

SilverXXX
21-02-2006, 15:16
Forse nvidia preferisce attendere un ridisegno completo di architettura per mettere ps e vs unificati?

fukka75
21-02-2006, 15:21
Già che ci siete, dateci anche i risultati dei benchmark, visto che già sapete quale scheda video farà schifo (nVidia) e quale invece sarà la migliore in assoluto (ATI). Manco ci sono dei sample in giro che già sapete tutto e anche di più, mah ....
Un conto è immaginare come potrà essere un'architettura, e quali vantaggi potrà apportare, un altro è sparare sentenze quando ancora non si sa nulla né sul supporto hardware né tantomeno su quello software.

bs82
21-02-2006, 15:21
è quello il problema... la soluzione nvidia per restare all'interno della qualifica delle dirext10 sarà molto macchinosa...
L'unificazione fisica (che non è proprio esatto chiamarla così, in pratica viene tolta la distinzione tra texture e shaders e si lavorera tutto insieme) è ovviamente notevolmente più prestante di qualsiasi altra soluzione... e io non vedo l'ora di mettermi a programmare con le DX10 in ques'ottica!!!

(ricordiamo che tutt'ora g70 non è del tutto directx9.0c, neanche le nuove ati ma hanno una scorciatoia legalizzata da MS :DDD )

bs82
21-02-2006, 15:24
vuoi un sample venduto sotto costo ma lo stesso molto performante della nuova scheda ATI con ps e vs unificati?

costa 299 euro e si chiama XBOX360

JohnPetrucci
21-02-2006, 15:26
E' ancora troppo presto per giudicare se Nvidia avrà ripercussioni negative da questa scelta in termini prestazionali o qualitativi, in ogni caso sarebbe preferibile seguire le direttive Dx10 di Ms anche in hardware, come fa Ati.

bs82
21-02-2006, 15:32
MS e ATI fanno le cammellate insieme :D

Ovvio che questa volta Nvidia dovrà essere molto aggressiva per competere con ATI... Solo che, e parlo da amante dell'"arte" che sta dietro la progettazione di un chip, se si ostina a proporre gpu prive di innovazioni e "fantasia" architetturale...beh...nvidia verrà sempre messa al secondo non solo per le prestazioni

Dai adesso nvidia esce con la 7900 e si riprende il trono, poi ati tirerà fuori la sua e riprenderà il trono e così via...

!SengiR!86!
21-02-2006, 15:33
è quello il problema... la soluzione nvidia per restare all'interno della qualifica delle dirext10 sarà molto macchinosa...
L'unificazione fisica (che non è proprio esatto chiamarla così, in pratica viene tolta la distinzione tra texture e shaders e si lavorera tutto insieme) è ovviamente notevolmente più prestante di qualsiasi altra soluzione... e io non vedo l'ora di mettermi a programmare con le DX10 in ques'ottica!!!



ah ecco immaginavo...

grazie :)

Dark Schneider
21-02-2006, 15:36
Allora ragazzi penso che per fare maggiore chiarezza è meglio postare uno spezzone dell'intervista fatta a David Kirk proprio da HwUpgrade:



Un secondo tema di notevole interesse mutuato dalle più recenti architetture delle console è quello dell'architettura a shader unificati. NVIDIA prevede di adottare questo modello in future generazioni dei propri chip video desktop per PC?

Faccio alcune premesse indispensabili: lo unified programming model, il modello di programmazione unificato, presentato da Microsoft nelle proprie API è un'idea eccellente. L'API tuttavia dice di avere un approccio unificato alla programmazione, non come questo approccio debba avvenire via hardware all'interno della GPU. Per questo motivo, l'API non dice in nessun modo che la programmazione debba avvenire con un'architettura unificata, o con pixel e vertex shader separati: l'importante per l'API è il risultato finale generato a video.

Per meglio capire i benefici o i limiti di un'architettura a shader unificati bisogna premettere che tipo di carico ed elaborazioni vengano svolte dagli shader:

* vertex shader: si tratta di operazioni soprattutto in floating point
* pixel shader: buona parte del workload è legato alle textures

Le due tipologie di operazioni sono quindi molto diverse tra di loro; un'architettura unificata permette di ottenere, sia per pixel che per vertex shader, dei valori prestazionali di picco che sono più elevati rispetto ad un'architettura con shader separati. La spiegazione è ovvia: c'è un'unica risorsa hardware per elaborare pixel e vertex shader, di potenza complessivamente più elevata rispetto a quanto singolarmente sono in grado di elaborare i singoli pixel pipeline e vertex pipeline di un'architettura non unificata.

Il vantaggio in termini di prestazioni massime, tuttavia, si scontra con i limiti propri di come i calcoli su pixel e vertex shader debbano venir eseguiti. L'obiettivo di un'architettura unificata è quella di cercare di saturare sempre e comunque le risorse hardware disponibili, eseguendo sia pixel che vertex shader. Se il chip video non è in grado di occupare sempre lo shader unificato con calcoli da eseguire, bilanciando l'esecuzione di pixel e vertex shader a seconda di quanto richiesto dalla scena per essere generata correttamente, si corre il rischio di avere colli di bottiglia e un non ottimale sfruttamento.

Pensando al mondo delle console, dove la piattaforma hardware non viene modificata per i mediamente 5 anni del proprio ciclo di vita, l'approccio unificato per pixel e vertex pipeline può avere senso in quanto i games developer continueranno ad utilizzare la stessa piattaforma per anni. Personalmente, tuttavia, credo che al momento attuale l'approccio con architetture separate sia preferibile, sia per l'approccio più semplice alla programmazione, sia per le prestazioni.

La programmazione con architettura unificata è su carta più semplice rispetto ad una con architettura separata, almeno ad una prima analisi superficiale. Se si vuole cercare di ottenere la massima efficienza dal proprio codice, sfruttando al meglio l'architettura unificata, ci si accorge però di come questo possa richiedere al programmatore, soprattutto nel breve periodo, uno sforzo ancor più importante che nella programmazione con pixel e vertex pipeline separate.

L'approccio con architettura unificata, quindi, potrà diventare applicabile con benefici tangibili all'architettura delle GPU per PC nel momento in cui i programmatori saranno in grado di sfruttare al meglio questa risorsa hardware, senza dover necessariamente impiegare molto tempo nell'ottimizzazione del codice.

Alcune indiscrezioni, che riporto nella forma di rumors non confermati, dicono che alcuni games developer stanno programmando titoli per Xbox 2 utilizzando l'architettura unificata per i soli pixel shader, passando al processore della console le operazioni legate ai vertex shader.

Athlon 64 3000+
21-02-2006, 15:43
diciamo che io preferirei una gpu che avrà le unità a shader unificati anche fisicamente e quindi per il momento sono più propenso a R600 che G80 ma dato che sono solo rumors posso essere smentito in qualsiasi momento.

Dark Schneider
21-02-2006, 15:45
Premetto che mi ispira maggiormente l'approccio Ati(che ha anche già un esperienza vista che R500 è una realtà attuale), anche se poi sarà tutto da dimostrare, bisogna cmq ricordarsi che David Kirk non è di certo l'ultimo arrivato.

bs82
21-02-2006, 15:45
perfetto....e siccome i giochi necessiteranno sempre in modo superiore di un pesante workload sugli shaders....l'archittetura unificata è la migliore... Mentre nvidia continua ad aumentate ed aumentare le pipe di rendering delle texture, ati ha squilibrato la sua archittetura privilegiando le pipe per i shaders... e siccome ormai i giochi presentano carichi di lavoro che vanno da 3:1 a 7:1 rapporto shaders/textures (un esempio è FEAR, gioco recente),si fa presto a capire quale archittura attuale va meglio....e quale archittetura futura sara più longeva e prestante...

sirus
21-02-2006, 15:47
Peccato, l'architettura adottata da ATi mi piace molto di più. Vorrà dire che cambierò le mie preferenze :D

Pikitano
21-02-2006, 16:02
Ben vengano queste continue novità, ormai trovo quasi inutile la fascia alta che è facilmente limitata dal resto dell'hardware, così i prezzi si abbassanno e io potrò comprarmi una scheda video buona con una spesa assolutamente sostenibile :)

KuWa
21-02-2006, 16:18
mah io sono sempre stato pro nvidia però mi ispira piu la scelta di ati. cmq staremo a vedere... non si può mai giudicare senza prima aver visto i risultati.

mjordan
21-02-2006, 16:21
Tu non immagini che zappata sui piedi si tirerà nvidia se continuera con questa politica conservativa...

Magari manda una mail a David Kirk e avvertilo dei pericoli... :rolleyes: Forse non se ne sono accorti.

mjordan
21-02-2006, 16:24
Significa che G80 supporterà le DX10 ma dal punto di vista dell'organizzazione interna dell'hardware non utilizzerà una struttura a shader unificati. L'importante non è tanto la struttura HW, quanto il supporto logico alle API.
IMHO G80 sarà molto simile a un R580 come struttura generale, con le chiare differenze id progetto necessarie per l'applicazione delle DX10.

Si dovrebbe vedere anche se i compilatori per i linguaggi di shading unificati non siano versatili abbastanza da compilare uno shader scritto in un linguaggio unificato in uno che utilizzi pixel e vertex shader in modo separato. Allora la differenza sarebbe solo nella "facilità di programmazione". Per adesso non vedo tutto questo gran bisogno degli shader unificati.

mjordan
21-02-2006, 16:27
leoneazzurro..non sono poi così sicuro che l'archittettura interna sia poi così influente...ricordati che nelle schede video si parla sempre di qualità e prestazioni, ed entrambe dipendono pesantemente dall'archittetura interna...

il fatto è che il programmatore avrà parecchie grane...perchè le directx 10 PREVEDONO l'utilizzo dei PS e VS unificati...e ci saranno dei comandi e dei path appositi...

Ora il programmatore sa che il chip grafico lavorerà in parte sui shaders e in parte sulle textures... Se tutto viene unificato, non ci sarà quesa differenziazione, non ci sarà più la differenza tra 2D e 3D (come in MS Vista) e sarà relativamente più facile programmare!

Certo, il problema è che probabilmente questa sarà soltanto un'unificazione "logica" non credo che sarà a livello "architetturale", vedi il discorso che facevo prima a leoneazzurro sul compilatore per il linguaggio di shading. Inoltre DX10 non PREVEDE l'uso dei PS e VS unificati come tu dici, ma CONSENTE ANCHE. Quindi puoi realizzare i PS e i VS anche nel modo tradizionale separato. Il che rafforza la mia ipotesi. Comunque è tutto da vedere.

yossarian
21-02-2006, 16:30
è quello il problema... la soluzione nvidia per restare all'interno della qualifica delle dirext10 sarà molto macchinosa...
L'unificazione fisica (che non è proprio esatto chiamarla così, in pratica viene tolta la distinzione tra texture e shaders e si lavorera tutto insieme) è ovviamente notevolmente più prestante di qualsiasi altra soluzione... e io non vedo l'ora di mettermi a programmare con le DX10 in ques'ottica!!!

(ricordiamo che tutt'ora g70 non è del tutto directx9.0c, neanche le nuove ati ma hanno una scorciatoia legalizzata da MS :DDD )

non è esatto: si elimina la distinzione tra operazioni su vertici e su pixel; le operazioni di texturing continuano a restare separate (e svolte a parte).

Dati e istruzioni, anche in un'architettura unificata, continuano a restare separati per pixel vertici; l'unificazione avviene solo a livello di esecuzione dei calcoli (ma già gli attuali ps di R5x0 sono in grado di eseguire un gran numero di vertex ops). La tmu saranno esterne alla pipeline (come in R5x0 e in C1) e potrano essere utilizzate sia per vertex che per pixel ops.


Delle affermazioni di Kirk, si può cotestare la seguente:

* vertex shader: si tratta di operazioni soprattutto in floating point
* pixel shader: buona parte del workload è legato alle textures

Le due tipologie di operazioni sono quindi molto diverse tra di loro; un'architettura unificata permette di ottenere, sia per pixel che per vertex shader, dei valori prestazionali di picco che sono più elevati rispetto ad un'architettura con shader separati. La spiegazione è ovvia: c'è un'unica risorsa hardware per elaborare pixel e vertex shader, di potenza complessivamente più elevata rispetto a quanto singolarmente sono in grado di elaborare i singoli pixel pipeline e vertex pipeline di un'architettura non unificata.

Il trend è quello di fare sempre più uso di texture fetch o texture lookup (o anche texture filtering), anche nelle vertex ops, mentre, per i pixel vanno assumendo sempre maggior peso le operazioni matematiche. Quindi la tendenza è verso una convergenza dei due tipi di operazioni (e non verso la differenziazione).

Su G80 non è da escludere che parte delle alu possano svolgere sia vertex che pixel ops e che le tmu siano esterne alle pipeline.

mjordan
21-02-2006, 16:38
non è esatto: si elimina la distinzione tra operazioni su vertici e su pixel; le operazioni di texturing continuano a restare separate (e svolte a parte).

Dati e istruzioni, anche in un'architettura unificata, continuano a restare separati per pixel vertici; l'unificazione avviene solo a livello di esecuzione dei calcoli (ma già gli attuali ps di R5x0 sono in grado di eseguire un gran numero di vertex ops). La tmu saranno esterne alla pipeline (come in R5x0 e in C1) e potrano essere utilizzate sia per vertex che per pixel ops.


Delle affermazioni di Kirk, si può cotestare la seguente:

* vertex shader: si tratta di operazioni soprattutto in floating point
* pixel shader: buona parte del workload è legato alle textures

Le due tipologie di operazioni sono quindi molto diverse tra di loro; un'architettura unificata permette di ottenere, sia per pixel che per vertex shader, dei valori prestazionali di picco che sono più elevati rispetto ad un'architettura con shader separati. La spiegazione è ovvia: c'è un'unica risorsa hardware per elaborare pixel e vertex shader, di potenza complessivamente più elevata rispetto a quanto singolarmente sono in grado di elaborare i singoli pixel pipeline e vertex pipeline di un'architettura non unificata.

Il trend è quello di fare sempre più uso di texture fetch o texture lookup (o anche texture filtering), anche nelle vertex ops, mentre, per i pixel vanno assumendo sempre maggior peso le operazioni matematiche. Quindi la tendenza è verso una convergenza dei due tipi di operazioni (e non verso la differenziazione).

Su G80 non è da escludere che parte delle alu possano svolgere sia vertex che pixel ops e che le tmu siano esterne alle pipeline.

E' quindi corretto per te ipotizzare ad un'unificazione logica spostando tutta la questione sul compilatore del linguaggio di shading anziche sull'architettura, almeno per i primi tempi?

yossarian
21-02-2006, 16:42
E' quindi corretto per te ipotizzare ad un'unificazione logica spostando tutta la questione sul compilatore del linguaggio di shading anziche sull'architettura, almeno per i primi tempi?


è un'ipotesi plausibile; addirittura si potrebbe avere un'unificazione di tipo ibrido, con unità fisicamente separate e degli arbiter che smistano dati e istruzioni dalle sottostazioni alle unità di calcolo relative a vertici e pixel.
Dal punto di vista logico, si comporterebbe esattamente come un'architettura unificata

riva.dani
21-02-2006, 16:51
Ma 'set Dx 10 saranno così importanti? Io mi devo rifare il PC, mi butto su una 7900GT... Poi si vedrà, se la dovessi cambiare per forza in tempi brevi, significherà anche un maggior ricavo di vendita da parte mia proprio sulla 7900 :D

xLuk3x
21-02-2006, 17:14
Vorrei far notare che non è detto che ps e vs unificati siano sempre e comunque un vantaggio...

mjordan
21-02-2006, 17:16
Ma 'set Dx 10 saranno così importanti? Io mi devo rifare il PC, mi butto su una 7900GT... Poi si vedrà, se la dovessi cambiare per forza in tempi brevi, significherà anche un maggior ricavo di vendita da parte mia proprio sulla 7900 :D

Si. Anche se agli inizi non saranno cosi irrinunciabili, credo che stavolta lo stacco sarà piu' netto, visto che Microsoft dichiara di aver rotto la compatibilità all'indietro...
Di certo il passaggio è piu' drastico che da una versione precedente delle librerie.

Chissà che ci esce. :D

P.S.: Qualcuno sa come sta andando a finire la questione con le OpenGL?

coschizza
21-02-2006, 17:48
Un saluto a tutti

volevo far notare che nella traduzione in italiano dell'artico originale a mio parere non è stato riportato un punto che IMHO spiega tutto:

"is not a trivial task to create appropriate load balancing logic that would arbiter the unified arithmetic logic units"

Quando l'ATI parla della R500 (la gpu della xbox 360) ha sempre detto che il particolare piu importante è proprio l' "arbiter" che serve per gestire i task (divisi tra operazioni su pizel o vertex) del gioco.
A detta dell'ATI tutta la difficoltà della R500 e in questo particolare perche avere un "gestore" efficiente o no cambiava tutto e sempre secondo i loro progettisti è stata raggiunta un efficienza del 95% per quello che riguarda l'utilizzo delle 48 ALU nella gpu.

Quindi considerando che questa progettazione non è banale e che nel caso dell' ATI è stata fatta su spinta della MS con soldi della MS e quindi ben motivati, la NVIDIA non ha trovato vantaggi nel avventurarsi subito in un approccio di shader completamente unificati utilizzando una tecnologia già collaudata e poi giocando sui driver per rendere l'hardware completamente compatibile con le direct10.

Questo perche alla fine (lo ha detto anche la MS) non importa tanto se l'hardware è realmente unificato o no, quello che conta e che a livello programmazione le specifiche siano completamente rispettate, il come queste vengono eseguite nella gpu è una questione secondaria.

byby

bs82
21-02-2006, 18:21
Ma guardando in faccia le mere prestazioni, non penso che una soluzione ibrida permetta performance comparabili con un'archittettura unifica a livello hardware.

E ati ha dalla parte sua un'ottima esperienza con algoritmi di "smistamento": vedi le tecnologie di r500 e quelle di r520 come il ring bus, lo "smistatore" ultrathreaded ecc ecc...

Poi c'è da dire una cosa: nvidia sembra restia a passare all'archittetura unificata in hardware e probabilmente avrà i suoi motivi. Resta il fatto che in futuro dovrà passare a questa archittettura se vorra tenere il passo dei processori che usciranno dalla costola di r500.

Ormai i giochi hanno un rapposto operazioni sulle texture/ operazionu sui shaders pesantemente sbilanciato verso le operazioni a virgola mobile (e quindi sugli shaders). E sappiamo benissimo come in questo caso l'archittettura unificata sia pesantemente avantaggiata: cito sempre il solito fear che ha il rapporto shaders/texture di ben 7:1...

Perciò o questo G80 è ancora un'evoluzione di G70 (andando a intaccare la struttura delle tmu e delle alu senza stravolgere tutto) e in tal caso sarebbe una ben'emerita ciofeca...oppure nvidia ha così tanti ingegneri che si è ri-inventata un'archittetura a shaders separati adatta alle DX10, mentre sta già lavorando ad una unificata. Dico questo perchè prima o poi, si dovrà unificare....

Ovviamente non prendo nemmeno in considerazione le vostre idee su soluzioni ibride o su soluzioni "unificatrici" da parte dei compilatori. Sarebbero controproducenti e scarsamente prestazionali...

halduemilauno
21-02-2006, 18:50
Ma guardando in faccia le mere prestazioni, non penso che una soluzione ibrida permetta performance comparabili con un'archittettura unifica a livello hardware.
E ati ha dalla parte sua un'ottima esperienza con algoritmi di "smistamento": vedi le tecnologie di r500 e quelle di r520 come il ring bus, lo "smistatore" ultrathreaded ecc ecc...

Poi c'è da dire una cosa: nvidia sembra restia a passare all'archittetura unificata in hardware e probabilmente avrà i suoi motivi. Resta il fatto che in futuro dovrà passare a questa archittettura se vorra tenere il passo dei processori che usciranno dalla costola di r500.

Ormai i giochi hanno un rapposto operazioni sulle texture/ operazionu sui shaders pesantemente sbilanciato verso le operazioni a virgola mobile (e quindi sugli shaders). E sappiamo benissimo come in questo caso l'archittettura unificata sia pesantemente avantaggiata: cito sempre il solito fear che ha il rapporto shaders/texture di ben 7:1...

Perciò o questo G80 è ancora un'evoluzione di G70 (andando a intaccare la struttura delle tmu e delle alu senza stravolgere tutto) e in tal caso sarebbe una ben'emerita ciofeca...oppure nvidia ha così tanti ingegneri che si è ri-inventata un'archittetura a shaders separati adatta alle DX10, mentre sta già lavorando ad una unificata. Dico questo perchè prima o poi, si dovrà unificare....

Ovviamente non prendo nemmeno in considerazione le vostre idee su soluzioni ibride o su soluzioni "unificatrici" da parte dei compilatori. Sarebbero controproducenti e scarsamente prestazionali...

"Ma guardando in faccia le mere prestazioni, non penso che una soluzione ibrida permetta performance comparabili con un'archittettura unifica a livello hardware."

cosa aspetti a postare rece chiarificatrici tra G80 ed R600?
:O

mjordan
21-02-2006, 19:08
Ma guardando in faccia le mere prestazioni, non penso che una soluzione ibrida permetta performance comparabili con un'archittettura unifica a livello hardware.


Ma perchè tu le prove di performance tanto da averle guardate in faccia dove ce le hai?


Perciò o questo G80 è ancora un'evoluzione di G70 (andando a intaccare la struttura delle tmu e delle alu senza stravolgere tutto) e in tal caso sarebbe una ben'emerita ciofeca...oppure nvidia ha così tanti ingegneri che si è ri-inventata un'archittetura a shaders separati adatta alle DX10, mentre sta già lavorando ad una unificata. Dico questo perchè prima o poi, si dovrà unificare....


A parte far capire che ti piacciono le ATI, possiamo paragonare questa situazione a quando ATI si è dovuta adeguare nell'introdurre il supporto allo shader model 3.0 tuttavia non mi sembra abbia patito gran che rispetto alle nVidia che lo implementarono per prima. Prevedo la stessa cosa per l'unificazione degli shader. Tanto i giochi DirectX 10 non usciranno tanto presto, perchè si dice siano disponibili esclusivamente con Windows Vista. Il che significa che i produttori di giochi almeno all'inizio se ne guarderanno bene. Già ultimamente i giochi non vendono gran chè, figuriamoi se dovessero renderli giocabili sono dagli utenti di Vista...


Ovviamente non prendo nemmeno in considerazione le vostre idee su soluzioni ibride o su soluzioni "unificatrici" da parte dei compilatori. Sarebbero controproducenti e scarsamente prestazionali...

Perchè scarsamente prestazionali? Un compilatore può far molto meglio di cio che un essere umano può fare a mano. Se riesci a scrivere un compilatore che preso un ps e vs scritto in GLSL tira fuori uno shader in linguaggio unificato (un semplice lavoro di traduzione), stai tranquillo che il suo output può essere migliore di quello che può scrivere uno a mano. Allo stesso modo di come oggi è finita l'era del programmatore che scrive in assembly perchè scrive algoritmi piu' efficienti di quello che tira fuori il compilatore.

yossarian
21-02-2006, 19:09
Ovviamente non prendo nemmeno in considerazione le vostre idee su soluzioni ibride o su soluzioni "unificatrici" da parte dei compilatori. Sarebbero controproducenti e scarsamente prestazionali...

e invece faresti bene a prenderle in considerazione, visto che non esistono solo soluzioni con unificazione totale degli shader e soluzioni con shader completamente separati.
L'architettura a shader unificati serve soprattutto a bilanciare meglio i carichi tra vs e ps e ad aumentare l'efficienza complessiva del chip riducendo al minimo i cicli di idle delle diverse unità matematiche. Un diverso bilanciamento tra operazioni matematiche e texture fetch, al contrario, può farsi anche con shader separati (come ha fatto ATi nel passaggio da R520 a R580).

Per quanto riguarda, invece, le presunte parentele con G70, è tutto da vedere.
Alla fine, si potrebbe scoprire che, invece, ha più gradi di parentela con R580 :D

mjordan
21-02-2006, 19:11
"Ma guardando in faccia le mere prestazioni, non penso che una soluzione ibrida permetta performance comparabili con un'archittettura unifica a livello hardware."

cosa aspetti a postare rece chiarificatrici tra G80 ed R600?
:O

Già :asd:

fukka75
21-02-2006, 19:11
Io direi che a questo punto possiamo anche dichiarare fallita nVidia, e osannare ATI che diventerà l'unica produttrice di schede video
Mah .....

leoneazzurro
21-02-2006, 19:12
Ma guardando in faccia le mere prestazioni, non penso che una soluzione ibrida permetta performance comparabili con un'archittettura unifica a livello hardware.

E ati ha dalla parte sua un'ottima esperienza con algoritmi di "smistamento": vedi le tecnologie di r500 e quelle di r520 come il ring bus, lo "smistatore" ultrathreaded ecc ecc...

Poi c'è da dire una cosa: nvidia sembra restia a passare all'archittetura unificata in hardware e probabilmente avrà i suoi motivi. Resta il fatto che in futuro dovrà passare a questa archittettura se vorra tenere il passo dei processori che usciranno dalla costola di r500.

Ormai i giochi hanno un rapposto operazioni sulle texture/ operazionu sui shaders pesantemente sbilanciato verso le operazioni a virgola mobile (e quindi sugli shaders). E sappiamo benissimo come in questo caso l'archittettura unificata sia pesantemente avantaggiata: cito sempre il solito fear che ha il rapporto shaders/texture di ben 7:1...

Perciò o questo G80 è ancora un'evoluzione di G70 (andando a intaccare la struttura delle tmu e delle alu senza stravolgere tutto) e in tal caso sarebbe una ben'emerita ciofeca...oppure nvidia ha così tanti ingegneri che si è ri-inventata un'archittetura a shaders separati adatta alle DX10, mentre sta già lavorando ad una unificata. Dico questo perchè prima o poi, si dovrà unificare....

Ovviamente non prendo nemmeno in considerazione le vostre idee su soluzioni ibride o su soluzioni "unificatrici" da parte dei compilatori. Sarebbero controproducenti e scarsamente prestazionali...



Dipende: guarda R580 che pure ha un'architettura ibrida: da una parte si lavora ancora con le pipeline in mente, dall'altra l'efficienza raggiunta è molto alta. Poi se si vuole, basta sprecare qualche transistor in più per aumentare la capacità di pixel shading, ad esempio (come è successo con R580 rispetto a R520). Poi possono essitere motivi di carattere tecnico: ad esempio la difficoltà di progettazione di un arbiter prestazionalmente adeguato, oppure la possibilità per le unità specializzate di eseguire determinate operazioni in minor numero di cicli di clock rispetto alle unità generiche, ecc. ecc.
Quindi se nvidia vorrà presentare un chip DX10 con architettura ibrida, avrà i suoi buoni motivi, certo è che ATI con Xenos ha un bel vantaggio da quel punto di vista.

fukka75
21-02-2006, 19:14
Ah, dimenticavo: ovviamente David Kirk non capisce nulla, mi chiedo perché abbiano intervistato lui, anziché chi ci sta spiegando per filo e per segno perché ATI è buona, brava e bella, a invece nVidia è già fallita

R@nda
21-02-2006, 19:25
L'unificazione dei PS e VS è un grande passo che ATI ha già fatto con Xenos di XBOX360....e MS è stra contenta!
i ricordo che questo passo ha un peso nella storia delle schede video 3D pari a quella della venuta del Transofm&Lighting...

Praticamente intendi che per quasi 1anno e mezzo ed oltre nessuno sviluppatore se le filerà :D
Scherzi a parte è praticamente andata così...ed anzi la prima versione del Geforce 256 era stata criticata proprio per le operazioni che era in grado di fare erano insufficienti a tal punto da non poter essere prese in considerazione seriamente.

Adesso le cose sono cambiate e la tecnologia è molto oltre e i tempi di sviluppo anche rimanendo magari gli stessi sono diventati più complessi, inoltre il chip dell'X360 permette una base d'esperienza mica da ridere per Ati.
Ma stiamo parlando di console....nel mondo Pc lo sviluppo dei giochi è più rischioso, si investe meno e le nuove tecnologie vengono sfruttate lentamente.

Insomma il primo giro di schede video Dx10 non è così fondamentale, è solo un apripista.
L'unica cosa a cui deve stare attenta Nvidia è non proporre qualcosa che somigli ai fasti dell'Nv30....più che altro per una questione di immagine.
Ma avranno imparato qualche cosa da quell'esperienza no?Non credo che faranno una simile cappellata, lo spero per loro.

mjordan
21-02-2006, 19:31
Vedremo... Il futuro è emozionante, come al solito. :D

relexion
21-02-2006, 20:52
vi ricordo.. ke pochi mesi fà offendavate ati in tutte le lingue x i ritardi e x 1 architettura povera.. (poche pipeline dicevate.. nn può competere.. nividia la massacrerà!) è sempre il solito giro.. l'anno scorso e quest'anno nvidia (sopratutto sulla fascia media..) e l'anno prossimo e forse quello ancora ati.. è sempre il solito giro.. nessuna casa fallira.. xkè anche se nvidia nn ha il top delle prestazioni ma tira fuori 1 skeda media ke và come 1 medio alta ati alla metà del prezzo.. nvidia guadagnerà forse + di ati.. sono poche le persone ke comprano 1 skeda video di fascia alta.. e sulla fascia bassa - media ke si giocano tutto.. e finora ati.. nn è stata il massimo (almeno quest'anno.. poi adesso tira fuori 1 pò di skede xkè ha tirato fuori il chip nuovo =P )

quello ke voglio dirvi.. è sempre stato così il mercato HW.. guardate intel e amd.. ki ci avrebbe scommesso su amd 6 anni fà? intel dominava il mercato e amd faceva copie di proci intel a basso costo.. ki se lo poteva minimamente immaginare ke le cose si sarebbero quasi rovesciate?

Athlon 64 3000+
21-02-2006, 21:37
Queste sono proprio il tipo di discussioni che mi piacciono visto finalmente dopo un po' di tempo si parla di architetture di gpu che mi sono veramente molto a cuore,cioè G80 e R600.
Sono gpu che stò attendendo da molto tempo e non vedo l'ora di vederle in azione anche se dovro aspettare fino ad ottobre per la loro presentazione.
E' vero che dal mio punto di vista personale vedo Ati in vantaggio con R600 perchè ha gia fattò esperienza con gpu a shader unificate rispetto a Nvidia con G80,ma potrei essere smentito e alla fine anche G80 potrebbe essere un'ottimo chip.
Non credo proprio che Nvidia farà un'altro fiasco come NV30.

bjt2
22-02-2006, 10:47
Se quello che ha detto Kirk è vero, allora può essere preferibile una architettura a shader separati.

Mi spiego.

Estremizziamo (per semplificare), i concetti dietro a quello che ha detto Kirk (yossarian non inorridire, ti prego... :D )

Supponiamo che i PS richiedano solo accessi alle texture e i VS solo calcoli FP.

Allora con architetture separate, per fare 16 operazioni VS per ciclo, avrò bisogno di 16 ALU e per fare 16 operazioni PS per ciclo, avrò bisogno di 16 TMU.

Avrò due code separate, ma se il carico è bilanciato, potrò fare fino a 32 operazioni per ciclo di clock.

Con più o meno lo stesso numero di transistors potrò fare una architettura unificata con 16 unità, perchè le operazioni VS e PS sono completamente diverse e nell'unità generica che sarà necessaria dovrò mettere per forza una ALU ED una TMU (quindi a parità di transistors potrò fare 16 unità, questa volta separate). Quindi potrò fare al massimo 16 operazioni per ciclo in totale, divise tra PS e VS, ma avrò coda unica. A meno di non complicare lo scheduler e poter indirizzare separatamente la ALU e la TMU di una singola unità, splittata, ma a questo punto si ricade nel caso di shader separati.

Con questo cosa voglio dire: conviene la coda unica se il servente generico richiede molti meno transistors di due serventi PS e VS separati (e quindi solo se hanno parti in comune), altrimento non conviene.

E' chiaro che, tornando alla realtà, anche i PS richiedono delle ALU, ed anche le VS richiedono una TMU, quindi quello che ha detto Kirk va preso con le molle.

Ma supponiamo che progettando separatamente VS e PS si possano ottimizzare e specializzare in modo da essere più veloci e/o consentire maggiori frequenze (e questo probabilmente già succede, vedi clock separati per VS e PS in G70) che progettando una mega unità multiuso... Allora avrebbe ragione Kirk: meglio unità separate ma efficienti a fare una cosa sola, che una unica unità che fa tutte e due le cose ma un po' meno velocemente.

Certo... Kirk può aver fatto solo marketing, perchè magari loro non sono pronti con una architettura a shader unificati e ci vuole magnificare l'efficienza di quelli a shader separati, ma potrebbe non avere tutti i torti...

bs82
22-02-2006, 11:31
stai ragionando come se le operazioni su PS e VS vengano fatte in quantità uguali....cose del tutto sbagliata....

bjt2
22-02-2006, 11:42
Infatti i numeri erano un esempio... Metti 8 VS e 32 PS e siamo li. :D

Se poi intendi il fatto che una architettura unificata vada bene sia per giochi 4:1, che 8:1, che 4:1, ecc... Hai ragione. Avrai una efficienza maggiore, un maggior sfruttamento di tutti i transistors. Ma chi ti dice che andrai anche più veloce a parità di transistors?

Supponiamo che tu abbia 8 VS e 32 PS separati e che con lo stesso numero di transistors tu possa fare 32 unità unificate (probabilmente di meno, perchè aggiungi ai transistors della PS, quella per effettuare le operazioni VS... ma te le voglio abbuonare). Se per fare queste 32 unità unificate, più complesse, queste vanno più lente in termini di clock massimo a cui possono salire o in termini di latenza per eseguire una istruzione, rispetto ad unità separate, chi ti dice che vadano più veloce di un 32+8?

yossarian
22-02-2006, 12:03
Se quello che ha detto Kirk è vero, allora può essere preferibile una architettura a shader separati.

Mi spiego.

Estremizziamo (per semplificare), i concetti dietro a quello che ha detto Kirk (yossarian non inorridire, ti prego... :D )


tranquillo, non inorridisco :D


Supponiamo che i PS richiedano solo accessi alle texture e i VS solo calcoli FP.

Allora con architetture separate, per fare 16 operazioni VS per ciclo, avrò bisogno di 16 ALU e per fare 16 operazioni PS per ciclo, avrò bisogno di 16 TMU.

Avrò due code separate, ma se il carico è bilanciato, potrò fare fino a 32 operazioni per ciclo di clock.

Con più o meno lo stesso numero di transistors potrò fare una architettura unificata con 16 unità, perchè le operazioni VS e PS sono completamente diverse e nell'unità generica che sarà necessaria dovrò mettere per forza una ALU ED una TMU (quindi a parità di transistors potrò fare 16 unità, questa volta separate). Quindi potrò fare al massimo 16 operazioni per ciclo in totale, divise tra PS e VS, ma avrò coda unica. A meno di non complicare lo scheduler e poter indirizzare separatamente la ALU e la TMU di una singola unità, splittata, ma a questo punto si ricade nel caso di shader separati.

Con questo cosa voglio dire: conviene la coda unica se il servente generico richiede molti meno transistors di due serventi PS e VS separati (e quindi solo se hanno parti in comune), altrimento non conviene.

E' chiaro che, tornando alla realtà, anche i PS richiedono delle ALU, ed anche le VS richiedono una TMU, quindi quello che ha detto Kirk va preso con le molle.



non inorridisco, ma ti fermo subito qui. :D
Anche su R500 si hanno due code separate per alu e tmu; non solo, si hanno anche due code separate per vs e ps. A livello di alu, si hanno registri dedicati a pixel e vertici; in pratica, l'unificazione avviene solo a livello di calcoli matematici, perchè, in realtà, già oggi, ps e vs eseguono molti calcoli uguali. Il vantaggio dell'architettura unificata risiede soprattutto nel fatto che quando si disegna una scena si inizia dalla geometria; questo significa che nella fase iniziale lavorano solo i vs; in un secondo tempo, dopo il triangle setup, entrano in gioco i ps (e a questo punto i vs restano in attesa di poter elaborare e inviare nuovi dati). In pratica, si ha un'alternanza tra ps e vs (con fasi in cui un gruppo di unità è in attesa che l'altra termini il lavoro). Con un'architettura unificata, al contrario, tu hai tutte le unità di calcolo che lavorano ininterrottamente sia nella fase di calcolo geometrico che in quella di calcolo sui pixel. Aggiungi il fatto che un'unità "generica" è poco più "grande" di una specializzata e ottieni che puoi mettere dentro un numero di unità pressochè uguale a al numero di ps e vs di un chip ad alu separate. Senza contare che hai un gruppo di tmu che possono essere messe al servizio sia dell'una che dell'altra tipologia di calcoli (ad esempio, se devi fare texture fetch con un vs, hai, nel caso di R500, 16 tmu a disposizione, contro le "sole" 8 di G70, almeno per una "chiamata diretta").

Inoltre, tieni conto dell'attuale trend: lo sm3.0 prevede il vertex texturing ( in vista dell'utilizzo massiccio di feature come il displacement mapping) e il rapporto tra math ops e texture ops, a livello di pixel shader, è sempre più sbilanciato a favore delle prime (anche se le texture fetch sono sempre tra le operazioni a più alte latenze).


Ma supponiamo che progettando separatamente VS e PS si possano ottimizzare e specializzare in modo da essere più veloci e/o consentire maggiori frequenze (e questo probabilmente già succede, vedi clock separati per VS e PS in G70) che progettando una mega unità multiuso... Allora avrebbe ragione Kirk: meglio unità separate ma efficienti a fare una cosa sola, che una unica unità che fa tutte e due le cose ma un po' meno velocemente.

Certo... Kirk può aver fatto solo marketing, perchè magari loro non sono pronti con una architettura a shader unificati e ci vuole magnificare l'efficienza di quelli a shader separati, ma potrebbe non avere tutti i torti...

questo è già smentito da quello che ho scritto sopra: con alu separate non potrai mai ottimizzare il lavoro in modo da avere un'efficienza prossima al 100% (teorico). Un'alu "specializzata" è più veloce di una generica nell'esecuzione di uno specifico task, perchè nel caso di alu generiche, si spendono cicli per organizzare il lavoro (ogni operazione di arbitrato richiede cicli di clock), però, nel complesso, 16 alu generiche sono più efficienti di 16 alu specializzate (e la cosa è tanto più evidente quanto più complessa è l'elaborazione).
Tra l'altro, è molto probabile che su G80 alcune alu saranno "specializzate" nel calcolo dei pixel, altre saranno di tipo generico (pixel+vertici)

bjt2
22-02-2006, 15:22
Hai ragione... Non avevo tenuto conto dell'alternanza... Il caso di unità separate può andar meglio se in un istante elaboro i vertex del frame n e contemporaneamente i pixel del frame n-1 ... ma non è così: si elabora solo un frame alla volta... Con le unità unificate, giustamente, si possono sfruttare tutti i transistors fino all'osso...