最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2023-05-02 08:003584

评论

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

Spring 都在用的技术,你确定不过来看看?3️⃣

XiaoLin_Java

可能是推荐系统最详细且简单的入门教程

JavaEdge

1月月更

模块五作业-微博评论高性能高可用计算架构

CH

架构实战营

如何快速实现离散企业全链路数字化管理

华为云开发者联盟

数据采集 华为云IoT 智能制造 黑湖科技 数据中枢

使用 Lambda 表达式实现超强的排序功能

看山

Lambda java8 排序 1月月更

【云图说】DDS读写两步走,带您领略只读节点的风采

华为云开发者联盟

数据库 节点 DDS 文档数据库 DDS读写

SAE 最佳实践范本:助力视野数科进入云原生“快车道”

Serverless Devs

Serverless SAE

虎符推出AMM流动性资金池 支持现货专区做市赚收益

区块链前沿News

流动性 虎符 Hoo 虎符交易所 AMM

一起看看MySQL中的隐藏列

华为云开发者联盟

MySQL 事务 主键 唯一索引 隐藏列

微博评论高性能高可用计算架构

Evan

jar包与war包的部署

你?

Jira Software 年度总结:12个重要功能大放送!

龙智—DevSecOps解决方案

Jira Atlassian Atlassian Jira

焱融科技年度报告如约而至,如 Beijing 初雪

焱融科技

云计算 分布式 云原生 高性能 文件存储

『TDengine2021用户故事』征文活动进入投票阶段!

TDengine

tdengine

一文读懂HarmonyOS服务卡片怎么换肤

HarmonyOS开发者

HarmonyOS

WTM活动回顾|WomenTechmakers 2021 Courage to Create

江湖老铁

TiDB 在国信证券海量数据高并发场景中的实践

PingCAP

QuanXiang 2022 Q1 开源路线图

全象云低代码

开源 工作流 低代码 表单

一个低成本确保IM消息时序的方法探讨

WorkPlus

过年回家前,先签收这份“外挂”

龙智—DevSecOps解决方案

Atlassian Confluence 到期日提醒 confluence插件

迪斯尼《曼达洛人》艺术总监和制作设计师亲自揭秘背后的虚拟场景制作

龙智—DevSecOps解决方案

perforce 曼达洛人 西部世界 虚拟场景

java开发之Mybatis 快问快答

@零度

mybatis JAVA开发

PHP 遇见 Serverless,帮你解决这些痛点!

Serverless Devs

架构实战营模块五作业

lchx08

「架构实战营」

模块五 - 微博评论系统高性能高可用设计

圈圈gor

架构实战营 #架构实战营 「架构实战营」

低代码实现探索(二十五)DDD,事件,指令

零道云-混合式低代码平台

ReactNative进阶(二十七):createMaterialTopTabNavigator 顶部导航组件

No Silver Bullet

1月月更 ReactNative

「元宇宙十万个为什么」:为什么元宇宙值得投资?

WorkPlus

尚硅谷2022版Java课程体系,霸气来袭

@零度

Java 尚硅谷

MultipartFile与File的一些事

华为云开发者联盟

spring File 文件 MultipartFile 中转文件

认识 Express 的 res.send() 和 res.end()

编程三昧

JavaScript 前端 nodejs Express 1月月更

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