TorchDynamo 概述¶
TorchDynamo 是一个 Python 级别的即时编译器,旨在使未修改的 PyTorch 程序运行得更快。TorchDynamo 通过钩入 CPython 的帧评估 API(PEP 523)来在 Python 字节码执行之前动态修改字节码。它会重写 Python 字节码,以将一系列 PyTorch 操作提取为一个 FX 图,然后使用可自定义的后端进行即时编译。它通过字节码分析创建这个 FX 图,并设计为将 Python 执行与编译后端混合,从而兼顾两者的优点——易用性和性能。
TorchDynamo 使您能够轻松尝试不同的编译器后端,仅需一行装饰器即可让 PyTorch 代码运行得更快
torch._dynamo.optimize(),该装饰器被 torch.compile() 方便地封装
TorchInductor 是 TorchDynamo Graph 支持的后端之一,用于 GPU 的 Triton 或 CPU 的 C++/OpenMP。我们有一个 训练性能仪表板, 它提供了不同训练后端的性能对比。你可以阅读更多内容在 PyTorch dev-discuss 上的 TorchInductor 博客文章。