You need to enable JavaScript to run this app. TensorFlow 1版本如何检测GPU是否被模型正常调用使用
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow 1版本如何检测GPU是否被模型正常调用使用

TensorFlow 1.15 GPU调用检测方案

1. 基础环境检测:确认TensorFlow是否识别到GPU设备

首先运行以下代码验证TF是否能正常识别硬件层面的GPU:

import tensorflow as tf
from tensorflow.python.client import device_lib

# 打印所有可识别的本地设备
print("所有可用设备列表:")
for device in device_lib.list_local_devices():
    print(f"设备名称:{device.name}, 设备类型:{device.device_type}")

# 快速检测GPU是否可用
print("\nGPU是否可用:", tf.test.is_gpu_available())
# 打印可用GPU的设备ID
if tf.test.is_gpu_available():
    print("当前使用的GPU设备:", tf.test.gpu_device_name())

如果输出中没有device_type: "GPU"的条目,说明你的CUDA、cuDNN版本和TensorFlow 1.15不匹配,TF1.15要求配套CUDA 10.0 + cuDNN 7.4,版本不对会直接导致GPU无法被识别,模型默认跑在CPU上。


2. 运算分配检测:确认模型节点是否实际调度到GPU运行

如果第一步已经识别到GPU,但使用率还是偏低,可以开启设备分配日志,打印每个运算节点的实际运行设备,替换你自己的模型代码即可:

import tensorflow as tf

# 此处可以替换为你自己的模型定义代码
a = tf.random.normal(shape=[1000, 1000])
b = tf.random.normal(shape=[1000, 1000])
res = tf.matmul(a, b)

# 开启Session时设置log_device_placement=True,输出所有节点的运行设备
config = tf.ConfigProto(log_device_placement=True)
with tf.Session(config=config) as sess:
    sess.run(res)

运行后控制台会输出每个节点的分配位置,如果看到类似以下日志,说明运算确实跑在GPU上:

MatMul: (MatMul): /job:localhost/replica:0/task:0/device:GPU:0

如果所有节点都分配到/device:CPU:0,优先排查是否手动全局指定了CPU运行,或者模型中存在不支持GPU加速的自定义OP,导致整个模型回退到CPU执行。


3. GPU使用率偏低的常见排查方向

如果上述两步都确认GPU已经被正常调用,还是出现使用率低于5%的情况,优先排查以下问题:

  • 批次大小(batch_size)设置过小,GPU并行算力没有被充分利用,可以逐步调大batch_size到显存占用70%~80%左右再观察
  • 数据加载IO瓶颈,CPU预处理数据速度跟不上GPU的运算速度,GPU长期处于等待输入的空闲状态,可以用tf.data API优化数据加载流程,增加预处理的并行数
  • 模型本身参数量、运算量极低,GPU单次运算耗时极短,宏观统计的使用率自然会偏低,属于正常情况。

内容的提问来源于stack exchange,提问作者정원용

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 22:30:04