评价此页

Accelerator Integration#

创建时间: 2025 年 9 月 2 日 | 最后更新时间: 2025 年 12 月 8 日

自 PyTorch 2.1 起,社区在简化将新加速器集成到 PyTorch 生态系统的过程中取得了显著进展。这些改进包括但不限于:对 PrivateUse1 Dispatch Key 的优化,核心子系统扩展机制的引入和增强,以及关键模块(例如 torch.acceleratormemory management)的设备无关重构。总而言之,这些进步为加速器集成提供了一个 **健壮**、**灵活** 且 **对开发者友好** 的路径基础。

注意

本指南正在完善中。更多详情,请参阅 路线图

为什么这很重要?#

此集成路径提供了几个主要优势:

  • 速度:所有核心 PyTorch 模块都内置了可扩展性。开发者可以独立地将新加速器集成到其下游代码库中——无需修改上游代码,也无需受社区审查带宽的限制。

  • 未来兼容性:这是所有未来 PyTorch 功能的默认集成路径,这意味着随着新模块和功能的添加,如果遵循此路径,它们将自动支持扩展到新加速器。

  • 自主性:供应商完全控制其加速器集成的时间表,从而能够快速迭代周期并减少对上游协调的依赖。

目标受众#

本文档旨在为

  • 加速器开发者,他们正在将加速器集成到 PyTorch 中;

  • 高级 PyTorch 用户,对关键模块的内部工作原理感兴趣;

关于本文档#

本指南旨在提供 **PyTorch 中新加速器集成现代路径的全面概述**。它贯穿了整个集成表面,从低级设备原语到更高级的域模块,如编译和量化。其结构遵循 **模块化和场景驱动的方法**,每个主题都配有来自官方参考实现 torch_openreg 的相应代码示例,并且本系列围绕四个主要轴线构建:

  • 运行时:涵盖核心组件,如 Event、Stream、Memory、Generator、Guard、Hooks,以及支持的 C++ 框架。

  • 算子:涉及 C++ 和 Python 实现中所需的最小算子集、前向和后向算子、回退算子、fallthroughs、STUBs 等。

  • Python 前端:专注于模块的 Python 绑定和设备无关 API。

  • 高级模块:探索与主要子系统的集成,例如 AMPCompilerONNXDistributed 等。

目标是帮助开发者

  • 理解加速器集成的完整范围;

  • 遵循最佳实践,快速启动新加速器;

  • 通过清晰、有针对性的示例,避免常见陷阱。

接下来,我们将深入探讨本指南的每个章节。每个章节都专注于集成的一个关键方面,提供详细的解释和说明性示例。由于某些章节建立在先前章节的基础上,因此建议读者按照顺序阅读,以获得更连贯的理解。