调用函数cudaMemcpyToSymbol
时,我得到无效值错误(cudaErrorInvalidValue
)。发生错误的代码就是这样的。
__constant__ int c_queryLength; //Length of query sequence in chunks of 4
...............
if((cuda_err = cudaMemcpyToSymbol(c_queryLength,&queryLengthInChunks,
sizeof(queryLengthInChunks),0, cudaMemcpyHostToDevice))!=cudaSuccess)
{
// Check which error occured;
...............
}
此处queryLengthInChunks
类型size_t
的值为36.为什么我收到此错误。可能的原因是什么?
答案 0 :(得分:3)
您需要检查size_t
与系统上int
的大小是否相同。如果size_t
是8个字节而int
只有4个字节,则调用将失败 - 您不能只将8字节变量复制到4字节CUDA设备常量。