当前位置: 首页 > news >正文

昇腾310P软件安装说明

一、背景介绍

近期项目中要使用华为的310P AI推理模组,该模组作为EP端通过PCIE x16连接主处理器D3000。为此需要再D3000系统下进行310P的设备驱动安装操作。

二、驱动安装

1、创建运行用户和组

$ groupadd HwHiAiUser
$ useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash

2、检查系统环境

查看是否安装make

$ make --version

检查是否安装dkmsgcclinux-header

$ rpm -qa | grep dkms
$ rpm -qa | grep gcc
$ rpm -qa | grep kernel-devel-$(uname -r)

3、安装驱动

请移动到驱动包保存目录下,驱动安装包格式一般为

Ascend-hdk-310p-npu-driver_x.x.x_linux-{arch}.run

为安装包添加权限

$ chmod +x Ascend-hdk-310p-npu-driver_x.x.x_linux-{arch}.run

检查安装包的完整性

$ ./Ascend-hdk-310p-npu-driver_x.x.x_linux-{arch}.run --check

安装驱动

$ ./Ascend-hdk-310p-npu-driver_x.x.x_linux-{arch}.run --full

检查驱动是否安装成功

$ npu-smi info

若正常回显,则安装成功。

注:如果安装过程中出现了OS兼容性问题,需要手动将系统内核源码中的Makefile里的警告关闭,Makefile一般在/usr/src/linux-headers-$(uname -r)

下,修改Makefile如下

使用vi / vim打开Makefile;

搜索关键词Wall;

在Wall所在字段的末尾添加 -w;

保存后重新安装驱动

4、安装固件

npu执行正常,则无需重新安装固件

固件安装包的命名格式一般为

Ascend-hdk-310p-npu-firmware_x.x.x.x.X.run

同驱动安装一样,先check,再full,如果返回successful,则安装成功

三、开发工具安装

1、安装CANN软件包

CANN开发包的命名格式为Ascend-cann-toolkit_{version}_linux-{arch}.run

为软件包添加执行权限

$ chmod +x Ascend-cann-toolkit_{version}_linux-{arch}.run

$ ./Ascend-cann-toolkit_{version}_linux-{arch}.run --check

若返回正常,则执行安装

$ ./Ascend-cann-toolkit_{version}_linux-{arch}.run --install

返回success则表示安装成功

安装路径默认在/usr/local/Ascend/ascend-toolkit

配置环境变量

$ source /usr/local/Ascend/ascend-toolkit/set_env.sh

或者将 source /usr/local/Ascend/ascend-toolkit/set_env.sh写入~/.bashrc

2、安装算子包

算子包的命名格式一般为Ascend-cann-kernels-{chip_type}_{version}_linux.run

为软件包添加权限

$ chmod +x Ascend-cann-kernels-{chip_type}_{version}_linux.run

检查安装包的完整性

$ ./Ascend-cann-kernels-{chip_type}_{version}_linux.run --check

安装

$ ./Ascend-cann-kernels-{chip_type}_{version}_linux.run --install

默认情况下,算子包会安装到ascend-toolkit

/usr/local/Ascend/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/kernel

3、安装运行环境

注:如果用户开发环境和运行环境为同一环境下,可以忽略

运行环境可以视功能性的不同来选择使用nnae或者nnrt

NNRT支持模型在NPU上的离线推理

NNAE则支持模型在NPU上的在线训练与离线推理

由于310P只能用来离线推理,因此安装NNRT即可

NNRT软件包的命名格式一般为Ascend-cann-nnrt_{version}_linux-{arch}.run

检查安装包的完整性

$ ./Ascend-cann-nnrt_{version}_linux-{arch}.run --check

安装

$ ./Ascend-cann-nnrt_{version}_linux-{arch}.run --full

安装算子包,这里增加安装时类型

获取算子包Ascend-cann-kernels-{chip_type}_{version}_linux.run

检查安装包完整性

$ ./Ascend-cann-kernels-{chip_type}_{version}_linux.run --check

安装

$ ./Ascend-cann-kernels-{chip_type}_{version}_linux.run --full --type=nnrt

4、安装程序开发第三方库

首先配置系统环境,方便程序编译启动

$ vi ~/.bashrc$ export CPU_ARCH=`arch`$ export THIRDPART_PATH=/usr/local/Ascend/thirdpart/${CPU_ARCH}$ export LD_LIBRARY_PATH=${THIRDPART_PATH}/lib:$LD_LIBRARY_PATH$ export INSTALL_DIR=/usr/local/Ascend/ascend-toolkit/latest

执行

$ source ~/.bashrc 

使修改的系统变量生效

创建第三方库目录

$ mkdir -p ${THIRDPART_PATH}

解压samples-master.zip到用户指定目录

$ unzip samples-master.zip

将程序运行脚本添加到THIRDPART_PATH

