0

我正在尝试将为 Cudafy 编写的内核转换为 Alea。Cudafy 允许您在共享内存中分配多个不同类型的数组。例子:

int[,] paths = thread.AllocateShared<int>("path", 128, 9);
float[] best = thread.AllocateShared<float>("best", 128);

似乎在 Alea 中,您只能在共享内存中分配一个数组。我只看到以下内容:

var lp = new LaunchParam(128, 128, 1024);
...
int[,] paths = __shared__.Array2D<int>(128, 9);

我错过了什么吗?有没有办法在 Alea 的共享内存中分配多个数组?

4

1 回答 1

0

__shared__.Array2D在内核中用于定义编译时固定大小的二维数组。它不能在内核之外使用。以下是一些示例:https ://github.com/quantalea/AleaGPUTutorial/blob/master/src/csharp/examples/matrix_multiplication/MatrixMult.cs#L52

于 2015-11-06T08:12:24.860 回答