4.2. 快速跑通PCIe模式

备注

注意: 若您使用非x86架构的主机进行开发,模型转换还需要使用一台x86主机完成,开发及部署可以直接在裸机上进行。若有问题,请联系我们获取技术支持。

本教程后续的操作若无特殊说明,均是在x86主机上的ubuntu开发环境中。

BModel模型的编译量化:可按照指引配置docker环境,在docker环境中进行模型的编译量化。

BModel模型验证:需要在插有PCIe加速卡的主机中运行验证。

程序编译:本章假设您的开发环境和运行环境为同一架构。需要依次在开发环境中安装libsophon、sophon-mw,随后进行程序编译。

算法的应用部署:按照本章指引依次在运行环境中安装libsophon、sophon-mw;您也可以添加您需要的库包以及其他程序代码,构建您自己的生产环境。

4.2.1. 开发环境

按照如下步骤搭建环境:

  1. 一台安装了Ubuntu16.04/18.04/20.04的x86主机,运行内存建议12GB以上

  2. 下载SOPHONSDK开发包 SDK下载页面 。 请注意后续步骤适用SDK为Release_<date>-public.zip,其中<date>为SDK Release 日期,会随着SDK的升级而不断变化。

  3. 解压SDK压缩包

    1sudo apt-get install p7zip
    2sudo apt-get install p7zip-full
    37z x Release_<date>-public.zip  # <date>指日期
    4cd Release_<date>-public
    
  4. 随后依次进行 tpu-mlir 环境搭建,libsophon环境搭建,sophon-mw 环境搭建

4.2.1.1. tpu-mlir 环境搭建

tpu-mlir 环境搭建

4.2.1.2. libsophon环境搭建

注意

libsophon 在不同的Linux发行版上提供不同类型的安装方式,请根据您的系统选择对应的方式,不要在一台机器上混用多种安装方式。

  1. 如果您安装的是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
    
  2. 如果您使用的是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

  1. 如果您使用其它Linux系统,安装包只由一个文件构成:libsophon_<x.y.z>_$arch.tar.gz,可参考《 libsophon使用手册 》进行安装。

其他疑问请参考《 libsophon使用手册

4.2.1.3. sophon-mw 环境搭建

在安装sophon-mw时,请确保已经安装libsophon

  1. 如果您使用的是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
    
  2. 如果您使用的是其他Linux系统,安装包为:sophon-mw_<x.y.z>_$arch.tar.gz,可参考《 MULTIMEDIA使用手册 》进行安装。

其他疑问请参考《 MULTIMEDIA使用手册

4.2.1.4. sophon-sail 环境搭建

若您需要使用SAIL库,您还需要编译安装sophon-sail,否则可跳过本章节。

  1. 需从算能官网上下载符合环境依赖的SDK,里面有sophon-sail的压缩包,命名如sophon-sail_x.y.z.tar.gz,x.y.z表示版本号。

  2. 您可以打开sophon-sail压缩包里面提供的用户手册(命名为sophon-sail_zh.pdf),或者打开在线链接 SOPHON-SAIL用户手册 ,参考编译安装指南章节,选择您需要的模式(C++/Python,PCIe MODE)进行安装。

4.2.2. 运行环境

按照如下步骤搭建环境:

  1. 首先您需要将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

  1. 下载SOPHONSDK开发包。 请注意后续步骤适用SDK为Release_<date>-public.zip,其中<date>为SDK Release 日期,会随着SDK的升级而不断变化。

  2. 解压SDK压缩包

    1sudo apt-get install p7zip
    2sudo apt-get install p7zip-full
    37z x Release_<date>-public.zip  # <date>指日期
    4cd Release_<date>-public
    
  3. 按照上述 libsophon环境搭建、sophon-mw环境搭建步骤,依次安装环境

  4. 若您需要使用SAIL库,您还需要编译安装sophon-sail

4.2.3. PCIe模式跑通Yolov5

按照上述步骤搭建环境后,请尝试跑通 SOPHON-DEMO YOLOv5 例程 例程。