Accelerator Integration#
创建时间: 2025 年 9 月 2 日 | 最后更新时间: 2025 年 12 月 8 日
自 PyTorch 2.1 起,社区在简化将新加速器集成到 PyTorch 生态系统的过程中取得了显著进展。这些改进包括但不限于:对 PrivateUse1 Dispatch Key 的优化,核心子系统扩展机制的引入和增强,以及关键模块(例如 torch.accelerator、memory management)的设备无关重构。总而言之,这些进步为加速器集成提供了一个 **健壮**、**灵活** 且 **对开发者友好** 的路径基础。
注意
本指南正在完善中。更多详情,请参阅 路线图。
为什么这很重要?#
此集成路径提供了几个主要优势:
速度:所有核心 PyTorch 模块都内置了可扩展性。开发者可以独立地将新加速器集成到其下游代码库中——无需修改上游代码,也无需受社区审查带宽的限制。
未来兼容性:这是所有未来 PyTorch 功能的默认集成路径,这意味着随着新模块和功能的添加,如果遵循此路径,它们将自动支持扩展到新加速器。
自主性:供应商完全控制其加速器集成的时间表,从而能够快速迭代周期并减少对上游协调的依赖。
目标受众#
本文档旨在为
加速器开发者,他们正在将加速器集成到 PyTorch 中;
高级 PyTorch 用户,对关键模块的内部工作原理感兴趣;
关于本文档#
本指南旨在提供 **PyTorch 中新加速器集成现代路径的全面概述**。它贯穿了整个集成表面,从低级设备原语到更高级的域模块,如编译和量化。其结构遵循 **模块化和场景驱动的方法**,每个主题都配有来自官方参考实现 torch_openreg 的相应代码示例,并且本系列围绕四个主要轴线构建:
运行时:涵盖核心组件,如 Event、Stream、Memory、Generator、Guard、Hooks,以及支持的 C++ 框架。
算子:涉及 C++ 和 Python 实现中所需的最小算子集、前向和后向算子、回退算子、fallthroughs、STUBs 等。
Python 前端:专注于模块的 Python 绑定和设备无关 API。
高级模块:探索与主要子系统的集成,例如
AMP、Compiler、ONNX和Distributed等。
目标是帮助开发者
理解加速器集成的完整范围;
遵循最佳实践,快速启动新加速器;
通过清晰、有针对性的示例,避免常见陷阱。
接下来,我们将深入探讨本指南的每个章节。每个章节都专注于集成的一个关键方面,提供详细的解释和说明性示例。由于某些章节建立在先前章节的基础上,因此建议读者按照顺序阅读,以获得更连贯的理解。