首页 关于我们 新闻中心 工程案例 荣誉资质 诚聘精英 联系我们

新闻中心

你的位置:kaiyun欧洲杯app(官方)官方网站·IOS/安卓通用版/手机APP下载 > 新闻中心 > kaiyun欧洲杯app(官方)官方网站·IOS/安卓通用版/手机APP下载具体落幕如图 1 所示-kaiyun欧洲杯app(官方)官方网站·IOS/安卓通用版/手机APP下载

kaiyun欧洲杯app(官方)官方网站·IOS/安卓通用版/手机APP下载具体落幕如图 1 所示-kaiyun欧洲杯app(官方)官方网站·IOS/安卓通用版/手机APP下载

发布日期:2024-10-08 03:53    点击次数:97

AIxiv专栏是机器之心发布学术、时刻践诺的栏目。往日数年,机器之心AIxiv专栏领受报谈了2000多篇践诺,消灭大家各大高校与企业的顶级实验室,有用促进了学术疏导与传播。若是您有优秀的责任想要共享,接待投稿或者商量报谈。投稿邮箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com

张晨,清华大学计较机系高性能所博士生,导师为翟季冬淳厚,主要推敲主义为面向东谈主工智能和量子计较的高性能异构计较系统。在OSDI、SC、ATC、ICS会议上发表一作论文,并获取 ICS21 最勤学生论文。曾获取 SC19, SC20, ISC21 国外超等计较机竞赛冠军。获清华大学本科生稀奇奖学金、国度奖学金、北京市优秀毕业生、北京市优秀毕业策画等荣誉。

2024 年 7 月,清华大学计较机系 PACMAN 实验室发布开源深度学习编译器 MagPy,可一键编译用户使用 Python 编写的深度学习神情,竣事模子的自动加快。

尽管当今存在遍及高性能的深度学习编译器,关联词这些编译器均以计较图行为输入,需要由用户将编写的 Python 神情手动更始为计较图。为了幸免这种未便性,该团队策画了 MagPy,平直面向用户编写的 Python+PyTorch 神情,自动将其更始为适用于深度学习编译器的计较图示意,从而充分分解深度学习编译器的优化才气,幸免用户使用复杂 Python 语法带来的性能下跌,为用户带来易用性和服从的双丰充。

该责任同期于系统范畴首要国外会议 USENIX ATC’24 发表长文,第一作家清华大学博士生张晨、通信作家为翟季冬陶冶。PACMAN 实验室在机器学习系统范畴执续深化推敲。MagPy 是继 PET、EINNET 等责任后在深度学习编译器上的又一次探索。欲了解更多商量后果可检察翟季冬陶冶首页:https://pacman.cs.tsinghua.edu.cn/~zjd

论文地址:https://www.usenix.org/system/files/atc24-zhang-chen.pdf容颜地址:https://github.com/heheda12345/MagPy

推敲配景:深度学习计较图索求时刻

连年来,深度学习在生物科学、天气预告和推选系统等多个范畴展示了其纷乱才气。为了简化编程经由,用户倾向于使用 Python 编写深度学习模子,并在需要进行张量操作时调用如 PyTorch 等的张量库。此时,用户神情会在调用张量库时立即引申张量操作,如斯不加优化地平直引申神情性能较差。另一方面,为了进步深度学习模子的脱手速率,深度学习编译器倾向于使用以算子图的神情示意的深度学习模子行为输入,在计较图上进行图级优化,如图替换和算子和会。当不错获取到模子的计较图时,代表性的深度学习编译器 TorchInductor 和 XLA 不错在 PyTorch 的基础上平均加快模子 1.47 倍和 1.40 倍。

具体落幕如图 1 所示,符号为 Fullgraph-Inductor 和 Fullgraph-XLA。关联词,竣事这种加快的前提是用户手动将神情转机为计较图神情,这对好多模子建树者来说是困难的。尤其是跟着深度学习的庸俗应用,越来越多的模子是由化学、生物和天文体等范畴的非专科神情员建树的。因此,贫窭需要一种自动化标准将用户编写的 Python 神情转机为编译器友好的图神情来加快神情,这被称为计较图索求时刻。

由于 Python 神情具有极强的动态性,加之用户神情存在举止的不笃信性,现存的计较图索求时刻在处理较复杂的用户神情时无法取得最优的性能,如图 1 中的 TorchDynamo-Inductor(使用 TorchDynamo 索求计较图,使用 TorchInductor 编译)、 LazyTensor-XLA(使用 LazyTensor 跟踪计较图,使用 XLA 编译)所示。

