用GPU跑深度学习代码,GPU和CPU的利用率都低于10%
问题:
跑深度学习代码,使用GPU,但是跑的过程中GPU和CPU的利用率都低于10%(出现问问题的前一次跑相同代码,GPU利用率很高)
---------------------
分界线2025.3.26
我先提取的特征再用gpu跑就很快。
问题排查:
1、数据加载太慢
DataLoader的num_workers参数为8,不存在这个问题
batch_size = 256
2、GPU 驱动或 CUDA 配置问题
-
检查
nvidia-smi是否能看到进程; 能看到进程 -
检查
torch.cuda.is_available()是否为True; 为True -
CUDA、cuDNN、PyTorch 版本是否匹配; 版本匹配
-
代码没有正确使用GPU; 代码检查过了,正确使用了GPU
3、查看CUDA是否可用
import torch
print(torch.cuda.is_available()) # True 表示 CUDA 可用
print(torch.cuda.device_count()) # 查看可用 GPU 数量
print(torch.cuda.get_device_name(0)) # 查看第一个 GPU 名称
4、测试GPU简单运算性能
import torch
import time
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# 创建一个大张量
x = torch.randn(10000, 10000, device=device)
y = torch.randn(10000, 10000, device=device)
# 计算并计时
start_time = time.time()
z = x @ y
torch.cuda.synchronize() # 等待 GPU 计算完成
end_time = time.time()
print(f"矩阵乘法耗时: {end_time - start_time:.4f} 秒")
print(f"结果张量设备: {z.device}")
我的运行结果,CPU时间明显大于GPU
5、对GPU进行压力测试
这段代码会在 GPU 上做一个非常大的矩阵乘法,正常情况下一定会出现高 GPU 占用(在 nvidia-smi 可以看到 >90% 的利用率)。
import torch
import time
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Running on {torch.cuda.get_device_name(0)}")
# 创建超大矩阵
size = 30000
x = torch.randn(size, size, device=device)
y = torch.randn(size, size, device=device)
start = time.time()
z = x @ y
torch.cuda.synchronize()
end = time.time()
print(f"大矩阵乘法耗时: {end - start:.2f} 秒")
压力测试结果:gpu没有用起来,利用率没有超过10%,大矩阵乘法耗时 7.21秒
现象总结:
-
大矩阵乘法耗时 7.2 秒(正常情况下应该是 1~2 秒以内)
-
nvidia-smi监控到 GPU 利用率始终低于 10% -
已确认 PyTorch 是
2.6.0+cu126,CUDA 和驱动正常 -
说明 代码已经在 GPU 上运行,但 GPU 没有真的全力计算。
6、查看硬件节能模式(P-State)
命令行输入:nvidia-smi
看输出里面 P-State 是不是一直是 P8 或 P5。
nvidia-smi
-
P0 表示性能全开
-
P2 / P5 表示部分性能
-
P8 表示低功耗模式
我的结果:

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)