多进程多GPU,具有tensorflow,windows

时间:2017-03-19 15:58:25

标签: cuda tensorflow gpu cudnn

我对张力流有点新意,所以请对我温柔...... 我在创建第二个进程时遇到问题,该进程在已经运行的GPU上加载张量流。

我得到的错误是:

\cuda\cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
\cuda\cuda_dnn.cc:392] error retrieving driver version: Permission denied: could not open driver version path for reading: /proc/driver/nvidia/version
\cuda\cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
\kernels\conv_ops.cc:532] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
\cuda\cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED

硬件详细信息:

super micro -  4028GR-TRT
8 GPU's 1080 
CUDA: 8 
cudnn: 5.1 
windows: 10 
tensorflow: 0.12.1 / 1.0.1  

我的电脑应该不是问题

windows 7
gpu 1070
cuda 8
cudnn 5.1 
tensorflow 0.12.1

有人可以告诉我为什么在我的电脑上一切都好,但不是在大电脑上(超微)?

这可能是windows / driver问题吗?

我尝试更新NVIDIA驱动程序..没有帮助......

1 个答案:

答案 0 :(得分:2)

TensorFlow并不总是善于与其他进程共享GPU(包括其他实例!)。典型的解决方法是使用%CUDA_VISIBLE_DEVICES%环境变量来防止这两个进程在同一GPU上发生冲突。例如:

C:\>set CUDA_VISIBLE_DEVICES=0
C:\>python tensorflow_program_1.py

在另一个命令提示符下,您可以告诉TensorFlow使用不同的GPU,如下所示:

C:\>set CUDA_VISIBLE_DEVICES=1
C:\>python tensorflow_program_2.py