我正在尝试将数据结构从主机移动到 Tesla C1060(计算 1.3)上的常量内存。具有以下功能:
//mem.cu
#include "kernel.cuh"
int InitDCMem(SimuationStruct *sim)
{
SimParamGPU h_simparam;
h_simparam.na = sim->det.na;
h_simparam.nz = sim->det.nz;
h_simparam.nr = sim->det.nr;
cudaMemcpyToSymbol(d_simparam, &h_simparam, sizeof(SimParamGPU));
}
数据结构(在头文件中):
//kernel.cuh
typedef struct __align__(16)
{
int na;
int nz;
int nr;
} SimParamGPU;
__constant__ SimParamGPU d_simparam;
问题是这些值似乎没有被复制到 GPU 中的常量内存中。
我是否需要像cudaMemcpyToSymbol 中所述重新声明 do not__constant__
copy data 。
我应该在某处使用吗? \\mem.cu
extern
没有错误,值始终设置为 0。