2017-01-23 2 views
0

私はC#用のClooライブラリを使用しています。C#/ OpenCL - カーネルアーギュメントとしての2次元配列

2次元配列をカーネル引数として追加する方法については何も分かりません。それはちょうど私にエラーを与える

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

は、ここに私のコードです '[、] longにCHARから変換できません'。 それは他のオーバーロードの1つと見なします。

私は間違っていますか?

答えて

0

veld

変数は連続したメモリ領域である必要があります。 1Dアレイを使用しますが、デバイス側の2Dアレイとして使用するのに十分なサイズです。

ホスト側の操作が必要な場合は、2Dアクセスを模倣するためにi + w * jインデックスを使用してアクセスします。固定配列を使用して安全でないコンテキストでこれを行うと、パフォーマンスが低下することはありません。