3.2. SDK软件包内容简介

  • BM1684 & BM1684X SOPHONSDK是算能基于BM1684、BM1684X定制的深度学习SDK;

  • BM1688 & CV186AH SOPHONSDK是算能基于BM1688、CV186AH定制的深度学习SDK;

SDK涵盖了神经网络推理阶段所需的模型优化、高效运行支持等能力,为深度学习应用开发和部署提供易用、高效的全栈式解决方案。

3.2.1. 获取SDK

注意

需要根据您当前的产品选择 BM1688/CV186AH 或 BM1684/BM1684X 对应的最新SDK。

3.2.2. SDK主要模块

../_images/new_SophonSDK.png
  1. 基础工具包

    • 算丰深度学习处理加速库 SAIL : 支持Python/C++的高级接口,是对BMRuntime、BMCV、sophon-mw等底层库接口的封装,供用户进行深度学习应用开发。

    • 模型编译量化工具链 TPU-MLIR : 为Tensor Processing Unit编译器工程提供一套完整的工具链,可以将不同框架下预训练的神经网络,转化为可以在算能智能视觉深度学习处理器上高效运行的二进制文件BModel。目前直接支持的框架包括torch、tflite、onnx和Caffe等。

    • 硬件驱动及运行库 LIBSOPHON : 包含BMCV、BMRuntime、BMLib等库,用来驱动VPP、智能视觉深度学习处理器等硬件,完成图像处理、张量运算、模型推理等操作,供用户进行深度学习应用开发。

    • 多媒体库 SOPHON-MW/SOPHON-MEDIA : 支持SOPHON设备硬件加速的SOPHON-OpenCV和SOPHON-FFmpeg,用来驱动VPU、JPU等硬件,支持RTSP流、GB28181流的解析,视频及图片的编解码加速等,供用户进行深度学习应用开发。

    • 张量运算及图像处理库 BMCV : 色彩空间转换、尺度变换、仿射变换、投射变换、线性变换、画框、JPEG编码、BASE64编码、NMS、排序、特征匹配。

    • 设备管理 BMLib : 基础接口:设备Handle的管理,内存管理、数据搬运、API的发送和同步、A53使能等。

  2. 快速移植示例和工具包

    • 综合例程 DEMO sophon-demo 提供了x86和SoC环境下针对单模型或场景的综合例程,供用户在深度学习应用开发过程中参考。

    • 数据流处理工具 STREAMsophon-stream 本软件基于插件化的思想,基于C++11的支持多路数据流并发处理的流水线框架。基于现有的接口,SOPHON-STREAM 对用户具有易使用、易二次开发的优点,可以大大简化用户配置工程或添加插件的复杂度。

    • 高性能推理 PIPELINE sophon-pipeline 提供了一个简易的基于pipeline的高性能推理框架,能够将前处理/推理/后处理分别运行在3个线程上,最大化的实现并行,供用户在深度学习应用开发过程中参考。

  3. 高阶工具包

    • 算法并行加速编程库 TPUKernel:基于SOPHON BM1684、BM1684X底层原子操作接口的底层编程接口,需要用户熟悉设备硬件架构和指令集。

    • 模型性能和精度验证工具 TPUPerf : 可对模型进行性能分析和精度验证。

3.2.3. SDK文件目录

SDK提供了多个文件夹模块,具体如下表所示:

文件夹名

功能描述

libsophon

硬件加速基础库 (图像处理/张量运算/模型推理)、工具

sophon-mw

BM1684/BM1684X 平台多媒体加速库

sophon-media

BM1688/CV186AH 平台多媒体加速库

sophon-sail

对底层模型推理、图像处理API再封装(提供C++/Python API)

tpu-kernel

Tensor Computing Processor底层开发接口

tpu-mlir

MLIR编译器工具链 (模型转换/量化)

tpu-perf

模型性能验证工具 (耗时/精度)

sophon-rpc

仅BM1684X支持,PCIe模式使用

sophon-img

SoC模式刷机文件

sophon-demo

模型推理示例程序

sophon-pipeline

流水线式高性能推理样例程序

sophon-stream

多路流媒体处理框架

