0

我正在使用 C# 的 Cloo 库。

我无法弄清楚或找到有关如何将 2D 数组添加为内核参数的任何信息。

这是我的代码:

ComputeBuffer<char> field = new ComputeBuffer<char>(Program.context, ComputeMemoryFlags.ReadWrite | ComputeMemoryFlags.CopyHostPointer, veld);

它只是给了我错误:'无法从 char[,] 转换为 long'。暗示它将其视为其他重载之一。

我究竟做错了什么?

4

1 回答 1

0

草原

变量应该是连续的内存区域。使用一维数组,但足够大,可用作设备端的二维数组。

当您需要主机端操作时,使用 i+w*j 索引访问以模仿 2D 访问。如果您在不安全的上下文中使用固定数组执行此操作,这可能不会造成性能损失。

于 2017-01-25T09:18:08.883 回答