cuda调用cudaMemcpyToSymbol出现cudaErrorInvalidSymbol (13)问题解决方案。
写了一段简单的测试代码。
__constant__ int con_var[10];
int _tmain(int argc, _TCHAR* argv[])
{
int tmp[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
cudaError_t stat = cudaMemcpyToSymbol(con_var, tmp, sizeof(int)* 10);
int tmp2[10];
stat = cudaMemcpyFromSymbol(tmp2, con_var, sizeof(int)* 10);
return 0;
}
调用成功 stat=cudaSuccess(0),
调用失败 stat=cudaErrorInvalidSymbol (13)。
1. 保证文件属性为 CUDA C/C++
2. 保证文件后缀为.cu,不可以是.cpp.