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主要模块

基础工具包
算丰深度学习处理加速库 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使能等。
快速移植示例和工具包
综合例程 DEMO sophon-demo 提供了x86和SoC环境下针对单模型或场景的综合例程,供用户在深度学习应用开发过程中参考。
数据流处理工具 STREAM: sophon-stream 本软件基于插件化的思想,基于C++11的支持多路数据流并发处理的流水线框架。基于现有的接口,SOPHON-STREAM 对用户具有易使用、易二次开发的优点,可以大大简化用户配置工程或添加插件的复杂度。
高性能推理 PIPELINE sophon-pipeline 提供了一个简易的基于pipeline的高性能推理框架,能够将前处理/推理/后处理分别运行在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资料中心
资料 |
说明 |
提供了常见模型的推理样例程序 |
|
提供了基于C++11的支持多路数据流并发处理的流水线框架 |
|
提供了一个基于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开发参考手册 |
模组(含开发板)使用开发手册 |