cock_coke 2022-08-13 16:38 采纳率: 40%
浏览 174
已结题

关于网络训练过程中cpu使用率过低的问题

描述一下我的情况。我训一个CNN网络时单个物体差不多一万张数据的时候,num_worker取的是8,pin_memory也设置为true,第一个epoch比较慢,差不多20分钟;但之后cpu6个核心的使用率都能接近百分百,而gpu的使用率基本保持在90以上,训得飞快,基本一个1个epoch3分钟就拿下了,那是多么赏心悦目啊。
可是当我不变化配置地喂入全部8个物体约八万条数据后cpu总体使用率就一直比较低,通过top指令查看在20%以下(20%!以下!),自然也就导致显卡使用率也上不去,大多数时候都是个位数,偶尔跳到90几(每0.5s观测nvidia-smi)。第一个epoch三个半小时,其后的每个epoch一个半小时,整个训练速度不成比例的变慢了好多,并且没跑其他程序。这个问题已经折腾两天了,算上之前懵懵懂懂地以为就只能这么快的时间就更长了。我加上了监视器的两张图片,链接在下(不大会发图片)。期待能有站友解决我的疑惑
https://weibo.com/u/7639430630?from=feed&loc=avatar&is_all=1
配置:3060显卡,驱动515.65,cuda11.1, cudnn8.0.5, 主板芯片组:B365颜色分类:i5 9600KF+B365M AORUS ELITE, 内存容量:8GBx2根

  • 写回答

1条回答 默认 最新

  • kakaccys 2022-08-13 17:27
    关注

    楼主,我没太搞明白的是你到底是gpu训练还是cpu训练?还有你的batch_size是多少?数据增加后有变化batch_size吗?还有你有观察内存和虚存吗?目前看你的内存有点差啊,虽然gpu运算中主要用显存,但是数据是从内存拷贝到显存的这个过程的io,当你没有太多内存空间的时候,会很浪费时间,导致cpu也上不去,即使你是cpu训练,当内存不太够的时候,也会出现这情况。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月21日
  • 已采纳回答 8月13日
  • 修改了问题 8月13日
  • 修改了问题 8月13日
  • 展开全部

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分