用gpu进行模型训练但cpu利用率高该怎么办?

新手上路,请多包涵

image.pngimage.png
如图所示,使用的cuda版本是11.6,pythorch版本是1.12,确认版本正确,并且在运行train.py时有提示cuda3080,gpu_mem等字样,但是查看任务管理器时却发现显卡利用率非常低(gpu1),而cpu利用率非常高,有时候能到95%,请问这种情况是否正常?
网络搜索的答案都在说确认版本,问题也和我这个不是一个东西,而且都在复制粘贴。。

回复
阅读 894
1 个回答

几种可能:
题主的话...直接看第三条好了...
1.GPU没有配置成功

建议新建一个python文件试一下如下的代码,看输出
import torch
print(torch.cuda.is_available())

输出False 就是CUDA没有配置好
2.没有指定cuda

一般用cuda:0就能够成功,挨个试试看哪个有效
import torch
device = 'cuda:0' if torch.cuda.is_available() else 'cpu'
from torchvision.models import ResNet
ResNet(......).to(device)

只要第一步没有输出False,这一步应该没有问题...直接XXXX.to(device)就能到指定设备上跑

3.代码本身的问题

如果上面的都成功..就不是设备和配置的问题
可能代码中开了多线程/多进程进行数据处理...画图等等
这个时候cpu的占用率本身就会很高
想要降低的话就要改代码,把多线程/进程的地方少开几个
代价就是速度变慢了
跑深度模型cpu占用率高还蛮正常的
GPU利用率的话,不妨增大batch_size,把显存多吃一点...这样你就不会纠结显存占用率低的问题了\doge
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