是否可以在浏览器中使用GPU并行计算大量数字?

时间:2014-04-29 18:55:33

标签: javascript html5 browser webgl

假设我的任务是汇总1048576个数字。假设我也可以忽略将这些数字发送到GPU所需的时间(它们不需要 - 它们可以从简单的数学公式得出)。是否有可能在那里并行汇总所有这些数字?

我的尝试:我将采用通常的平行减速,每次传球时纹理的大小为1/4,所以我需要log(N)次传球。我遇到的问题是纹理保持Vec4<byte>值。我对float值很感兴趣!有一个扩展名来写Vec4<float>个值,但它不允许读取它们,它们仍然是Vec4个!

有没有人能解决这个问题?考虑到WebGL的棘手特性,最小的代码演示将非常有用。

2 个答案:

答案 0 :(得分:0)

您可以使用Web Worker并行地在另一个线程中进行计算。

请参阅此处了解更多详情:

https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers

答案 1 :(得分:0)

您是否正在使用WebGL,因为您需要移动解决方案?使用WebGL进行计算有许多限制。你有没有看过WebCL。

如果您仍想继续使用WebGL,可以查看下面的编码线程:

How do I convert a vec4 rgba value to a float?