You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

TensorFlow-GPU未使用GPU且输出显示N而非Y的问题求助

你的TensorFlow-GPU其实已经在正常使用GPU啦!

别担心,先帮你拆解一下你困惑的日志信息和实际情况:

关于日志里的0: N

这个N完全不是GPU未启用的标志!它是TensorFlow打印的GPU设备互连矩阵——因为你只有1块GPU,矩阵里只需要显示这台GPU和自身的连接状态,N代表"No Peer-to-Peer Communication",意思是单GPU场景下不需要跨GPU的直接通信,这是完全正常的输出,和GPU是否被使用没有关系。

反而后面这条日志已经明确告诉你GPU被成功初始化并分配了资源:

2018-05-26 17:39:54.449194: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1053] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1416 MB memory) -> physical GPU (device: 0, name: GeForce GTX 960M, pci bus id: 0000:01:00.0, compute capability: 5.0)

这条日志说明TensorFlow已经正确识别到你的GeForce GTX 960M,并且给它分配了1416MB显存,设备已经就绪。

如何验证GPU真的在工作?

给你几个简单的验证方法:

  • 实时监控GPU状态:在运行TensorFlow代码的同时,打开另一个终端反复执行nvidia-smi,观察GPU-Util(GPU使用率)和Memory-Usage(显存占用),如果代码执行时这两个数值明显上升,说明GPU正在处理计算任务;
  • 打印可用设备列表:在Python里执行这段代码,会列出所有TensorFlow能使用的设备,确认GPU在列表中:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
  • 对比运行速度:写一个大一点的张量运算(比如大矩阵乘法或者简单的CNN),分别用/cpu:0/gpu:0设备执行,GPU版本的运行时间应该会比CPU版本快很多(尤其是计算量越大,差距越明显)。

额外说明

你看到的AVX2 FMA警告只是提示TensorFlow编译时没有用到CPU的这些高级指令,不影响GPU的正常使用,完全可以忽略;另外你的NVIDIA驱动版本396.24和当时的TensorFlow版本是兼容的(2018年的TensorFlow要求驱动版本≥384),驱动层面没有问题。

总的来说,你的TensorFlow-GPU已经正常工作了,那个0: N只是单GPU场景下的正常日志,不用再为此焦虑啦!

内容的提问来源于stack exchange,提问作者Hobbes

火山引擎 最新活动