2017-01-23 99 views
0

我正在使用C#的Cloo庫。C#/ OpenCL - 二維數組作爲內核參數

我找不出或找到有關如何添加二維數組作爲內核參數的任何內容。

這裏是我的代碼:

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

它只是給我的錯誤:「無法從字符轉換[,]長」。 暗示它將其視爲其他重載之一。

我在做什麼錯?

回答

0

veld

變量應該是連續的內存區域。使用1D陣列,但尺寸足夠用作設備端的2D陣列。

當您需要主機端操作時,使用i + w * j索引訪問以模仿2D訪問。如果您在使用固定數組的不安全上下文中執行此操作,這可能不會導致性能損失。