ATI Stream: GPU Computing secondo AMD

ATI Stream: GPU Computing secondo AMD

Dal 10 Dicembre ATI implementerà il supporto Stream nei propri driver video: GPU Computing anche per le schede Radeon HD 4000

di pubblicata il , alle 10:20 nel canale Schede Video
ATIAMDRadeon
 
27 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
MiKeLezZ25 Novembre 2008, 16:28 #21
Ah, l'attuale presidente del Khron*s Group (che è il consorzio che si preoccupa di ratificare, fra gli altri, lo standard OpenCL), è Neil Trevett.

Neil Trevett è colui che si è interamente occupato della ratifica dello standard OpenGL ES (standard usato in Android, iPhone, PS3, Symbian, Pandora).

Senza dimenticarci di OpenVG, OpenMAX, COLLADA, e OpenSL ES, di cui NVID*A si è fortemente preoccupata.

Neil Trevett è inoltre l'attuale Vice-Presidente del settore "Embedded Content", in una azienda chiamata "NVIDIA Corporation" (emh...).

Questo giusto per zittire qualche "tifo rosso" un po' di troppo.

Stefem25 Novembre 2008, 18:47 #22
Originariamente inviato da: gabi.2437
la disponibilità di CUDA, in differenti versioni, da più di 1 anno e mezzo ha permesso ad alcuni progetti di calcolo parallelo di sperimentare l'adozione delle GPU accanto ai processori per alcune elaborazioni specifiche.

Come no, peccato che su Folding@Home le ATI vennero supportate prima delle nvidia...sia la serie 1xxx (tramite directx, quindi possiamo anche non contarle) che tutte le altre, e stavolta tramite CAL, il corrispettivo ATI di CUDA...

Poi, brava ATI a spingere su OpenCL, invece che su roba proprietaria

Poi, così come c'è CUDA da un pò, idem c'è CAL, quindi volendo si poteva programmare su CAL già da tempo


1)Come no, peccato che con il vecchio CAL, prima che seguisse la strada di CUDA, dovevi ricompilare Folding@Home o qualsiasi altra applicazione ogni cambio di generazione.

2)CUDA utilizza il C, C++ e Fortran, non mi sembra proprio "roba proprietaria", tuttalpiù sono standard.

Originariamente inviato da: bs82
Ati Stream supporta pienamente OpenCL che sta per diventare LO STANDARD per il GPGPU computing.

Anche se "in ritardo" questa compatibilità è come mettere il peperoncino nel culo a un corridore, sorpassa tutti , CUDA compreso.

PS: Cuda avrà anche un anno, ma non è che abbiano fatto granchè, anzi...solo soluzione alla portata di nessuno, per costi e schede supportate.

CUDA toolkit è royalty free, per cui il suo utilizzo è completamente gratuito, l'unico costo sono le schede, che comunque permettono di risparmiare sia per costo che per consumo rispetto all'uso di CPU, e il costo per la migrazione che utilizzando il C disponibile attraverso CUDA sarebbe comunque minore rispetto all'uso di OpenCL che è comunque derivato dal C.

Originariamente inviato da: MiKeLezZ
Ah, l'attuale presidente del Khronos Group (che è il consorzio che si preoccupa di ratificare, fra gli altri, lo standard OpenCL), è Neil Trevett.

Neil Trevett è colui che si è interamente occupato della ratifica dello standard OpenGL ES (standard usato in Android, iPhone, PS3, Symbian, Pandora).

Senza dimenticarci di OpenVG, OpenMAX, COLLADA, e OpenSL ES, di cui NVIDIA si è fortemente preoccupata.

Neil Trevett è inoltre l'attuale Vice-Presidente del settore "Embedded Content", in una azienda chiamata "NVIDIA Corporation" (emh...).


Questo giusto per zittire qualche "tifo rosso" un po' di troppo.