解压后的 BM1688 & CV186AH SDK, BM1684 & BM1684X SDK文件结构分别参考如下:

 1BM1688 & CV186AH SDK v<x.x.0>
 2├── doc
 3   ├── BMLib_Technical_Reference_Manual.pdf
 4   ├── BMLIB开发参考手册.pdf
 5   ├── LIBSOPHON_User_Guide.pdf
 6   ├── LIBSOPHON使用手册.pdf
 7   ├── SOPHON BMRuntime Technical Reference Manual.pdf
 8   ├── SOPHON-SAIL_en.pdf
 9   ├── SOPHON-SAIL_zh.pdf
10   ├── TPU-MLIR_Quick_Start.pdf
11   ├── TPU-MLIR_Technical_Reference_Manual.pdf
12   ├── TPU-MLIR开发参考手册.pdf
13   ├── TPU-MLIR快速入门指南.pdf
14   ├── 算能边缘产品BMCV开发参考手册.pdf
15   ├── 算能边缘产品BMRUNTIME开发参考手册.pdf
16   ├── 算能边缘产品BSP开发参考手册_en.pdf
17   ├── 算能边缘产品BSP开发参考手册.pdf
18   ├── 算能边缘产品MULTIMEDIA常见问题手册.pdf
19   ├── 算能边缘产品MULTIMEDIA开发参考手册.pdf
20   └── 算能边缘产品多媒体使用参考指南.pdf
21├── isp_tool
22   └── CviPQtool_<date>.zip
23├── sophon-demo
24   ├── release_version.txt
25   ├── sophon-demo.MD5
26   └── sophon-demo_v<x.y.z>_<hash>_<date>.tar.gz
27├── sophon-img
28   ├── boot
29      ├── boot.itb
30      ├── boot.scr.emmc
31      ├── fip.bin
32      ├── fip_debug.bin
33      └── multi.its
34   ├── bsp-debs
35      ├── bmssm_soc_<x.y.z>_SDK.deb
36      ├── linux-headers-<x.y.z>.deb
37      ├── linux-image-<x.y.z>-dbg.deb
38      ├── linux-image-<x.y.z>.deb
39      ├── linux-libc-dev_<x.y.z>_arm64.deb
40      ├── qt5-base.deb
41      ├── sophgo-bsp-rootfs_<x.y.z>_arm64.deb
42      ├── sophgo-hdmi_<x.y.z>_arm64.deb
43      ├── sophliteos_soc_<x.y.z>_sdk.deb
44      ├── sophon-media-soc-sophon-ffmpeg_<x.y.z>_arm64.deb
45      ├── sophon-media-soc-sophon-opencv_<x.y.z>_arm64.deb
46      ├── sophon-media-soc-sophon-sample_<x.y.z>_arm64.deb
47      ├── sophon-soc-libisp_<x.y.z>_arm64.deb
48      ├── sophon-soc-libisp-dev_<x.y.z>_arm64.deb
49      ├── sophon-soc-libsophon_<x.y.z>_arm64.deb
50      └── sophon-soc-libsophon-dev_<x.y.z>_arm64.deb
51   ├── doc
52      ├── BMLib_Technical_Reference_Manual.pdf
53      ├── BMLIB开发参考手册.pdf
54      ├── LIBSOPHON_User_Guide.pdf
55      ├── LIBSOPHON使用手册.pdf
56      ├── SOPHON_BMCV_Technical_Reference_Manual.pdf
57      ├── SOPHON BMRuntime Technical Reference Manual.pdf
58      ├── 算能边缘产品BMRUNTIME开发参考手册.pdf
59      └── 算能边缘产品BSP开发参考手册.pdf
60   ├── libsophon_soc_<x.y.z>_aarch64.tar.gz
61   ├── release_version.txt
62   ├── sdcard.tgz
63   ├── sophon-img-edge-auto.MD5
64   ├── tftp.tgz
65   └── usb.tgz
66├── sophon_media
67   ├── doc
68      ├── Multimedia_FAQ_en.pdf
69      ├── Multimedia_Guide_en.pdf
70      ├── Multimedia_Manual_en.pdf
71      ├── 算能边缘产品MULTIMEDIA常见问题手册.pdf
72      ├── 算能边缘产品MULTIMEDIA开发参考手册.pdf
73      └── 算能边缘产品多媒体使用参考指南.pdf
74   ├── release_version.txt
75   ├── sophon_media.MD5
76   ├── sophon-media-soc_<x.y.z>_aarch64.tar.gz
77   ├── sophon-media-soc-sophon-ffmpeg_<x.y.z>_arm64.deb
78   ├── sophon-media-soc-sophon-ffmpeg-dev_<x.y.z>_arm64.deb
79   ├── sophon-media-soc-sophon-opencv_<x.y.z>_arm64.deb
80   ├── sophon-media-soc-sophon-opencv-dev_<x.y.z>_arm64.deb
81   └── sophon-media-soc-sophon-sample_<x.y.z>_arm64.deb
82├── sophon-sail
83   ├── release_version.txt
84   ├── sophon-sail_3.7.0.tar.gz
85   ├── SOPHON-SAIL_en.pdf
86   ├── sophon-sail.MD5
87   └── SOPHON-SAIL_zh.pdf
88├── sophon-stream
89   ├── release_version.txt
90   ├── sophon-stream.MD5
91   └── sophon-stream_v<x.y.z>_<hash>_<date>.tar.gz
92├── tpu-mlir
93   ├── tpu_mlir-<x.y.z>-py3-none-any.whl
94   └── tpu-mlir_readme.txt
95└── tpu-perf
96    ├── tpu_perf-<x.y.z>-py3-none-manylinux2014_aarch64.whl
97    └── tpu_perf-<x.y.z>-py3-none-manylinux2014_x86_64.whl
  1BM1684 & BM1684X SDK v<xx.xx.0>
  2├── libsophon_<date>_<hash>
  3   ├── BMCV_Technical_Reference_Manual.pdf
  4   ├── BMCV开发参考手册.pdf
  5   ├── BMLib_Technical_Reference_Manual.pdf
  6   ├── BMLIB开发参考手册.pdf
  7   ├── BMRuntime Technical Reference Manual.pdf
  8   ├── BMRUNTIME开发参考手册.pdf
  9   ├── libsophon_<x.y.z>_aarch64.tar.gz                           #arm64机器,其他LINUX系统对应的libsophon安装包
 10   ├── libsophon_<x.y.z>_x86_64.tar.gz                            #x86_64机器,其他LINUX系统对应的libsophon安装包
 11   ├── libsophon_dockerfile
 12   ├── libsophon.MD5
 13   ├── LIBSOPHON_User_Guide.pdf
 14   ├── LIBSOPHON使用手册.pdf
 15   ├── release_version.txt
 16   ├── sophon-driver_<x.y.z>_amd64.deb                            #x86_64机器,Debian/Ubuntu系统对应的PCIe卡驱动安装文件
 17   ├── sophon-driver_<x.y.z>_arm64.deb                            #arm64机器,Debian/Ubuntu系统对应的PCIe卡驱动安装文件
 18   ├── sophon-libsophon_<x.y.z>_amd64.deb                         #x86_64机器,Debian/Ubuntu系统对应的libsophon运行时环境安装文件
 19   ├── sophon-libsophon_<x.y.z>_arm64.deb                         #arm64机器,Debian/Ubuntu系统对应的libsophon运行时环境安装文件
 20   ├── sophon-libsophon-dev_<x.y.z>_amd64.deb                     #x86_64机器,Debian/Ubuntu系统对应的libsophon开发环境安装文件
 21   └── sophon-libsophon-dev_<x.y.z>_arm64.deb                     #arm64机器,Debian/Ubuntu系统对应的libsophon开发环境安装文件
 22├── sophon-demo_<date>_<hash>
 23   ├── release_version.txt
 24   ├── sophon-demo.MD5
 25   └── sophon-demo_v<x.y.z>_b909566_20221027.tar.gz               #针对单模型或场景的综合例程
 26├── sophon-img_<date>_<hash>
 27   ├── bsp-debs
 28   ├── bsp_update.tgz
 29   ├── libsophon_soc_<x.y.z>_aarch64.tar.gz                       #交叉编译所需文件
 30   ├── release_version.txt
 31   ├── sdcard.tgz                                                 #SoC卡刷包
 32   ├── SOPHON_BSP_Technical_Reference_Manual.pdf
 33   ├── SOPHON BSP开发参考手册.pdf
 34   ├── sophon-img.MD5
 35   ├── sophon-soc-libsophon_<x.y.z>_arm64.deb                     #SoC平台对应的libsophon安装文件
 36   ├── sophon-soc-libsophon-dev_<x.y.z>_arm64.deb                 #SoC平台对应的libsophon安装文件
 37   ├── system.tgz
 38   └── tftp.tgz
 39├── sophon-mw_<date>_<hash>
 40   ├── Multimedia FAQ.pdf
 41   ├── Multimedia Technical Reference Manual.pdf
 42   ├── Multimedia User Guide.pdf
 43   ├── MULTIMEDIA使用手册.pdf
 44   ├── MULTIMEDIA常见问题手册.pdf
 45   ├── MULTIMEDIA开发参考手册.pdf
 46   ├── release_version.txt
 47   ├── sophon-mw_<x.y.z>_aarch64.tar.gz                          #arm64机器,其他LINUX系统对应的sophon-mw安装包
 48   ├── sophon-mw_<x.y.z>_x86_64.tar.gz                           #x86_64机器,其他LINUX系统对应的sophon-mw安装包
 49   ├── sophon-mw.MD5
 50   ├── sophon-mw-soc_<x.y.z>_aarch64.tar.gz
 51   ├── sophon-mw-soc-sophon-ffmpeg_<x.y.z>_arm64.deb             #SoC平台,ffmpeg运行时环境安装文件
 52   ├── sophon-mw-soc-sophon-ffmpeg-dev_<x.y.z>_arm64.deb         #SoC平台,ffmpeg开发环境安装文件
 53   ├── sophon-mw-soc-sophon-opencv_<x.y.z>_arm64.deb             #SoC平台,opencv运行时环境安装文件
 54   ├── sophon-mw-soc-sophon-opencv-dev_<x.y.z>_arm64.deb         #SoC平台,opencv开发环境安装文件
 55   ├── sophon-mw-soc-sophon-sample_<x.y.z>_arm64.deb             #SoC平台,多媒体程序示例文件
 56   ├── sophon-mw-sophon-ffmpeg_<x.y.z>_amd64.deb                 #x86_64机器,Debian/Ubuntu系统对应的ffmpeg运行时环境安装文件
 57   ├── sophon-mw-sophon-ffmpeg_<x.y.z>_arm64.deb                 #arm64机器,Debian/Ubuntu系统对应的ffmpeg运行时环境安装文件
 58   ├── sophon-mw-sophon-ffmpeg-dev_<x.y.z>_amd64.deb             #x86_64机器,Debian/Ubuntu系统对应的ffmpeg开发环境安装文件
 59   ├── sophon-mw-sophon-ffmpeg-dev_<x.y.z>_arm64.deb             #arm64机器,Debian/Ubuntu系统对应的ffmpeg开发环境安装文件
 60   ├── sophon-mw-sophon-opencv_<x.y.z>_amd64.deb                 #x86_64机器,Debian/Ubuntu系统对应的opencv运行时环境安装文件
 61   ├── sophon-mw-sophon-opencv_<x.y.z>_arm64.deb                 #arm64机器,Debian/Ubuntu系统对应的opencv运行时环境安装文件
 62   ├── sophon-mw-sophon-opencv-abi0_<x.y.z>_amd64.deb            #x86_64机器,CenterOS系统对应的opencv运行时环境安装文件
 63   ├── sophon-mw-sophon-opencv-abi0_<x.y.z>_arm64.deb            #arm64机器,CenterOS系统对应的opencv运行时环境安装文件
 64   ├── sophon-mw-sophon-opencv-abi0-dev_<x.y.z>_amd64.deb        #x86_64机器,CenterOS系统对应的opencv开发环境安装文件
 65   ├── sophon-mw-sophon-opencv-abi0-dev_<x.y.z>_arm64.deb        #arm64机器,CenterOS系统对应的opencv开发环境安装文件
 66   ├── sophon-mw-sophon-opencv-dev_<x.y.z>_amd64.deb             #x86_64机器,Debian/Ubuntu系统对应的opencv开发环境安装文件
 67   ├── sophon-mw-sophon-opencv-dev_<x.y.z>_arm64.deb             #arm64机器,Debian/Ubuntu系统对应的opencv开发环境安装文件
 68   ├── sophon-mw-sophon-sample_<x.y.z>_amd64.deb                 #x86_64机器,多媒体程序示例文件
 69   └── sophon-mw-sophon-sample_<x.y.z>_arm64.deb                 #arm64机器,多媒体程序示例文件
 70├── sophon-pipeline_<date>_<hash>
 71   ├── release_version.txt
 72   ├── sophon-pipeline.MD5
 73   └── sophon-pipeline_v<x.y.z>_<hash>_<date>.tar.gz          #基于pipeline的高性能推理框架
 74├── sophon-rpc_<date>_<hash>
 75   ├── release_version.txt
 76   ├── sophon-rpc_<x.y.z>_amd64.deb                              #x86_64机器,Debian/Ubuntu系统对应的sophon-rpc安装文件
 77   ├── sophon-rpc_<x.y.z>_arm64.deb                              #arm64机器,Debian/Ubuntu系统对应的sophon-rpc安装文件
 78   ├── sophon-rpc_<x.y.z>.tar.gz                                 #其他系统对应的sophon-rpc安装包
 79   ├── sophon-rpc.MD5
 80   └── sophon-rpc使用指南.pdf
 81├── sophon-sail_<date>_<hash>
 82   ├── release_version.txt
 83   ├── Sophon_Inference_zh.pdf
 84   ├── sophon-sail_<x.y.z>.tar.gz                                #封装了BMLib、sophon-mw、BMCV、BMRuntime的python接口库
 85   └── sophon-sail.MD5
 86├── sophon-stream_<date>_<hash>
 87   ├── release_version.txt
 88   ├── sophon-stream.MD5
 89   └── sophon-stream_v<x.y.z>-_<hash>_<date>.tar.gz          #数据流处理工具,支持多路数据流并发处理的流水线框架。
 90├── tpu-kernel_<date>_<hash>
 91   ├── release_version.txt
 92   ├── tpu-kernel-1684x_v<x.y.z>-<hash>-<date>.tar.gz          #自定义算子开发工具
 93   └── tpu-kernel.MD5
 94├── tpu-mlir_<date>_<hash>
 95   ├── release_version.txt
 96   ├── tpu-mlir.MD5
 97   └── tpu-mlir_v<x.y.z>-<hash>-<date>.tar.gz                    #编译器工具链
 98├── tpu-nntc_<date>_<hash>
 99   ├── release_version.txt
