pc虽然识别gpu,但是在tensorflow-gpu中使用了一个CPU

Posted

技术标签:

【中文标题】pc虽然识别gpu,但是在tensorflow-gpu中使用了一个CPU【英文标题】:Although pc recognizes gpu, it uses a CPU in tensorflow-gpu 【发布时间】:2019-01-06 05:47:05 【问题描述】:

我正在使用 tensorflow-gpu。我想使用 GTX1070,但 tensorflow-gpu 使用我的 CPU。我不知道该怎么办。

我使用 CUDA 9.0 和 CUDNN 7.1.4。我的 tensorflow-gpu 版本是 1.9。

在官网运行此命令后

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()

2018-07-30 10:53:43.369025: 我 T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:141] 您的 CPU 支持此 TensorFlow 二进制文件不支持的指令 编译使用:AVX2 2018-07-30 10:53:43.829922: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1392] 找到具有属性的设备 0:名称:GeForce GTX 1070 主要:6 次要: 1 memoryClockRate(GHz): 1.683 pciBusID: 0000:01:00.0 totalMemory: 8.00GiB freeMemory: 6.63GiB 2018-07-30 10:53:43.919043: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1392] 找到具有属性的设备 1:名称:GeForce GTX 1050 主要:6 次要: 1 memoryClockRate(GHz):1.455 pciBusID:0000:05:00.0 totalMemory: 2.00GiB freeMemory: 1.60GiB 2018-07-30 10:53:43.926001: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1456] 忽略可见的 gpu 设备(设备:1,名称:GeForce GTX 1050,pci 总线 ID:0000:05:00.0,计算能力:6.1) 使用 Cuda 多处理器计数:5。所需的最小计数为 8。您可以 使用 env var 调整此要求 TF_MIN_GPU_MULTIPROCESSOR_COUNT。 2018-07-30 10:53:43.934810: 我 T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1471] 添加可见 gpu 设备:0 2018-07-30 10:53:44.761551: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:952] 具有强度 1 边缘矩阵的设备互连 StreamExecutor: 2018-07-30 10:53:44.765678: 我 T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:958] 0 1 2018-07-30 10:53:44.768363: 我 T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0: N N 2018-07-30 10:53:44.771773: 我 T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 1: N N 2018-07-30 10:53:44.774913: 我 T:\src\github\tensorflow\tensorflow\coenter code herere\common_runtime\gpu\gpu_device.cc:1084] 创建 TensorFlow 设备(/job:localhost/replica:0/task:0/device:GPU:0 6395 MB 内存)-> 物理 GPU(设备:0,名称:GeForce GTX 1070,pci 总线 id:0000enter code here:01:00.0,计算能力:6.1)

【问题讨论】:

消息说它使用您的 GeForce GTX 1070,而忽略 GTX 1050,实际问题是什么? 【参考方案1】:

正如我从您的 tensorflow 引擎的日志摘录中看到的那样 - 它使用 GPU 设备 0

(/job:localhost/replica:0/task:0/device:GPU:0 with 6395 MB memory) -> physical 
GPU (device: 0, name: GeForce GTX 1070, pci bus id: 0000:01:00.0, compute 
capability: 6.1)

但拒绝使用您的 GeForce GTX 1050。这是可能的,因为环境变量 TF_MIN_GPU_MULTIPROCESSOR_COUNT 似乎设置为 8。

尝试按照之前日志中的建议将其设置为 5:

set TF_MIN_GPU_MULTIPROCESSOR_COUNT=5

如果您想确定使用的是哪个设备 - 使用

初始化会话
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

您可以在 Using GPUs tensorflow 文档页面上阅读更多内容

【讨论】:

以上是关于pc虽然识别gpu,但是在tensorflow-gpu中使用了一个CPU的主要内容,如果未能解决你的问题,请参考以下文章

基于Keras 的VGG16神经网络模型的Mnist数据集识别并使用GPU加速

您如何找到 PC 上的 GPU 数量?

人脸识别中GPU与CPU两者的区别是啥?

Linux下监视GPUCPU的使用情况

为啥在 conda 安装后 Tensorflow 无法识别我的 GPU?

三者互ping,PC,虚拟机,uboot