您现在的位置是:生活百科网 > 生活百科 >
完美解决显卡利用率低(完美解决显卡利用率低 绝地求生)
2022-05-04 10:25生活百科 人已围观
简介完美解决显卡利用率低这老哥也是太牛了,用着3080就想要任性开4k了!捂脸这老哥配置这样:cpu:2700x显卡:3080现在问题是,在4k分辨率下,艾尔登法环和gta5cpu占用率30-80%波动,显卡占...
完美解决显卡利用率低
这老哥也是太牛了,用着3080就想要任性开4k了!捂脸这老哥配置这样:cpu:2700x 显卡:3080 现在问题是,在4k分辨率下,艾尔登法环和gta5 cpu占用率30-80%波动,显卡占用率40%-96%波动,60hz ,有时会突然掉帧 。
想知道是不是cpu瓶颈了?
显卡利用率一直在100正常吗
为啥GPU利用率总是这么低
榨干GPU的显存,使模型成功跑起来已有多种教程。
但是,又一个问题来了,GPU的利用率总是一会99%,一会10%,就不能一直99%榨干算力?导致算力不能够完全利用的原因是数据处理的速度没有跟上网络的训练速度。
因此,我们的抓手在于提高数据的读取、预处理速度。
定位问题
首先,我们得先判断到底是不是数据读取、预处理阶段是整个pipeline的瓶颈,不然岂不是优化了个寂寞。
pycharm run/profile 分析瓶颈
通过pycharm的run/profile xxx,我们可以看到程序执行的调用图,并且可以显示每个步骤的耗时以及其占比。
通过这个工具,我们可以分析在整套训练代码中时间的瓶颈,因此也能够更加准确的定位程序运行慢的症结所在。
下图为profile收集一个epoch结果之后所产生的调用图。
profile生成的程序调用链
我们可以看到,读取数据的这部分为黄色,说明数据读取部分是整个训练pipeline的瓶颈,因此我们便可以针对性的优化。
提高数据读取速度
数据读取速度慢主要是两个方面的问题:1.数据在机械硬盘中不是连续存储的,因此多个小文件的读取会浪费很多时间在寻道上;2.机械硬盘的物理特性决定其读取速度的上限。
打包数据
https://github.com/Lyken17/Efficient-PyTorchdata-loader
假如我们训练的图片都是比较小,但是数量比较多的情况下,我们可以采取将数据打包成一个大的文件,比如hdf5/pth等格式。
这种方式主要是降低了机械硬盘的寻道时间还有OS开启/关闭文件描述符的时间。
实现的方法可以参考上述repo。
把数据放到内存上
相比于机械硬盘来说,内存的速度可是快了几个量级,基本上可以说读取无延迟。
因此,如果内存够大的话,的确可以先把数据全部都挂载在内存上,然后训练的时候直接从内存读取。
sudo mount tmpfs /path/to/your/data -t tmpfs -o size=30Gmount用于挂载Linux系统外的文件,tmpfs即temporary file system。
许多软件为了提高一些常用的数据的读取速度,会把这些数据长期驻留在内存中以保持一个较快读写速度。
后面的路径则是指明需要挂载对数据的路径,-o则是tmpfs动态大小的上限。
需要注意的是,由于虚拟内存的存在(在linux为swap空间),数据并不一定都会放在物理内存中。
因此我们挂载的数据也可能会因为太久没有使用而被置换到机械硬盘中。
并且,由于再逻辑上这些数据是存储在内存中,因此断电之后这些数据都会会清空。
加钱
都2021年了,现在SATA接口的SSD价格早已跌破0.5元1G了,建议可以换个大容量的SSD,提高工作效率。
手头比较宽松的小伙伴/实验室也可以考虑一下NVMe协议的固态,速度直接起飞。
提高数据读取/预处理速度
选择opencv而不是PIL读取数据
https://www.kaggle.com/yukia18/opencv-vs-pil-speed-comparisons-for-pytorch-user

