Cuda vs OpenCL - opinioni [chiuso]

6

Interessato alle opinioni delle persone su Cuda vs openCL dopo la release Cuda4 di NVidia.

In origine ero andato con openCL da più piattaforme, gli standard aperti sono una cosa buona (tm).
Supponevo che NVidia si sarebbe allineata come avevano fatto con openGL.

Ma avendo parlato con alcune persone NVidia, loro (naturale) affermano che si concentreranno su CUDA e openCL è ostacolata dall'avere commissioni e dover piacere a tutti, come OpenGL.
E con i nuovi strumenti e le librerie in CUDA è difficile discuterne.

-Sono in un mercato abbastanza tecnico, quindi posso richiedere agli utenti di avere un HW particolare.

    
posta Martin Beckett 01.03.2011 - 17:44
fonte

3 risposte

4

Ho lavorato con entrambi e ho scoperto che CUDA è un po 'più astratto, popolare e supportato di OpenCL. CUDA ha la sua versione diversa di C, è sul suo hardware specifico ed è supportata da una singola azienda. Dove OpenCL utilizza un linguaggio molto più vicino ai loro kernel ed è supportato da Apple, AMD, Intel, Nvidia e IBM.

Quando lavoravo con OpenCL, sentivo che era molto più vicino a ciò che veniva eseguito sul dispositivo rispetto a CUDA. Ad esempio, è necessario creare un file kernel separato in fase di esecuzione per i dispositivi specifici (può essere precompilato). Anche la gestione del kernel è eseguita in puro C, invece che in CUDA, dove l'esecuzione del kernel e il codice del kernel sono nella stessa sintassi. Provenendo da uno sfondo C mi sono sentito più a mio agio con OpenCL in quanto non fa nulla di "magico" per te, diversamente da CUDA che ha variabili predefinite in ogni kernel e una speciale sintassi di chiamata del kernel.

Ritengo che anche se OpenCL non è attualmente supportato come CUDA, questo dovrebbe cambiare in futuro con l'aumento delle aziende. Sarebbe piuttosto triste se una compagnia controllasse il linguaggio GPGPU solista.

    
risposta data 02.03.2011 - 03:22
fonte
1

Suggerirei caldamente che se è possibile comunicare ai propri clienti l'hardwar richiesto che si attacca a CUDA perché:

-un buon supporto per gli strumenti

- librerie estremamente buone e veloci (cublas, cufft, ...)

- buona documentazione tecnica

-supporto di ecc, doppia precisione e altre belle cose se ne hai bisogno

E, ultimo ma non meno importante, Nvidia supporta lo sviluppatore CUDA estremamente bene.

    
risposta data 02.03.2011 - 02:08
fonte
0

Se puoi dettare l'hardware, allora non eliminerei CUDA come considerazione. Se tutti quelli che lo useranno non avranno solo nVidia, ma anche hardware e driver di vecchia generazione, quindi prenderei in considerazione CUDA.

Se tu ei tuoi utenti non avete problemi a sposarvi con CUDA, allora lo terrei strongmente in considerazione, poiché sembra che parlare dei progetti GPGPU sull'interwebs sia che nVidia può essere un partner molto disponibile e desideroso.

D'altra parte, se vuoi il massimo della flessibilità, continua con OpenCL.

Infine, se vuoi fare qualche compromesso, vorrei investigare sulla piattaforma DirectCompute, dato che probabilmente fornirà, in generale, il più alto livello di astrazione da qualsiasi particolare versione di hardware o driver (e offre una certa flessibilità di linguaggio di implementazione), ma sicuramente ti bloccheranno da piattaforme Windows non recenti e non recenti.

    
risposta data 01.03.2011 - 23:37
fonte

Leggi altre domande sui tag