$ cp -r /path/to/samples-master/common ${THIRDPART_PATH}
  • 安装X264媒体库

获取X264源码包x264-master.tar.gz

解压

$ tar zxvf x264-master.tar.gz$ cd x264-master

安装x264

$ ./configure --enable-shared --disable-asm$ make -j64$ make install$ cp /usr/local/lib/libx264.so.164 /lib
  • 安装FFmpeg

在安装FFmpeg之前首先需要检查系统内是否安装SDL2媒体开发库

$ rpm -qa | grep SDL2

如果没有,提供离线安装方式,首先获取SDL2离线安装包SDL2-2.0.14.tar.gz

解压

$ tar zxvf SDL2-2.0.14.tar.gz$ cd SDL2-2.0.14$ ./configure -prefix=/usr$ make -j64$ make install$ rm -vf /usr/lib/libSDL2*.a

安装ffmpeg

获取ffmpeg源码包ffmpeg-4.1.3.tar.gz

$ tar -zxvf ffmpeg-4.1.3.tar.gz$ cd ffmpeg-4.1.3

安装ffmpeg

$ ./configure --enable-shared --enable-pic --enable-static --disable-x86asm --enable-libx264 --enable-gpl --prefix=${THIRDPART_PATH}$ make -j64$ make install
  • 安装OpenCV

获取OpenCV源码包opencv-4.9.0.tar.gz

$ tar zxvf opencv-4.9.0.tar.gz$ cd opencv-4.9.0$ mkdir build && cd build$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D
CMAKE_PREFIX_PATH=${THIRDPART_PATH} -D WITH_STREAMER=ON -D WITH_CANN=ON -D BUILD_OPENCV_HIGHGUI=ON ..$ make -j64$ make install$ ln -s /usr/local/include/opencv4/opencv2 /usr/local/include/opencv2

编辑~/.bashrc

/usr/local/lib添加到LD_LIBRARY_PATH

$ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  • 安装acllite

编译并安装acllite

$ cd /samples/cplusplus/common/acllite$ make -j64$ make install
  • 安装presentagent

获取protobuf源码protobuf.tar.gz

编译安装protobuf

$ tar zxvf protobuf.tar.gz$ cd protobuf$ ./autogen.sh$ ./configure --prefix=${THIRDPART_PATH}$ make clean$ make -j64$ make install

进入presentagent源码目录并编译

$ cd /path/to/samples/cplusplus/common/presenteragent/proto$ ${THIRDPART_PATH}/bin/protoc presenter_message.proto --cpp_out=./

开始编译presentagnet

$ cd ..$ make -j64$ make install

四、固件在线更新

310P的固件可以在linux系统下面在线更新,注意先升级固件再升级驱动,执行下面操作

固件升级

./Ascend-hdk-310p-npu-firmware_7.6.t7.0.b052.run --upgrade

然后再升级驱动

./Ascend-hdk-310p-npu-driver_24.1.t35_linux-aarch64.run --upgrade

五、运算性能测试

310P目前只支持int8和fp16两种类型的数据进行运算性能测试

ascend-dmi -f -t int8
ascend-dmi -f -t fp16
其余类型均不支持
http://www.dtcms.com/a/290986.html

相关文章:

  • java和ptyhon对比
  • 网络编程 示例
  • A316-HF-DAC-V1:专业USB HiFi音频解码器评估板技术解析
  • Linux 文件操作详解:结构、系统调用、权限与实践
  • C语言-字符串数组
  • DL00691-基于深度学习的轴承表面缺陷目标检测含源码python
  • 【STM32】485接口原理
  • Jmeter如何做接口测试?
  • soft_err错误
  • 【C语言进阶】结构体练习:通讯录
  • OCR 赋能发票管理系统:守护医疗票据合规,让管理更智能
  • Milvus:开源向量数据库的初识
  • 第17章 基于AB实验的增长实践——沉淀想法:实验记忆
  • 基于deepseek的LORA微调
  • react-window 大数据列表和表格数据渲染组件之虚拟滚动
  • Neo4j graph database
  • 剖析Sully.ai:革新医疗领域的AI助手功能启示
  • 20. TaskExecutor与ResourceManager心跳
  • HTML前端颜色渐变动画完整指南
  • 处理excel/wps表格中数值格式的警告的工具和脚本
  • Python 进阶(五): Excel 基本操作
  • Android系统更新实现--OTA空中升级
  • Selenium 处理表单、弹窗与文件上传:从基础到实战
  • 杰发科技AC7840——硬件crc使用
  • 7月21号打卡
  • 破解哈希极化:基于主动路径规划的智算网络负载均衡方案
  • Shell 编程基础入门从认识到实战
  • OSS文件上传(三):断点续传
  • C语言关键字深度解析:从入门到精通
  • 数字ic后端设计从入门到精通12(含fusion compiler, tcl教学)全定制设计进阶