Hai completamente ragione.
Ma credo che molti parlino senza cognizione di causa e abbino solo una leggera simpatia verso il "rosso".
yossarian26 Novembre 2008, 00:53 #23
Originariamente inviato da: Stefem
1)Come no, peccato che con il vecchio CAL, prima che seguisse la strada di CUDA, dovevi ricompilare Folding@Home o qualsiasi altra applicazione ogni cambio di generazione.


se parli di generazioni di vga è più che normale: CAL gira su R5x0 e su R600 e derivati. Le due architetture sono completamente differenti. Ritieni possibile far girare la stessa versione su entrambe.
CUDA gira solo su chip a shader unificati e non su G7x (che è l'equivalente di R5x0 per nVIDIA). La notazione fp64 è utilizzabile su tutti i chip ATi a partire da R600 e solo su GT200 per nVIDIA.

Originariamente inviato da: Stefem

2)CUDA utilizza il C, C++ e Fortran, non mi sembra proprio "roba proprietaria", tuttalpiù sono standard.


anche le dx sono scritte in C. Sono API standard e sono proprietarie ma sono anche free. C'è un po' di confusione tra i termini: standard, proprietario e open. L'utilizzo di C o C++ per scrivere un tool non ne fa automaticamente uno standard e neppure un SW open. CUDA non rappresenta uno standard anche se è scritto in C ed è proprietario.

Originariamente inviato da: Stefem


CUDA toolkit è royalty free, per cui il suo utilizzo è completamente gratuito, l'unico costo sono le schede, che comunque permettono di risparmiare sia per costo che per consumo rispetto all'uso di CPU, e il costo per la migrazione che utilizzando il C disponibile attraverso CUDA sarebbe comunque minore rispetto all'uso di OpenCL che è comunque derivato dal C.


di questo mi sfugge il senso
Stefem26 Novembre 2008, 01:51 #24
Originariamente inviato da: yossarian
se parli di generazioni di vga è più che normale: CAL gira su R5x0 e su R600 e derivati. Le due architetture sono completamente differenti. Ritieni possibile far girare la stessa versione su entrambe.
CUDA gira solo su chip a shader unificati e non su G7x (che è l'equivalente di R5x0 per nVIDIA). La notazione fp64 è utilizzabile su tutti i chip ATi a partire da R600 e solo su GT200 per nVIDIA.


Ciò che ritengo è che sarà possibile far girare un applicazione creata tramite CUDA su tutte le architetture che la supportano, vale a dire anche il successore di GT200 e quello dopo ancora e volendo anche r770 se ipoteticamente AMD decidesse di supportare CUDA, questo senza la necessita di alcuna modifica all'applicazione.
Naturalmente se un programma svolge calcoli in fp64 con la GPU non potrà girare su hardware che non lo prevedono.

Originariamente inviato da: yossarian
anche le dx sono scritte in C. Sono API standard e sono proprietarie ma sono anche free. C'è un po' di confusione tra i termini: standard, proprietario e open. L'utilizzo di C o C++ per scrivere un tool non ne fa automaticamente uno standard e neppure un SW open. CUDA non rappresenta uno standard anche se è scritto in C ed è proprietario.

Ed è proprio quello che intendevo dire.


Originariamente inviato da: yossarian
di questo mi sfugge il senso

Il succo del discorso è:
[LIST]
[*]L'utilizzo delle GPU in per computazioni non prettamente grafiche in un ambito adatto, come simulazioni fisiche, finanziarie, sintesi di proteine, analisi geosismiche, risonanze magnetiche, tomografie, ecc., porta importanti benefici a livello di tempo di esecuzione, consumo energetico e costo delle macchine.
[*]Il vantaggio di CUDA rispetto a soluzioni concorrenti è di fornire un ambiente di sviluppo familiare al programmatore come il C standard(con qualche piccola modifica), o il Fortran, molto usato in applicazioni mediche.
In questo modo uno sviluppatore può cominciare a scrivere quasi da subito e in poco tempo cominciare ad ottimizzare il codice o ad elaborare nuove tecniche non possibili con l'uso di CPU.
In quest'ottica la migrazione a CUDA non è così dispendiosa.
[/LIST]

Se leghi questo discorso al post a cui rispondeva forse ne comprenderai il significato
yossarian26 Novembre 2008, 21:27 #25
Originariamente inviato da: Stefem

2)CUDA utilizza il C, C++ e Fortran, non mi sembra proprio "roba proprietaria", tuttalpiù sono standard.


