Atlas 500 Pro 智能边缘服务器推理环境搭建
1 前提条件
因项目研发需要,公司购置了一台 Atlas 500 Pro 智能边缘服务器,发货过来的时候,服务器并未安装操作系统。我们通过一台笔记本电脑,通过网线直连的方式,连接到Atlas 500 Pro 智能边缘服务器,并通过iBMC WebUI 安装了操作系统Ubuntu 20.04 LTS Server。总统来说,通过Web工具来安装操作系统,还是挺方便的,只需要下载好.iso镜像文件即可,这里需要注意一下CPU的架构,我这里是ARM架构的,需要下载ubuntu-20.04.4-live-server-arm64.iso ,注意不要下载ubuntu-22.04.4-live-server-arm64.iso了,否则,则无法正确识别和安装。具体安装流程可以参考官方文档:https://support.huawei.cn/enterprise/zh/doc/EDOC1100334331/fad156c9 。
在成功安装好操作系统后,需要首先查看一下系统的内核版本,命令如下:
#查看内核版本
root@atlas500ai:/home/kzroot# uname -r
5.4.0-100-generic
#查看AI推理卡是否在位
root@atlas500ai:/home/kzroot# lspci | grep d500
01:00.0 Processing accelerators: Huawei Technologies Co., Ltd. Device d500 (rev 23)
注意:需要记录一下这个内核版本,Ubuntu系统会自动升级内核,这个过程可能会导致安装好的NPU驱动出现问题。
一般来说,基本的AI推理环境,需要在Atlas 500 Pro 智能边缘服务器上正确安装昇腾NPU驱动、昇腾NPU固件和CANN软件的安装,我这里采用物理机部署的模式,软件需要从官网进行下载,我这里下载的文件列表如下:
软件类型 | 软件文件名 |
NPU固件 | Ascend-hdk-310p-npu-firmware_7.0.0.5.242.run |
NPU驱动 | Ascend-hdk-310p-npu-driver_23.0.rc3_linux-aarch64.run |
CANN 开发套件包 | Ascend-cann-toolkit_7.0.RC1_linux-aarch64.run |
MCU | Ascend-hdk-310p-mcu_23.2.2.zip |
2 固件驱动安装
首先通过SSH工具,以root用户登录Atlas 500 Pro 服务器,并创建驱动运行用户HwHiAiUser,安装驱动时无需指定运行用户,默认即为HwHiAiUser。具体命令如下:
root@atlas500ai:/home/kzroot# groupadd HwHiAiUser
root@atlas500ai:/home/kzroot# useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
将上述下载的软件包上传到服务器有权限的目录如mysoft,并通过chmod+x 命令添加可执行的权限。执行如下命令添加gcc和make依赖项:
root@atlas500ai:/home/kzroot/mysoft# apt install gcc
root@atlas500ai:/home/kzroot/mysoft# apt install make
执行以下命令,完成驱动安装:
root@atlas500ai:/home/kzroot/mysoft# ./Ascend-hdk-310p-npu-driver_23.0.rc3_linux-aarch64.run --full --install-for-all
如出现如下信息片段,则说明驱动安装成功:
Driver package installed successfully!
执行以下命令,完成固件安装:
root@atlas500ai:/home/kzroot/mysoft# ./Ascend-hdk-310p-npu-firmware_7.0.0.5.242.run --full
如出现如下信息片段,则说明固件安装成功:
Firmware package installed successfully!
安装成功后,重启服务器生效:
reboot
重启后,重新登录服务器,执行如下命令查看NPU信息,如下所示:
root@atlas500ai:/home/kzroot# npu-smi info
显示如下信息,则说明驱动安装成功。
3 升级MCU
MCU是推理卡带外管理模块,具备单板监测、故障上报等功能。出厂时推理卡已集成了初始版本,为了保障所有功能正常使用,请将MCU升级到配套版本。注意:如果配备了多个推理卡,需要逐个升级。具体命令如下:
# 安装unzip工具
root@atlas500ai:/home/kzroot/mysoft# apt install unzip
# 解压zip文件
root@atlas500ai:/home/kzroot/mysoft# unzip Ascend-hdk-310p-mcu_23.2.2.zip
# 执行npu-smi info -l命令查询NPU ID(推理卡的设备编号)
root@atlas500ai:/home/kzroot/mysoft# npu-smi info -l
# 执行如下命令启动升级
root@atlas500ai:/home/kzroot/mysoft# npu-smi upgrade -t mcu -i 1 -f Ascend-hdk-310p-mcu_23.2.2.hpm
# 执行如下命令使新版本生效
root@atlas500ai:/home/kzroot/mysoft# npu-smi upgrade -a mcu -i 1
# 等待30s,查询MCU版本号,确保升级成功
root@atlas500ai:/home/kzroot/mysoft# npu-smi upgrade -b mcu -i 1
4 安装CANN
安装CANN软件前需安装相关依赖,执行如下命令:
#在root用户下执行如下命令检查源是否可用
root@atlas500ai:/home/kzroot# apt-get update
#如果报错或执行时间过程,尝试执行:
root@atlas500ai:/home/kzroot# apt-get update --allow-unauthenticated
root@atlas500ai:/home/kzroot# 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 3.8,执行命令如下:
wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz
tar -zxvf Python-3.8.10.tgz
cd Python-3.8.10
./configure --prefix=/usr/local/python3.8.10 --enable-loadable-sqlite-extensions --enable-shared
make
make install
参数说明如下:
- “--prefix”:用于指定Python安装路径,用户根据实际情况进行修改
- “--enable-loadable-sqlite-extensions”:用于加载libsqlite3-dev依赖
- “--enable-shared”:用于编译出libpython3.7m.so.1.0动态库
设置Python环境变量:
vi ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/python3.8.10/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/python3.8.10/bin:$PATH
source ~/.bashrc
验证python安装:
python3 -V
pip3 -V
pip3 install --upgrade pip
pip3 install attrs cython numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py
安装CANN开发者套件:
root@atlas500ai:/home/kzroot/mysoft# export USER=root
root@atlas500ai:/home/kzroot/mysoft# chmod +x Ascend-cann-toolkit_7.0.RC1_linux-aarch64.run
root@atlas500ai:/home/kzroot/mysoft# ./Ascend-cann-toolkit_7.0.RC1_linux-aarch64.run --install --install-for-all --quiet
提示如下信息,则说明安装成功:
Driver: Installed in /usr/local/Ascend/driver.
Toolkit: Ascend-cann-toolkit_7.0.RC1_linux-aarch64 install success, installed in /usr/local/Ascend.
Please make sure that the environment variables have been configured.
- To take effect for all users, you can add "source /usr/local/Ascend/ascend-toolkit/set_env.sh" to /etc/profile.
- To take effect for current user, you can exec command below: source /usr/local/Ascend/ascend-toolkit/set_env.sh
or add "source /usr/local/Ascend/ascend-toolkit/set_env.sh" to ~/.bashrc.
其中的提示,可以说明了如何添加环境变量,即 添加 source /usr/local/Ascend/ascend-toolkit/set_env.sh 到 ~/.bashrc 中,用 source ~/.bashrc 命令使其立即生效。CANN Toolkit安装完成后,用户即可以开始开发或运行业务。
4 Sample安装
该Sample样例支持Atlas 300I Pro 推理卡/Atlas 300V Pro 视频解析卡/Atlas 300V 视频解析卡。
root@atlas500ai:/home/kzroot/mysoft# apt-get install git
#如果报错,则 git config --global http.sslVerify "false" 命令关闭证书检验
root@atlas500ai:/home/kzroot/mysoft# git clone https://gitee.com/ascend/samples.git
设置环境变量:
export LD_LIBRARY_PATH=/usr/local/python3.8.10/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/python3.8.10/bin:$PATH
source /usr/local/Ascend/ascend-toolkit/set_env.sh
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export CPU_ARCH=`arch`
export THIRDPART_PATH=/usr/local/Ascend/thirdpart/${CPU_ARCH} #代码编译时链接samples所依赖的相关库文件
export INSTALL_DIR=/usr/local/Ascend/ascend-toolkit/latest
acllite 编译安装:
#源码安装ffmpeg主要是为了acllite库的安装 执行以下命令安装x264
# 下载x264
cd /home/kzroot/mysoft
git clone https://code.videolan.org/videolan/x264.git
cd x264
# 安装x264
./configure --enable-shared --disable-asm
make
sudo make install
sudo cp /usr/local/lib/libx264.so.164 /lib
#####################################################
# 下载ffmpeg
cd /home/kzroot/mysoft
wget http://www.ffmpeg.org/releases/ffmpeg-4.1.3.tar.gz --no-check-certificate
tar -zxvf ffmpeg-4.1.3.tar.gz
cd ffmpeg-4.1.3
# 安装ffmpeg , ${THIRDPART_PATH} --> /usr/local/Ascend/thirdpart/aarch64
./configure --enable-shared --enable-pic --enable-static --disable-x86asm --enable-libx264 --enable-gpl --prefix=${THIRDPART_PATH}
make -j8
make install
####################################################
#安装OpenCV
root@atlas500ai:/home/kzroot/mysoft# wget -O opencv.zip https://github.com/opencv/opencv/archive/4.9.0.zip --no-check-certificate
unzip opencv.zip
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DPYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-DPYTHON_LIBRARY=$(python3 -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))") \
../opencv-4.9.0/
make -j8
make install
sudo ln -s /usr/include/opencv4/opencv2 /usr/include/opencv2
####################################################
#安装acllite
cd /home/kzroot/mysoft/samples/inference/acllite/cplusplus
make
make install
5 sampleYOLOV7样例运行
该样例官方说明文档见https://gitee.com/ascend/samples/tree/master/inference/modelInference/sampleYOLOV7 。下面给出核心步骤:
# 下载图片
cd $HOME/samples/inference/modelInference/sampleYOLOV7/data
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg
#模型转换
# YOLOV7原始模型转换为适配昇腾处理器的离线模型(*.om文件),放在model路径下
cd $HOME/samples/inference/modelInference/sampleYOLOV7/model
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov7/yolov7x.onnx
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov7/aipp.cfg
atc --model=yolov7x.onnx --framework=5 --output=yolov7x --input_shape="images:1,3,640,640" --soc_version=Ascend310 --insert_op_conf=aipp.cfg
#编译
cd $HOME/samples/inference/modelInference/sampleYOLOV7/scripts
bash sample_build.sh
#运行
bash sample_run.sh
- 点赞
- 收藏
- 关注作者
评论(0)