道歉,如果已经在其他地方报道了这一点,我一直在寻找它,但没有成功。
在使用P100 GPGPU运行keras + tensorflow的简单mnist示例(在github /fchollet/keras/blob/master/examples/mnist_cnn.py
上可用)时,我们在keras / tensorflow / cuda的交叉点遇到问题:
Using TensorFlow backend. I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: name: Tesla P100-PCIE-16GB major: 6 minor: 0 memoryClockRate (GHz) 1.3285 pciBusID 0000:02:00.0 Total memory: 15.89GiB Free memory: 15.51GiB I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:02:00.0) F tensorflow/core/common_runtime/gpu/gpu_device.cc:121] Check failed: err == cudaSuccess (71 vs. 0) srun: error: nid02011: task 0: Aborted srun: Terminating job step 1262138.0
我们正在使用keras 2.0.2,tensorflow 1.0.0。 cuda 8.0.53。 我们似乎在python2.7.12和python3.5.2(keras 1.2和2.0 ......)中都有这个问题。
裸露张量流测试正常,这让我们认为这确实是在keras / tensorflow / cuda的交叉点。
同样的测试在各种机器上使用相同版本的软件但使用TitanX GPGPU运行良好。
似乎正在追溯到tensorflow line 121
cudaErrorNotSupported = 71 This error indicates the attempted operation is not supported on the current system or device.
我对下一步要解决此问题的方法毫无头绪。我非常感谢有关此事的任何反馈和指导。
答案 0 :(得分:0)
此处问题的根本原因似乎是Tensorflow与CUDA MPS服务之间不兼容(请参阅相关的Tensorflow跟踪器问题here)。它应该只影响使用MPS服务的集群和大型系统,以提高对GPU设备的访问粒度。
这应该可以作为一个错误来提出,与同时是NVIDIA和 Tensorflow开发团队。
已编辑以添加Tensorflow跟踪器问题中的诊断:
似乎潜在的原因是在Tensorflow中广泛使用流回调,MPS在最近从NVIDIA发布的Volta硬件之前没有支持。显然,也可以从源代码构建Tensorflow,这些选项可以使它在早期硬件上与MPS一起正常工作。有关详细信息,请参阅链接的跟踪器讨论。
[这个答案是从评论中汇总而来,并作为社区维基条目添加,以便将其从CUDA标签的未答复列表中删除]