我开始了一个需要一些复杂数据处理的浏览器项目。 当使用GPU加速时,我使用的算法速度提高了50-100倍。GPU加速数学浏览器
我可以在浏览器中使用JavaScript,Flash或其他技术。 有什么方法可以访问GPU来加速我的数学处理?
我开始了一个需要一些复杂数据处理的浏览器项目。 当使用GPU加速时,我使用的算法速度提高了50-100倍。GPU加速数学浏览器
我可以在浏览器中使用JavaScript,Flash或其他技术。 有什么方法可以访问GPU来加速我的数学处理?
您可以开始尝试Khronos的WebCL,尽管这仍处于起步阶段。像IE,Chrome和Opera这样的大公司目前还没有明确的支持计划,微软甚至没有提供任何WebGL支持计划。这就是说,除了基于WebGL着色器的GPGPU方法之外,WebCL可能是您计算的最佳选择。 WebCL本质上是一组到OpenCL的JavaScript绑定。因此,发展最有可能与OpenCL的发展密切相关。
虽然如说,对WebCL支持,因为这一刻没有标准,也不普遍,目前有以下可用资源:
我最近才开始玩这个游戏,但是现在还不能提出超出“相当有趣”的建议。
取决于你想要做什么,但我相信它可能是更容易运行在服务器上的GPU的计算,让他们返回给浏览器客户端
看到有人拉这会很有趣用Flash和Javascript关闭。这完全取决于你必须多频繁地进行计算。
如果您只需执行一次迭代计算(实质上是一次“渲染”过程或一次绘制调用),则您可以像设置Flash中的任何Stage3D项目一样设置VertexShader3D和FragmentShader3D,并且然后从该渲染的BitmapData返回结果:
//You probably want this to be the same dimensions as your context3D dimensions:
_context3D.drawToBitmapData(yourBitmapDataDestination);
然后,您可以将信息传递给Javascript。我不确定BitmapData是否可以直接传递,但我相当积极,您必须首先序列化数据(作为数组或字符串等)。你必须看看如何使用ExternalInterface
类在Flash和Javascript之间进行通信。
一旦你在JavaScript中得到了你的嘎吱嘎嘎的数字,就不管你用这些值做什么!
如果您正在寻求一个需要“每帧”执行的进程的解决方案,那么Flash,GPU和JavaScript之间的信息交换可能并不是最佳的(如游戏循环,帧)。
注意:对不完整的答案抱歉,但我主要只是想引导您进入一个可能的解决方案,如果您仍然在考虑使用Flash作为您的GPU访问点。
WebGL?这是GPU加速。 – Raynos 2011-05-17 19:10:21
看起来像闪存GPU加速处理_by flash_ - 您无法向其发送任意计算请求。 :(http://www.kaourantin.net/2008/05/what-does-gpu-acceleration-mean.html – peteorpeter 2011-05-17 19:21:36
Python怎么样?让Python运行在网页上是可行的,你可以导入一个Python-GPU库例如Copperhead或PyCUDA,并在该库中实现您的算法 – solvingPuzzles 2012-12-29 05:09:29