作者​:昇腾实战派
知识地图​:https://blog.csdn.net/Lumos_Lovegood/article/details/161601003

背景概述

在 Ascend NPU 环境下运行 PyTorch 模型时,需要正确配置 PyTorch、torch_npu 插件以及 CANN 基础软件栈。由于各组件之间存在严格的版本依赖关系,配置过程若操作不当,容易导致运行时错误。本文旨在提供一套清晰、可复现的配置流程,帮助开发者快速搭建或定制开发环境。

本文档详细介绍在 Ascend NPU 环境下配置 PyTorch + torch_npu 的完整流程,包含两种安装路径:快速二进制包安装(适用于日常开发和快速部署)和源码编译安装(适用于源码级问题定位与功能增强)。


一、前提条件检查

在开始安装前,请完成以下检查步骤,确保环境满足基本要求。

1.1 检查操作系统

在服务器终端执行以下命令查看操作系统信息:

cat /etc/os-release

第一行即为操作系统名称,例如:

NAME="openEuler"

1.2 检查 NPU 固件

执行以下命令查看当前主机 NPU 信息:

npu-smi info

若能正常输出 NPU 信息,则固件已安装完成,无需额外操作。

1.3 版本兼容性确认

安装前需确认以下版本对齐关系:

组件版本信息来源
torch_npu版本发布说明
CANNCANN 下载页面
PyTorch与 torch_npu 版本对应
Python需与 torch_npu 支持版本一致

版本匹配关系请参考:版本配套说明


二、路径 A:二进制包安装(快速安装)

适用于日常开发和快速部署场景,直接使用预编译的二进制包。

2.1 环境准备

从已有的基础环境克隆一份干净的虚拟环境:

conda create --clone base_env --name <your_env_name>

建议克隆一个不含 torch、cann、torch_npu 的干净环境,避免版本冲突。

2.2 安装步骤

步骤 1:安装 PyTorch

根据 torch_npu 版本要求,安装对应的 PyTorch 版本。可通过 PyTorch 官方或镜像源安装。

步骤 2:安装 CANN

访问 CANN 在线安装指南,选择在线安装方式。

步骤 3:配置 CANN 环境变量

安装完成后,查询 CANN 安装路径:

pip show ascend-cann-toolkit

输出示例:

Location: /home/xxx/miniconda3/envs/xxx/Ascend/cann-8.5.0/set_env.sh

在虚拟环境中执行以下命令注入环境配置:

source /home/xxx/miniconda3/envs/xxx/lib/python3.10/site-packages/ascend/cann-9.0.0/set_env.sh

注意:请根据实际安装路径调整版本号(如 cann-8.5.0 或 cann-9.0.0),确保路径中的版本与实际安装一致。

步骤 4:安装 torch_npu 插件

根据 安装教程 安装 torch_npu。

步骤 5:安装 ops 算子包

按照教程安装必要的 ops 算子包。

2.3 安装后验证

执行以下命令验证安装是否成功:

python3 -c "import acl; print(acl.get_soc_name())"

返回芯片型号即表示安装成功,例如:

Ascend910B3

三、路径 B:源码编译安装(用于源码级问题定位)

适用于需要源码级调试、功能增强或定制开发的场景。

3.1 环境准备

克隆一份干净的虚拟环境(不含 torch、cann、torch_npu):

conda create --clone base_env --name <your_env_name>

3.2 安装步骤

步骤 1:确定版本对应关系

参考 版本发布说明版本配套说明,确认 torch、torch_npu、CANN 和 Python 的版本兼容性。

步骤 2:安装 PyTorch

安装与 torch_npu 版本对应的 PyTorch。

步骤 3:安装 CANN

参考路径 A 的步骤 2,使用在线安装方式安装 CANN。

步骤 4:配置 CANN 环境变量

参考路径 A 的步骤 3,配置 CANN 环境变量。

步骤 5:安装 ops 算子包

按照教程安装必要的 ops 算子包。

步骤 6:源码编译安装 torch_npu

访问 源码编译安装教程,按照以下流程操作:

  1. 获取 torch_npu 源码
  2. 执行编译(编译生成 whl 包耗时较长,请耐心等待)
  3. 使用 pip 安装编译好的 whl 包

四、注意事项

  1. 版本一致性:CANN、PyTorch 和 torch_npu 的版本必须严格匹配,否则可能导致运行时错误。
  2. 环境变量:每次打开新终端或切换环境后,需重新执行 CANN 的 set_env.sh 脚本。
  3. 编译耗时:源码编译安装 torch_npu 耗时较长,建议在资源充足的环境下进行。
  4. 源码用途:源码安装方式主要用于需要查看源码级功能、编写自定义算子或增强功能的场景。
Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