OpenCL は初めてで、問題があります。私のプログラムでは、2 次元配列が必要です。1 次元配列をグラフィック カードにコピーしました。1 次元配列は必要ないので、すべての必要な値を初期化するメソッドを作成しました。2 次元配列は __global である必要があります --- この配列には読み取り操作しかありません。
これが私のコードです
typedef struct{
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char a;
} ColorRGBA;
__constant ColorRGBA array[4096];
__kernel void marchingCubes(__global unsigned char* output)
{
// DO SOMETHING WITH array
}
__kernel void initValues(__global unsigned char* input){
// FILL array MAKE 1-dimensional to 2-dimensional (4096,4)
array = (ColorRGBA*) input;
}
OpenCL プログラムをコンパイルすると、次のエラーが発生します。
:28:8: error: array type 'ColorRGBA __attribute__((address_space(2))) [4096]' is not assignable
array = (ColorRGBA*) input;
すべてのスレッドで再形成された配列にアクセスするにはどうすればよいですか?
ありがとうグレシエン