【发布时间】:2016-04-22 10:37:29
【问题描述】:
我的机器中有 3 个 GTX Titan GPU。我使用 cifar10_train.py 运行 Cifar10 中提供的示例并得到以下输出:
I tensorflow/core/common_runtime/gpu/gpu_init.cc:60] cannot enable peer access from device ordinal 0 to device ordinal 1
I tensorflow/core/common_runtime/gpu/gpu_init.cc:60] cannot enable peer access from device ordinal 1 to device ordinal 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:127] DMA: 0 1
I tensorflow/core/common_runtime/gpu/gpu_init.cc:137] 0: Y N
I tensorflow/core/common_runtime/gpu/gpu_init.cc:137] 1: N Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:694] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX TITAN, pci bus id: 0000:03:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:694] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX TITAN, pci bus id: 0000:84:00.0)
在我看来,TensorFlow 正在尝试在两个设备(gpu0 和 gpu1)上进行自我初始化。
我的问题是为什么它只在两台设备上这样做,有什么办法可以防止这种情况发生吗? (我只希望它像只有一个 GPU 一样运行)
【问题讨论】:
-
这真的很有帮助。但是为什么 TensorFlow 会自动为机器上的所有设备初始化呢?顺便说一句,我会接受的答案。
-
TensorFlow 的目标是“从研究到生产”。使用所有计算能力的默认设置似乎满足了尽快完成工作的期望。很好,实际上可以调整。但是您提到了 3 个 GPU,而您的日志中只显示了 2 个。为什么会这样?
-
我刚刚发现这是因为第三个 GPU 没有运行(出于某种我还不知道的原因),所以我猜如果是这样,TensorFlow 也会使用它。跨度>
标签: machine-learning computer-vision gpu tensorflow