2
調用函數cudaMemcpyToSymbol
時,出現無效值錯誤(cudaErrorInvalidValue
)。發生錯誤的代碼就是這樣的。cudaErrorInvalidValue調用cudaMemcpyToSymbol時出錯
__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爲什麼會出現這種錯誤。任何可能的原因呢?
您確定'size_t'與您的系統上的CUDA'int'大小相同,即4個字節? – 2012-03-05 15:16:02
size_t在我的系統上是8個字節,因爲我使用的是64位Windows系統。在這種情況下是否會造成任何問題? – MetallicPriest 2012-03-05 15:17:16
是的,當然 - CUDA int只有4個字節。您不能只將8字節變量複製到4字節常量。 – 2012-03-05 15:17:55