2016-05-31 180 views
0

我在Tesla K80上用CUDA 7.5和CUDNN v5运行Tensorflow 0.8。一切都很好,但两个设备无法访问对方。Tensorflow支持特斯拉K80

下面列出了警告日志。谢谢。

I tensorflow/core/common_runtime/gpu/gpu_init.cc:59] cannot enable peer access from device ordinal 0 to device ordinal 2 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:59] cannot enable peer access from device ordinal 0 to device ordinal 3 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:59] cannot enable peer access from device ordinal 1 to device ordinal 2 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:59] cannot enable peer access from device ordinal 1 to device ordinal 3 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:59] cannot enable peer access from device ordinal 2 to device ordinal 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:59] cannot enable peer access from device ordinal 2 to device ordinal 1 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:59] cannot enable peer access from device ordinal 3 to device ordinal 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:59] cannot enable peer access from device ordinal 3 to device ordinal 1 
+0

是的,你应该可以在K80上使用Tensorflow。您显示的警告是K80插入的系统配置的结果,并非特定于K80 GPU或Tensorflow。 NVIDIA提供了示例代码(例如simpleP2P,p2pBandwidthLatencyTest,deviceQuery),它们都提供了有关系统的P2P(对等访问)功能的各种信息。 –

+0

谢谢你的帮助。我尝试运行simpleP2P测试,它显示2个GPU不能彼此访问p2p。你知道为什么它没有在我的机器上启用吗?以下是我的环境信息。谢谢。 ubuntu 14.04,Tesla K80,驱动程序版本:352.39。 – Brian

+0

这取决于您的系统,即主板和系统BIOS。看看Hopobcn提供的答案。如果您有像这样建议的双插槽主板上安装这些GPU,则某些GPU将无法与其他GPU直接通信(p2p)。但是如果不知道您拥有哪个特定的主板以及GPU插入的插槽,则无法给出确切的答案。 –

回答

6

我敢打赌,你有一些多插槽的配置,像这样的:

Two K80 from different PCIe root complex

各自K80是不共享相同的PCIe根联合体。 然后,允许从GPU0到GPU1的点对点访问,但是从GPU0到GPU2/GPU3不允许。

Tensorflow应该能够检测到这种系统并在GPU之间执行手动拷贝。

3

是,TensorFlow应该在特斯拉K80 GPU工作(虽然它不是officially tested devices之一)。正如Robert Crovella在his comment中指出的那样,这些警告消息仅仅表明您的系统未配置为在各种GPU设备之间进行点对点访问,但您仍然应该能够在其上运行TensorFlow。