2012-08-29 73 views
0

我想重置(設置爲0)類型爲unsigned int的緩衝區。我不知道爲什麼,但對我來說,只有cuMemsetD8版本的作品。這是我的代碼:CUDA:無符號整型緩衝區上的cuMemsetD32由於參數處於無效範圍而失敗

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

重要的是,如果你使用例如3作爲輸入使用D8版而不是D32的版本,你會unsigned int類型元素設置爲0x03030303 – morph

回答

3

cuMemsetD32第三個參數是元件,而不是字節數的數量。所以 它應該是:

CUdeviceptr pBuffer; 
cuMemAlloc(&pBuffer, sizeof(unsigned int) * 1000); 
cuMemsetD32(pBuffer, 0, 1000); 
相關問題