图 1 :深度学习编译器不错显耀进步模子脱手服从,但现存的图索求时刻糟蹋了这极少。图中 Eager 示意平直引申 PyTorch 神情,Fullgraph-Inductor 与 Fullgraph-XLA 折柳示意 Inductor、XLA 对模子的计较图进行编译后的加快,TorchDynamo-Inductor 与 LazyTensor-XLA 折柳示意使用 TorchDynamo 和 LazyTensor 时刻从用户 Python 神情中索求计较图再进行编译的性能。

MagPy 的料理决策

MagPy 的中枢念念想是分析 Python 解说器中的引申气象信息,从而让编译器粗略更好的默契用户神情。Python 解说器粗略准确赞助通盘 Python 特质,并在脱手时保留了高线索的引申气象信息,如各个变量的类型和值等等。通过有用欺诈解说器提供的信息,粗略更全面地了解神情的举止,从而更好地索求神情计较图。

MagPy 的策画基于以下几点不雅察:

最初,大多数深度学习神情的动态性是有限的。尽管这些神情是用 Python 编写的,具少见据类型、末端流逻辑和脱手时函数养息等潜在的动态特质,但其计较图结构在不同批次间经常保执不变。ParityBench 是一个从 Github 上自动爬取逾越 100 颗星的 PyTorch 深度学习神情构成的基准测试集,它的 1421 个神情中,83% 的神情(1191 个)均显示有限动态性的性质。关于这些神情,不错通过在神情引申经由中监控张量操作,较为便捷地获取其计较图。凭证这个性质,MagPy 将计较图索求问题从分析 “计较图是什么” 简化为分析 “得到的计较图何时会发生变化”。

其次,惟一外部值能影响神情举止。欺诈这一特质,不错更不详地检测出会导致计较图发生变化的成分。这里的 “神情举止” 包括计较图的结构和通盘神情反作用(side effect)。只须神情从外部读取的通盘值(如输入参数和全局变量)保执不变,且调用的函数的输出落幕不具有立地性,神情举止就不会发生变化。因此,MagPy 只需考据通盘从外部读取的值齐不变,即可保证计较图结构不变。举例,尽管图 2 中的神情使用了好多复杂的 Python 特质,但只须通盘从外部读取的值(如 x、dims、self.scale 和 self.dim,符号为粗体)与之前脱手一致,计较图就保执不变。MagPy 会最初脱手一个 “守卫函数” 关于这些值是否发生变化进行查验(Guards),当查验通过期,MagPy 将会脱手一个 “模拟函数”(mock code),用以调用经过深度学习编译器编译的计较图及模拟神情的通盘反作用(如示例中的对 x 进行赋值)。

第三,守卫函数和模拟函数齐不错通过分析神情引申气象来笃信。守卫函数的作用是考据新一次引申的输入气象是否与之前脱手匹配,模拟函数的方针是重现之前脱手的最终气象。这两个部分仅基于脱手时气象,而不是用户神情的逻辑。Python 解说器在解说引申神情的经由中,保留了通盘需要的引申气象信息,因此不再需要具体分析 Python 复杂而动态的引申逻辑。守卫函数和模拟函数需要存眷的变量包括显式读取或写入外部的值(如 self)以及被它们援用的值(如 self.dim)。因此,MagPy 策画了援用关系图来记载和分析神情举止。

基于上述不雅察,MagPy 提倡了援用关系图(Reference Graph,简写为 RefGraph)来记载神情引申时辰的神情气象。MagPy 界说了引申气象接口,用于在神情引申时辰集结脱手时信息,并使用基于标注的图更新律例来按捺 RefGraph。MagPy 还提倡了在 RefGraph 上进行遍历生成守卫函数和模拟函数的算法。具体细节不错阅读论文。

实验

MagPy 具有极高的 Python 谈话特质消灭率,其在对 ParityBench 中 1191 个静态的信得过用户神情进行测试时,见效将 93.40% 的神情更始为无缺的操作符图,大幅高于现存责任 TorchScript(35%)和 TorchDynamo(77.2%)

由于更无缺的计较图导出,MagPy 在端到端测试中,也弘扬出具有竞争力的性能。下图展示了关于图像处理、等典型深度学习模子,MagPy 取得的加快。MagPy 可取得最高 2.88 倍,平均 1.55 倍的进步。实验在单张 A100 上进行,X-Y 示意使用图导出时刻 X 和图层编译器 Y。