快速上线
本章节主要向用户介绍基于Atlas 300T 训练卡(型号:9000)/Atlas 300T Pro 训练卡(型号:9000)+x86架构服务器,快速完成昇腾NPU(Neural-Network Processing Unit,神经网络处理器单元)驱动固件、CANN(Compute Architecture for Neural Networks,AI异构计算架构)软件、PyTorch深度学习框架的安装,实现训练任务的上线。
准备安装环境
- 安装依赖前确保服务器能够连接外网,已配置可用的软件源和pip源。如果需要更换软件源可参考检查源,配置pip源可参考配置pip源。
- 安装驱动前需要创建驱动运行用户HwHiAiUser(运行驱动进程的用户),安装驱动时无需指定运行用户,默认即为HwHiAiUser。
groupadd HwHiAiUser useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
若用户后续需使用从AscendHub拉取的容器镜像,则请用户执行如下命令创建uid和gid为1000的驱动运行用户HwHiAiUser。
groupadd -g 1000 HwHiAiUser useradd -g HwHiAiUser -u 1000 -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
若回显如下信息,请参见创建uid和gid为1000的驱动运行用户HwHiAiUser失败解决。
groupadd:GID '1000' already exists
下载软件
相关软件的软件包名称及下载路径如下,软件分为商用版和社区版,两者功能上无区别,区别在于下载权限和是否用于商业用途。
社区版软件不需要申请下载权限可以直接下载,但软件不能用于商业用途;如果您下载软件需要用于商业用途,请下载商用版软件,但是需要申请软件下载权限。
因此如果您下载软件仅用于调试验证,推荐下载社区版软件。
软件类型 |
软件包名称和下载链接 |
---|---|
驱动 |
单击软件包链接,下载软件包“Ascend-hdk-910-npu-driver_23.0.rc1_linux-x86-64.run”。 |
固件 |
|
MCU |
|
Toolkit(开发套件包) |
单击软件包链接,下载软件包“Ascend-cann-toolkit_6.3.RC1_linux-x86_64.run”。 |
kernels(二进制算子包) |
上传安装包并添加权限
- 将MCU的zip包解压至本地文件夹,获取Ascend-hdk-910-mcu_23.1.1.bin安装包。
- 再将下载的run包和解压获取的bin包上传至服务器任意目录(以“/home”为例)。
- 给安装包添加权限。
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 chmod +x Ascend-cann-toolkit_6.3.RC1_linux-x86_64.run chmod +x Ascend-cann-kernels-910_6.3.RC1_linux.run
安装NPU驱动固件
执行uname -r命令查看操作系统内核版本:
- 如果内核版本在“二进制安装”安装方式对应的版本范围内,则可以直接安装NPU驱动固件。
- 如果内核版本为“源码编译安装”安装方式对应的版本则需要先参见安装驱动源码编译所需依赖安装驱动源码编译所需的依赖,再安装NPU驱动固件。
host操作系统版本 |
软件包默认的host操作系统内核版本 |
安装方式 |
---|---|---|
Debian 9.9 |
4.19.28 |
二进制安装 |
Ubuntu 18.04.1 |
4.15.0-29-generic |
|
CentOS 7.6 |
3.10.0-957.el7.x86_64 |
|
Ubuntu 20.04 |
5.4.0-26-generic |
|
CentOS 8.2 |
4.18.0-193.el8.x86_64 |
源码编译安装 |
Kylin V10 SP1 |
4.19.90-17.ky10.x86_64 |
|
Ubuntu18.04.5 |
4.15.0-112-generic |
|
openEuler 20.03 LTS |
4.19.90-2003.4.0.0036.oe1.x86_64 |
|
openEuler 20.03 LTS SP1 |
4.19.90-2012.5.0.0054.oe1.x86_64 |
|
openEuler 22.03 LTS |
5.10.0-60.18.0.50.oe2203.x86_64 |
# 安装NPU驱动 ./Ascend-hdk-910-npu-driver_23.0.rc1_linux-x86-64.run --full --install-for-all # 查看驱动加载是否成功,回显芯片信息表示加载成功 npu-smi info # 安装NPU固件 ./Ascend-hdk-910-npu-firmware_6.3.0.1.241.run --full # 重启OS reboot
升级MCU
# 查询NPU ID (卡的设备编号) npu-smi info -l # 升级MCU npu-smi upgrade -t mcu -i NPU ID -f Ascend-hdk-910-mcu_23.1.1.bin # 使新版本生效 npu-smi upgrade -a mcu -i NPU ID # 在生效新版本之后,等待30s,查询MCU版本号,确保升级成功 npu-smi upgrade -b mcu -i NPU ID
安装依赖
# 安装OS依赖 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 libopenblas-dev # 检查Python版本是否满足要求,PyTorch框架支持Python3.7.x(3.7.5~3.7.11)、Python3.8.x(3.8.0~3.8.11)、Python3.9.x(3.9.0~3.9.2)。 执行命令python3 --version,Ubuntu 20.04自带Python版本为3.8,符合PyTorch框架要求,但是因为PyTorch框架的二进制包仅支持Python3.7.x,因此请用户参见安装步骤(Ubuntu 20.04)中的步骤安装编译Python3.7.5。 # 安装Python3依赖 pip3 install --upgrade pip pip3 install attrs cython numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py
安装CANN
# 在/home目录下执行如下命令安装 ./Ascend-cann-toolkit_6.3.RC1_linux-x86_64.run --install --install-for-all # 配置环境变量,若需要设置环境变量永久生效,可在~/.bashrc文件最后一行后面添加以下命令,执行source ~/.bashrc命令 source /usr/local/Ascend/ascend-toolkit/set_env.sh 包含动态shape网络和ACLNN单算子直调场景下须安装二进制算子包 ./Ascend-cann-kernels-910_6.3.RC1_linux.run --install --install-for-all
安装深度学习框架
深度学习框架以PyTorch 1.8.1为例。
# 安装PyTorch环境依赖 pip3 install wheel pip3 install typing_extensions pip3 install expecttest # 安装PyTorch 1.8.1 # 安装torch包 pip3 install torch==1.8.1+cpu -f https://download.pytorch.org/whl/torch_stable.html --trusted-host download.pytorch.org # 安装PyTorch插件torch_npu 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 # 安装对应框架版本的torchvision,PyTorch 1.8.1需安装0.9.1版本,PyTorch 1.11.0需安装0.12.0版本 pip3 install torchvision==0.9.1 # 参见安装APEX混合精度模块安装APEX混合精度模块
运行样例
软件安装完成后,可以运行模型样例验证环境是否可用。
单击链接,单击“Download”获取Tiny ImageNet小型数据集(archive.zip)。若没有账号,请用户自行注册。
# 安装git工具,若已安装请跳过该步骤。 apt-get install -y git # 获取模型脚本并进入“模型代码目录” git config --global http.sslVerify "false" git clone https://gitee.com/ascend/ModelZoo-PyTorch.git cd ModelZoo-PyTorch/PyTorch/contrib/cv/classification/MobileNetV3_large_100_for_PyTorch # 将数据集上传至当前目录(模型代码目录)并解压 unzip archive.zip # 安装依赖 pip3 install -r requirements.txt pip3 install git+https://github.com/rwightman/pytorch-image-models.git # 安装lzma apt-get install -y liblzma-dev pip3 install backports.lzma # 修改lzma.py文件 vi /usr/local/python3.7.5/lib/python3.7/lzma.py # 修改前 from _lzma import * from _lzma import _encode_filter_properties, _decode_filter_properties # 修改后 try: from _lzma import * from _lzma import _encode_filter_properties, _decode_filter_properties except ImportError: from backports.lzma import * from backports.lzma import _encode_filter_properties, _decode_filter_properties # 在当前目录(模型代码目录)执行如下命令运行训练脚本 bash ./test/train_full_1p.sh --data_path=./tiny-imagenet-200 用户可在模型训练过程中重新打开一个窗口,在“模型代码目录/test/output/0”目录下执行tail -f 日志文件名命令实时查看训练日志