我面臨一個簡單的問題,即所有我對cudaMalloc的調用失敗,給我一個內存不足的錯誤,即使它只是我分配的單個字節。cudaMalloc總是給出內存
該cuda設備可用,並且還有很多可用的內存(與相應的調用檢查機器人)。
任何想法可能是什麼問題?
我面臨一個簡單的問題,即所有我對cudaMalloc的調用失敗,給我一個內存不足的錯誤,即使它只是我分配的單個字節。cudaMalloc總是給出內存
該cuda設備可用,並且還有很多可用的內存(與相應的調用檢查機器人)。
任何想法可能是什麼問題?
謝謝大家的幫助。
這個問題不是真的與cudaMalloc本身有關,而是它隱藏了真正的問題,這是由於似乎失敗的cuda的初始化。
因爲第一次調用cuda是在一個單獨的線程中,我沒有可用的GLContext,導致失敗。我需要確保在初始化上下文之後,我在主線程中通過虛擬malloc初始化了cuda。
請嘗試在代碼本身的開頭調用cudaSetDevice(),然後調用cudaDeviceSynchronize(),然後調用cudaThreadSynchronize()。
cudaSetDevice(0)如果只有一個設備。默認情況下,CUDA運行時將初始化設備0.
cudaSetDevice(0);
cudaDeviceSynchronize();
cudaThreadSynchronize();
請回復您的觀察結果。如果仍然失敗,請指定操作系統,體系結構,CUDA SDK版本,CUDA驅動程序版本。如果可能的話,請提供失敗的代碼/代碼片段。
你好,我可以在我的R代碼中使用這些命令嗎? – Mohammad
您能夠運行SDK示例嗎?你能否向我們提供一個代碼樣本,但你失敗了? –
你能提供一些你已經嘗試過的例子嗎? –