2013-06-13 31 views
0

我已690具有4GB RAM GPU在Windows 7 X64的測試此上GTX,的Visual C++ 10不同地表現這兩個設備。如果我從第一個設備,然後第二個設備獲取內存,它會失敗並返回內存分配錯誤,但是當我第一次從設備1和設備0獲得它時,它沒有問題。任何人都可以告訴我爲什麼?多GPU內存分配與不同的順序分配的

該代碼失敗:

void * pM1 , * pM2 ; 

CudaCheck(cudaSetDevice(0)) ; 
CudaCheck(cudaMalloc(& pM1 , 1200000000)) ; 
CudaCheck(cudaSetDevice(1)) ; 
CudaCheck(cudaMalloc(& pM2 , 1200000000)) ; 

此代碼:

void * pM1 , * pM2 ; 

CudaCheck(cudaSetDevice(1)) ; 
CudaCheck(cudaMalloc(& pM1 , 1200000000)) ; 
CudaCheck(cudaSetDevice(0)) ; 
CudaCheck(cudaMalloc(& pM2 , 1200000000)) ; 

最好成績, 拉敏

附: CudaCheck功能只是檢查輸出結果。

回答

1

問題已解決。這個問題是由於SLI處於活動狀態。我禁用了它,現在它運行正常。