Originariamente inviato da: yossarian


anche le dx sono scritte in C. Sono API standard e sono proprietarie ma sono anche free. C'è un po' di confusione tra i termini: standard, proprietario e open. L'utilizzo di C o C++ per scrivere un tool non ne fa automaticamente uno standard e neppure un SW open. CUDA non rappresenta uno standard anche se è scritto in C ed è proprietario.


Originariamente inviato da: Stefem

Ed è proprio quello che intendevo dire.




avrò capito male io, ma qui mi sembra che dicevi esattamente il contrario, ovvero che cuda poteva essere considerato alla stregua dui uno standard, essendo in C. CUDA non è uno standard né open né proprietario, quindi non può essere considerato né alla stregua delle OpenGL (o delle OpenCL, visto che siamo in tema di gpgpu), né delle DX.

Originariamente inviato da: Stefem
Ciò che ritengo è che sarà possibile far girare un applicazione creata tramite CUDA su tutte le architetture che la supportano, vale a dire anche il successore di GT200 e quello dopo ancora e volendo anche r770 se ipoteticamente AMD decidesse di supportare CUDA, questo senza la necessita di alcuna modifica all'applicazione.
Naturalmente se un programma svolge calcoli in fp64 con la GPU non potrà girare su hardware che non lo prevedono.


hai affermato che non era possibile far girare la stessa versione di CAL su differenti GPU ATi, come se, invece, con CUDA e le gpu nVIDIA fosse possibile. La realtà è che, cambiando le architetture e passando dagli shader dedicati a quelli unificati, le versioni precedenti di CAL non potevano essere riadattate. Con CUDA il problema non si pone perchè non esisteva prima della serie a shader unificati e non esiste per archiettture nVIDIA a shader dedicati (quindi niente CUDA per G7x e precedenti, mentre esiste una verisone dii CAL per R5x0, ovviamente diversa da quella epr R600 e derivati). Per quanto riguarda le future compatibilità, è ovvio che se l'architettura dei chip manterrà come base quella di GT200 (o G8x), CUDA sarà compatibile, come lo sarà CAL per le gpu ATi qualora dovessero basarsi sull'architettura di RV770 (o anche RV670 o R600).
In quanto al resto, CUDA, con le opportune ottimizzazioni, è sicuramente compatibile con le gpu ATi, ma anche stream è compatibile con quelle nVIDIA (sempre con le opportune ottimizzazioni ).

Originariamente inviato da: Stefem


Il succo del discorso è:
[LIST]
[*]L'utilizzo delle GPU in per computazioni non prettamente grafiche in un ambito adatto, come simulazioni fisiche, finanziarie, sintesi di proteine, analisi geosismiche, risonanze magnetiche, tomografie, ecc., porta importanti benefici a livello di tempo di esecuzione, consumo energetico e costo delle macchine.
[*]Il vantaggio di CUDA rispetto a soluzioni concorrenti è di fornire un ambiente di sviluppo familiare al programmatore come il C standard(con qualche piccola modifica), o il Fortran, molto usato in applicazioni mediche.
In questo modo uno sviluppatore può cominciare a scrivere quasi da subito e in poco tempo cominciare ad ottimizzare il codice o ad elaborare nuove tecniche non possibili con l'uso di CPU.
In quest'ottica la migrazione a CUDA non è così dispendiosa.
[/LIST]

Se leghi questo discorso al post a cui rispondeva forse ne comprenderai il significato


continui a parlare di CUDA come se fosse l'unica a fare uso di C. Anchebrooks o brooks+ (che fa parte di stream) è C; anche OpenCL è C. Quindi qual è il vantaggio di usare CUDA rispetto a questi ultimi?
Stefem26 Novembre 2008, 23:33 #26
Originariamente inviato da: yossarian
avrò capito male io, ma qui mi sembra che dicevi esattamente il contrario, ovvero che cuda poteva essere considerato alla stregua dui uno standard, essendo in C. CUDA non è uno standard né open né proprietario, quindi non può essere considerato né alla stregua delle OpenGL (o delle OpenCL, visto che siamo in tema di gpgpu), né delle DX.


