2010-11-16 5 views
7

Sto usando OpenCL per scrivere i kernel GPGPU che hanno come target il runtime NVIDIA CUDA. Recentemente stavo leggendo su V8 ​​e ha trovato che descrive V8 incorporando tecniche pagina:Incorpora V8 nell'applicazione OpenCL?

http://code.google.com/apis/v8/embed.html

è possibile 'wrap' tutte le funzioni OpenCL in 'modelli' V8 modo che io possa scrivere la logica del kernel in JavaScript ?

Per riferimento, i collegamenti ai binding C++ di OpenCL 1.1 si trovano sul sito Web di Khronos.

La mia preoccupazione principale è che OpenCL fa molto affidamento su OpenGL. Un wrapper VCL OpenCL comporterebbe il wrapping di ampie porzioni di OpenGL (o in modo proibitivo, il runtime CUDA a sorgente chiusa)? O è semplicemente impossibile riconciliare la macchina virtuale V8 ei runtime CUDA?

+0

Chromium consente l'opengl tramite V8: http://blog.chromium.org/2009/12/webgl-spec-initial-public-draft.html – sje397

+0

Vuoi scrivere il codice del dispositivo o dell'host in javascript? – tkerwin

risposta

1

Può essere "possibile" ma molto probabilmente non fattibile e poco pratico. Gli interpreti sono intrinsecamente processori seriali. Dovresti generare un interprete per ogni Thread (o almeno ogni Thread Group usando la memoria condivisa, ma poi dovresti affrontare i thread stomping l'uno sull'altro se hanno usato la stessa istanza dell'interprete). La maggior parte delle schede video non ha la memoria per farlo. Suppongo che potresti mappare la memoria Host condivisa per aggirare questo problema.

Bottom Line.

Possibile sì, ma si vanificherebbe lo scopo di OpenCL essere veloce e sarebbe letteralmente centinaia se non milioni di volte più lento ed estremamente difficile da implementare.

+0

Domanda veloce, anche se questo è ovviamente un post più vecchio. Non potresti fare la stessa cosa ma scalabile in modo tale da poter SOLO MIGLIORARE le prestazioni di applicazioni ricche? In modo che il software basato su browser ha seguito le limitazioni del computer più da vicino rispetto a quella del browser? –