GPUカーネルで作業していますが、グローバルメモリからローカルメモリにデータをコピーする際に問題が発生します。カーネル関数は次のとおりです。
__kernel void nQueens( __global int * data, __global int * result, int board_size)
__globalint*データから__localintaux_data [OBJ_SIZE]にコピーしたいので 、通常の配列のようにコピーしようとしました。
for(int i = 0; i < OBJ_SIZE; ++i)
{
aux_data[stack_size*OBJ_SIZE + i] = data[index*OBJ_SIZE + i];
}
また、コピーする関数もあります。
event_t e = async_work_group_copy ( aux_data, (data + (index*OBJ_SIZE)), OBJ_SIZE, 0);
wait_group_events (1, e);
そして、どちらの状況でも、グローバルメモリとローカルメモリの間で異なる値を取得します。何が間違っているのかわかりません...