两个库在不同方法的速度对比
prefetch
预读就是在GPU还在训练一个batch的同时,CPU也没有闲着,赶紧把数据读到内存中并进行数据预处理。
在Pytorch1.7以前,一般使用Nvidia的apex库来进行prefetch。
但是有个问题就是可能会存在内存泄漏的问题,具体原因可以参考https://github.com/NVIDIA/apex/issues/439。
而在Pytorch1.7版本之后,torch.utils.data里面的DataLoader中就能够通过prefetch_factor属性来决定每个每个 worker提前加载的sample数量。
DALI出奇迹
DALI框架工作Pipeline
为了解决数据读取和预处理速度的问题,Nvidia推出了Data Loading Library1,包含了诸如数据加载、解码、裁剪、resize还有许多数据增强功能。
并且还能够将数据预处理阶段放到显卡上运行,进一步提高了数据增强的效率,目前已经可以轻松地被部署到TensorFlow,PyTorch,MXNet和PaddlePaddle框架。
实测在使用Pytorch+DALI能够比原来的速度提高将近四倍!2
References
1https://docs.nvidia.com/deeplearning/dali/user-guide/docs/2https://zhuanlan.zhihu.com/p/105056158
为什么你的显卡利用率总是0%?,显卡利用率一直在100正常吗
显卡利用率100%是好事还是坏事。
玩手机游戏的人变多,会不会导致显卡降价呢?(现在手机游戏并不比电脑游戏差啊,而普通电脑就能带动很高端的手机游戏,至少开3个都卡。
)思考显卡比我电脑还贵。
上一篇:核显天梯图(核显天梯图2022)
下一篇:女明星吻戏(明星拍吻戏是真的)
相关文章
- 2023北京本科普通批985院校投档线:清华685、北大683、武大653分
- 广东考生上华南理工大学难吗?
- 上海这3所大学2023考研复试分数线公布
- 最大相差178分!南京理工大学投档线集锦!最高681分,最低503分
- 2023湖北物理类投档线:武科大573、湖大563、江大536、武体506分
- 多少分能上南大?2023南京大学在苏录取数据盘点,这些途径可以走
- 2023山东高考,省内分数线最高的十所大学
- 国防科技大学录取分数线是多少?附国防科技大学毕业去向
- 郑州大学多少分能考上?2024才可以录取?附最低分数线
- 北京航空航天大学2023年录取分数线及省排名
- 哈尔滨工业大学(威海)、(深圳)校区2023年录取分数情况
- 2023广东本科投档线出炉!请看中大/华工/深大/华师/暨大等分数线
随机图文
穿越电视剧排行榜(穿越电视剧排行榜前十名小说)
最近几年网剧的质量是越来越高了,也出了很多非常经典的影视作品,自从杨幂...
中国兴业银行股价,中国兴业银行股票今日走势
大家好,如果您还对中国兴业银行股价不太了解,没有关系,今天就由本站为大...
国家干预经济(国家干预经济谁提出的)
一、美国自由经济造就了美国经济的大繁荣,但是也带了新的问题北方赢得美国...
酒驾是否无条件全责(酒驾是否无条件全责怎么理赔)
给大家普及一下,交通事故的责任判定是根据双方在此次事故中的过错来分担责...
世界十大催眠曲(世界十大催眠曲钢琴曲)
内容转载自:心合瑜伽ID:NewYogaView在懂得之后,每一个音符下,都埋藏一颗平...
影响气候的主要因素(影响气候的主要因素有哪三个)
从增暖速度上看,我国大于全球平均,山东大于全国平均。我国1961年建成较完...
调和油好吗「非转基因调和油好吗」
大家好,关于调和油好吗很多朋友都还不太明白,不过没关系,因为今天小编就...
记账凭证装订(记账凭证装订内容顺序)
最漂亮的会计凭证装订方法,你是否知道?会计档案的保存时间是多长?今天就...