我想重置(设置为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
答案 0 :(得分:3)
cuMemsetD32的第三个参数是元素的数量,而不是 bytes 的数量。所以 它应该是:
CUdeviceptr pBuffer;
cuMemAlloc(&pBuffer, sizeof(unsigned int) * 1000);
cuMemsetD32(pBuffer, 0, 1000);