0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PyTorch 2.0正式版发布!

OpenCV学堂 来源:新智元 2023-03-24 10:18 次阅读

【导读】PyTorch 2.0正式发布。

PyTorch 2.0正式版终于来了!

97e36ff4-c9bc-11ed-bfe3-dac502259ad0.png

去年12月,PyTorch基金会在PyTorch Conference 2022上发布了PyTorch 2.0的第一个预览版本。

跟先前1.0版本相比,2.0有了颠覆式的变化。在PyTorch 2.0中,最大的改进是torch.compile。

新的编译器比以前PyTorch 1.0中默认的「eager mode」所提供的即时生成代码的速度快得多,让PyTorch性能进一步提升。

981a0898-c9bc-11ed-bfe3-dac502259ad0.png

除了2.0之外,还发布了一系列PyTorch域库的beta更新,包括那些在树中的库,以及包括 TorchAudio、TorchVision和TorchText在内的独立库。TorchX的更新也同时发布,可以提供社区支持模式。

984bfd62-c9bc-11ed-bfe3-dac502259ad0.png

亮点总结

-torch.compile是PyTorch 2.0的主要API,它包装并返回编译后的模型,torch.compile是一个完全附加(和可选)的特性,因此2.0版本是100%向后兼容的。

-作为torch.compile的基础技术,带有Nvidia和AMD GPU的TorchInductor将依赖OpenAI Triton深度学习编译器来生成高性能代码,并隐藏低级硬件细节。OpenAI Triton生成的内核实现的性能,与手写内核和cublas等专门的cuda库相当。

-Accelerated Transformers引入了对训练和推理的高性能支持,使用自定义内核架构实现缩放点积注意力 (SPDA)。API与torch.compile () 集成,模型开发人员也可以通过调用新的scaled_dot_product_attention () 运算符,直接使用缩放的点积注意力内核。

-Metal Performance Shaders (MPS) 后端在Mac平台上提供GPU加速的PyTorch训练,并增加了对前60个最常用操作的支持,覆盖了300多个操作符。

-Amazon AWS优化了基于AWS Graviton3的C7g实例上的PyTorch CPU推理。与之前的版本相比,PyTorch 2.0提高了Graviton的推理性能,包括对Resnet50和Bert的改进。

-跨TensorParallel、DTensor、2D parallel、TorchDynamo、AOTAutograd、PrimTorch和TorchInductor的新原型功能和技术。

987a5f68-c9bc-11ed-bfe3-dac502259ad0.png

编译,还是编译!

PyTorch 2.0的最新编译器技术包括:TorchDynamo、AOTAutograd、PrimTorch和TorchInductor。所有这些都是用Python开发的,而不是C++(Python与之兼容)。

并且还支持dynamic shape,无需重新编译就能发送不同大小的向量,灵活且易学。

TorchDynamo

它可以借助Python Frame Evaluation Hooks,安全地获取PyTorch程序,这项重大创新是PyTorch过去 5 年来在安全图结构捕获 (safe graph capture) 方面的研发成果汇总。

AOTAutograd

重载PyTorch autograd engine,作为一个 tracing autodiff,用于生成超前的backward trace。

PrimTorch

将 2000+ PyTorch 算子归纳为约 250 个 primitive operator 闭集 (closed set),开发者可以针对这些算子构建一个完整的 PyTorch 后端。PrimTorch 大大简化了编写 PyTorch 功能或后端的流程。

4. TorchInductor

TorchInductor一个深度学习编译器,可以为多个加速器和后端生成 fast code。对于 NVIDIA GPU,它使用 OpenAI Triton 作为关键构建模块。

PyTorch基金会称,2.0的推出会推动「从C++回到Python」,并补充说这是PyTorch的一个实质性的新方向。

「从第一天起,我们就知道「eager execution」的性能限制。2017年7月,我们开始了第一个研究项目,为PyTorch开发一个编译器。编译器需要使PyTorch程序快速运行,但不能以PyTorch的体验为代价,还要保留灵活易用性,这样的话可以支持研究人员在不同探索阶段使用动态的模型和程序。」

当然了,非编译的「eager mode」使用动态即时代码生成器,在2.0中仍然可用。开发者可以使用porch.compile命令迅速升级到编译模式,只需要增加一行代码。

用户可以看到2.0的编译时间比1.0提高43%。

这个数据来自PyTorch基金会在Nvidia A100 GPU上使用PyTorch 2.0对163个开源模型进行的基准测试,其中包括包括图像分类、目标检测、图像生成等任务,以及各种 NLP 任务。

