我在 GPU 内核中工作,我在将数据从全局内存复制到本地内存时遇到了一些问题,这是我的内核函数:
__kernel void nQueens( __global int * data, __global int * result, int board_size)
所以我想从__global int * data复制到__local int aux_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);
在这两种情况下,我在全局内存和本地内存之间得到不同的值。我不知道我做错了什么......