4.2. 快速跑通PCIe模式
备注
注意: 若您使用非x86架构的主机进行开发,模型转换还需要使用一台x86主机完成,开发及部署可以直接在裸机上进行。若有问题,请联系我们获取技术支持。
本教程后续的操作若无特殊说明,均是在x86主机上的ubuntu开发环境中。
BModel模型的编译量化:可按照指引配置docker环境,在docker环境中进行模型的编译量化。
BModel模型验证:需要在插有PCIe加速卡的主机中运行验证。
程序编译:本章假设您的开发环境和运行环境为同一架构。需要依次在开发环境中安装libsophon、sophon-mw,随后进行程序编译。
算法的应用部署:按照本章指引依次在运行环境中安装libsophon、sophon-mw;您也可以添加您需要的库包以及其他程序代码,构建您自己的生产环境。
4.2.1. 开发环境
按照如下步骤搭建环境:
一台安装了Ubuntu16.04/18.04/20.04的x86主机,运行内存建议12GB以上
下载SOPHONSDK开发包 SDK下载页面 。 请注意后续步骤适用SDK为Release_<date>-public.zip,其中<date>为SDK Release 日期,会随着SDK的升级而不断变化。
解压SDK压缩包
1sudo apt-get install p7zip 2sudo apt-get install p7zip-full 37z x Release_<date>-public.zip # <date>指日期 4cd Release_<date>-public
随后依次进行 tpu-mlir 环境搭建,libsophon环境搭建,sophon-mw 环境搭建
4.2.1.1. tpu-mlir 环境搭建
4.2.1.2. libsophon环境搭建
注意
libsophon 在不同的Linux发行版上提供不同类型的安装方式,请根据您的系统选择对应的方式,不要在一台机器上混用多种安装方式。
如果您安装的是V2.7.0,V3.0.0下BM1684 SDK的驱动,请先卸载旧的BM1684 SDK的驱动,请参考如下步骤;若您安装的是V22.xx.xx或者V23.xx.xx的SDK,请参考《 libsophon使用手册 》卸载旧驱动。
1# 进入SDK安装目录下的scripts文件夹,执行 2sudo ./remove_driver_pcie.sh
如果您使用的是Debian/Ubuntu系统,安装包由三个文件构成:sophon-driver_<x.y.z>_$arch.deb、sophon-libsophon_<x.y.z>_$arch.deb、sophon-libsophon-dev_<x.y.z>_$arch.deb
备注
其中,<x.y.z> 指版本号,$arch 指当前机器的硬件架构,使用如下命令可获取当前服务器的arch。通常x86_64机器对应的硬件架构是amd64,arm64机器对应的硬件架构是arm64。请选择您对应的安装文件进行安装。
1uname -m
可参考如下步骤进行安装:
1cd libsophon_<date>_<hash> 2# 安装依赖库,只需要执行一次 3sudo apt install dkms libncurses5 4sudo dpkg -i sophon-*.deb 5# 在终端执行如下命令,或者log out再log in当前用户后即可使用bm-smi等命令 6source /etc/profile
注意
检查驱动是否安装成功:
执行 ls /dev/bm*
看看是否有 /dev/bm-sohponX (X表示0-N),如果有表示安装成功。 正常情况下输出如下信息:
/dev/bmdev-ctl /dev/bm-sophon0
如果您使用其它Linux系统,安装包只由一个文件构成:libsophon_<x.y.z>_$arch.tar.gz,可参考《 libsophon使用手册 》进行安装。
其他疑问请参考《 libsophon使用手册 》
4.2.1.3. sophon-mw 环境搭建
在安装sophon-mw时,请确保已经安装libsophon
如果您使用的是Debian/Ubuntu系统,安装包由四个文件构成,分别为:sophon-mw-sophon-ffmpeg_<x.y.z>_$arch.deb、sophon-mw-sophon-ffmpeg-dev_<x.y.z>_$arch.deb、sophon-mw-sophon-opencv_<x.y.z>_$arch.deb、sophon-mw-sophon-opencv-dev_<x.y.z>_$arch.deb,请选择您对应的安装文件参考如下步骤进行安装:
1cd sophon-mw_<date>_<hash> 2# 必须先安装sophon-mw-sophon-ffmpeg,再安装sophon-mw-sophon-opencv 3sudo dpkg -i sophon-mw-sophon-ffmpeg_<x.y.z>_*.deb sophon-mw-sophon-ffmpeg-dev_<x.y.z>_*.deb 4sudo dpkg -i sophon-mw-sophon-opencv_<x.y.z>_*.deb sophon-mw-sophon-opencv-dev_<x.y.z>_*.deb 5# 在终端执行如下命令,或者log out再log in当前用户后即可使用安装的工具 6source /etc/profile
如果您使用的是其他Linux系统,安装包为:sophon-mw_<x.y.z>_$arch.tar.gz,可参考《 MULTIMEDIA使用手册 》进行安装。
其他疑问请参考《 MULTIMEDIA使用手册 》
4.2.1.4. sophon-sail 环境搭建
若您需要使用SAIL库,您还需要编译安装sophon-sail,否则可跳过本章节。
需从算能官网上下载符合环境依赖的SDK,里面有sophon-sail的压缩包,命名如sophon-sail_x.y.z.tar.gz,x.y.z表示版本号。
您可以打开sophon-sail压缩包里面提供的用户手册(命名为sophon-sail_zh.pdf),或者打开在线链接 SOPHON-SAIL用户手册 ,参考编译安装指南章节,选择您需要的模式(C++/Python,PCIe MODE)进行安装。
4.2.2. 运行环境
按照如下步骤搭建环境:
首先您需要将PCIe加速卡插到x86主机中,随后检查PCIe加速卡能否正常被系统识别:
打开终端执行 lspci | grep Sophon
检查卡是否能够被识别。正常情况下应该输出如下信息:
101:00.0 Processing accelerators: SOPHGO Technologies Inc. BM1684X, SOPHON Series Deep Learning Accelerator (rev 01)
若PCIe加速卡没有被系统正常识别,则需要首先排除故障,通常引起PCIe加速卡未被正常识别的可能原因有:
PCIe加速卡在插糟中没有插紧;
检查插卡的槽位是否是标准的X16槽位,X8槽位的功率支持通常最大只有45W,不建议使用;
PCIe加速卡从PCIe直接供电,不需要外接电源,若连接了外接电源,可能导致卡不能被正常识别;
搭载三块BM1684/BM1684X以上PCIe加速卡需要足够的散热条件,若风道和风量不能符合PCIe加速卡的被动散热要求,则需要通过BIOS将风扇转速设置到足够大或者加装额外的风扇进行散热。( 建议的风扇购买链接1, 建议的风扇购买链接2, 建议的风扇购买链接3)
下载SOPHONSDK开发包。 请注意后续步骤适用SDK为Release_<date>-public.zip,其中<date>为SDK Release 日期,会随着SDK的升级而不断变化。
解压SDK压缩包
1sudo apt-get install p7zip 2sudo apt-get install p7zip-full 37z x Release_<date>-public.zip # <date>指日期 4cd Release_<date>-public
按照上述 libsophon环境搭建、sophon-mw环境搭建步骤,依次安装环境
若您需要使用SAIL库,您还需要编译安装sophon-sail
4.2.3. PCIe模式跑通Yolov5
按照上述步骤搭建环境后,请尝试跑通 SOPHON-DEMO YOLOv5 例程 例程。