写点什么

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

  • 2023-05-26
    广东
  • 本文字数:3649 字

    阅读完需:约 12 分钟

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

本文分享自华为云社区《手把手教你在昇腾平台上搭建PyTorch训练环境》,作者:昇腾 CANN。


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.runchmod +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-sharedmakemake 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 --versionpip3 --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 wheelpip3 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.whlpip3 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.whlpip3 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.whlpip3 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.whlpip3 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.whlpip3 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.whlpip3 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.whlpip3 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.whlpip3 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 apexgit clone https://github.com/NVIDIA/apex.git
复制代码


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


cd apexgit checkout 4ef930c1c884fdca5f472ab2ce7cb9b505d26c1acd ..
复制代码


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


cd scriptsbash gen.sh
复制代码


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


cd ../apexpython3 setup.py --cpp_ext --npu_float_status bdist_wheel
复制代码


5. 安装 APEX。


86_64 架构


cd distpip3 install apex-0.1_ascend-cp37-cp37m-linux_ x86_64.whl
复制代码


aarch64 架构


cd distpip3 install apex-0.1_ascend-cp37-cp37m-linux_aarch64.whl
复制代码


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


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

相关参考


[1]昇腾文档中心

[2]昇腾社区在线课程

[3]昇腾论坛


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
手把手教你在昇腾平台上搭建PyTorch训练环境_人工智能_华为云开发者联盟_InfoQ写作社区