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\co
enter code here
re\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加速