【已证实】训练神经网络时,GPU利用率低而显存占用率高的思考

已经证实了我的猜想“从batch_size角度考虑”的正确性。详细解释在后面更新。

GPU利用率低而显存占用率高的思考

问题描述:在深度学习training中,可以看到cpu利用率很高、内存占用率很高、显存占用率很                           高,但GPU利用率很低,train比较耗时。

本文对这个问题进行了思考。

(仅仅是自己遇到问题思考的一些内容,也不一定正确,期待和大家交流探讨)

1.先了解下深度学习中数据的加载问题

先将硬盘中的数据读取到内存中,然后CPU从内存中读取数据,再将数据传输到显存中,等待GPU处理,处理完成之后会传递一部分参数数据到CPU。同时CPU还会将网络和损失函数等传递给GPU。详细可以看这里:http://t.csdn.cn/reYH6。

2.遇到的问题描述

性能可以在任务管理中查看,也可以通过终端查看。不多过阐述。

内存占用率很高(27G/63G);CPU利用率很高70%-90%;显存占用率很高,GPU利用率不高。可以看下图,我用的dataset是Cityscapes精细标注的版本。

3.问题分析

1)从CPU传输数据角度来考虑

   GPU处理的数据是从CPU拿过来的,是否存在io传输瓶颈的问题?针对我的情况来看,我的理解是cpu、显存占用率都这么高,可以理解为GPU要从显存拿数据做处理,如果传输受到了限制,那首先显存占用率会降下来,所以这一点可以排除。

2)从batch_size角度考虑

可以从bs传输数据的的角度考虑,先假设GPU处理数据时间小于数据传输时间(具体计算是又模型来决定,而且确实是小于的,因为没看到显卡的数据一直是满的),当传一个bs的数据就非常大的时候(足以占满显存),那GPU利用率低的主要原因是由于显存大小限制的,因为GPU一直在空闲等待数据中。

但是这个角度我还不能验证,等我训练完之后抽空试试看,但是这个思路可以和大家分享。

以上两点是我的思考,以下是两点有关调参的小tips。

Num_works和pin memory这两个参数的作用,第一个是开辟多少个CPU线程来处理数据,可以根据CPU核数设置,一般用4,8,16等。但是这个参数也不能太大。当这个参数太大是,在分发数据的时候可能会消耗一定的时间,极端点可以理解为CPU处理数据很快只要1s,但是因为线程数太多而分发数据的时候花了5s。pin memory的介绍可以参考这里: pin_memory - 知乎。简单讲就是该参数开启时,可以减少数据传递到显存中的时间。

更新2022.5.31

解释:这段时间对代码有进行了修改,对细节也把握更多了。我跑的代码是GSCNN的代码,看到作者传进模型的feature map 是[b,3,720,720],进过wideresnet七层处理之后最后得到m7为[b,4096,90,90],然后传入到ASPP做卷积操作。当时跑代码的时候,模型只有cnn的计算,可以看到设备使用情况,在上面可以看到。当时设置的训练集和验证集的bs都为6,num_works设置好像为5.

后面这段时间我将transformers加入到GSCNN中,计划是将在不同的cnn层之后加入TF,但是在实际操作过程中由于太吃显存了,硬件条件有限(48G 2*3090),最后只加了一层TF,但是就这一层TF加进去之后,GPU的利用率马上就上来了。很明显大家都知道TF的计算量是非常大的。所以基于这一点我们可以得出结论,之前显存里面全是加载进来的数据,GPU计算性能没被拉满,是因为受到显存的限制。假设GPU的计算能力为十个单位。传入同样大小的数据,以占满显存为准(48G),纯CNN的时候计算需求为1个单位,那加入TF之后计算需求为4个单位。(举个例子)

性能利用率对比
内存cpu利用率显存GPU利用率
CNN2789%23.8/249%
CNN+TF21.640%23.3/2440%

关于内存和CPU利用率变化的原因是bs和num_works设置的时候不一样引起的,这个不是重点讨论对象,根据这个现象我们可以得出结论:1、显存会限制GPU性能的发挥,2、利用率(可以理解为计算需求)和模型中计算量有关。

