如何在共享内存中分配多个数组

时间:2015-11-05 17:45:32

标签: c# gpgpu aleagpu

我试图将为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的共享内存中分配多个数组?

1 个答案:

答案 0 :(得分:0)

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