我使用CUDA 7.5和CUDNN v5在Tesla K80上运行Tensorflow 0.8。一切都很好,但两个设备无法互相访问。
警告日志如下所示。谢谢。
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 :(得分:6)
我打赌你有一些像这样的多插槽配置:
每个K80都没有共享相同的PCIe根复合体。 然后,允许从GPU0到GPU1的对等访问,但是从GPU0到GPU2 / GPU3不允许。
Tensorflow应该能够检测到这种系统并在GPU之间执行手动复制。
答案 1 :(得分:3)
是的,TensorFlow应该使用特斯拉K80 GPU(尽管它不是officially tested devices之一)。正如Robert Crovella在his comment中指出的那样,这些警告消息仅表明您的系统未配置为在各种GPU设备之间进行点对点访问,但您仍应能够对它们运行TensorFlow。 / p>