100   ├── tpu-nntc.MD5
101   └── tpu-nntc_v<x.y.z>-<hash>-<date>.tar.gz                    #模型编译量化工具链
102└── tpu-perf_v<x.y.z>
103    ├── md5sum.txt
104    ├── tpu_perf-<x.y.z>-py3-none-manylinux2014_aarch64.whl
105    ├── tpu_perf-<x.y.z>-py3-none-manylinux2014_x86_64.whl
106    └── tpu-perf-<x.y.z>.tar.gz                                   #模型的性能分析和精度验证工具

备注

提示:<date>指日期,<hash>指哈希值,<x.y.z>指版本号。后续使用${SOPHONSDK}来指代SDK解压后的根目录:在宿主机上时,它是您解压文件时指定的存放文件的路径;在docker容器中时,若您没有修改SDK下的创建容器脚本,该路径默认为/workspace。

3.2.4. SDK在线资料链接

BM1684 & BM1684X 与 BM1688 & CV186AH 为两套不同的SDK,在线文档请参考官网不同栏目: SDK资料中心

资料

说明

sophon-demo

提供了常见模型的推理样例程序

sophon-stream

提供了基于C++11的支持多路数据流并发处理的流水线框架

sophon-pipeline

提供了一个基于pipeline的(包含推流和结果展示的)任务构建的样例程序

