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