Io mi riferivo a C, C++, Fortran, e rispondevo a chi diceva, "Stream si basa su standard aperti mentre CUDA si basa su roba proprietaria".
Non credo affatto che CUDA sia uno standard.

Originariamente inviato da: yossarian
hai affermato che non era possibile far girare la stessa versione di CAL su differenti GPU ATi, come se, invece, con CUDA e le gpu nVIDIA fosse possibile. La realtà è che, cambiando le architetture e passando dagli shader dedicati a quelli unificati, le versioni precedenti di CAL non potevano essere riadattate. Con CUDA il problema non si pone perchè non esisteva prima della serie a shader unificati e non esiste per archiettture nVIDIA a shader dedicati (quindi niente CUDA per G7x e precedenti, mentre esiste una verisone dii CAL per R5x0, ovviamente diversa da quella epr R600 e derivati). Per quanto riguarda le future compatibilità, è ovvio che se l'architettura dei chip manterrà come base quella di GT200 (o G8x), CUDA sarà compatibile, come lo sarà CAL per le gpu ATi qualora dovessero basarsi sull'architettura di RV770 (o anche RV670 o R600).
In quanto al resto, CUDA, con le opportune ottimizzazioni, è sicuramente compatibile con le gpu ATi, ma anche stream è compatibile con quelle nVIDIA (sempre con le opportune ottimizzazioni ).

R5x0 non aveva shader unificati?
Comunque, io intendevo dire è che all'inizio con CtM era possibile programmare solo in assembly e non era previsto un layer software per poter utilizzare architetture diverse, ora sia con Stream che con CUDA sarà possibile utilizzare la medesima applicazione anche con l'arrivo di nuove architetture.


Originariamente inviato da: yossarian
continui9 a parlare di CUDA come se fosse l'unica a fare uso di C. Anche brooks (che fa parte di stream) è C; anche OpenCL è C. Quindi qual è il vantaggio di usare CUDA rispetto a questi ultimi?


Di usare il C standard con qualche estensione.
Poi è importante che vengano supportati altri linguaggi, come Brook (Ian Buck, uno dei padri di Brook è director GPU Computing SW in NVIDIA) o Open CL che è attualmente sviluppato anche da NVIDIA.
yossarian26 Novembre 2008, 23:53 #27
Originariamente inviato da: Stefem
Io mi riferivo a C, C++, Fortran, e rispondevo a chi diceva, "Stream si basa su standard aperti mentre CUDA si basa su roba proprietaria".
Non credo affatto che CUDA sia uno standard.


ok

Originariamente inviato da: Stefem


R5x0 non aveva shader unificati?


R500 si; R5x0 indica la serie per pc (derivata da R520 ed R580) che non ha shader unificati.

Originariamente inviato da: Stefem

Comunque, io intendevo dire è che all'inizio con CtM era possibile programmare solo in assembly e non era previsto un layer software per poter utilizzare architetture diverse, ora sia con Stream che con CUDA sarà possibile utilizzare la medesima applicazione anche con l'arrivo di nuove architetture.


vero; CTM era solo in assembly e presupponeva una buona conoscenza dell'architettura della gpu. Idem per CAL; quindi si è adottata un'interfaccia utilizzando un linguaggio di programmazione ad alto livello (prima brooks e poi brooks+). Stream, di fatto, è CAL più un'interfaccia di alto livello.

Originariamente inviato da: Stefem

Di usare il C standard con qualche estensione.
Poi è importante che vengano supportati altri linguaggi, come Brook (Ian Buck, uno dei padri di Brook è director GPU Computing SW in NVIDIA) o Open CL che è attualmente sviluppato anche da NVIDIA.


che è quello che permettono di fare anche gli altri tool per il gpgpu

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^