我正在为浏览器启动一个项目,需要进行一些复杂的数据处理。
使用GPU加速后,我所使用的算法速度可以提高50-100倍。
我可以使用JavaScript、Flash或其他技术来开发浏览器应用程序。
有没有任何方法可以访问GPU来加速我的数学运算处理?
我正在为浏览器启动一个项目,需要进行一些复杂的数据处理。
使用GPU加速后,我所使用的算法速度可以提高50-100倍。
我可以使用JavaScript、Flash或其他技术来开发浏览器应用程序。
有没有任何方法可以访问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中得到了压缩的数字,就可以对这些值进行任何必要的操作!
如果你正在寻找一个需要每帧执行的过程的解决方案(比如游戏循环,每n帧更新),那么Flash、GPU和JavaScript之间的这种信息交换可能并不是最优的。
注意:抱歉回答不完整,但我主要想引导你进入一个可能的解决方案,如果你仍然考虑Flash作为访问GPU的入口点。
根据你想要做什么,但我相信在服务器的GPU上运行计算并将其返回给浏览器客户端可能会更容易。