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

本文关键字:分配 数组 内存 共享 | 更新日期: 2023-09-27 18:20:39

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

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

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