Torch-NPU Core SIG

简介

Torch-NPU Core SIG 聚焦于昇腾 NPU 平台上的 PyTorch 核心适配层开发,负责 TorchNPU 扩展库及其算子插件 OpPlugin 的设计、实现与维护。SIG 的核心职责包括:

  • PyTorch 原生适配: 在 NPU 设备上提供与 PyTorch 一致的张量操作、自动微分、分布式通信等核心 API,确保用户代码无需修改即可运行。

  • 算子开发与优化: 基于 CANN 算子库(ACL/ACLNN)实现 PyTorch 标准算子的 NPU 后端适配,并通过算子融合、内存优化等手段提升关键算子的执行效率。

  • 运行时基础设施: 维护 NPU 设备管理、显存分配、Stream 调度、进程间通信(IPC)等底层机制,为上层框架提供稳定的运行时支撑。

  • 工具链与可观测性: 提供性能分析、溢出检测、算子调试等开发辅助工具,降低 NPU 平台上的问题定位难度。


仓库列表

名称 定位 介绍
Ascend/pytorch 核心适配库 torch_npu 的源码仓库,包含 NPU 设备后端注册、张量操作适配、显存管理、Stream 调度、分布式通信等核心功能的 C++/Python 实现。同时承载 TorchAir 图模式编译方案的集成工作
Ascend/op-plugin 算子插件库 基于 CANN ACLNN 接口的 PyTorch 自定义算子集合,提供标准算子的 NPU 高性能实现以及融合算子等扩展算子。支持 OpPlugin 内建适配、C++ 扩展和单算子 API 三种接入方式

工作目标

1. 核心 API 兼容性

确保 TorchNPU 在 NPU 设备上完整覆盖 PyTorch 核心模块的 API 语义:

  • 张量操作(torch.Tensor / torch.*): 创建、索引、变换、数学运算、归约等,对齐 PyTorch 最新 stable 版本的 API 签名和行为。

  • 自动微分(torch.autograd): 前向/反向计算的 NPU 算子注册与梯度正确性验证。

  • 分布式通信(torch.distributed): HCCL 后端适配,支持 AllReduce / AllGather / ReduceScatter 等集合通信原语以及 Point-to-Point 通信。

  • 设备与内存管理(torch.npu): 设备初始化、显存分配器(含 Expandable Segments)、缓存管理、Stream 同步等运行时接口。

2. 算子库建设

  • 标准算子适配: 将 PyTorch 定义的标准算子逐一映射到 CANN ACLNN 实现,维护算子支持矩阵,覆盖 Aten ir.e. 到 ACLNN 的完整调用链路。

  • 扩展算子开发: 面向大模型训练与推理场景开发高性能融合算子,如 FlashAttention、PagedAttention、RMSNorm 融合等。

  • OpPlugin 机制完善: 优化 EXEC_NPU_CMD_V2 等算子调度宏的异步执行机制,提升算子调用的稳定性和可调试性。

3. 运行时性能优化

  • 显存管理: 优化 Workspace 内存池、显存复用策略,减少大模型训练场景下的显存碎片和峰值占用。

  • Stream 调度: 完善 NPU Stream 架构,支持多 Stream 并行、Stream 同步与事件机制。

  • 通信优化: 结合对称内存(Symmetric Memory)等机制优化分布式训练的通信效率。

4. 工具链与开发者体验

  • 性能分析: 提供 NPU 算子级粒度的 Profiling 工具,支持迭代内耗时分解与瓶颈定位。

  • 调试诊断: 溢出检测、算子精度对比、Dump 工具等辅助定位能力。

  • 文档与示例: 维护 API 参考文档、算子适配指南和端到端使用示例。


学习资源


SIG 成员

Maintainer

Committer