pytorch 2.0初探:和pytorch 1.13的速度对比

这篇具有很好参考价值的文章主要介绍了pytorch 2.0初探:和pytorch 1.13的速度对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

看到pytorch2.0出来了,而且宣传提速明显,一行代码即可提速43%左右:

compiled_model = torch.compile(model)

We then measure speedups and validate accuracy across these models. Since speedups can be dependent on data-type, we measure speedups on both float32 and Automatic Mixed Precision (AMP). We report an uneven weighted average speedup of 0.75 * AMP + 0.25 * float32 since we find AMP is more common in practice.

Across these 163 open-source models torch.compile works 93% of time, and the model runs 43% faster in training on an NVIDIA A100 GPU. At Float32 precision, it runs 21% faster on average and at AMP Precision it runs 51% faster on average.

因为想要提高炼丹速度,所以尝试和pytorch1.13进行对比。

环境

通过nvidia-smi查看显卡和驱动:

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

 显卡是4070ti,驱动安装的是最新的(好像是2023.6月的)。系统是Ubuntu 20.04。

conda环境有两个,分别是pytorch1.13和pytorch2.01,均是cuda 11.7版本,python是3.8.17。

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

 直接按照官方安装教程就行,这里我用的是pip进行安装的。

训练速度

代码用的是自己训练车牌识别的项目,主干网络用的是resnet34,代码中使用了AMP。

 pytorch 1.13

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

可以看到训练一轮耗时246s,中间过程太长没有全截下来。

准确点应该训练多轮取平均时间,我大致看了几轮,耗时基本一致,就没浪费时间跑太多轮。

pytorch 2.0.1

先不使用torch.compile

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

 pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

 耗时227s,相比pytorch1.13,提速8%左右,还是挺惊喜的,毕竟还没用torch.compile,要是用了不得上天啊,想想还挺激动的。

下面使用torch.compile,方法很简单,使用最上面那行代码就行,开搞!

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

耗时226s,不能说一模一样,简直就是毫无差别。 

然后注意到刚开始训练时,有一个警告:

