我正在啓動多個線程的Windows環境中的C++項目(VS2105)中工作。 PC有兩個NVIDIA GeForce GTX 1080.每個線程在GPU模式下使用不同的caffe分類器。caffe multi-gpu CUDNN_STATUS_EXECUTION_FAILED
如果所有線程使用一個GPU,程序運行良好。它使用GPU 0或使用GPU1都可以很好地工作。當我爲每個線程使用不同的GPU時,問題就來了。例如,如果該程序將啓動兩個輪胎胎面和分類中的線程1使用GPU 0(Caffe::SetDevice(0);
)和分類中的線程2使用的GPU(Caffe::SetDevice(1);
),預測開始工作,但突然我得到的錯誤cudnn_conv_layer.cu:28] Check failed: status == CUDNN_STATUS_SUCCESS (8 vs. 0) CUDNN_STATUS_EXECUTION_FAILED
我也有類似的來自多線程項目工作人員的錯誤與python接口相關的CuDNN線程安全問題與一個GPU一起工作,但在單GPU中,程序工作正常。
我的模型是在單GPU上訓練的。我應該在GPU 0和GPU 1中訓練單獨的模型嗎?我應該以任何特殊的方式配置分類器以在multiGPU多線程環境中使用它嗎?
我使用caffe的cuda 8.0的windows分支並使用caffe的C++接口作爲靜態庫鏈接到項目。