Ascend for PyTorch 训练营学习笔记 第一期续完

举报
黄生 发表于 2026/07/28 09:10:47 2026/07/28
【摘要】 茶思屋专题:昇腾(Ascend)for PyTorch 训练营(https://www.chaspark.com/#/s/AscendforPyTorch2026?multi=zh) 第一期社区以 torch.compile 为核心的编译战略趋势,以及昇腾的跟进PyTorch 2.x "沙漏型"战略:北向统一 Python 开发生态(模型、训练、部署、算子开发),中间以 torch.comp...

茶思屋专题:昇腾(Ascend)for PyTorch 训练营(https://www.chaspark.com/#/s/AscendforPyTorch2026?multi=zh) 第一期

社区以 torch.compile 为核心的编译战略趋势,以及昇腾的跟进

  • PyTorch 2.x "沙漏型"战略:北向统一 Python 开发生态(模型、训练、部署、算子开发),中间以 torch.compile(Dynamo → FX Graph → Inductor)为枢纽,南向通过 Triton 统一对接各类 AI 硬件,解决 N 个算子 × M 种芯片的适配难题。
  • 挑战:编译"黑盒化"导致调试困难;优化引入数值差异;Graph Breaks(断图) 导致性能不稳定。
  • 2026 社区转向"技术+生态"双轮驱动:
    • 打破黑盒:提供覆盖编译全生命周期的 API,让用户能精细控制和定制编译流程。
    • 确定性:完善图模式下的确定性计算与精度一致性。
    • 分布式下沉:SimpleFSDP 等分布式特性接入 torch.compile,将并行优化任务下沉到图编译器。
    • Compile Toolkit:生态层面扩展出 vLLM compiler、Autoparallel 等用户级编译工具。
  • 数据趋势:图模式相关提交量从 2022 年起爆发式增长,到 2024–2025 年已占 PyTorch 社区绝对主导地位。

torch.compile 是 PyTorch 的当前核心战略,社区正从"技术攻坚"转向"技术+生态工业化落地",重点解决黑盒、确定性和分布式编译问题;昇腾需要紧跟这一趋势完成 Inductor 等编译后端的适配。

昇腾 对 torch.compile 的完整适配方案:“上层复用社区、中层扩展多后端、底层对接 CANN”。

整体编译流程:

① Dynamo + AOTAutograd:负责图捕获与自动求导图优化,输出 Prim Aten IR,核心逻辑完全复用 PyTorch 社区。

② Inductor:接收 IR 后经过 pre_grad_pass → post_grad_pass → lowering → can fuse → codegen,最终生成目标代码。

四大关键能力:

① 图捕获与优化复用社区:Dynamo/AOTAutograd 及三阶段融合 Pass 均复用社区逻辑,同时支持通算掩盖(通信计算重叠)和自定义 Pass。

② 支持 Dynamo 多后端:除 Inductor 外,还支持 aot_eagerNPUGraphs 等调试后端,以及 NPUGraph_EX 等昇腾专属扩展后端。

③ Inductor 支持多后端:

  • 基于 triton-Ascend 自动生成融合算子代码;
  • 也支持 MLIR/DVM 等扩展后端;
  • 支持多层级精度自动对比与确定性计算。

④ NPUGraph_tree:在 fullgraphGraph break 场景下,支持安全的子图下沉和图间内存复用。

底层链路:编译期走 Triton → 昇腾 IR → 毕昇编译器 → CANN Runtime;运行期支持 Eager / NPUGraph_tree / AOTInductor 三种模式。

昇腾在 torch.compile 上做到与 PyTorch 编译生态的深度兼容,同时通过 triton-Ascend、NPUGraph_tree 和确定性计算等特性完成 NPU 专属优化。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。