思考到这里我又有了疑问了:之前也跑过同样数据集,好像是deeplabv3+模型,其中一个模型跑起来速度超级快的,(当时已经意识到了GPU利用率的问题,所以特地有关注GPU利用率)GPU利用率也很高,好想达到了百分之八九十的样子。对比这个模型(纯CNN的),同样都是一些卷积操作,为什么dpV3+ 跑起来GPU利用率那么高,训练耗时少 ,而gscnn就不行。

结合我上面的思路我考虑到了是不是传给模型的数据问题,我测试了gscnn中传给模型的数据为

[b,3,720,720],但是我没有测试dpV3+的数据是多大,所以疑问就是不同大小分辨率的图片传给模型会对性能有影响吗?为什么有的代码传给模型的分辨率较高,有的较低,这一差异的出发点在哪?

待我探索完成后来更新这个问题的答案。

参考:

https://www.jb51.net/article/213809.htm

https://www.cxyzjd.com/article/ProLayman/104758331

yzZ_here
关注 关注
  • 18
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
在训模型的候如果遇到显存占用了,但是后面的GPU利用率不高的情况,可能是因为什么?
u013250861的博客
11-03 954
解决上述问题的方法包括:优化数据传输过程、增大训练批量(前提是显存允许)、选择更复杂的模型、优化同步操作、提升IO速度、升级GPU或降模型和批量的大小等。:如果模型的计算复杂度(比如模型较小,或者模型的运算并不复杂),那么GPU的计算能力可能没有被充分利用。:如果数据从磁盘读取到内存的速度跟不上模型的训练速度,也会使GPU在等待新的数据空闲,从而降利用率。:显存不足会限制网络的大小和批量大小,甚至可能导致无法运行网络,也会导致GPU利用率。或数据加载等,也可能导致GPU等待,降利用率
训练效率GPU利用率上不去?快来看看别人家的tricks吧〜.pdf
08-12
训练效率GPU利用率上不去?快来看看别人家的tricks吧〜.pdf
(14)关于PyTorch训练深度学习模型CPU/GPU使用率训练速度慢这一问题的总结
weixin_40227656的博客
08-16 1万+
电脑配置双2080Ti+i7-10700K,使用mobilenet-yolov4-lite训练VOC数据集训练100epochs要五六个小,检测cpu和gpu的使用发现利用率都很,说明没有充分使用电脑优秀的性能,两个显卡的使用率都分别只有20%-50%,查阅一些资料总结如下: 1、参考:【深度学习】踩坑日记:模型训练速度过慢,GPU利用率 上面作者指出四个提速技巧: 减少日志IO操作频率 使用pin_memory和num_workers 使用半精度训练 更好的显卡,更轻的模型 其中,第
训练模型GPU占用率
最新发布
H_XKA_H的博客
04-24 398
训练模型设置的batch-size是12,worker是3,按照网上的方法将batch-size或者worker调大,会出现内存不足和CUDA相关的各种问题,最后才发现训练模型GPU利用率,不是在任务管理器查看的。训练yolov8模型发现GPU利用率。90%,怪不得调batch会内存爆掉。
GPU显存占满但利用率却很
liu13364876993的博客
11-22 1万+
说到底还是不够有钱,这样也好,多出来的内存还能再让我跑跑别的程序!
使用GPU运行代码巨慢,或许是tqdm的锅
m0_56618741的博客
11-05 2237
现象:我在跑transformer模型的候,模型跑的很慢,而且可能第一次运行能跑一个batch然后卡了。第二次运行连第一个batch都没跑就卡了。 尝试过程:看了模型和参数都是在GPU上,而且使用 top 命令也不是因为CPU占满。 结果:发现罪魁祸首竟然是tqdm: 换成 模型就开始在GPU上欢快的运行起来啦 ...
训练效率GPU利用率上不去?快来看看别人家的tricks吧〜.rar
10-18
训练效率GPU利用率上不去?快来看看别人家的tricks吧〜.rar
深度学习GPU显存利用率 浅析小结
weixin_42455006的博客
11-02 4540
首先就一笔带过说一下GPU的重要性吧,以Pytorch为例,就是使用CUDA,cuDNN对深度学习的模型推理执行的各种计算转换为矩阵乘法进行加速,来达到从猴年马月的运行,到现在几十成百倍的提速。 至于我们爱之深恨之切的显存呢,以数据读取GPU运行内存的变化作为参考,具体实现机制一般是通过worker进程+队列的方式,让多个worker异步地读取、预处理数据入列,然后主管训练主进程从队列的另一头取数据。如果队列满了、训练进程来不及取数据,worker进程就会阻塞住,运行内存也就不会无限制地增长了。 显而
七、训练模型,CPU经常100%,但是GPU使用率才5%左右
panchang199266的博客
03-21 8036
具体原因分析参见。
深度学习PyTorch,TensorFlow中GPU利用率,CPU利用率,且模型训练速度很慢的问题总结与分析
qq_41568188的博客
06-02 5481
深度学习模型训练过程中,在服务器端或者本地pc端,输入nvidia-smi来观察显卡的GPU内存占用率(Memory-Usage),显卡的GPU利用率GPU-util),然后采用top来查看CPU的线程数(PID数)和利用率(%CPU)。往往会发现很多问题,比如,GPU内存占用率,显卡利用率,CPU百分比等等。接下来仔细分析这些问题和处理办法。** GPU内存占用率问题 这往往是由于模型的大小以及batch size的大小,来影响这个指标。当你发下你的GPU占用率很小的候,比如40%,70%
深度神经网络移动终端GPU加速实践
02-25
本文来自于网络,介绍了如何选择并训练模型,处理数据,以及在终端移动设备上工程化落地深度神经网络并做GPU加速,。AI无疑是近几年的超级风口,“AllinAI“等押宝AI的口号层出不穷,AI的风头一无两。实现AI有很多...
并行运算与神经网络_基于CPU_GPU的并行神经网络运算_matlab
04-10
资源名:并行运算与神经网络_基于CPU_GPU的并行神经网络运算_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 ...
AMD推出双GPU分辨率绘图卡
11-19
美商超微(AMD)发表速显示卡ATI RadeonTM HD 4870 X2,搭载2GB超宽频GDDR5内存、两颗55奈米制程开发的绘图处理器,核心脉为750MHz,搭配1600个串流处理器。 AMD亦同步推出价格具竞争力的ATI RadeonTM HD 4850 X2...
CPU占用率的N种原因
01-20
1、防杀毒软件造成故障 由于新版的KV、... 3、病毒、木马造成 大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有
使用多个GPU的深度神经网络快速训练算法
03-16
远端深层神经网络(DNN)被成功取代语音识别领域,成为一种很具发展潜力的语音识别模型。然而,由于其训练算法复杂度,通过训练数据和网络规模为提DNN的训练效率,该文研究了基于多图形处理器(graph-ic处理单元...
Transformer离线部署-GPU优化策略
sunny0660的博客
05-14 1227
前言 模型结构分析 具体优化措施 参考资料 原文:Transformer离线部署-GPU优化策略 前言 本文主要介绍Transformer类网络在GPU设备上部署上的优化要点。 主要围绕Nvidia开源的FasterTransformer展开。 模型结构分析 标准的Transformer结构主要包括 Encoder 和 Decoder 两部分结构,具体结构分析可参考Transformer在CV领域的应用与部署: Encoder对应算子结构为: Decoder对应算子结构为: 可以发现: Encod.
深度神经网络使用较大批量训练容易导致超内存的主要原因
sinat_21720047的博客
07-22 2445
在模型训练初始化完成后,我们交替的使用正向传播和反向传播,并根据反向传播计算的梯度迭代模型参数。既然我们在反向传播中使用了正向传播中计算得到的中间变量来避免重复计算,那么这个复用也导致了正向传播结束后,不能立即的释放中间变量的内存。这也训练要比预测占用更多内存的重要原因 。 另外,需要指出的是,这些中间变量的个数大体上和网络层数相关,每个变量的大小与批量大小和输入个数也是线性相关的 ,他们是导致 ...
有关Pytorch训练Volatile Gpu-Util(GPU利用率)很,而Memory-ueage(内存占比)很的情况解释与说明
热门推荐
等待戈多的博客
01-30 2万+
有关Pytorch训练GPU利用率,而内存占比很的情况前言有关GPU的Memory-usage的占用(GPU内存占有率)有关Volatile GPU-Utile的利用率GPU利用率) 直接参考 前言 模型开始训练候,常用watch -n 0.1 nvidia-smi来观察GPU显存占比情况,如下图所示,通常GPU显存占比和GPU利用率都很,但有的模型训练GPU利用率(Volatile GPU-util)占比在不断的动态变化,从0-100%之间不断浮动循环。 如果发生上述这种GPU利用
YOLOV5训练GPU占用率
05-20
如果你在使用YOLOv5进行GPU训练发现GPU占用率,可能有以下几个原因: 1. 图像尺寸过小:如果你正在使用小的图像尺寸进行训练,那么GPU利用率可能会比较。尝试增加图像尺寸并重新启动训练。 2. 批量大小过小:如果你的批量大小设置得太小,GPU利用率也可能会比较。尝试增加批量大小并重新启动训练。 3. 数据加载速度过慢:如果你的数据加载速度过慢,那么GPU利用率也可能会受到影响。尝试使用更快的存储介质(如SSD)来加快数据加载速度。 4. GPU型号不足:如果你的GPU型号性能较,那么它的利用率也可能会比较。尝试使用更强大的GPU来提训练效率。 5. 其他资源占用过多:如果你的系统中有其他资源(如CPU、内存、网络等)占用过多,那么也可能会导致GPU利用率。尝试关闭不必要的应用程序或服务来释放资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 【已证实】训练神经网络时,GPU利用率低而显存占用率高的思考 11387
  • SegFormer论文记录(详细翻译) 11315
  • python多项式拟合:np.polyfit 和 np.polyld 7525
  • Conformer(cnn+transformers)论文详解 6983
  • 神经网络训练时loss不下降的问题 5527

