写点什么

PyTorch 2.0 编译器提高了模型训练速度

  • 2023-05-02
    北京
  • 本文字数:1235 字

    阅读完需:约 4 分钟

PyTorch 2.0编译器提高了模型训练速度

PyTorch基金会最近发布了PyTorch 2.0版本,这是一个 100%向后兼容的更新。该版本的主要 API 贡献是为深度学习模型提供了一个编译函数,可以加快训练速度。163 个开源人工智能项目的内部基准测试显示,在训练期间,这些模型平均运行速度提高了 43%。

 

PyTorch 2.0 的发布计划于 2022 年 12 月在PyTorch大会上宣布。除了新的编译特性外,该版本还包括通过缩放点积注意力(SDPA)的新实现来提高 Transformer-based 模型(如大语言模型和扩散模型)的性能。通过改进的Metal Performance Shaders(MPS)加快了在 Apple Silicon 上的训练,目前在 MPS 中实施了 300 项操作。除了核心版本外,包括 TorchAudio、TorchVision 和 TorchText 在内的域库也更新了新的测试版功能。总体而言,自 1.13.1 版本发布以来,2.0 版本包含了来自 428 名开发人员的 4500 多次提交。PyTorch 基金会的博客上写到:

 

能宣布 PyTorch®2.0 的发布,我们很激动,我们在 2022 年 12 月 2 日的 PyTorch 大会上强调了这一点!PyTorch 2.0 提供了相同的动态图模式(eager-mode)开发和用户体验,同时从根本上改变并加强了 PyTorch 在编译器级别的操作方式,提供了更快的性能和对动态形状和分布式的支持。

 

在 2022 年 PyTorch 大会的主题演讲中,PyTorch 联合创始人Soumith Chintala指出,由于 GPU 计算能力的增加,许多现有的 PyTorch 工作负载受到了内存带宽或 PyTorch 框架开销的限制。此前,PyTorch 团队通过用 C++编写一些核心组件来解决性能问题;Chintala 将 PyTorch 描述为“基本上是一个 C++代码库”,并表示他“讨厌”为 C++组件做出贡献。

 

新的编译特性基于四个用 Python 编写的底层组件:

 

  • TorchDynamo——通过将表示深度学习模型的 Python 代码重写为计算图块来执行图的获取

  • AOTAutograd ——为后退步骤执行“提前”自动微分

  • PrimTorch——将超过 2k 个 PyTorch 操作符规范化为固定的约 250 个原始操作符

  • TorchInductor——为加速器生成特定于硬件的快速后端代码

 

为了演示编译函数的性能改进和易用性,PyTorch 团队确定了 163 个开源深度学习项目进行基准测试。其中包括各种任务的实现,包括计算机视觉、自然语言处理和强化学习。除了对编译函数的单行调用外,该团队没有对代码进行任何更改。这一单一改动在 93%的项目中有效,在NVIDIA A100 GPU 上训练时,编译后的模型的运行速度提高了 43%。

 

在黑客新闻(Hacker News)关于此次发布的讨论中,一位用户指出

 

通过与其他框架相比,我从 PyTorch 中学到的一条重要教训是,生产力胜过增量的性能改进。Caffe 和 MXNet 都以速度快为卖点的,但显然在此处或这里的速度都快了一些,但这并不重要。另一方面,一旦我们让一个系统运行并流行起来,社区将会以比竞争对手预期更快地缩小性能差距。另一个教训可能是老生常谈的但同样值得重复:对开源项目的投资和专业打磨很重要。

 

PyTorch的代码2.0版本的发布说明可在 GitHub 上获得。

 

原文链接:

https://www.infoq.com/news/2023/03/pytorch-release-compile/


相关阅读:

里程碑!PyTorch 正式加入 Linux 基金会,社区治理这一核心将不会改变

深度学习为什么要选择 PyTorch

2023-05-02 08:003727

评论

发布
暂无评论
发现更多内容

多标签用户画像分析跑得快的关键在哪里?

跳楼梯企鹅

Wallys/Wireless System on Chip IPQ8074/IPQ4018 IPQ4028 2*MMCX 27dbm /Support MU-MIMO

wallys-wifi6

IPQ8074 IPQ4018 IPQ4028

软件测试 | 测试开发 | 一文搞定 Docker 容器技术与常用命令

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 原来升职加薪的测试工程师都擅长做接口测试

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 应用打包还是测试团队老大难问题?

测吧(北京)科技有限公司

测试

kubectl 插件推荐: kubectl-watch

云原生技术社区

k8s 插件 kubectl kubectl插件 kubectl-watch

经典再升级 | 尚硅谷电商数仓5.0视频教程发布

小谷哥

在西安参加Java培训学费多少钱?

小谷哥

华为云GaussDB(for Redis)支撑数位科技打造全新大数据引擎

科技怪咖

真的香,被各大厂要求直接下架的面试题库也太全了,Github一夜爆火

Java-fenn

Java 程序员 java面试 Java面试题

直播预告 | 乘云而上,企业海量数据如何「丝滑」地迁移上云?

京东科技开发者

云服务 数据迁移 资讯 京东云 企业云

2022最新的Java八股文合集来了,彻底解决各大大厂面试难题

Java-fenn

Java java面试 Java面试题

什么是微服务?与SOA有什么区别?

雨果

微服务 SOA

对于epoll实现原理的理解

C++后台开发

后台开发 linux开发 epoll select C++开发

EMQX Kubernetes Operator:快速体验EMQX 5.0云原生特性

EMQ映云科技

云原生 物联网 IoT emqx 9月月更

上海UI设计培训哪家好

小谷哥

IM跨平台技术学习(二):Electron初体验(快速开始、跨进程通信、打包、踩坑等)

JackJiang

即时通讯IM

web前端培训班哪家比较好

小谷哥

大企业为什么都在用钉钉?

ToB行业头条

程序员该敬畏每一行代码?填好每一个坑才是!

小小怪下士

程序员 架构 java;

UI设计培训需要学习哪些技术?

小谷哥

Java进阶(三十五)java int与Integer的区别

No Silver Bullet

Java int 9月月更 Integer

小程序容器怎样让移动研发效率提升

Geek_99967b

小程序

软件测试 | 测试开发 | 仅需4步,即可用 Docker搭建测试用例平台 TestLink

测吧(北京)科技有限公司

测试

阿里官方保姆级Java技术图谱发布,够学到元宵节了,赶紧收藏

Java-fenn

Java 程序员 技术 java面试 Java面经

分享面试阿里、京东、网易等大厂后的面经及面试心得—远程面试

Java-fenn

Java 程序员 技术 面试 java面试

居家办公第一天,摔了31次鼠标

科技怪咖

IDC中国未来企业大奖优秀奖颁布,华为云数据库助力德邦快递获奖

科技怪咖

向量连接世界:2022 首届非结构化数据峰会即将开启!

Zilliz

2022互联网大厂高级工程师面试经验分享,含蚂蚁金服,京东(金融和商城),58,搜狗

小小怪下士

程序员 Java 面试 面经 java;

跳槽入职字节跳动,给到20k*16薪,只因比别人更懂多线程与高并发

Java-fenn

Java 程序员 面试 java面试 Java面试题

PyTorch 2.0编译器提高了模型训练速度_AI&大模型_Anthony Alford_InfoQ精选文章