View Full Version : La serie AMD Radeon HD 7000 sarà PCI Express 3.0
Redazione di Hardware Upg
18-07-2011, 11:03
Link alla notizia: http://www.hwupgrade.it/news/skvideo/la-serie-amd-radeon-hd-7000-sara-pci-express-30_37777.html
In base ad alcune notizie apparse in rete, la futura generazione di schede video AMD Radeon HD 7000 adotteranno l'interfaccia PCI Express 3.0
Click sul link per visualizzare la notizia.
:) Bene e per quando sarebbe prevista l'uscita?
Magari faccio il cambio totale di hardware.
se la metto su uno slot pc express 2.0 quanto perdo in termini di prestazioni ?
Portocala
18-07-2011, 11:19
A occhio e croce non dovresti perdere niente.
Un cambio di piattaforma costerà un botto secondo me.
solo marketing. già con un x8 con il pci-ex non perdi nulla....
Alien1900
18-07-2011, 11:26
se la metto su uno slot pc express 2.0 quanto perdo in termini di prestazioni ?
Il PCI 2.0 ha una banda che è la metà del 3.0, per stimare la perdita di prestazioni bisogna stimare quanti dati passano dal bus. Tenendo conto che normalmente i dati di uso più comune sono memorizzati nella memoria della scheda grafica non dovrebbe esserci una perdita drammatica di prestazioni. A occhio e croce penso tra il 5 e il 10%.
kelendil
18-07-2011, 11:31
Mi pare abbiano smentito il fatto che le MB per il sandy-bridge e avranno il supporto al PCe 3.0
http://www.tomshw.it/cont/news/sandy-bridge-e-e-x79-quest-anno-senza-pcie-3-0/32561/1.html
beh se pensi che mediamente un salto generazionale di hardware si attesta sun un 20% rosicato, stimare una perdita di circa il 5-10% secondo me è drammatico, annulla praticamente i vantaggi a fronte di una spesa non indifferente contando che si parla di new entry.
sniperspa
18-07-2011, 11:38
ormai meglio aspettare i 28nm :O
DakmorNoland
18-07-2011, 11:38
Non ci sarà nessuna perdita di performance non facciamo disinformazione! Le schede attuali non sfruttano manco il PCI-Ex 2.0 infatti se si passa da 16 a 8x la perdita è di un paio di punti percentuali o poco più.
VirusITA
18-07-2011, 11:55
se la metto su uno slot pc express 2.0 quanto perdo in termini di prestazioni ?
Il PCI 2.0 ha una banda che è la metà del 3.0, per stimare la perdita di prestazioni bisogna stimare quanti dati passano dal bus. Tenendo conto che normalmente i dati di uso più comune sono memorizzati nella memoria della scheda grafica non dovrebbe esserci una perdita drammatica di prestazioni. A occhio e croce penso tra il 5 e il 10%.
No:
Non ci sarà nessuna perdita di performance non facciamo disinformazione! Le schede attuali non sfruttano manco il PCI-Ex 2.0 infatti se si passa da 16 a 8x la perdita è di un paio di punti percentuali o poco più.
* :D
C'è un modo per fare due conti? Partendo dalle carattristiche di una scheda video, ipotizzandone un uso intenso, si può calcolare quanti dati dovranno passare dal bus PCIe?
blackshard
18-07-2011, 12:25
C'è un modo per fare due conti? Partendo dalle carattristiche di una scheda video, ipotizzandone un uso intenso, si può calcolare quanti dati dovranno passare dal bus PCIe?
Un uso intenso che vuol dire?
Stai tranquillo che il bus pci-ex mentri giochi viene utilizzato relativamente poco. La roba grossa, le texture, stanno in memoria video.
Si, ok, c'è la VRAM apposta, ma comunque la VGA deve comunicare col processore e la RAM, quindi come si fa a calcorare quanti dati passeranno dal bus PCIe con un uso pieno del processore grafico? Non credo si debbano fare per forza soltranto prove empiriche per saperlo, si potrà anche fare un calcolo teorico approssimativo.
Credo anche io che sia soprattutto marketing in fase iniziale, ma se fanno uscire uno standard nuovo e poi lo implementano pure avranno fatto previsioni circa la sua possibile necessità; poi anche se adesso non serve, uno può pensare di acquistare prodotti che lo implementano in previsione di un utilizzo futuro. C'è il sata 3, l'usb 3, mi prendo anche il pcie 3 così sto apposto per un bel pò, e considerando che il bus viene usato anche per altre periferiche, o comunque per il passaggio dei dati di tutte le altre connessioni, averlo ancora più ampio male non fa di sicuro.
psychok9
18-07-2011, 14:31
Ma se già vanno benone a 8x, si e no perderesti max l'1%... praticamente nulla.
Non ci sarà nessuna perdita di performance non facciamo disinformazione! Le schede attuali non sfruttano manco il PCI-Ex 2.0 infatti se si passa da 16 a 8x la perdita è di un paio di punti percentuali o poco più.
*
blackshard
18-07-2011, 14:32
Si, ok, c'è la VRAM apposta, ma comunque la VGA deve comunicare col processore e la RAM, quindi come si fa a calcorare quanti dati passeranno dal bus PCIe con un uso pieno del processore grafico? Non credo si debbano fare per forza soltranto prove empiriche per saperlo, si potrà anche fare un calcolo teorico approssimativo.
IMHO ci sono solo prove empiriche per saperlo. A mio modesto modo di vedere le cose, per un uso efficiente della scheda video in ambito gaming trasferirei tutto quello che devo trasferire dalla RAM di sistema a quella video nella fase di caricamento, e poi dopo (durante la sessione di gioco) limiterei l'utilizzo del bus all'invio delle operazioni di comando e non più dei dati.
Sempre IMHO, il bus fa molto più lavoro quando la scheda video fa decodifica di flussi HD oppure in ambito GPGPU. Nel primo caso, per esempio, trasferire avanti il flusso compresso e indietro il flusso decompresso a 25 o anche più fotogrammi per secondo in RGBA con risoluzione 1920x1080 è una bella botta (poco più di 200 Mbyte/s), ma comunque ben lontana anche dalla bandwidth messa a disposizione da un pci-express 16x 1.0 (4Gbyte/s).
Credo anche io che sia soprattutto marketing in fase iniziale, ma se fanno uscire uno standard nuovo e poi lo implementano pure avranno fatto previsioni circa la sua possibile necessità; poi anche se adesso non serve, uno può pensare di acquistare prodotti che lo implementano in previsione di un utilizzo futuro. C'è il sata 3, l'usb 3, mi prendo anche il pcie 3 così sto apposto per un bel pò, e considerando che il bus viene usato anche per altre periferiche, o comunque per il passaggio dei dati di tutte le altre connessioni, averlo ancora più ampio male non fa di sicuro.
Purtroppo è quasi esclusivamente marketing. Un bus così ampio oggi come oggi non ha molte applicazioni pratiche. Però se si considera che esistono anche gli slot con connessioni 1x, la cosa diventa un po' più sensata, perchè passano da 500 Mb/s (pci-ex 2.0) a 1gb/s (pci-ex 3.0).
Di sicuro alle schede video per giocare non serve a niente.
Solo una nota: è vero che si raddoppia il bandwidth, ma NON i trasferimenti! Si passa da 5GT/s a 8GT/s. La banda è solo una parte della verità..il fatto è che ci sarà maggior overhead, e quindi il miglioramento sarà "solo" del 60%! Comunque quoto chi dice che non ci sarà nessun degrado prestazionale. Spero solo che non lo usino come specchietto per aumentare un pochino il prezzo..
Jackal2006
18-07-2011, 15:55
Solo una nota: è vero che si raddoppia il bandwidth, ma NON i trasferimenti! Si passa da 5GT/s a 8GT/s. La banda è solo una parte della verità..il fatto è che ci sarà maggior overhead, e quindi il miglioramento sarà "solo" del 60%! Comunque quoto chi dice che non ci sarà nessun degrado prestazionale. Spero solo che non lo usino come specchietto per aumentare un pochino il prezzo..
lo useranno, lo useranno...:cool: :cool: :cool:
coschizza
18-07-2011, 16:07
Solo una nota: è vero che si raddoppia il bandwidth, ma NON i trasferimenti! Si passa da 5GT/s a 8GT/s. La banda è solo una parte della verità..il fatto è che ci sarà maggior overhead, e quindi il miglioramento sarà "solo" del 60%! Comunque quoto chi dice che non ci sarà nessun degrado prestazionale. Spero solo che non lo usino come specchietto per aumentare un pochino il prezzo..
è l'esatto opposto l'overhead sulla versione 3 viene ridotto drasticamente si parla di un 20% nella versione attuale 2 che scendera sotto il 2% nella nuova specifica.
é proprio grazie alla riduzzione dell'overhead che hanno raddoppia la banda.
"Ad oggi è impossibile capire se il ricorso a PCI Express 3.0 sia motivata da effettive necessità di bandwidth della nuova generazione di schede video o una mossa marketing, anche se quest'ultima ci appare la più probabile"
E brava la redazione, adoro questo genere di commenti antinubbio ;)
considerato che le schede attuali non sfruttano a pieno nemmeno il PCI Ex 2.0, è chiaramente un mossa di marketing per spingere magari un po' di più sul prezzo annoverando una feature ancora inutile
@coschizza: hai ragione, svista mia! :) Mi sembrava strano passare da un 128b/130b ad un 8b/10b!
Angelonero87
18-07-2011, 18:03
Probabilmente saranno gli ssd su scheda pci-e e le schede dual gpu ad avvantaggiarsi del nuovo standard
Si, ok, c'è la VRAM apposta, ma comunque la VGA deve comunicare col processore e la RAM, quindi come si fa a calcorare quanti dati passeranno dal bus PCIe con un uso pieno del processore grafico? Non credo si debbano fare per forza soltranto prove empiriche per saperlo, si potrà anche fare un calcolo teorico approssimativo.
Credo anche io che sia soprattutto marketing in fase iniziale, ma se fanno uscire uno standard nuovo e poi lo implementano pure avranno fatto previsioni circa la sua possibile necessità; poi anche se adesso non serve, uno può pensare di acquistare prodotti che lo implementano in previsione di un utilizzo futuro. C'è il sata 3, l'usb 3, mi prendo anche il pcie 3 così sto apposto per un bel pò, e considerando che il bus viene usato anche per altre periferiche, o comunque per il passaggio dei dati di tutte le altre connessioni, averlo ancora più ampio male non fa di sicuro.
Ciao,
se ti accontenti di un calcolo spannometrico, qualche conto si può fare :)
Semplificando, si può dire che:
- i dati immutabili e/o che cambiano con minore frequenza (es: texture) vengono caricati una volta per tutte nella RAM della scheda video;
- i dati che cambiano di continuo (es: vertici dei poligoni) vengono trasferiti sul bus appena pronti (una sorta di streaming).
Per i primi la velocità del bus conta poco, in quanto se nel caricare nella VRAM le texture ci metto 2 secondi invece di 1 non mi cambia molto: semplicemente la sessione di gioco si avvierà qualche istante dopo o, al limite, potrei avere periodicamente qualche fenomeno di shuttering (es: caricamento di alcune nuove texture per la visualizzazione di un'altra locazione dello stesso livello).
I secondi dati (quelli che vengono trasferiti "in streaming"), sono sostanzialmente i dati riguardanti i vertici dei poligoni (le geometria della scena come calcolata dalla CPU, insomma). Da qui (http://forum.beyond3d.com/showthread.php?t=54045&page=33) leggo che un gioco come Crysis 2 può avere tra i 2 e i 4 milioni di poligoni per frame.
Ora, ipotizzando che i 4M di poligoni _non_ siano raggruppati in stipe (caso assolutamente peggiore ed evitato generalmente come la peste), il numero totale di vertici è di 12M. Ogni vertice, a sua volta, deve contenere i dati sulle coordinate della sua posizione (x, y, z) e sulle coordinate relative alle texture ad esso associate (u e v, per ognuna della texture mappate). Ognuno di questi dati è un valore floating point a 32 bit. Quindi, ipotizzando il rendering @ 60 fps di 12M di vertici ognuno dei quali avente 4 texture mappate, la banda necessaria è 60 * (12.000.000 * 32 * (3 + (2*4)), ovvero 253,44 Gb/sec ovvero 31,68 GB/s.
Il valore sopra ottenuto è però assolutamente pessimistico, in quanto generalmente per il disegno di un poligono non serve trasferire ogni volta tutti e tre i vertici, ma posso riutilizzare i dati dei vertici precedenti. Immagina ad esempio di voler renderizzare un rettangolo usando due triangoli: invece di usare 6 vertici puoi trasferirne solo quattro, in quanto due dei vertici del secondo triangolo corrispondono a vertici che hai già trasferito per renderizzare il primo. Questo meccanismo di trasferimento è detto "triangle strip" (o stripe). Per maggiori dettagli: http://en.wikipedia.org/wiki/Triangle_strip
Ipotizzando quindi che la maggior parte dei triangoli trasferiti faccia parte di qualche strip, la banda realmente necessaria è più vicina agli 11 GB/s che non ai precedenti 31,68 GB/s calcolati prima.
E' inoltre da notare che:
- vedere in un gioco 12 M di vertici per frame è decisamente improbabile;
- che di questi improbabili 12 M di vertici tutti quanti abbiano bisogno di ben 4 texture è ancora più improbabile;
- pur ipotizzando che tutti gli improbabili 12 M di vertici abbiano ognuno le improbabili 4 texture, è possibile che a risultare limitante sia il triangle setup rate della scheda video e/o il fill-rate realmente utilizzabile o, ancora più realisticamente, il throughput della CPU di sistema in uso, piuttosto che la velocità di trasferimento sul bus.
Il risultato è che, come ti hanno indicato, allo stato attuale passare da bus PCIe 2.0 16X a 8X comporta una perdita di prestazioni compresa generalmente tra lo 0 e il 2% (vedi qui: http://www.techpowerup.com/reviews/AMD/HD_5870_PCI-Express_Scaling/25.html).
Ecco perchè il passaggio al PCI-E 3.0, per quanto "obbligato" per questioni di supporto del nuovo bus e di marketing, è attualmente abbastanza inutile dal punto di vista della banda.
Tutto il discorso sopra ha validità per un utilizzo videoludico del bus/adattatore grafico. Per un utilizzo GPGPU la carte in tavola cambiano notevolmente...
Ciao. :)
Una feature in più per il marketing un ottima strategia di vendita ...
Magari pensano di riuscire a saturare il 2.0 con ssd su pci e vga di immane potenza, per il resto beh meglio abbondare di banda per canale che deficere ;)
Ciao,
se ti accontenti di un calcolo spannometrico, qualche conto si può fare :)
Semplificando, si può dire che:
- i dati immutabili e/o che cambiano con minore frequenza (es: texture) vengono caricati una volta per tutte nella RAM della scheda video;
- i dati che cambiano di continuo (es: vertici dei poligoni) vengono trasferiti sul bus appena pronti (una sorta di streaming).
....
Ciao. :)
Tutto molto bello, ma .. commetti un errore piuttosto grave. I cosiddetti Vertex Shader servono proprio ad elaborare i dati "poiligoanli" sulla scheda video per non doverli ritrasferire ongi volta;
Gia dalle DX9 le animazioni scheletriche dei personaggi possono essere effettuate completamente in HW a patto che il personaggio non abbia piú di 256 bones e piú di 4 bones associati ad ogni vertice. Le animazioni di tipo "morph" invece invece spesso hanno bisongo di un trasferimento maggiore di dati (ma anche in questo caso spesso é difficile dover ritrasferire l'intera geometria ad ogni frame).
In altre parole dei 4 milioni di poligoni per frame probabilmente quelli che vengono trasferiti alla scheda video per ogni frame sono meno di un 5%, in quanto il resto o é completamente statico o puó essere direttamente elaborato in hardware.
Cioè, dei 10 o 11 GB/s che ha calcolato shodan per un gioco pesante solo 500 MB/s sono i dati che si scambiano CPU e GPU? Una linea PCIe 2.0? Allora non solo non saturano una 8x 2.0, ma nemmeno una 8x 1.0... se tu dici il vero e se, soprattutto, ho inteso bene io.
blackshard
18-07-2011, 19:36
Cioè, dei 10 o 11 GB/s che ha calcolato shodan per un gioco pesante solo 500 MB/s sono i dati che si scambiano CPU e GPU? Una linea PCIe 2.0? Allora non solo non saturano una 8x 2.0, ma nemmeno una 8x 1.0... se tu dici il vero e se, soprattutto, ho inteso bene io.
Si però aspetta... non è solo questione di "saturare". C'è anche da considerare che una linea pci-express trasferisce 500 Mb/s, che significherebbe impiegare un intero secondo per trasferire dati per 500 Mb. Su un link pci-express 2.0 16x, trasferire 500 Mb richiede 0.0625 secondi (ossia 62 ms, ossia 1/16 di secondo) e non farebbe andare il gioco a più di 16 fotogrammi per secondo :D
Volendo si potrebbero trasferire i dati del fotogramma successivo mentre si renderizza quello attuale, il che però richiederebbe 500 Mb di memoria tampone sulla scheda video per ogni fotogramma da renderizzare in anticipo.
IMHO la quantità di dati trasferiti a run-time è molto inferiore, penso che tutti i dati relativi ai vertici sono caricati assieme alle texture. Oppure i vertici sono molti di meno rispetto a quelli previsti.
Per esperienza personale posso dirvi che il pci-3 3.0 al momento è quantomento "superfluo" (non dico inutile perchè non è mai inutile l'avanzamento tecnologico).
Ho da poco passato il mio crossfire di HD6970@1000Mhz (quindi schede che pompano eccome) da una mobo 16X-16X ad una che fa crossfire su 8X-8X elettrico e posso dirvi che non è cambiato assolutamente NIENTE! Neanche quel 2% circa che ipotizzava qualcuno poco più sopra.
Quindi se gia un pci-e 2.1 8X è sufficiente a gestire schede di fascia altissima come la HD6970 senza alcun collo di bottiglia un bus di ampiezza ben 4 volte superiore (pci-3 3.0 16X) è come minimo abnormemente superfluo se non vogliamo proprio dire "inutile".
Tutto molto bello, ma .. commetti un errore piuttosto grave. I cosiddetti Vertex Shader servono proprio ad elaborare i dati "poiligoanli" sulla scheda video per non doverli ritrasferire ongi volta;
Gia dalle DX9 le animazioni scheletriche dei personaggi possono essere effettuate completamente in HW a patto che il personaggio non abbia piú di 256 bones e piú di 4 bones associati ad ogni vertice. Le animazioni di tipo "morph" invece invece spesso hanno bisongo di un trasferimento maggiore di dati (ma anche in questo caso spesso é difficile dover ritrasferire l'intera geometria ad ogni frame).
In altre parole dei 4 milioni di poligoni per frame probabilmente quelli che vengono trasferiti alla scheda video per ogni frame sono meno di un 5%, in quanto il resto o é completamente statico o puó essere direttamente elaborato in hardware.
Ciao,
in parte è vero, ed è per questo che parlavo di calcolo "semplificato" e "spannometrico".
Tuttavia, le percentuali che indichi tu (solo 5% di vertici che transitano per il bus) a mio avviso sono assolutamente sotto la realtà: i vertex shader, per quanto utili, hanno un'utilità limitata a determinati effetti (per esempio, non sono adatti al calcolo della fisica di gioco dinamica, mentre vanno benissimo per gli effetti particellari fissi).
Inoltre, se i vertici da calcolare lato CPU fossero davvero così pochi, ne conseguirebbe che a basse risoluzioni qualunque CPU sarebbe in grado di saturare anche gli adattatori grafici più veloci; questo, invece, non accade (c'è una saturazione ad alte risoluzioni per il fill-rate, ma a bassa risoluzione lo scaling per opera della CPU è molto marcato).
Quello che ho fatto prima è volutamente un conto per eccesso, che serviva a mettere un limite alto a quanti dati potessero transitare in scene estremamente complesse (14M di vertici era il limite estremo di alcuni shot del Cryengine 2.0 tirato al massimo).
Volendo fare un conto più realistico, possiamo considerare i seguenti valori presi da uno shot di Crysis 2.0 (lo shot è il primo che trovate qui: http://www.gamersmint.com/crysis-2-worlds-first-pc-shots-will-blow-your-mind):
- 1.2 M di triangoli per la geometria vera e propria (richiedono le coordinate di posizione, colore e texture)
- 0.6 M di triangoli per la creazione di shadow buffer / ombre (richiedono le sole coordinate di posizione)
- frame rate @ 52.6 fps
- ipotizzo una media di 2 texture per vertice
Ipotizzando che i triangoli siano passati tutti tramite strip/fan (ottimistico), i vertici dovrebbero essere nell'ordine degli 1.8 M in totale. La banda necessaria è 52.6 * (1.200.000 * 32 * 11 + 600.000 * 32 * 3) = 25,248 Gb/s ovvero 3,156 GB/s. Considerando che questo shot rappresenta una scena con molto poligoni, mentre molte altre ne hanno anche 5 volte meno (almeno questo si legge sul forum di Beyond3D), si può immaginare che la banda geometrica realmente utilizzata oscilli tra gli 800 MB/s e i 3 GB/s.
Anche questo è un calcolo necessariamente semplificato: ad esempio, non ho inserito i valori dell'illuminazione (anch'essi presenti) e ho fatto una serie di presupposti non necessariamente veri (es: 2 texture per pixel di media), soprattutto con gli attuali motori grafici (pensati per andare bene anche su Xbox360 e PS3). Dal lato opposto, per specifiche OpenGL, un vertice inserito in un VBO (vertex buffer object) può occupare fino a 64 byte...
Ovvio poi che il tutto dipende dal valore di frame per secondo: se un sistema è in grado di far girare Crysis 2.0 @ 200 fps, i valori di banda salirebbero molto. Tra l'altro, questo è uno dei motivi per cui uno SLI/CF di schede high-end su PCI-E 2.0 8X perde qualche punto % in più rispetto a un sistema identico ma con slot PCI-E 2.0 16X (nulla di significativo eh... invece di perdere il 2% si perde il 3-4%).
Comunque, tornado strettamente in topic: sulle Radeon serie HD 7000 il supporto PCI-E 3.0 serve semplicemente per iniziare ad adottare il nuovo standard e poter avere un'arma di marketing in più. A livello prestazionale, sono abbastanza sicuro che il PCI-E 2.0 8X sia più che sufficiente per saturare tale scheda grafica nel 90% dei casi.
Ciao. :)
IMHO la quantità di dati trasferiti a run-time è molto inferiore, penso che tutti i dati relativi ai vertici sono caricati assieme alle texture. Oppure i vertici sono molti di meno rispetto a quelli previsti.
Ciao,
questo in linea di massima non è possibile e la gran parte della geometria va ricaricata frame per frame, semplicemente perchè questa risulta modificata e/o il ricalcolo della stessa fa parte del ciclo principale che renderizza il tutto.
Basti vedere la quantità di suggerimenti in merito al _non_ creare geometria tramite funzioni "immediate", ma invece di usare VBO e mesh/strip/fan
Esempio: http://msdn.microsoft.com/en-us/library/bb147263%28VS.85%29.aspx (ma ce ne sono molti altri).
Se gran parte dei vertici non venisse davvero ricalcolata e ricaricata in ogni frame, seguire o no queste linee guida porterebbe ad avere poca differenza, mentre da quanto ne so la differenza è davvero significativa (almeno questo ho riscontrato con alcuni semplici test OpenGL realizzati a scopo autodidattico).
Ciao. :)
Grazie blackshard e shodan, mi avete chiarito un pò la faccenda, interventi interessanti.
P.S.
Comunque, al di là della questione dell'alimentazione tramite PCIe, per i giochi attuali basta ancora un PCIe 1.0 x16... mmm... tra l'altro googolando ho letto che in passato crearono il bus AGP proprio per avere una ampio canale di comunicazione verso il processore e la memoria di sistema per far si che non si dovessero costruire VGA con tanta VRAM per ridurne il costo, ma che poi così non è andata, e non saprei ipotizzarne il perchè, forse crebbe troppo e inaspettatamente la richiesta di velocità nel calcolo in applicazioni grafiche ( videogame ) che anche l'accelerated graphics port non era comunque abbastanza accelerata..? O forse ci volevano e vogliono vendere tanta ram?? O forse è sbagliata l'informazione sulla motivazione della nascita dell'agp che ho trovato in rete? mah..
argent88
19-07-2011, 15:02
usb3, sata3 e quindi anche pciex3.
Semplicemente non volevano rimanere indietro.
blackshard
19-07-2011, 16:07
Ciao,
questo in linea di massima non è possibile e la gran parte della geometria va ricaricata frame per frame, semplicemente perchè questa risulta modificata e/o il ricalcolo della stessa fa parte del ciclo principale che renderizza il tutto.
Basti vedere la quantità di suggerimenti in merito al _non_ creare geometria tramite funzioni "immediate", ma invece di usare VBO e mesh/strip/fan
Esempio: http://msdn.microsoft.com/en-us/library/bb147263%28VS.85%29.aspx (ma ce ne sono molti altri).
Se gran parte dei vertici non venisse davvero ricalcolata e ricaricata in ogni frame, seguire o no queste linee guida porterebbe ad avere poca differenza, mentre da quanto ne so la differenza è davvero significativa (almeno questo ho riscontrato con alcuni semplici test OpenGL realizzati a scopo autodidattico).
Ciao. :)
Ciao Shodan,
uhm capisco. Ero vagamente al corrente delle ottimizzazioni di cui parli: un tempo, mi pare con 3dmark2000, c'era un benchmark che testava due scene uguali, una con strip dei triangoli ed un'altra senza. Quella senza era notevolmente più lenta ad essere renderizzata.
Dal punto di vista tecnico mi fermo quà, però ho trovato questi benchmark interessanti sul pci-ex 2.0:
http://www.tomshardware.com/reviews/pci-express-2.0,1915-5.html
Con l'esclusione di Flight Simulator (che fa streaming delle texture dalla memoria di sistema), grossomodo una singola linea pci-ex 2.0 è molto limitante, già quattro linee non lo sono più.
Ho fatto due conti, osservando il caso di Quake 4 con la hd3850, abbiamo framerate maggiori di 80 fps.
Con il pci-ex 4x viene fuori che:
- il gioco mi fa in media 83.8 fps, quindi in media impiega 0.012 secondi su fotogramma (s/f)
- il bus ha una capacità teorica, assumiamo netta, di 2000 Mb (pci-ex 4x) su secondo, viene fuori un limite superiore che è dato da 2000Mb/s * 0.012 s/f = 24 Mb/f
Perciò per fare quel framerate il bus pci-express deve essere impegnato in media al massimo per 24 Mb per fotogramma e il trasferimento dei dati del fotogramma successivo avviene in parallelo al rendering del fotogramma corrente. Altrimenti il tempo impiegato dal trasferimento dei dati eccederebbe il tempo impiegato per il rendering.
Se poi facciamo gli stessi conti sul caso pci-ex 1x, e assumiamo che fra il trasferimento dati via bus e il rendering, il trasferimento impiega più tempo, abbiamo che i dati trasferiti per ogni fotogramma sono circa 7 Mb.
Mi viene da pensare che Zorgolo abbia fornito una chiave di lettura della situazione abbastanza interessante.
Grazie blackshard e shodan, mi avete chiarito un pò la faccenda, interventi interessanti.
P.S.
Comunque, al di là della questione dell'alimentazione tramite PCIe, per i giochi attuali basta ancora un PCIe 1.0 x16... mmm... tra l'altro googolando ho letto che in passato crearono il bus AGP proprio per avere una ampio canale di comunicazione verso il processore e la memoria di sistema per far si che non si dovessero costruire VGA con tanta VRAM per ridurne il costo, ma che poi così non è andata, e non saprei ipotizzarne il perchè, forse crebbe troppo e inaspettatamente la richiesta di velocità nel calcolo in applicazioni grafiche ( videogame ) che anche l'accelerated graphics port non era comunque abbastanza accelerata..? O forse ci volevano e vogliono vendere tanta ram?? O forse è sbagliata l'informazione sulla motivazione della nascita dell'agp che ho trovato in rete? mah..
La motivazione ufficiale della nascita dell'AGP credo sia proprio quella. La motivazione ufficiosa è che probabilmente bisognava cambiare standard un po' perchè il bus pci cominciava a stare stretto (essendo un bus propriamente detto, cioè un canale condiviso e conteso fra più periferiche), e un po' perchè cambiare standard ti fa vendere nuova roba.
Il discorso RAM, con il senno di poi, credo fosse quasi una baggianata da propinare al pubblico per giustificare l'adozione di un nuovo tipo di collegamento, mi pare strano che chi era addentrato nel settore o gli analisti non si rendessero conto che i chip di ram sarebbero diventati sempre più economici.
Ciao Shodan,
uhm capisco. Ero vagamente al corrente delle ottimizzazioni di cui parli: un tempo, mi pare con 3dmark2000, c'era un benchmark che testava due scene uguali, una con strip dei triangoli ed un'altra senza. Quella senza era notevolmente più lenta ad essere renderizzata.
Era 3DMark99 MAX! Allora non sono il solo a ricordarlo... :D
Dal punto di vista tecnico mi fermo quà, però ho trovato questi benchmark interessanti sul pci-ex 2.0:
http://www.tomshardware.com/reviews/pci-express-2.0,1915-5.html
Con l'esclusione di Flight Simulator (che fa streaming delle texture dalla memoria di sistema), grossomodo una singola linea pci-ex 2.0 è molto limitante, già quattro linee non lo sono più.
Ho fatto due conti, osservando il caso di Quake 4 con la hd3850, abbiamo framerate maggiori di 80 fps.
Con il pci-ex 4x viene fuori che:
- il gioco mi fa in media 83.8 fps, quindi in media impiega 0.012 secondi su fotogramma (s/f)
- il bus ha una capacità teorica, assumiamo netta, di 2000 Mb (pci-ex 4x) su secondo, viene fuori un limite superiore che è dato da 2000Mb/s * 0.012 s/f = 24 Mb/f
Perciò per fare quel framerate il bus pci-express deve essere impegnato in media al massimo per 24 Mb per fotogramma e il trasferimento dei dati del fotogramma successivo avviene in parallelo al rendering del fotogramma corrente. Altrimenti il tempo impiegato dal trasferimento dei dati eccederebbe il tempo impiegato per il rendering.
Se poi facciamo gli stessi conti sul caso pci-ex 1x, e assumiamo che fra il trasferimento dati via bus e il rendering, il trasferimento impiega più tempo, abbiamo che i dati trasferiti per ogni fotogramma sono circa 7 Mb.
Mi viene da pensare che Zorgolo abbia fornito una chiave di lettura della situazione abbastanza interessante.
Tutto giusto, ma tieni presente che Quake IV ha un polygon count molto basso (si parla di circa 2500 poligoni per il personaggio principale) e quindi stressa poco il collegamento col bus. Non a caso i test con Crysis mostrano un decadimento molto più pronunciato con il bus @ 1X.
Ciao. :)
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.