这些Benchmark分为三类:HuggingFace Tranformers、TIMM和TorchBench。

98d1636c-c9bc-11ed-bfe3-dac502259ad0.png

NVIDIA A100 GPU eager mode torch.compile 针对不同模型的提速表现

据PyTorch基金会称,新编译器在使用Float32精度模式时运行速度提高了21%,在使用自动混合精度(AMP)模式时运行速度提高了51%。

在这163个模型中,torch.compile可以在93%模型上正常运行。

「在PyTorch 2.x的路线图中,我们希望在性能和可扩展性方面让编译模式越走越远。有一些工作还没有开始。有些工作因为带宽不够而办法落地。」

9906485c-c9bc-11ed-bfe3-dac502259ad0.png

训练LLM提速2倍

此外,性能是PyTorch 2.0的另一个主要重点,也是开发人员一直不吝于宣传的一个重点。

事实上,新功能的亮点之一是Accelerated Transformers,之前被称为Better Transformers。

另外,PyTorch 2.0正式版包含了一个新的高性能PyTorch TransformAPI实现。

PyTorch项目的一个目标,是让最先进的transformer模型的训练和部署更加容易、快速。

Transformers是帮助实现现代生成式人工智能时代的基础技术,包括GPT-3以及GPT-4这样的OpenAI模型。

9929618e-c9bc-11ed-bfe3-dac502259ad0.png

在PyTorch 2.0 Accelerated Transformers中,使用了自定义内核架构的方法(也被称为缩放点积注意力SDPA),为训练和推理提供高性能的支持。

由于有多种类型的硬件可以支持Transformers,PyTorch 2.0可以支持多个SDPA定制内核。更进一步,PyTorch集成了自定义内核选择逻辑,将为给定的模型和硬件类型挑选最高性能的内核。

加速的影响非同小可,因为它有助于使开发人员比以前的PyTorch迭代更快地训练模型。

新版本能够实现对训练和推理的高性能支持,使用定制的内核架构来处理缩放点积注意力(SPDA) ,扩展了推理的快速路径架构。

与fastpath架构类似,定制内核完全集成到PyTorch TransformerAPI中--因此,使用本地Transformer和MultiHeadAttention API将使用户能够:

-看到速度明显提升;

-支持更多的用例,包括使用交叉注意的模型、Transformer解码器和训练模型;

-继续将快速路径推理用于固定和可变序列长度的变形器编码器和自注意力机制的用例。

为了充分利用不同的硬件模型和Transformer用例,支持多个SDPA自定义内核,自定义内核选择逻辑将为特定模型和硬件类型挑选最高性能的内核。

除了现有的Transformer API,开发者还可以通过调用新的scaled_dot_product_attention()操作符直接使用缩放点积注意力关注内核,加速PyTorch 2 Transformers与torch.compile()集成。

为了在使用模型的同时,还能获得PT2编译的额外加速(用于推理或训练),可以使用model = torch.compile(model)对模型进行预处理。

目前,已经使用自定义内核和torch.compile()的组合,在训练Transformer模型,特别是使用加速的PyTorch 2 Transformer的大型语言模型方面取得实质性加速提升。

9951f7de-c9bc-11ed-bfe3-dac502259ad0.png

使用自定义内核和 torch.compile来提供对大型语言模型训练显著加速

HuggingFace Transformers的主要维护者Sylvain Gugger在PyTorch项目发表的一份声明中写道「只需添加一行代码,PyTorch 2.0就能在训练Transformers模型时提供1.5倍至2.0倍的速度。这是自混合精度训练推出以来最令人兴奋的事情!」

PyTorch和谷歌的TensorFlow是两个最流行的深度学习框架。世界上有数千家机构正在使用PyTorch开发深度学习应用程序,而且它的使用量正在不断增加。

PyTorch 2.0的推出将有助于加速深度学习和人工智能应用的发展,Lightning AI的首席技术官和PyTorch Lightning的主要维护者之一Luca Antiga表示:

「PyTorch 2.0 体现了深度学习框架的未来。不需要用户干预即可捕获PyTorch 程序,开箱即用的程序生成,以及巨大的设备加速,这种可能性为人工智能开发人员打开了一个全新的维度。」

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1791

    文章

    47143

    浏览量

    238116
  • 代码
    +关注

    关注

    30

    文章

    4774

    浏览量

    68504
  • pytorch
    +关注

    关注

    2

    文章

    806

    浏览量

    13191

