View Full Version : Stream 1.4: SDK aggiornato per le GPU ATI
Redazione di Hardware Upg
16-03-2009, 07:25
Link alla notizia: http://www.hwupgrade.it/news/skvideo/stream-14-sdk-aggiornato-per-le-gpu-ati_28364.html
AMD rilascia una versione aggiornata del proprio SDK, con il quale sviluppare elaborazioni GPU Computing. Tra le novità il supporto multi GPU
Click sul link per visualizzare la notizia.
II ARROWS
16-03-2009, 07:49
Sì sì, bello...
Non avevate approvato OpenCL?
g.luca86x
16-03-2009, 08:03
questa è l'alternativa a Cuda di Nvidia. Considerando che le ultime schede della famiglia 4800 sono molto più parallele rispetto alle nvidia, beneficiano di molti più stream processor, mi sa che si potrebbero ottenere risultati migliori in termini di potenza di calcolo. Chissà come si comportano le ATI rispetto alle nvidia in fase di debug. So che le Nvidia sono particolarmente ostiche quando il codice di test ha qualche baco perchè non permettono il debug step by step. Certo che Ati non poteva stare fuori questa nuova frontiera del calcolo che non serve per i giochi ma per l'uso professionale. Tanti auguri.
Mercuri0
16-03-2009, 08:10
Non avevate approvato OpenCL?
OpenCL girerà su CUDA per nVidia e su CAL per AMD... A leggiucchiare su Beyon3d, ho avuto l'impressione che questa release di Stream presenti novità "preparatorie" ad OpenCL, portando delle caratteristiche che prima erano disponibili solo su CUDA.
Da parte di nVidia la beta dei driver OpenCL è prevista per l'estate e il rilascio per l'autunno, penso che anche AMD avrà più o meno questi tempi.
Eraser|85
16-03-2009, 08:14
questa è l'alternativa a Cuda di Nvidia. Considerando che le ultime schede della famiglia 4800 sono molto più parallele rispetto alle nvidia, beneficiano di molti più stream processor, mi sa che si potrebbero ottenere risultati migliori in termini di potenza di calcolo. Chissà come si comportano le ATI rispetto alle nvidia in fase di debug. So che le Nvidia sono particolarmente ostiche quando il codice di test ha qualche baco perchè non permettono il debug step by step. Certo che Ati non poteva stare fuori questa nuova frontiera del calcolo che non serve per i giochi ma per l'uso professionale. Tanti auguri.
sulla mia 8800 ci debuggo facilmente anche con tool gratuiti come GLSLDevil.. il punto è che bisogna avere una scheda che supporti l'estensione NV_transform_feedback che è supportata appunto dalle G80 in poi.. altrimenti niente debug del vertex shader
...sarebbe davvero interessante a questo punto,un articolo in cui trovato un software di calcolo che possa sfruttare sia CUDA che Stream si potesse paragonare le prestazioni delle due architetture di Nvidia e Ati,magari un confronto tra una GTX 280 e una 4870...
MarK_kKk
16-03-2009, 08:41
@ g.luca86x: a quanto ne so le schede Ati hanno più stream processor delle nVidia solo sulla carta perchè in realtà nVidia usa un'implementazione hardware che li raggruppa a 5 a 5 mentre Ati no. Quindi per fare un confronto abbastanza attendibile bisognerebbe moltiplicare gli stream processor dichiarati da nVidia per 5.
In realtà la cosa è ancora più complessa, ma non mi sono mai informato di più, mea culpa :P
In ogni caso la potenza in doppia precisione delle schede NVidia è 1/8 di quella a singola precisione (una FPU a 64 bit ogni 8), mentre in quelel AMD è 1/5.
@ g.luca86x: a quanto ne so le schede Ati hanno più stream processor delle nVidia solo sulla carta perchè in realtà nVidia usa un'implementazione hardware che li raggruppa a 5 a 5 mentre Ati no. Quindi per fare un confronto abbastanza attendibile bisognerebbe moltiplicare gli stream processor dichiarati da nVidia per 5.
In realtà la cosa è ancora più complessa, ma non mi sono mai informato di più, mea culpa :P
in realtá é il contrario. é ATI quella i cui shader possono eseguiore 5 operazioni in contemporanea. (probabilmante la stessa operazione su 5 set di dati differenti)
certo é che di solito nelle specifiche nelle GPU non vengono riportati gli shader ma 'le operazioni shader massime a ciclo di clock'...
Mercuri0
16-03-2009, 09:34
in realtá é il contrario. é ATI quella i cui shader possono eseguiore 5 operazioni in contemporanea.
160 unità che possono eseguire 5 operazioni = 800 stream processor
(o 800 stream processor raggruppati a 5 a 5)
Però per eseguire queste 5 operazioni alla volta il codice deve essere ultra-ottimizzato. Più volte ho visto ing. ATI dire che il driver riesce a sfruttare circa il 70% degli SP, ma dipende dal gioco.
Non ho troppo approfondito perché, per quanto mi riguarda, una volta stabilito che le nVidia e ATI funzionano in maniera diversa, il confronto sui numeri lo faccio solo tra le schede della stessa marca.
Per il resto guardo come vanno nelle review :D
II ARROWS
16-03-2009, 10:19
Mercuri0, OpenCL è uno standard che non ha niente a che vedere con queste cose... che tralaltro sono nate molto prima, rendendo quindi falsa a priori la tua affermazione "sono l'implementazione di OpenCL".
Mercuri0
16-03-2009, 10:58
Mercuri0, OpenCL è uno standard che non ha niente a che vedere con queste cose... che tralaltro sono nate molto prima, rendendo quindi falsa a priori la tua affermazione "sono l'implementazione di OpenCL".
Ehi! Piano con le virgolette di cose che non ho detto ;)
Io avevo detto che OpenCL sarà implementato *sopra* CUDA per nVidia e sopra CAL per AMD (non che CAL e CUDA sono implementazioni di OpenCL).
Fortunatamente una volta che tirano fuori OpenCL, noialtri potremo scordarci di tutte queste sigle.
scusate ma se uno vorrebbe avvicinarsi a questo mondo, quali linguaggi di programmazione dovrebbe conoscere e/o imparare?
stream è basato sul c come cuda?
Raga scusate l'ignoranza ma a cosa serve alla fin fine?
gabi.2437
16-03-2009, 12:43
Raga scusate l'ignoranza ma a cosa serve alla fin fine?
Vediamo, a usare la scheda video che hai (o ti hanno) comprato?
Vediamo, a usare la scheda video che hai (o ti hanno) comprato?
Uhm? La scheda video già la si usa in altri modi, sto chiedendo a cosa serve questo stream
II ARROWS
16-03-2009, 13:34
OpenCL sono delle librerie, quindi devono essere implementate...
Potrebbero essere librerie C, oppure potrebbe anche essere implementato per la piattaforma .NET in C#.
Oppure Java.
blackshard
16-03-2009, 13:55
Uhm? La scheda video già la si usa in altri modi, sto chiedendo a cosa serve questo stream
Serve a sfruttare la potenza della scheda video per applicazioni che effettuano stream computing, cioè elaborazioni estremamente ripetitive su insiemi molto grandi di dati.
Un esempio possono essere le conversioni audio/video.
gabi.2437
16-03-2009, 14:29
Uhm? La scheda video già la si usa in altri modi, sto chiedendo a cosa serve questo stream
Apparte i giochi e qualche programma per i video non si usa mica la scheda video...
Serve a sfruttare la potenza della scheda video per applicazioni che effettuano stream computing, cioè elaborazioni estremamente ripetitive su insiemi molto grandi di dati.
Un esempio possono essere le conversioni audio/video.
Ah ok grazie mille ^^ Insomma serve per fare compiti che di solito fa la cpu
@ g.luca86x: a quanto ne so le schede Ati hanno più stream processor delle nVidia solo sulla carta perchè in realtà nVidia usa un'implementazione hardware che li raggruppa a 5 a 5 mentre Ati no. Quindi per fare un confronto abbastanza attendibile bisognerebbe moltiplicare gli stream processor dichiarati da nVidia per 5.
In realtà la cosa è ancora più complessa, ma non mi sono mai informato di più, mea culpa :P
in realtá é il contrario. é ATI quella i cui shader possono eseguiore 5 operazioni in contemporanea. (probabilmante la stessa operazione su 5 set di dati differenti)
certo é che di solito nelle specifiche nelle GPU non vengono riportati gli shader ma 'le operazioni shader massime a ciclo di clock'...
Ad essere precisi il numero di Stream Processor di r770 è pari a 160, come si può notare nei data sheet forni da AMD, a essere 800 sono quelle che AMD chiama "stream processing unit" ovvero quelle che i comuni mortali chiamano ALU.
leoneazzurro
16-03-2009, 19:05
Ad essere precisi il numero di Stream Processor di r770 è pari a 160, come si può notare nei data sheet forni da AMD, a essere 800 sono quelle che AMD chiama "stream processing unit" ovvero quelle che i comuni mortali chiamano ALU.
Ehm.. non esattamente ALU. Diciamo "gruppi funzionali" vec5 superscalari alimentate in modalità VLIW, in quanto di ALU ci sono oltre le MADD Floating point anche le MADD intere e le ALU per le funzioni speciali. C'è da dire inoltre che l'organizzazione reale degli SP e delle ALU in realtà è un pò differente sia per G8x/9x/GT2xx che per la serie R6/7xx (ci sono delle limitazioni in termini di thread e di quad di pixel che possono essere processati).
scusate ma se uno vorrebbe avvicinarsi a questo mondo, quali linguaggi di programmazione dovrebbe conoscere e/o imparare?
stream è basato sul c come cuda?
allora?
Mercuri0
16-03-2009, 23:28
allora?
Si programma principalmente con brook+, che m'era parso a prima occhiata tipo c.
Puoi trovare tutte le informazioni, tutorial e pippe varie sul sito di CUDA se hai una nVidia o il sito di Stream se hai una ATI.
Io a questo punto aspetto OpenCL prima di cimentarmi :D
(a meno che nVidia non decida di finanziarmi coi 5 mln di dollari, ovviamente :asd: )
Ehm.. non esattamente ALU. Diciamo "gruppi funzionali" vec5 superscalari alimentate in modalità VLIW, in quanto di ALU ci sono oltre le MADD Floating point anche le MADD intere e le ALU per le funzioni speciali.
Figo, si va di supercazzole :D
Quindi sono 160 gruppi funzionali vec5 superscalari da 5 ALU l'uno, ma le ALU non sono tutte uguali.
Io nella distinzione m'ero fermato al 4+1. 4 semplici più la ALU secchiona che fa i coseni, ed e brava pure coi numeri con la virgola a precisione doppia. Invece le 4 semplici che se si mettono insieme ti fanno pure l'addizione con la virgola a precisione doppia.
Solo che AMD nelle slide chiama proprio ciascuna ALU, a prescindere dalla funzione, "Stream Processor", e quindi ne conta 800.
Da qui il casino.
leoneazzurro
16-03-2009, 23:56
Figo, si va di supercazzole :D
Questa non l'ho capita :mbe:
Quindi sono 160 gruppi funzionali vec5 superscalari da 5 ALU l'uno, ma le ALU non sono tutte uguali.
Dipende da cosa si può considerare ALU semplice o meno. Uno "SP" contiene ALU per effettuare 5 operazioni MADD FLoating point, oppure operazioni su interi, ma anche le funzioni trasendentali e c'è pure una unità di branching per "SP". Ecco perchè parlerei 160 gruppi funzionali da 5+X ALU, anche se le cose sono ancora più complesse di così.
Io nella distinzione m'ero fermato al 4+1. 4 semplici più la ALU secchiona che fa i coseni, ed e brava pure coi numeri con la virgola a precisione doppia. Invece le 4 semplici che se si mettono insieme ti fanno pure l'addizione con la virgola a precisione doppia.
Solo che AMD nelle slide chiama proprio ciascuna ALU, a prescindere dalla funzione, "Stream Processor", e quindi ne conta 800.
Da qui il casino.
Beh, ad esempio in RV6XX l'ALU "grassa" faceva anche da sola le operazioni sugli interi, in RV7XX anche le altre possono farlo. Per quanto riguarda il marketing, è sempre molto fuorviante. Ma non tutti capirebbero discorsi del tipo "Nvidia vi dà 128-240 SP ma con 3 FLOPS l'uno e clocks elevati mentre noi ve ne diamo 160 capaci di 10 FLOPS l'uno con clock sincrono col resto del chip". Quello che il marketing diffonde è la "grandezza":
1.5 GHZ è meglio di 700Mhz?
800 è più grosso di 240?
2 Gbyte (magari su una 4670) sono meglio di 768 Mbyte (magari su una GTX260)?
Molti male informati alla fine direbbero "si".
E quel che volevo poi dire alla fine è che in realtà si potrebbero considerare come "veri processori" in GTX280 non certo 240 come non 800 o 160 in RV770.
Tornando alla notizia, speriamo che ATI continui a rilasciare velocemente nuove versioni dell'SDK (fino a qualch emese fa latitava un pò troppo) e che soprattutto impari da Nvidia a pubblicizzare meglio le sue iniziative in campo GPGPU :D
MonsterMash
19-03-2009, 02:01
Ehi! Piano con le virgolette di cose che non ho detto ;)
Io avevo detto che OpenCL sarà implementato *sopra* CUDA per nVidia e sopra CAL per AMD (non che CAL e CUDA sono implementazioni di OpenCL).
Fortunatamente una volta che tirano fuori OpenCL, noialtri potremo scordarci di tutte queste sigle.
Scusate, ma questa cosa mi interessa molto. OpenCL cosa è esattamente? Leggendo su wikipedia dice che è un linguaggio. Ma per linguaggio si intende linguaggio di programmazione? Se si, si conosce già la sintassi, si conoscono le caratteristiche (struttura, object oriented, basato su vettori come brook+, etc)?
Oppure come dice II ARROWS OpenCL sarà solo un insieme di librerie, quindi implementate dai vari linguaggi (c++, c#, vb, etc)? In quest'ultimo caso ci possiamo aspettare un Visual Studio 2009 con incluse le implementazioni delle librerie OpenCL magari tra un annetto? Sarebbe fantastico! :D
Grazie a tutti
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.