.hd-box .hd-fr

PyTorch 2.0 现已发布:编译器性能大幅提升,100% 向后兼容

2023-03-19 15:33IT之家(问舟)26评
感谢IT之家网友降魔杵Broadwell的线索投递!

IT之家 3 月 19 日消息,PyTorch 2.0 稳定版现已发布。跟先前 1.0 版本相比,2.0 有了颠覆式的变化。在 PyTorch 2.0 中,最大的改进主要是 API 的 torch.compile,新编译器比先前「eager mode」所提供的即时生成代码的速度快得多,性能得以进一步提升。

IT之家附官网地址:https://pytorch.org/

GitHub 地址:https://github.com/pytorch/pytorch/releases

新版本更新之处包括稳定版的 Accelerated Transformers(以前称为 Better Transformers);Beta 版包括作为 PyTorch 2.0 主要 API 的 torch.compile、作为 torch.nn.functional 一部分的scaled_dot_product_attention函数、MPS 后端、torch.func 模块中的 functorch API;以及其他跨越各种推理、性能和训练优化功能的 GPU 和 CPU 的 Beta / Prototype 改进。

关于 torch.compile 的全面介绍和技术概况请见2.0 入门页面

除了 PyTorch 2.0,研发团队还发布了 PyTorch 域库的一系列 Beta 更新,包括 in-tree 的库和 TorchAudio、TorchVision、TorchText 等独立库。此外,TorchX 转向社区支持模式。

概括:

要查看公开的 2.0、1.13 和 1.12 功能完整列表,请点击此处

稳定功能

PyTorch 2.0 版本包括 PyTorch Transformer API 新的高性能实现,以前称为「Better Transformer API」,现在更名为 「Accelerated PyTorch 2 Transformers」。

研发团队表示他们希望整个行业都能负担得起训练和部署 SOTA Transformer 模型的成本。新版本引入了对训练和推理的高性能支持,使用自定义内核架构实现缩放点积注意力 (SPDA)。

与「快速路径(fastpath)」架构类似,自定义内核完全集成到 PyTorch Transformer API 中 —— 因此,使用 Transformer 和 MultiHeadAttention API 将使用户能够:

为了充分利用不同的硬件模型和 Transformer 用例,PyTorch 2.0 支持多个 SDPA 自定义内核,自定义内核选择逻辑是为给定模型和硬件类型选择最高性能的内核。除了现有的 Transformer API 之外,模型开发人员还可以通过调用新的scaled_dot_product_attention() 运算来直接使用缩放点积注意力内核。

要使用您的模型,同时受益于 pt2 编译的额外加速 (用于推断或训练),请使用 model = torch.compile (model) 对模型进行预处理。

我们通过使用自定义内核和 torch.compile () 的组合,使用 Accelerated PyTorch 2 transformer 实现了训练 transformer 模型的大幅加速,特别是大语言模型。

▲ 将缩放点积注意力与自定义内核和 torch.compile 结合使用可为训练大型语言模型(上图以 nanoGPT 为例)提供显著加速。

从官方数据可以看到,PyTorch 2.0 的编译效率比 1.0 实现了大幅提高。

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

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

据 PyTorch 基金会称,新编译器在使用 Float32 精度模式时运行速度提高了 21%,在使用自动混合精度(AMP)模式时运行速度提高了 51%。在这 163 个模型中,torch.compile 可以在 93% 模型上正常运行。

值得一提的是,官方在桌面级 GPU(如 NVIDIA 3090)上测量到的加速能力低于服务器级 GPU(如 A100)。到目前为止,PyTorch 2.0 默认后端 TorchInductor 已经支持 CPU 和 NVIDIA Volta 和 Ampere GP,暂不支持其他 GPU、XPU 或旧的 NVIDIA GPU。

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

下载IT之家APP,分享赚金币换豪礼
相关文章
大家都在买广告
热门评论
查看更多评论