原文标题:PyTorch 2.0正式版发布!一行代码提速2倍,100%向后兼容

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Altium Designer 18.0.9正式版发布!!!

    `Altium Designer 18.0.9正式版前不久在官网上发布,Beta字样已不在,直接进入正式版,现将该安装包分享给大家,内涵注册文件。下载见图:`
    发表于 01-15 16:23

    PyTorch如何入门

    PyTorch 入门实战(一)——Tensor
    发表于 06-01 09:58

    苹果今天发布Safari 5.1.4正式版

    上个月,苹果向开发者发布了Safari 5.1.4测试版,今天,苹果正式面向公众发布了Safari 5.1.4正式版本,正式版本支持OS X Lion,Snow Leopard和Win
    发表于 03-13 11:01 767次阅读
    苹果今天<b class='flag-5'>发布</b>Safari 5.1.4<b class='flag-5'>正式版</b>

    IOS10.3正式版发布,更新有惊喜

    IOS10.3系统经历了七个版本的测试,终于在今天凌晨发布正式版。这次IOS10.3正式版的更新节奏不走寻常路,正式版之前总会有几个Beta测试版,之后还会有一个GM版,GM版也基本
    发表于 03-28 11:37 2733次阅读
    IOS10.3<b class='flag-5'>正式版</b><b class='flag-5'>发布</b>,更新有惊喜

    苹果iOS11.3正式版发布_iOS11.3正式版只为新iPad而来

    对于大家都很期待的iOS 11.3 正式版 来说,今天苹果终于发布了,但是跟我们想的都不太一样。 苹果今天发布的iOS 11.3正式版,目前能够 升级 的只有新9.7英寸 iPad ,
    的头像 发表于 03-31 09:40 7115次阅读

    Linux 4.18 正式版将延期发布

    前两天 Linux 4.18 RC 7 发布的时候,Linus Torvalds 表示,如果不出意外,RC 7 将是 4.18 的最后一个 RC 版本,并且 4.18 正式版将在下周发布。而最近 Linus 的一封邮件显示,小意
    的头像 发表于 08-05 08:55 3242次阅读

    谷歌发布Android 9 Pie正式版

    8月7日消息,Android P正式版发布,代号为Android Pie,Pie意义为“馅饼”,这是Android的第九个大版本。
    的头像 发表于 08-08 17:43 3405次阅读

    GeForce 445.75版显卡驱动发布 可第一时间体验DLSS 2.0游戏的快感

    除了正式发布新一代深度学习抗锯齿技术DLSS 2.0,NVIDIA今晚还发布了GeForce 445.75版显卡驱动,通过微软WHQL认证的正式版本,让玩家第一时间体验DLSS
    的头像 发表于 03-24 09:54 3356次阅读

    DLC发布了植物灯V2.0标准的正式版,并将于2021年3月21日开始实施

    DLC发布植物灯V2.0正式版 2020年9月15日,DLC发布了植物灯V2.0标准的正式版,并
    的头像 发表于 09-21 10:30 6156次阅读

    联想宣布将发布正式版BIOS

    1月11日下午,联想宣布小新Pro13 Intel版为期大致三个月的测试结束,近期将发布正式版BIOS。
    的头像 发表于 01-12 08:57 1954次阅读

    ios15正式版是在6月8日发布吗 ios15正式版发布时间

    iOS15正式版本什么时候发布
    的头像 发表于 06-11 11:17 6872次阅读

    ios15正式版本什么时候发布

    ios15正式版本什么时候发布
    的头像 发表于 08-04 11:27 7609次阅读

    2.0优化PyTorch推理与AWS引力子处理器

    2.0优化PyTorch推理与AWS引力子处理器
    的头像 发表于 08-31 14:27 602次阅读
    <b class='flag-5'>2.0</b>优化<b class='flag-5'>PyTorch</b>推理与AWS引力子处理器

    基于PyTorch AMD的解决方案

    2.0经验的力量PyTorch AMD的解决方案
    的头像 发表于 09-04 16:11 897次阅读

    PyTorch 2.5.1: Bugs修复版发布

    ​ 一,前言 在深度学习框架的不断迭代中,PyTorch 社区始终致力于提供更稳定、更高效的工具。最近,PyTorch 2.5.1 版本正式发布,这个版本主要针对 2.5.0 中发现的问题进行了修复
    的头像 发表于 12-03 16:11 224次阅读
    <b class='flag-5'>PyTorch</b> 2.5.1: Bugs修复版<b class='flag-5'>发布</b>