快速上线
本章节主要向用户介绍基于Atlas 800 推理服务器(型号:3000)配置Atlas 300I Pro 推理卡,快速完成昇腾NPU(Neural-Network Processing Unit,神经网络处理器单元)驱动固件、CANN(Compute Architecture for Neural Networks,AI异构计算架构)软件的安装,实现推理业务的上线。
准备安装环境
- 安装依赖前确保服务器能够连接外网,已配置可用的软件源和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
下载软件
上传安装包并添加权限
- 将MCU的zip包解压至本地文件夹,获取Ascend-hdk-310p-mcu_23.2.1.hpm安装包。
- 再将下载的run包和解压获取的hpm包上传至服务器任意目录(以“/home”为例)。
- 给安装包添加权限。
chmod +x Ascend-hdk-310p-npu-driver_23.0.rc2_linux-aarch64.run chmod +x Ascend-hdk-310p-npu-firmware_6.4.12.1.241.run chmod +x Ascend-cann-toolkit_6.3.RC2_linux-aarch64.run
安装NPU驱动固件
执行uname -r命令查看操作系统内核版本:
- 如果内核版本在“二进制安装”安装方式对应的版本范围内,则可以直接安装NPU驱动固件。
- 如果内核版本为“源码编译安装”安装方式对应的版本则需要先参见安装驱动源码编译所需依赖安装驱动源码编译所需的依赖,再安装NPU驱动固件。
host操作系统版本 |
软件包默认的host操作系统内核版本 |
安装方式 |
---|---|---|
CentOS 7.6 |
4.14.0-115.el7a.0.1.aarch64 |
二进制安装 |
Ubuntu 18.04.1 |
4.15.0-29-generic |
|
Ubuntu 20.04 |
5.4.0-26-generic |
|
Ubuntu 18.04.5 |
4.15.0-112-generic |
源码编译安装 |
openEuler 20.03 LTS |
4.19.90-2003.4.0.0036.oe1.aarch64 |
|
openEuler 22.03 LTS |
5.10.0-60.18.0.50.oe2203.aarch64 |
|
Kylin V10 SP1(银河麒麟 V10 SP1) |
4.19.90-17.ky10.aarch64 |
# 安装NPU驱动 ./Ascend-hdk-310p-npu-driver_23.0.rc2_linux-aarch64.run --full --install-for-all # 查看驱动加载是否成功,回显芯片信息表示加载成功 npu-smi info # 安装NPU固件 ./Ascend-hdk-310p-npu-firmware_6.4.12.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-310p-mcu_23.2.1.hpm # 使新版本生效 npu-smi upgrade -a mcu -i NPU ID # 在生效新版本之后,等待30s,查询MCU版本号,确保升级成功 npu-smi upgrade -b mcu -i NPU ID
物理机安装
- 安装依赖。安装依赖以Ubuntu 20.04为例,其他操作系统安装依赖方法请参见安装依赖。
# 安装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 # 安装Python3依赖 apt-get install -y python3-pip pip3 install --upgrade pip pip3 install attrs cython numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py
- 安装CANN(以Toolkit为例)。
# 在/home目录下执行如下命令安装Toolkit ./Ascend-cann-toolkit_6.3.RC2_linux-aarch64.run --install --install-for-all # 执行如下命令配置环境变量。若需要设置环境变量永久生效,可在~/.bashrc文件最后一行后面添加以下命令,执行source ~/.bashrc命令 source /usr/local/Ascend/ascend-toolkit/set_env.sh
- (可选)运行样例。
软件安装完成后,可以运行样例验证环境是否可用。
获取模型文件和权重文件:
# 在服务器任意目录下获取sample仓代码(以/home目录为例) apt-get install git git config --global http.sslVerify "false" git clone https://gitee.com/ascend/samples.git # 进入“样例目录”,下文中的“样例目录”均指“samples/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification”目录 cd samples/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification # 获取ResNet-50原始模型 pip3 install Pillow mkdir -p caffe_model # 将获取的模型文件和权重文件上传至创建的“caffe_model”目录 # 在“样例目录”下执行如下命令,将ResNet-50原始模型转换为适配昇腾AI处理器的离线模型(*.om文件) atc --model=caffe_model/resnet50.prototxt --weight=caffe_model/resnet50.caffemodel --framework=0 --output=model/resnet50 --soc_version=Ascend310P3 --input_format=NCHW --input_fp16_nodes=data --output_type=FP32 --out_nodes=prob:0 # 在“样例目录/data”目录下准备样例图片,如果data目录不存在,可在“样例目录”下执行mkdir -p data命令创建。 cd data wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg --no-check-certificate wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog2_1024_683.jpg --no-check-certificate python3 ../script/transferPic.py # 编译运行 # 在“样例目录”下执行如下命令配置环境变量 export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub # 在“样例目录”下执行如下命令编译可执行文件。 mkdir -p build/intermediates/host cd build/intermediates/host cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE make # 在“样例目录/out”目录下,执行如下命令运行编译的文件 ./main
容器安装
- 从AscendHub拉取容器镜像,请确保安装环境能够连接网络。
- 请确保宿主机已安装Docker(可执行docker version查询)。若未安装,请参见部署Docker安装。
- 单击推理容器镜像链接,根据“版本配套”确定所需的容器镜像版本。
- 获取镜像。
- 单击登录用户名下拉设置镜像下载凭证。
- 选择“镜像版本”页签,下载对应版本的容器镜像,单击“立即下载”。
- 根据弹出的下载页面提示,复制获取权限命令,在宿主机上执行命令后,填写镜像下载凭证。
- 复制下载镜像命令,然后在宿主机执行命令拉取镜像。如果在下载镜像时,配置登录AscendHub权限回显类似以下报错,可按照以下方法解决。
Error response from daemon: Get https://ascendhub.huawei.com/v2/: x509: certificate signed by unknown authority
执行vi /etc/docker/daemon.json命令,在文件“insecure-registries”参数中加入AscendHub网址,如下加粗内容所示。
{ "registry-mirrors": ["http://docker.mirrors.ustc.edu.cn"], "insecure-registries": ["docker.mirrors.ustc.edu.cn", "ascendhub-registry.rnd.huawei.com", "registry.docker-cn.com", "ustc-edu-cn.mirror.aliyuncs.com","ascendhub.huawei.com"], "experimental" : true }
添加内容后,执行以下命令重启Docker。systemctl daemon-reload systemctl restart docker
- 选择“镜像概述”页签,查看“如何使用镜像”中的操作步骤启动容器。
用户可执行ls /dev/ | grep davinci*命令查询宿主机上可用的NPU(如/dev/davinci0),启动容器时挂载可用的NPU到容器。