Atlas 500 Pro 智能边缘服务器推理环境搭建

举报
jackwangcumt 发表于 2024/03/24 17:36:05 2024/03/24
【摘要】 在Atlas 500 Pro 智能边缘服务器上采用物理机部署的模式,重点说明安装昇腾NPU驱动、昇腾NPU固件和CANN软件的安装,并安装opencv,ffmpeg以及样例sampleYOLOV7实现目标检测。

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.com/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

      显示如下信息,则说明驱动安装成功。

npu-smi info.jpg

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 

图片1.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。