PyTorch 2.0 发布也有一段时间了,大家是不是已经开始用了呢? PyTorch 2.0 通过引入 torch.compile,可以显着提高训练和推理速度。 与 eagerly 模式相反,编译 API 将模型转换为中间计算图(FX graph),然后以某种方式将其编译为低级计算内核,这样可以提高运行速度。

对于PyTorch 2.0 而言,你看到的可能是:

“只是用 torch.compile 调用包装它们就可以提高运行速度”

但是其实有许多因素会干扰计算图编译和/或达到所需的性能改进。 所以需要调整模型和达到最佳性能可能需要重新设计项目或修改一些编码习惯。

在本文中,我们将演示这个新功能的使用,以及介绍在使用它时可能遇到的一些问题。 我们将分享在调整 torch.compile API 时遇到的问题的几个例子。这些例子并不全面,再实际运用是很可能会遇到此处未提及的问题,并且还要 torch.compile 仍在积极开发中,还有改进的空间。

Torch 编译背后有许多创新技术,包括 TorchDynamo、FX Graph、TorchInductor、Triton 等。 我们不会在这篇文章中深入探讨不同的组件,如果你对这些感兴趣,可以查看PyTorch 文档,里面介绍的非常详细。

https://avoid.overfit.cn/post/dfea563957fc43a19f1aaf7733888031

查看原文