Ошибка cudaErrorInvalidValue при вызове cudaMemcpyToSymbol - PullRequest
2 голосов
/ 05 марта 2012

При вызове функции 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. Почему я получаю эту ошибку.Любые возможные причины для этого?

1 Ответ

3 голосов
/ 05 марта 2012

Вам необходимо проверить, равен ли size_t тому же размеру, что и int в вашей системе. Если size_t равно 8 байтов, а int - только 4 байта, то вызов не удастся - вы не можете просто скопировать 8-байтовую переменную в 4-байтовую константу устройства CUDA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...