anaconda3/envs/pt2/lib/python3.8/site-packages/torch/_inductor/compile_fx.py:90: UserWarning: TensorFloat32 tensor cores for float32 matrix multiplication available but not enabled. Consider setting `torch.set_float32_matmul_precision('high')` for better performance.
  warnings.warn( 

torch.set_float32_matmul_precision('high')这个接口有三个参数,默认是highest,可以通过torch.get_float32_matmul_precision()查看,于是我把这个参数设置成high,然后重新训练了,结果发现耗时还是一样。

然后去网上搜索一番,看到torch.compile有一个mode参数

  • mode (str) – Can be either “default”, “reduce-overhead” or “max-autotune”

有人说reduce-overhead对小模型有效,于是我尝试把mode设置成reduce-overhead。

再次开搞。

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

 耗时227s,一点儿没变!!!

细心的我发现,刚开始训练时,又有个告警:

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

torch._inductor.utils: [WARNING] skipping cudagraphs due to input mutation 

这次不太幸运,Google了一圈也没发现什么原因,而且我还尝试了把mode参数设置成max-autotune,也没效果,而且多了一个警告:

pytorch 2.0初探:和pytorch 1.13的速度对比,深度学习,pytorch,CV,pytorch,人工智能,python

先不折腾了,待后续观察。

总结

通过多次实验对比pytorch1.13和pytorch2.0.1,发现2.0.1比1.13提速8%左右,但是compile没有效果,暂时没搞清楚什么原因。

官方描述中有下面一段话:

Caveats: On a desktop-class GPU such as a NVIDIA 3090, we’ve measured that speedups are lower than on server-class GPUs such as A100. As of today, our default backend TorchInductor supports CPUs and NVIDIA Volta and Ampere GPUs. It does not (yet) support other GPUs, xPUs or older NVIDIA GPUs.

难道是40系显卡还不支持?

另外从官方介绍也可以看出,提速效果跟硬件、模型结构都有关系,所以具体能提速多少,还得自己在实际项目中尝试。文章来源地址https://www.toymoban.com/news/detail-594657.html

到了这里,关于pytorch 2.0初探:和pytorch 1.13的速度对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (1)(1.13) SiK无线电高级配置(七)

    文章目录 前言 17 技术细节 18 名词解释 本文提供 SiK 遥测无线电(SiK Telemetry Radio)的高级配置信息。它面向\\\" 高级用户 \\\"和希望更好地了解无线电如何运行的用户。 在评估该无线电是否符合当地法规时,了解其使用的技术可能会有所帮助。 固件采用同步自适应时分复用( TDM )

    2024年02月01日
    浏览(47)
  • (1)(1.13) SiK无线电高级配置(六)

    文章目录 前言 15 使用FTDI转USB调试线配置SiK无线电设备 16 强制启动加载程序模式 17 名词解释  本文提供 SiK 遥测无线电(SiK Telemetry Radio)的高级配置信息。它面向\\\" 高级用户 \\\"和希望更好地了解无线电如何运行的用户。 配置 3D Radios 的推荐方法是使用任务规划器,如本文所述(

    2024年01月16日
    浏览(50)
  • 1.13|1.14|1.15|1.6、GDB调试

    输入这两条命令,第一条用于 生成 调式代码,第二条 运行 调试代码 test.c 需要与被调试的代码 test 在 同一个目录 下 list 默认显示 main 函数 ①用list查看代码 list 行号 ,显示 行号上下文 代码 list 函数名 ,表示显示 函数名上下文 的代码 list 文件名:行号 查看非当前文件的代

    2023年04月23日
    浏览(76)
  • OpenCV-Python学习(13)—— OpenCV 多边形填充与绘制(cv.fillPoly、cv.polylines)

    1. 知识点 学习 cv.polylines 函数的使用; 学习 cv.fillPoly 函数的使用。 2. 绘制折线或多边形 cv.polylines 函数说明 2.1 函数使用 2.2 参数说明 参数 说明 img 表示要在其上绘制矩形的图像的img对象。 pts 表示一个或多个点集。 isClosed 表示标志,决定所绘制的多边形是否闭合。若为 T

    2024年02月16日
    浏览(59)
  • 深度学习CV八股文

    数据增强 L1和L2正则化 Dropout正则化 early stopping BatchNorm L1正则化直接在原来的损失函数基础上加上权重参数的绝对值: l o s s = J ( w , b ) + λ 2 m ∑ ∣ w ∣ loss=J(w,b)+frac{lambda}{2m}sum|w| l o s s = J ( w , b ) + 2 m λ ​ ∑ ∣ w ∣ L2正则化直接在原来的损失函数基础上加上权重参数的平

    2024年02月08日
    浏览(65)
  • 【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】

    写在前面,目前中文互联网上关于 PX4 飞控的学习资料较少,笔者查阅了大量的资料整理成这篇博客,贡献一些学习内容,码字不易,如果帮助到您,请您帮我点点赞。 安装Ubuntu可以查看这篇教程,安装ros可以查看这篇教程,这里就不再赘述了。 ● 在使用apt安装的过程中(

    2024年02月08日
    浏览(53)
  • 【Pytorch】从MoCo看无监督对比学习;从SupCon看有监督对比学习

    以下内容全部来自于:自监督学习-MoCo-论文笔记. 侵删 论文:Momentum Contrast for Unsupervised Visual Representation Learning CVPR 2020 最佳论文提名 用动量对比学习的方法做无监督的表征学习任务。 动量的理解即是指数移动平均(EMA),公式理解: moco中利用动量来缓慢的更新编码器,这

    2024年02月21日
    浏览(50)
  • 深度学习与计算机视觉教程(8) | 常见深度学习框架介绍(CV通关指南·完结)

    本系列为 斯坦福CS231n 《深度学习与计算机视觉(Deep Learning for Computer Vision)》的全套学习笔记,对应的课程视频可以在 这里 查看。更多资料获取方式见文末。 大家在前序文章中学习了很多关于神经网络的原理知识和实战技巧,在本篇内容中ShowMeAI给大家展开介绍深度学习硬件

    2024年02月19日
    浏览(47)
  • 深度学习CV方向学习笔记5 —— 通道注意力机制

    目录 1 问题:MobileNet 中的注意力机制 2 SE 通道注意力机制 2.1 SE 通道注意力机制的定义与作用 2.2 SE过程: Squeeze + Excitation + Scale 3 其他通道注意力机制 4 参考链接 问题描述: MobileNet 中使用了通道注意力机制,是如何实现的?CNN中还有哪些 Attention? 2.1 SE 通道注意力机制的定义

    2024年02月08日
    浏览(46)
  • 论文笔记: 深度学习速度模型构建的层次迁移学习方法 (未完)

    摘要 : 分享对论文的理解, 原文见 Jérome Simon, Gabriel Fabien-Ouellet, Erwan Gloaguen, and Ishan Khurjekar, Hierarchical transfer learning for deep learning velocity model building, Geophysics, 2003, R79–R93. 这次的层次迁移应该指从 1D 到 2D 再到 3D. 深度学习具有使用最少的资源 (这里应该是计算资源, 特别是预测

    2024年02月10日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包