假设我的任务是求1048576个数的和。假设我还可以忽略将这些数字发送到GPU所需的时间(它们不需要-它们可以从一个简单的数学公式中导出)。有可能把所有这些数字并行相加吗?
我的尝试是:我将使用通常的平行减少,使纹理在每次过程中的大小为其大小的1/4,所以我需要log(N)过程。我遇到的问题是纹理保存Vec4<byte>值。我对float值感兴趣有一个写Vec4<float>值的扩展,但它不允许读取它们,而且它们仍然Vec4s!
有人能解决那个问题吗?考虑到WebGL的复杂性,一个最小的代码演示将非常有用。

最佳答案

您可以使用Web Worker并行地在另一个线程中进行计算。
请参阅此以了解更多详细信息:
https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers

关于javascript - 使用浏览器中的GPU是否可以并行汇总大量数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23373024/

10-09 16:43
查看更多