【问题标题】:Return an unknown sized array in Cudafy在 Cudafy 中返回一个未知大小的数组
【发布时间】: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


    【解决方案1】:

    不就是使用语法的一个例子吗:

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

    然后从 [Cudafy] 方法返回它。

    【讨论】:

    • 无法在 GPU 上运行的代码中执行此操作。必须提前知道大小,分配它,然后将它传递给 GPU。
    猜你喜欢
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 2018-05-26
    • 2012-06-28
    • 1970-01-01
    • 2016-03-03
    相关资源
    最近更新 更多