我试图将为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的共享内存中分配多个数组?
答案 0 :(得分:0)
__shared__.Array2D
在内核中用于定义编译时固定大小的2D数组。它不能在内核之外使用。以下是一些示例:https://github.com/quantalea/AleaGPUTutorial/blob/master/src/csharp/examples/matrix_multiplication/MatrixMult.cs#L52