深度学习 训练吃显卡_在深度学习中喂饱GPU
原标题:在深度学习中喂饱GPU
新智元推荐
来源:知乎专栏
作者:风车车
【新智元导读】深度学习模型训练是不是大力出奇迹,显卡越多越好?非也,没有512张显卡,也可以通过一些小技巧优化模型训练。本文作者分析了他的实践经验。
前段时间训练了不少模型,发现并不是大力出奇迹,显卡越多越好,有时候 1 张 v100 和 2 张 v100 可能没有什么区别,后来发现瓶颈在其他地方,写篇文章来总结一下自己用过的一些小 trick,最后的效果就是在 cifar 上面跑 vgg 的时间从一天缩到了一个小时,imagenet 上跑 mobilenet 模型只需要 2 分钟每个 epoch。(文章末尾有代码啦)
先说下跑 cifar 的时候,如果只是用 torchvision 的 dataloader (用最常见的 padding/crop/flip 做数据增强) 会很慢,大概速度是下面这种,600 个 epoch 差不多要一天多才能跑完,并且速度时快时慢很不稳定。
我最初以为是 IO 的原因,于是挂载了一块内存盘,改了一下路径接着用 torchvision 的 dataloader 来跑,速度基本没啥变化。。。
然后打开资源使用率看了下发现 cpu 使用率几乎已经满了(只能申请 2cpu 和一张 v100...),但是 gpu 的使用率非常低,这基本可以确定瓶颈是在 cpu 的处理速度上了。
后来查了一些资料发现 nvidia 有一个库叫 dali 可以用 gpu 来做图像的前处理,从输入,解码到 transform 的一整套 pipeline,看了下常见的操作比如 pad/crop 之类的还挺全的,并且支持 pytorch/caffe/mxnet 等各种框架。
可惜在官方文档中没找到 cifar 的 pipeline,于是自己照着 imagenet 的版本写了个,最初踩了一些坑(为了省事找了个 cifar 的 jpeg 版本来解码,发现精度掉得很多还找不到原因,还得从 cifar 的二进制文件来读取),最后总归是达到了同样的精度,再来看一看速度和资源使用率,总时间直接从一天缩短为一小时,并且 gpu 使用率高了很多。
再说下 imagenet 的训练加速,最初也是把整个数据集拷到了挂载的内存盘里面(160g 大概够用了,从拷贝到解压完成大概 10 分钟不到),发现同样用 torchvision 的 dataloader 训练很不稳定,于是直接照搬了 dali 官方的 dataloader 过来,速度也是同样起飞 hhhh(找不到当时训练的图片了),然后再配合 apex 的混合精度和分布式训练,申请 4 块 v100,gpu 使用率可以稳定在 95 以上,8 块 v100 可以稳定在 90 以上,最后直接上到 16 张 v100 和 32cpu,大概也能稳定在 85 左右(看资源使用率发现 cpu 到顶了,不然估计 gpu 也能到 95 以上),16 块 v100 在 ImageNet 上跑 mobilenet 只需要 2 分钟每个 epoch。
写的 dataloader 放到了 github 上,我测试的精度跟 torchvision 的版本差不多,不过速度上会比 torchvision 快很多,后面有空也会写一些其他常用 dataloader 的 dali 版本放上去。
https://github.com/tanglang96/DataLoaders_DALI
(本文经授权转载自知乎专栏,作者:风车车)返回搜狐,查看更多
责任编辑:
深度学习 训练吃显卡_在深度学习中喂饱GPU相关推荐
- 深度学习 训练吃显卡_深度学习小钢炮攒机心得:规避一些你看不到的坑
------------------- 已经2017年了,从90年代初的品牌机流行,90年代末的组装机流行,2000-2010桌面级逐渐被移动PC/Mac取代,一直到现在移动终端大行其道,攒机似乎已经 ...
- 深度学习 训练吃显卡_最新最全深度学习训练/GPU服务器硬件配置推荐2020
人工智能随着核心算法.计算能力的迅速提升,以及海量联网数据的支持,在本世纪终于迎来了质的飞跃,人工智能将是未来应用最广泛的技术之一,在市场经济领域带来更多的机遇与机会,在医学领域可以大大加快诊断速度和 ...
- 深度学习 训练吃显卡_深度学习训练如何更快些?GPU性能的I/O优化你试过吗?...
原本,有多少人已经准备好最新显卡,足够的硬盘空间,甚至请好年假,只为十天后去那个仰慕已久的赛博朋克世界里体验一番-- 结果他们又发了一张「黄色背景图」,告诉大家要跳票--再一次-- 好吧,你有了大量闲 ...
- 深度学习 训练吃显卡_学习深度学习,如何选购显卡?
学习深度学习,显卡(GPU)可以说是比不可少的投资.本文试图探究哪个GPU才是学习入门性价比最高的? 为什么深度学习需要GPU? 我们先来比较一下CPU和GPU的不同,下图是一个简化的处理器内部结构图 ...
- 深度学习模型建立过程_所有深度学习都是统计模型的建立
深度学习模型建立过程 Deep learning is often used to make predictions for data driven analysis. But what are th ...
- 深度学习 大数据集处理_大规模深度学习数据集管理系统
深度学习 大数据集处理 Machine learning is data-driven. Most artificial intelligence (AI) practitioners would a ...
- 判断深度学习模型的稳定性_基于深度学习的三维模型检索算法研究
三维模型检索github项目地址github.com 大量的实验和比赛都证明了深度学习在图像检索中的效果很好,本文也将利用神经网络,研究刚体三维模型检索算法,并借助实验结果,来说明本文提出的网络模型 ...
- 强化学习q学习求最值_通过Q学习更深入地学习强化学习
强化学习q学习求最值 by Thomas Simonini 通过托马斯·西蒙尼(Thomas Simonini) 通过Q学习更深入地学习强化学习 (Diving deeper into Reinfor ...
- python吃显卡还是内存不足_Pythorch中的GPU内存问题,GPUMemoryProblemsinPyTorch,显卡,爆炸,与,利用率,不足...
如今研究人工智能,跑深度学习算法,显卡/GPU绝对是第一大门槛,所以不管您是1080Ti还是V100,如果不能发挥出GPU的最大能力,那它可能就是不是显卡而是块普通的砖头了吧. 显卡爆炸 显卡爆炸和内 ...
最新文章
- win10安装配置gcc编译环境
- 2、FreeRTOS任务相关API函数
- 20162316刘诚昊 《程序设计与数据结构》 第三周学习总结
- 时间序列错位还原之SQL实现案例详解
- git设置master权限_git怎么控制成员的权限?
- c语言链表错误,C语言创建链表错误之通过指针参数申请动态内存实例分析
- Postgresql使用coalesce实现类似oracle的NVL方法
- 快速导入十亿数据到hugegraph图数据库
- HTML5期末大作业:明星个人网站设计——权志龙(10页) 含设计报告HTML+CSS++JavaScript 个人网站模板下载 大学生简单DW个人网页作品代码 个人网页制作 学生个人网页...
- eclipse运行java快捷键_Eclipse快捷键【常用】
- 双系统——彻底删除ubuntu
- ztree去掉文字前面的文件夹图标
- vue配置代理服务器proxy
- RTX 3090 Ti 正式发布!30系列显卡的封顶之作!
- 2013, Samara SAU ACM ICPC Quarterfinal Qualification Contest C.Victor‘s Research
- PostgreSQL安装详细步骤(linux)
- java基于springboot房产备案管理系统
- 区块链应用开发快速入门
- Spring Security(15)——权限鉴定结构
- antdv select下拉菜单自由扩展—添加输入框的使用问题
热门文章
- FP、FN、TP、TN、精确率(Precision)、召回率(Recall)、准确率(Accuracy)评价指标详述
- nvme驱动_耗时3天2夜,搞定了macbook pro(2015款)更换nvme固态,经验分享一下,希望能帮到有需要的人!...
- 502 bad gateway php-fm,php+nginx 上传大文件 502 Bad Gateway
- mysql与mimic安装_MIMIC专题 | MIMIC数据库的安装
- java 生产配置文件管理_JAVA基础——使用配置文件
- python输出日志到文件_【已解决】Python中,如何让多个py文件的logging输出到同一个日志log文件...
- ubuntu安装百度网盘
- SpringMQ的使用
- filebeat相关registry文件内容解析
- ARM之MMU工作原理分析