最新评论

  • MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model

    向岸看: 随机种子吧,从数据集中随机抽取图像和标准进行训练

  • 解决Ubuntu20.04远程时必须连接显示器

    weixin_42074903: 怎么回退呢? ip找不到了

  • windows平台使用tensorRT部署yolov5详细介绍,整个流程思路以及细节。

    yzZ_here: nice表情包表情包表情包

  • windows平台使用tensorRT部署yolov5详细介绍,整个流程思路以及细节。

    L.RT971: 看了您的教程终于成功了!感谢!表情包

  • 交叉熵函数Cross_EntropyLoss()的详细计算过程

    yzZ_here: 明天我看看

大家在看

  • 数据查询(5)-----------基于学生信息数据库study 552
  • Linux CPU占用高问题 208
  • LeetCode 第5题:最长回文子串
  • C语言游戏实战(12):植物大战僵尸(坤版) 57759
  • 关于AI数字人的几个创作平台及其使用(一)

最新文章

  • Python API使用TensorRT模型进行推理
  • windows平台使用tensorRT部署yolov5详细介绍,整个流程思路以及细节。
  • 解决Ubuntu20.04远程时必须连接显示器
2024年4篇
2023年16篇
2022年26篇
2021年2篇

目录

目录

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司邵阳设计公司网站报价大理网站制作公司潍坊网站建设设计西乡关键词按天收费多少钱淮南网站优化软件价格滨州英文网站建设哪家好安康外贸网站设计价格鹰潭网页设计价格淮南关键词按天扣费多少钱林芝网站开发公司商丘高端网站设计价格丹东网站优化排名报价西宁模板推广常州网站设计价格钦州seo网站推广价格沧州营销型网站建设哪家好楚雄网站开发报价徐州网站制作设计多少钱松岗网站建设哪家好周口网页制作上海阿里店铺运营多少钱长治百度关键词包年推广公司思茅百姓网标王哪家好普洱seo优化多少钱许昌营销型网站建设推荐霍邱阿里店铺运营公司忻州模板推广推荐淮安网站定制自贡企业网站改版红河建设网站歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化