SOPHON-SAIL用户手册

提供了底层库的再次封装,提供简洁易用的CPP和Python接口

LIBSOPHON使用手册

LIBSOPHON包含BMCV、BMRuntime、BMLib等库,用来驱动VPP、智能视觉深度学习处理器等硬件,完成图像处理、张量运算、模型推理等操作

BMCV开发参考手册

BMCV 提供了一套基于SOPHON BM168X优化的机器视觉库,可对图像处理和张量运算加速

BMLIB开发参考手册

BMLIB 是在内核驱动之上封装的一层底层软件库,负责设备Handle的管理、内存管理、数据搬运、API的发送和同步、A53使能、设置工作频率等

BMRuntime开发参考手册

BMRuntime 提供了丰富的接口,驱动BModel在智能视觉深度学习处理器中执行

多媒体开发参考手册

驱动VPU、JPU、VPP进行RTSP流、GB28181流的解析以及视频、图像编解码等多媒体相关

多媒体客户常见问题手册

多媒体方面的常见问题及解答

MULTIMEDIA使用手册

多媒体工具用户手册

TPU-MLIR开发参考手册

Tensor Processing Unit编译器工程

TPU-MLIR快速入门手册

TPU-MLIR的样例程序

TPUKernel用户开发文档

基于Tensor Processing Unit底层原子操作接口的编程接口

TPUKernel快速入门指南

TPU-Kernel的开发流程和步骤

SOPHON BSP开发参考手册

模组(含开发板)使用开发手册