在Cudafy中返回一个未知大小的数组

时间:2016-10-07 07:51:02

标签: c# arrays cudafy.net

我有大量的操作X来执行大量的项目Y. 每个操作X都相当简单,基本上只是评估一堆AND和OR逻辑。

每个Func(X,Y)自然非常快,但X和Y的纯粹组合使得整个操作需要很长时间。

PLinq使它快得多,但仍然相对较慢。

我花了几天时间研究各种框架(Alea,Cudafy,GPULinq)才能在GPU上运行,但我发现GPU并不适合所有操作。

主要问题是在GPU内核中某些点正在执行整数数组的交集或并集。这导致未知数量的值。可能2 *长度联合或0交叉。

我可以通过总是使用2 *长度来解决这个问题,但长度本身也不是常数。

如何在任何GPU框架中返回变量大小的int数组?

1 个答案:

答案 0 :(得分:0)

不仅仅是使用语法的情况:

double [] x = gpu.allocate(基于变量或数值的数组大小);

然后从[Cudafy]方法返回。