我有大量的操作X来执行大量的项目Y. 每个操作X都相当简单,基本上只是评估一堆AND和OR逻辑。
每个Func(X,Y)自然非常快,但X和Y的纯粹组合使得整个操作需要很长时间。
PLinq使它快得多,但仍然相对较慢。
我花了几天时间研究各种框架(Alea,Cudafy,GPULinq)才能在GPU上运行,但我发现GPU并不适合所有操作。
主要问题是在GPU内核中某些点正在执行整数数组的交集或并集。这导致未知数量的值。可能2 *长度联合或0交叉。
我可以通过总是使用2 *长度来解决这个问题,但长度本身也不是常数。
如何在任何GPU框架中返回变量大小的int数组?
答案 0 :(得分:0)
不仅仅是使用语法的情况:
double [] x = gpu.allocate(基于变量或数值的数组大小);
然后从[Cudafy]方法返回。