AI 编译器系列(三)《PyTorch 中图优化》

目录

[PyTorch 基础介绍](#PyTorch 基础介绍)

动态计算图的优势与劣势

[PyTorch 中的图优化](#PyTorch 中的图优化)

[1. TorchScript](#1. TorchScript)

[2. torch.fx](#2. torch.fx)

[3. PyTorch 2.0 时代:torch.compile](#3. PyTorch 2.0 时代:torch.compile)

总结


本文主要讲解 PyTorch 核心设计理念与图优化技术体系演进。

PyTorch 基础介绍

动态计算图的优势与劣势

PyTorch 中的图优化

  • • 前端:在保持 Python 动态语义的前提下,对张量相关计算进行捕获与抽象,生成可优化的中间表示(IR)

  • • 后端:基于中间表示进行图级优化、调度与代码生成

1. TorchScript

  • • 介绍:通过torch.jit实现

  • • 两个接口:

    • • torch.jit.trace

    • • torch.jit.script

2. torch.fx

  • • 介绍:Python 层 IR 与图变换工具

  • • 技术亮点:

    • • Symbolic Tracing:通过 Proxy 对象代替输入张量,记录所有张量运算的结构与路径。

    • • fx IR :高度简洁,6 种核心指令,placeholder、get_attr、call_function、call_module、call_method、output。

  • • Python 源到源转换:

    • • IR 反向映射回 Python 源码

    • • 基于 FX Graph 修改模型结构,导出新的nn.Module代码

3. PyTorch 2.0 时代:torch.compile

  • • 介绍:统一编译接口,在尽量保留 Python 动态语义的前提下,通过图捕获与优化提升执行效率

  • • 组件与步骤:

    • • TorchDynamo(前端) :解释器级 tracing 框架,在 Python 字节码层面捕获张量相关计算,生成受 guard 约束的 FX Graph

      • • 工作原理:拦截 Python 函数执行,记录张量相关 IR

      • • Guards 机制:监控变量类型与值,确保重用编译图

      • • Graph Break:子图划分,处理无法转换为静态图的部分

  • • AOT Autograd:提前生成前向与反向联合计算图

    • • 工作流程:Dispatcher 机制拦截与重定义 Tensor 操作,切分正反向计算图
  • • TorchInductor(后端):后端优化,生成高效可执行代码

    • • 工作流程:接受 FX Graph,进行算子融合、内存规划与调度优化,并生成高效的执行代码

    • • 示例:CUDA 设备上的 Triton 后端代码生成过程

总结

本文讲了 PyTorch 图优化技术体系的演进历程与核心特性。后续将讲解 AI 编译器中的后端优化。

相关推荐
hsfxuebao8 小时前
Loop Engineering 已死? 一文带你了解Graph Engineering
人工智能·后端
秦先生在广东8 小时前
Atlassian 携手 OpenAI 深化合作:以企业知识图谱驱动 AI 智能体在开发全流程中的应用
人工智能
品牌常新8 小时前
GEO哪家好?2026年服务商选型与能力对比
大数据·人工智能
品牌常新8 小时前
灵栩栩是做什么的?2026产品能力全景解读
人工智能
扶风ff8 小时前
练题簿在线免费刷题:题目导入、章节管理、Excel 与 Word 导出,让题库更好用
学习·小程序·word·excel
海盗12348 小时前
AI 新闻日报 2026-10-07:智能体迁往云端 / SDK 支持运行中改向 / 机器人进柜台与景区
人工智能·机器人·人工智能aigc
进击的横打8 小时前
【人工智能】需求不明确时用普通Chat降低Token消耗
人工智能
陕西企来客8 小时前
西安水磨石工程服务商:B 端工程类内容如何进入 AI 推荐池
人工智能
JWASX8 小时前
Java 转 go 学习 - GRPC(3)
学习·golang
范桂飓8 小时前
AWS Strands Agents 技术解析
人工智能·云计算·aws