CUDA:无符号int缓冲区上的cuMemsetD32由于无效范围内的参数而失败

时间:2012-08-29 13:40:34

标签: cuda memset

我想重置(设置为0)unsigned int类型的缓冲区。我不知道为什么,但对我来说只有cuMemsetD8版本有效。这是我的代码:

CUdeviceptr pBuffer;
cuMemAlloc(&pBuffer, sizeof(unsigned int) * 1000);
cuMemsetD32(pBuffer, 0, sizeof(unsigned int) * 1000); // fails with invalid argument (range) error

1 个答案:

答案 0 :(得分:3)

cuMemsetD32的第三个参数是元素的数量,而不是 bytes 的数量。所以 它应该是:

CUdeviceptr pBuffer;
cuMemAlloc(&pBuffer, sizeof(unsigned int) * 1000);
cuMemsetD32(pBuffer, 0, 1000);