假设我的任务是汇总1048576个数字。假设我也可以忽略将这些数字发送到GPU所需的时间(它们不需要 - 它们可以从简单的数学公式得出)。是否有可能在那里并行汇总所有这些数字?
我的尝试:我将采用通常的平行减速,每次传球时纹理的大小为1/4,所以我需要log(N)
次传球。我遇到的问题是纹理保持Vec4<byte>
值。我对float
值很感兴趣!有一个扩展名来写Vec4<float>
个值,但它不允许读取它们,它们仍然是Vec4
个!
有没有人能解决这个问题?考虑到WebGL的棘手特性,最小的代码演示将非常有用。
答案 0 :(得分:0)
您可以使用Web Worker并行地在另一个线程中进行计算。
请参阅此处了解更多详情:
https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers
答案 1 :(得分:0)
您是否正在使用WebGL,因为您需要移动解决方案?使用WebGL进行计算有许多限制。你有没有看过WebCL。
如果您仍想继续使用WebGL,可以查看下面的编码线程: