|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 958
|
[vari] Programmazione GP-GPU
Salve a tutti, mi sembra che ci fosse già una discussione al riguardo ma non sono riuscito a trovarla in alcun modo per cui ne apro un'altra.
Vorrei iniziare a fare qualche esperimento di programmazione GP-GPU, CUDA in questo ambito al momento sembra il framework più maturo ma preferirei qualcosa che funzioni indipendentemente dalla marca della GPU. A questo punto la scelta più ovvia sarebbe OpenCL ma non trovo una implementazione seria, ho provato OpenTK che a quanto pare dovrebbe contenere OpenCL ma se è così non capisco in che modo usarlo. Conoscete una implementazione che abbia un buon livello di usabilità? Alternativamente potrei optare per DirectCompute visto che mi interessa di più l'indipendenza dall'HW piuttosto che dal SO. Qualcuno ha già qualche esperienza in ambito GP-GPU e ha qualche consiglio? Grazie ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
Io ho appena finito di scrivere (ma sto ottimizzando) un programma di dinamica molecolare scritto con CUDA. Devo dire che è un bel lavoraccio, soprattutto per quanto riguarda l'ottimizzazione. Si deve entrare "nella materia" e capire bene l'architettura sia della gpu che di CUDA. Non ho esperienza con OpenCL o roba simile, ma da quanto ho letto passare da CUDA a OpenCL (quando sarà sufficientemente maturo) non dovrebbe essere un bagno di sangue.
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 958
|
Il fatto è che per CUDA sul sito di Nvidia trovi tutto quello che serve per iniziare a sviluppare. Mentre per OpenCL sul sito del Khronos Group non c'è molto e in generale su internet si trovano cose molte frammentarie. A me servirebbe una guida del tipo "installa questo e poi quello e poi fai queste impostazioni" poi il linguaggio me lo imparo senza problemi una volta che posso fare delle prove reali.
Nessuno ha mai fatto nulla con OpenCL? |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Hai guardato qui ?
http://developer.amd.com/GPU/ATISTRE...ialOpenCL.aspx |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 958
|
Quote:
|
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Assolutamente no.
Comunque guarda anche i link in fondo a quella pagina. |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 958
|
Quote:
Quello che non ho ancora capito è cosa fanno esattamente questi bindings, in pratica al momento della compilazione del programma permettono di chiamare le funzioni OpenCL messe a disposizione dai driver della scheda video no? Quindi non dovrebbe esserci bisogno di installare altro se non ho capito male. PS questa mia teoria sembra essere confermata dalla presenza sul pc di alcuni file chiamati opencl.dll (in varie cartelle diverse) forniti da nvidia. Quindi se avessi una scheda ATI l'unica cosa che cambierebbe sarebbe in codice interno di quel file dll ma metterebbe a disposizione le stesse funzioni che poi sono quelle che il programma scritto con OpenCL andrebbe a chiamare |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 958
|
ciao a tutti, sto programmando con OpenCL ormai da un po' su piattaforma nvidia. però sto per cambiare pc e pensavo di prendere una scheda video AMD/ATI (in particolare sono orientato sulla 5850). qualcuno ha provato OpenCL su piattaforma AMD? leggendo un po' in giro mi sembra che sia un po' più indietro riguardo al supporto GP-GPU rispetto a nvidia. qualcuno ne sa di più? non ho proprio voglia di prendere una gtx470 ma neanche di trovarmi bloccato con il progetto che sto facendo per l'università. grazie
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Io sapevo che se hai meno di una HD5*** l'openCL la puoi usare massimo per far girare i samples
![]() E poi ho sentito che le OpenCL di NVidia ed AMD sono tutto tranne che compatibili ad oggi, preparati a fare un porting... in effetti l'unica demo scritta per AMD/OpenCL che ho provato non girava affatto sulla mia scheda nvidia, si limita a buttare pallini colorati e mandare in crash Aero. Le demo dello Stream SDK invece non partono proprio sulla "concorrenza". magari la situazione m'è sembrata così grama perchè mi documento soprattutto sui forum CUDA... però anche il fatto che non esiste un corrispondente forum AMD dovrebbe voler dire qualcosa ![]() |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 958
|
Quote:
|
|
![]() |
![]() |
![]() |
#11 | ||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Ma hanno il vantaggio di poter risolvere parecchi problemi perché dipendono fortemente dal compilatore e dall'ottimizzatore che girano sui driver. Mentre le GPU nVidia hanno molta logica di bilanciamento e ottimizzazione del carico gestita in hardware. Quote:
E' vero che Fermi come GPU è molto più GP di Cypress, ma non è detto che abbia sempre migliori prestazioni, come dimostrano alcuni benchmark. Poi di mezzo ci sono pure i costi e i consumi di cui tenere conto. Tanto che al momento attuale è molto più conveniente una HD5900, che ha una doppia GPU, rispetto a una GTX480, ad esempio.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Apr 2003
Messaggi: 591
|
Quote:
Io mi sto laureando in Bioinformatica |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2003
Messaggi: 591
|
Riuppo il thread per segnalare (a chi fosse interessato al GPGPU) :
http://developer.amd.com/zones/OpenC...-May-2010.aspx e in particolare: http://developer.amd.com/zones/OpenC...20(201005).pdf |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
![]() E poi per la prima volta OpenCL supera CUDA per l'implementazione della Command Queue... in certi tipi di applicazioni (un VG?) è vitale per evitare che il workflow si sincronizzi, e in CUDA va implementato a mano. Interessante, potrei portare il mio render. Si sa qualcosa della compatibilità di AMD Stream con Nvidia? in teoria dovrebbe andare senza alcun problema, in pratica per me non parte ![]() |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 958
|
cosa intendi di preciso? ti riferisci ai miglioramenti portati con OpenCL 1.1? in questa documentazione cmq si parla ancora di OpenCL 1.0 anche perchè non esiste ancora una implementazione della versione 1.1, sul forum di amd lasciano intendere che la prossima versione dell'sdk supporterà OpenCL 1.1
|
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
riguardo opencl è una buona scelta cominciarlo ad usare perchè amd lo sta supportando fin dall'inizio e nvidia la settimana scorsa ha fatto sapere che spingerà anche lei opencl quindi da qui in poi opencl dovrebbe migliorare molto rapidamente per esperienza ho provato ad installare l'ambiente di sviluppo cuda su linux ma è stato un bagno di sangue....ok pure i driver nvidia danno rogne su linux ultimamente |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
![]() Magari al momento è un'estensione di OCL1.0 di AMD? Comunque fa cagarissimo che tutti spacciano OpenCL come "open" ma poi ogni implementazione è binariamente incompatibile con la concorrenza... fin quando non riuscirò a sviluppare coi tool di AMD su Nvidia e viceversa per me OpenCL può rimanere dov'è ![]() |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 958
|
volendo con un po' di fatica si riesce a scrivere qualcosa che funziona sia con amd che con nvidia. però se hai hw nvidia per farlo andare dovrai avere i driver della nvidia e su hw amd dovrai avere l'ati stream sdk. in pratica sono più che altro gli strumenti di sviluppo ad essere incompatibili. ad esempio stream kernel analyzer se hai hw nvidia non funziona.
se vuoi un esempio scaricati gpu caps viewer. contiene delle demo in opencl che vanno sia su ati che su nvidia. il discorso cpu è un po' diverso. sono supportate solo dallo stream sdk (sia cpu intel che cpu amd), però sono riuscito a fare qualche prova su cpu anche avendo una gpu nvidia. in pratica avevo sia l'sdk di nvidia che quello di ati, poi però facevi casini con altre cose per cui ho disinstallato quello della ati, cmq come inizio non è male |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:32.