我正在使用一组结构,每个 cuda 块将使用一个结构(并且只有一个)的数据并围绕它进行大量计算。为了使程序正常工作,我想将结构加载到共享内存中。
我尝试使用这样的 memcpy 函数:
struct LABEL_2D{
int a;
float * b[MAX];
};
__shared__ struct LABEL_2D self_label;
if(threadIdx.x == 0){
memcpy(&self_label,
label+(blockIdx.x*sizeof(struct LABEL_2D)),
sizeof(struct LABEL_2D));
}
__syncthreads();
但在执行时出现以下错误:未指定的启动失败 cudaGetLastError()
我想知道是否可以在共享内存中加载结构。