Appearance
torch_npu 简介
torch_npu(Ascend Extension for PyTorch,昇腾 PyTorch 扩展)是让原生 PyTorch 运行在昇腾 NPU 上的适配插件。
1. 工作方式
torch_npu 不替代 PyTorch,而是作为插件为 PyTorch 增加一种新设备类型 npu:
- 原生 PyTorch 负责模型定义、自动求导、训练循环等通用逻辑;
- torch_npu 把算子映射到 CANN 的昇腾实现,并接管
npu设备上的张量与运算; - 最终经 CANN 下发到 昇腾 910 执行。
PyTorch(模型 / 自动求导)
│
torch_npu(device='npu' 适配)
│
CANN → 昇腾 910 NPU2. 与 CUDA 的对应
| 概念 | NVIDIA | 昇腾 |
|---|---|---|
| 设备字符串 | 'cuda' | 'npu' |
| 后端库 | CUDA | CANN |
| 框架接入 | 原生 PyTorch | PyTorch + torch_npu |
正因为这种「插件式」设计,绝大多数 PyTorch 代码迁移到昇腾时改动很小,详见 代码迁移。
3. 关于 MindSpore
除 PyTorch 外,昇腾还有原生框架 MindSpore,对昇腾硬件做了深度优化,支持端 / 边 / 云全场景部署。本平台以 PyTorch 为主,MindSpore 可作为延伸了解。
