3.1. SDK 简介

“BM1688/CV186AH SOPHONSDK” 是算能科技基于BM1688/CV186AH定制的深度学习SDK,涵盖了神经网络推理阶段所需的模型优化、高效运行支持等能力,为深度学习应用开发和部署提供易用、高效的全栈式解决方案。

3.1.1. BM1688/CV186AH SOPHONSDK 文件清单

解压后的SDK文件结构如下:

 1BM1688/CV186AH SOPHONSDK
 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_20240403.zip
23├── sophon-demo
24   ├── release_version.txt
25   ├── sophon-demo.MD5
26   └── sophon-demo_v0.1.10_6375a8be_20240403.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_1.2.0_SDK.deb
36      ├── linux-headers-5.10.4-tag--00082-g91a1fb25c7fb.deb
37      ├── linux-image-5.10.4-tag--00082-g91a1fb25c7fb-dbg.deb
38      ├── linux-image-5.10.4-tag--00082-g91a1fb25c7fb.deb
39      ├── linux-libc-dev_5.10.4-tag--00082-g91a1fb25c7fb-1_arm64.deb
40      ├── qt5-base.deb
41      ├── sophgo-bsp-rootfs_1.1.0_arm64.deb
42      ├── sophgo-hdmi_1.0.0_arm64.deb
43      ├── sophliteos_soc_1.1.2_sdk.deb
44      ├── sophon-media-soc-sophon-ffmpeg_1.5.0_arm64.deb
45      ├── sophon-media-soc-sophon-opencv_1.5.0_arm64.deb
46      ├── sophon-media-soc-sophon-sample_1.5.0_arm64.deb
47      ├── sophon-soc-libisp_1.0.0_arm64.deb
48      ├── sophon-soc-libisp-dev_1.0.0_arm64.deb
49      ├── sophon-soc-libsophon_0.4.9_arm64.deb
50      └── sophon-soc-libsophon-dev_0.4.9_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_0.4.9_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_1.5.0_aarch64.tar.gz
77   ├── sophon-media-soc-sophon-ffmpeg_1.5.0_arm64.deb
78   ├── sophon-media-soc-sophon-ffmpeg-dev_1.5.0_arm64.deb
79   ├── sophon-media-soc-sophon-opencv_1.5.0_arm64.deb
80   ├── sophon-media-soc-sophon-opencv-dev_1.5.0_arm64.deb
81   └── sophon-media-soc-sophon-sample_1.5.0_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_v0.0.4-rc4_9517722_20240402.tar.gz
92├── tpu-mlir
93   ├── tpu_mlir-1.6.1-py3-none-any.whl
94   └── tpu-mlir_readme.txt
95└── tpu-perf
96    ├── tpu_perf-1.2.52-py3-none-manylinux2014_aarch64.whl
97    └── tpu_perf-1.2.52-py3-none-manylinux2014_x86_64.whl

其中各SDK接口的说明如下:

  • doc

    • BM1688/CV186AH SOPHONSDK相关接口的开发参考手册

  • isp-tools

    • 用于调试isp相关参数的调试工具

  • sophon-demo

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

  • sophon-img

    • 边缘服务器(soc模式)刷机包以及相关bsp文件

  • sophon-stream

    • 面向sophon开发平台的数据流处理工具,够将前处理/推理/后处理分别运行在3个线程上,最大化的实现并行。

  • sophon-media

    • 封装了SOPHON-OpenCV、SOPHON-FFmpeg等库,用来驱动VPSS等硬件,支持RTSP流、GB28181流的解析,视频图像编解码加速等,供用户进行深度学习应用开发。

  • sophon-sail

    • 提供了支持Python/C++的高级接口,是对BMRuntime、BMCV、sophon-media、BMLib等底层库接口的封装,供用户进行深度学习应用开发。

  • tpu-mlir

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

  • tpu-perf

    • 用于模型性能和精度验证的完整工具包。

3.1.2. SDK主要模块

在您在移植适配过程中将主要涉及到以下4个模块:

  1. 硬件驱动及运行时库——LIBSOPHON: 动态库路径位于/opt/sophon/libsophon-current,包含BMCV(张量运算及图像处理库)、BMRuntime(推理运行时)、BMLib(设备管理、数据搬运、A53使能等)等,用来驱动VPSS、智能视觉深度学习处理器等硬件,完成图像处理、张量运算、模型推理等操作。

  2. 多媒体库——SOPHON-MEDIA :动态库路径位于/opt/sophon/sophon-ffmpeg-latest、/opt/sophon/sophon-opencv-latest,支持SOPHON设备硬件加速的SOPHON-OpenCV和SOPHON-FFmpeg,支持RTSP流、GB28181流的解析,视频及图片的编解码。

  3. 模型编译量化工具链——TPU-MLIR : 支持Caffe、TFLite、ONNX等框架模型的模型转换以及量化

  4. 算丰深度学习处理加速库——SAIL : 支持Python/C++的高级接口,是对BMRuntime、BMCV、sophon-media等底层库接口的封装。源码发布,用户可根据需求,编译生成特定的版本。