---
title: 手把手教你在昇腾平台上搭建PyTorch训练环境-官方技术文章-昇腾社区
description: 在昇腾平台上运行PyTorch业务时，需要搭建异构计算架构CANN软件开发环境，并安装PyTorch 框架，从而实现训练脚本的迁移、开发和调试。本文就带你了解如何搭建PyTorch训练环境。
keywords: PyTorch,手把手教你在,昇腾平台上搭,训练环境,官方技术文章,昇腾社区,环境检查,安装驱动和固件
url: https://www.hiascend.com/developer/techArticles/20230526-1
section: (其他)
---

# 手把手教你在昇腾平台上搭建PyTorch训练环境-官方技术文章-昇腾社区

URL: https://www.hiascend.com/developer/techArticles/20230526-1
描述: 在昇腾平台上运行PyTorch业务时，需要搭建异构计算架构CANN软件开发环境，并安装PyTorch 框架，从而实现训练脚本的迁移、开发和调试。本文就带你了解如何搭建PyTorch训练环境。
关键词: PyTorch,手把手教你在,昇腾平台上搭,训练环境,官方技术文章,昇腾社区,环境检查,安装驱动和固件

官方技术文章 [了解详情](https://www.hiascend.com/zh/developer/techArticles)

手把手教你在昇腾平台上搭建PyTorch训练环境

手把手教你在昇腾平台上搭建PyTorch训练环境

昇腾CANNPyTorch

发表于: 2023/05/26

11k

30

PyTorch是业界流行的深度学习框架，用于开发深度学习训练脚本，默认运行在CPU/GPU上。在昇腾AI处理器上运行PyTorch业务时，需要搭建异构计算架构CANN（Compute Architecture for Neural Networks）软件开发环境，并安装PyTorch 框架，从而实现训练脚本的迁移、开发和调试。

下面带大家了解如何在昇腾平台上快速安装驱动固件、CANN软件及PyTorch框架。

# 环境检查

在昇腾平台上安装驱动和固件前，首先需要检查安装环境的NPU是否正常在位，并确认操作系统版本与内核版本是否满足对应的版本配套要求。

以Atlas 800 训练服务器（型号：9010）（昇腾AI处理器型号Ascend 910）为例，检查NPU是否正常在位可执行lspci | grep d801命令，如果服务器上有 N路NPU，回显N行含“d801”字段，则表示NPU正常在位。

# 安装驱动和固件

1. 创建驱动运行用户HwHiAiUser。

```
groupadd -g 1000 HwHiAiUser
useradd -g HwHiAiUser -u 1000 -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
```

2. 安装驱动和固件。

在昇腾社区的“固件与驱动”下载页面下载配套产品的固件驱动软件，并上传到服务器任意目录，然后参考如下命令进行固件驱动软件包的安装，需要注意，需要以root用户进行安装。

a.为软件包增加可执行权限。

```
chmod +x Ascend-hdk-910-npu-driver_23.0.rc1_linux-x86-64.run
chmod +x Ascend-hdk-910-npu-firmware_6.3.0.1.241.run
```

b.安装驱动。

```
./Ascend-hdk-910-npu-driver_23.0.rc1_linux-x86-64.run --full --install-for-all
```

默认安装路径为“/usr/local/Ascend”，出现类似如下回显信息，说明安装成功。

```
Driver package installed successfully!
```

您还可以通过执行npu-smi info命令查看，出现类似如下信息，说明驱动加载成功。

c.安装固件。

```
./Ascend-hdk-910-npu-firmware_6.3.0.1.241.run --full
```

出现类型如下回显信息，说明安装成功。

```
Firmware package installed successfully! Reboot now or after driver installation for the installation/upgrade to take effect
```

3. 驱动固件安装完成后，重启系统。

```
reboot
```

# 安装CANN软件依赖

CANN软件安装过程需要下载相关依赖，请确保安装环境能够连接网络，并已配置软件源，以下步骤以root用户操作为例。

1. 安装第三方依赖

Ubuntu系统（Debian、UOS20、Linux等系统操作一致）：

```
apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3
```

openEuler系统（EulerOS、CentOS、BCLinux等系统操作一致）：

```
yum install -y gcc gcc-c++ make cmake unzip zlib-devel libffi-devel openssl-devel pciutils net-tools sqlite-devel lapack-devel gcc-gfortran
```

2. 安装Python及其依赖

以安装Python 3.7.5为例。

1）通过wget命令下载python3.7.5源码包。

```
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
```

2）解压缩源码包

```
tar -zxvf Python-3.7.5.tgz
```

3）源码编译安装Python。

```
cd Python-3.7.5
./configure --prefix=/usr/local/python3.7.5 --enable-loadable-sqlite-extensions --enable-shared
make
make install
```

以--prefix=/usr/local/python3.7.5路径为例进行说明。执行配置、编译和安装命令后，安装包在/usr/local/python3.7.5路径。

4）设置python3.7.5环境变量。

```
#用于设置python3.7.5库文件路径
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
#如果用户环境存在多个python3版本，则指定使用python3.7.5版本
export PATH=/usr/local/python3.7.5/bin:$PATH
```

5）检查是否安装成功。

```
python3 --version
pip3 --version
```

返回相关版本信息，则说明安装成功。

6）安装pip依赖。

```
pip3 install attrs numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py
```

# 安装CANN开发套件包

1. 从昇腾社区“CANN”产品页，根据操作系统架构下载CANN开发套件包。

例如“Ascend-cann-toolkit_6.3.RC1_linux-x86_64.run”，并将其上传到安装环境任意目录。

2. 安装CANN开发套件包。

```
# 添加可执行权限
chmod +x Ascend-cann-toolkit_6.3.RC1_linux-x86_64.run
# 校验软件包的一致性和完整性
./Ascend-cann-toolkit_6.3.RC1_linux-x86_64.run --check
# 执行安装命令
./Ascend-cann-toolkit_6.3.RC1_linux-x86_64.run --install --install-for-all
```

安装完成后，若显示如下信息，则说明软件安装成功：

```
[INFO] xxx install success
```

xxx表示安装的实际软件包名。

# 安装PyTorch

CANN软件包安装完成后，就可以进行PyTorch的安装了。开发者可以选择PyTorch 1.8.1或PyTorch 1.11.0版本，PyTorch安装成功后再安装APEX混合精度模块。在安装Pytorch前，需要先安装以下依赖。

```
pip3 install wheel
pip3 install typing_extensions
```

安装PyTorch 1.8.1

1）安装官方torch包。

x86_64架构

```
wget https://download.pytorch.org/whl/cpu/torch-1.8.1%2Bcpu-cp37-cp37m-linux_x86_64.whl
pip3 install torch-1.8.1+cpu-cp37-cp37m-linux_x86_64.whl
```

aarch64架构

```
wget https://repo.huaweicloud.com/kunpeng/archive/Ascend/PyTorch/torch-1.8.1-cp37-cp37m-linux_aarch64.whl
pip3 install torch-1.8.1-cp37-cp37m-linux_aarch64.whl
```

2）安装昇腾提供的PyTorch适配插件torch_npu。

x86_64架构

```
wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.8.1/torch_npu-1.8.1.post1-cp37-cp37m-linux_x86_64.whl
pip3 install torch_npu-1.8.1.post1-cp37-cp37m-linux_x86_64.whl
```

aarch64架构

```
wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.8.1/torch_npu-1.8.1.post1-cp37-cp37m-linux_aarch64.whl
pip3 install torch_npu-1.8.1.post1-cp37-cp37m-linux_aarch64.whl
```

此处以5.0.rc1版本为例，实际请选择CANN配套的PyTorch插件版本进行安装。

3）安装对应框架版本的torchvision。

```
pip3 install torchvision==0.9.1
```

4）验证是否安装成功。

```
python -c "import torch;import torch_npu; a = torch.ones(3, 4).npu(); print(a + a);"
```

如果输出包含如下关键信息则说明PyTorch安装成功。

```
[[2., 2., 2., 2.],
[2., 2., 2., 2.],
[2., 2., 2., 2.]]
```

安装PyTorch 1.11.0

1）安装官方torch包。

x86_64架构

```
wget https://download.pytorch.org/whl/cpu/torch-1.11.0%2Bcpu-cp37-cp37m-linux_x86_64.whl
pip3 install torch-1.11.0+cpu-cp37-cp37m-linux_x86_64.whl
```

aarch64架构

```
wget https://repo.huaweicloud.com/kunpeng/archive/Ascend/PyTorch/torch-1.11.0-cp37-cp37m-linux_aarch64.whl
pip3 install torch-1.11.0-cp37-cp37m-linux_aarch64.whl
```

2）安装昇腾提供的PyTorch适配插件torch_npu。

x86_64架构

```
wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.11.0/torch_npu-1.11.0-cp37-cp37m-linux_x86_64.whl
pip3 install torch_npu-1.11.0-cp37-cp37m-linux_x86_64.whl
```

aarch64架构

```
wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.11.0/torch_npu-1.11.0-cp37-cp37m-linux_aarch64.whl
pip3 install torch_npu-1.11.0-cp37-cp37m-linux_aarch64.whl
```

3）安装对应框架版本的torchvision。

```
pip3 install torchvision==0.12.0
```

4）验证PyTorch是否安装成功。

```
python -c "import torch;import torch_npu; a = torch.ones(3, 4).npu(); print(a + a);"
```

如果输出包含如下关键信息则说明PyTorch安装成功。

```
[[2., 2., 2., 2.],
[2., 2., 2., 2.],
[2., 2., 2., 2.]]
```

安装APEX混合精度模块

APEX混合精度模块是一个集优化性能、精度收敛于一身的综合优化库，可以提供不同场景下的混合精度训练支持。

1. 获取昇腾适配的APEX源码以及原生APEX代码。

```
# 获取昇腾适配的APEX源码
git clone -b master https://gitee.com/ascend/apex.git
# 在apex目录下获取原生APEX代码
cd apex
git clone https://github.com/NVIDIA/apex.git
```

2. 切换到原生APEX代码对应分支。

```
cd apex
git checkout 4ef930c1c884fdca5f472ab2ce7cb9b505d26c1a
cd ..
```

3. 在昇腾适配APEX源码目录的scripts路径下生成昇腾适配全量代码。

```
cd scripts
bash gen.sh
```

4. 编译生成昇腾适配的APEX二进制安装包。

```
cd ../apex
python3 setup.py --cpp_ext --npu_float_status bdist_wheel
```

5. 安装APEX。

86_64架构

```
cd dist
pip3 install apex-0.1_ascend-cp37-cp37m-linux_x86_64.whl
```

aarch64架构

```
cd dist
pip3 install apex-0.1_ascend-cp37-cp37m-linux_aarch64.whl
```

到此，PyTorch训练环境就搭建完毕了，开发者可以将PyTorch网络脚本迁移到昇腾平台执行训练，使用昇腾平台的强大算力。

关于更多文档介绍，可以在昇腾文档中心[1]查看，您也可在“昇腾社区在线课程[2]”板块学习视频课程，学习过程中的任何疑问，都可以在“昇腾论坛[3]”互动交流！

# 相关参考

[1]昇腾文档中心 [了解详情](https://www.hiascend.com/zh/document)

[2]昇腾社区在线课程 [了解详情](https://www.hiascend.com/zh/edu/courses)

[3]昇腾论坛 [了解详情](https://www.hiascend.com/forum/)

点赞 30

本页内容

环境检查 [了解详情](https://www.hiascend.com/#id-1)

安装驱动和固件 [了解详情](https://www.hiascend.com/#id-2)

安装CANN软件依赖 [了解详情](https://www.hiascend.com/#id-3)

安装CANN开发套件包 [了解详情](https://www.hiascend.com/#id-4)

安装PyTorch [了解详情](https://www.hiascend.com/#id-5)

相关参考 [了解详情](https://www.hiascend.com/#id-6)
