我正在使用OpenCL编写针对NVidia CUDA运行时的GPGPU内核。我最近在V8上阅读并找到了描述V8嵌入技术的页面:
http://code.google.com/apis/v8/embed.html
是否可以在V8'模板中'包装'所有OpenCL函数,以便我可以用JavaScript编写内核逻辑?
作为参考,可以在Khronos网站上找到OpenCL 1.1 C ++绑定的链接。
我主要担心的是OpenCL很大程度上依赖于OpenGL。 V8 OpenCL包装器是否需要包装大部分OpenGL(或者令人望而却步的,闭源CUDA运行时)?或者只是不可能协调V8虚拟机和CUDA运行时?
答案 0 :(得分:1)
它可能是“可能的”,但很可能是不可行和不切实际的。解释器本质上是串行处理器。您必须为每个线程(或者至少使用共享内存的每个线程组)生成一个解释器,但是如果它们使用相同的解释器实例,则必须处理彼此踩踏的线程。大多数视频卡没有内存来执行此操作。我想你可以映射共享主机内存以解决这个问题。
底线。
可能是的,但是你会破坏OpenCL快速的目的,如果不是数百万倍,并且实现起来非常困难,那将会是数百甚至数百。