【发布时间】:2016-10-19 20:31:59
【问题描述】:
我要对大量项目 Y 执行大量操作 X。 每个操作 X 都相当简单,本质上只是评估一堆 AND 和 OR 逻辑。
每个 Func(X, Y) 自然是非常快的,但是 X 和 Y 的纯粹组合使得整个操作需要很长时间。
PLinq 让它更快,但仍然相对较慢。
我花了几天时间研究各种框架(Alea、Cudafy、GPULinq)以使其在 GPU 上运行,但我发现 GPU 并不适合所有操作。
主要问题是在GPU内核中的某些点正在执行整数数组的交集或并集。这会导致未知数量的值。可能是 2*Length 在并集或 0 在交集。
我可以通过始终使用 2*Length 来解决这个问题,但是 Length 本身也不是一个常数。
如何在任何 GPU 框架中返回可变大小的 int 数组?
【问题讨论】:
标签: c# arrays cudafy.net