我在C#中使用Cloo库。
我无法弄清楚或找到有关如何将2D数组添加为内核参数的任何内容。
这是我的代码:
ComputeBuffer<char> field = new ComputeBuffer<char>(Program.context, ComputeMemoryFlags.ReadWrite | ComputeMemoryFlags.CopyHostPointer, veld);
它只是给了我错误:&#39;无法从char [,]转换为long&#39;。 暗示它将其视为其他重载之一。
我做错了什么?
答案 0 :(得分:0)
草原
变量应该是连续的内存区域。使用1D阵列但尺寸足以在设备端用作2D阵列。
当您需要主机端操作时,使用i + w * j索引访问以模仿2D访问。如果您使用固定数组在不安全的上下文中执行此操作,这可能不会造成性能损失。