算法部署¶
1.SOPHON-DEMO简介¶
SOPHON-DEMO基于SOPHONSDK接口进行开发,提供一系列主流算法的移植例程。包括基于TPU-NNTC和TPU-MLIR的模型编译与量化,基于BMRuntime的推理引擎移植,以及基于BMCV/OpenCV的前后处理算法移植。
SOPHONSDK是算能科技基于其自主研发的深度学习处理器所定制的深度学习SDK,涵盖了神经网络推理阶段所需的模型优化、高效运行时支持等能力,为深度学习应用开发和部署提供易用、高效的全栈式解决方案。目前可兼容BM1684/BM1684X/BM1688(CV186X)。
2.目录结构与说明¶
SOPHON-DEMO提供的例子从易到难分为 tutorial 、 sample 、 application 三个模块:
注意
tutorial模块存放一些基础接口的使用示例;sample模块存放一些经典算法在SOPHONSDK上的串行示例;application模块存放一些典型场景的典型应用。
模块 |
链接 |
|---|---|
tutorial |
|
sample |
|
application |
3.版本说明¶
版本 |
说明 |
|---|---|
0.2.1 |
完善和修复文档、代码问题,部分例程补充CV186X支持,YOLOv5适配SG2042,sample模块新增例程GroundingDINO、Qwen1_5, StableDiffusionV1_5新支持多种分辨率,Qwen、Llama2、ChatGLM3添加web和多会话模式。tutorial模块新增blend和stitch例程 |
0.2.0 |
完善和修复文档、代码问题,新增application和tutorial模块,新增例程ChatGLM3和Qwen,SAM添加web ui,BERT、ByteTrack、 C3D适配BM1688,原YOLOv8更名为YOLOv8_det并且添加cpp后处理加速方法,优化常用例程的auto_test,更新TPU-MLIR安装方式为pip |
0.1.10 |
修复文档、代码问题,新增ppYoloe、YOLOv8_seg、StableDiffusionV1.5、SAM,重构yolact,CenterNet、YOLOX、 YOLOv8适配BM1688,YOLOv5、ResNet、PP-OCR、DeepSORT补充BM1688性能数据,WeNet提供C++交叉编译方法 |
0.1.9 |
修复文档、代码问题,新增segformer、YOLOv7、Llama2例程,重构YOLOv34,YOLOv5、ResNet、PP-OCR、DeepSORT、LPRNet、 RetinaFace、YOLOv34、WeNet适配BM1688,OpenPose后处理加速,chatglm2添加编译方法和int8/int4量化。 |
0.1.8 |
完善修复文档、代码问题,新增BERT、ppYOLOv3、ChatGLM2,重构YOLOX,PP-OCR添加beam search, OpenPose添加tpu-kernel后处理加速,更新SFTP下载方式。 |
0.1.7 |
修复文档等问题,一些例程支持BM1684 mlir,重构PP-OCR、CenterNet例程,YOLOv5添加sail支持 |
0.1.6 |
修复文档等问题,新增ByteTrack、YOLOv5_opt、WeNet例程 |
0.1.5 |
修复文档等问题,新增DeepSORT例程,重构ResNet、LPRNet例程 |
0.1.4 |
修复文档等问题,新增C3D、YOLOv8例程 |
0.1.3 |
新增OpenPose例程,重构YOLOv5例程(包括适配arm PCIe、支持TPU-MLIR编译BM1684X模型、使用ffmpeg组件替换opencv解码等) |
0.1.2 |
修复文档等问题,重构SSD相关例程,LPRNet/cpp/lprnet_bmcv使用ffmpeg组件替换opencv解码 |
0.1.1 |
修复文档等问题,使用BMNN相关类重构LPRNet/cpp/lprnet_bmcv |
0.1.0 |
提供LPRNet等10个例程,适配BM1684X(x86 PCIe、SoC),BM1684(x86 PCIe、SoC) |
4.环境依赖¶
SOPHON-DEMO主要依赖TPU-MLIR、TPU-NNTC、LIBSOPHON、SOPHON-FFMPEG、SOPHON-OPENCV、SOPHON-SAIL,其版本要求如下:
SOPHON-DEMO |
TPU-MLIR |
TPU-NNTC |
LIBSOPHON |
SOPHON-FFMPEG |
SOPHON-OPENCV |
SOPHON-SAIL |
发布日期 |
0.2.0 |
>=1.6 |
>=3.1.7 |
>=0.5.0 |
>=0.7.3 |
>=0.7.3 |
>=3.7.0 |
>=23.10.01 |
0.1.10 |
>=1.2.2 |
>=3.1.7 |
>=0.4.6 |
>=0.6.0 |
>=0.6.0 |
>=3.7.0 |
>=23.07.01 |
0.1.9 |
>=1.2.2 |
>=3.1.7 |
>=0.4.6 |
>=0.6.0 |
>=0.6.0 |
>=3.7.0 |
>=23.07.01 |
0.1.8 |
>=1.2.2 |
>=3.1.7 |
>=0.4.6 |
>=0.6.0 |
>=0.6.0 |
>=3.6.0 |
>=23.07.01 |
0.1.7 |
>=1.2.2 |
>=3.1.7 |
>=0.4.6 |
>=0.6.0 |
>=0.6.0 |
>=3.6.0 |
>=23.07.01 |
0.1.6 |
>=0.9.9 |
>=3.1.7 |
>=0.4.6 |
>=0.6.0 |
>=0.6.0 |
>=3.4.0 |
>=23.05.01 |
0.1.5 |
>=0.9.9 |
>=3.1.7 |
>=0.4.6 |
>=0.6.0 |
>=0.6.0 |
>=3.4.0 |
>=23.03.01 |
0.1.4 |
>=0.7.1 |
>=3.1.5 |
>=0.4.4 |
>=0.5.1 |
>=0.5.1 |
>=3.3.0 |
>=22.12.01 |
0.1.3 |
>=0.7.1 |
>=3.1.5 |
>=0.4.4 |
>=0.5.1 |
>=0.5.1 |
>=3.3.0 |
|
0.1.2 |
Not support |
>=3.1.4 |
>=0.4.3 |
>=0.5.0 |
>=0.5.0 |
>=3.2.0 |
|
0.1.1 |
Not support |
>=3.1.3 |
>=0.4.2 |
>=0.4.0 |
>=0.4.0 |
>=3.1.0 |
|
0.1.0 |
Not support |
>=3.1.3 |
>=0.3.0 |
>=0.2.4 |
>=0.2.4 |
>=3.1.0 |
备注
不同例程对版本的要求可能存在差异,具体以例程的README为准,可能需要安装其他第三方库。
BM1688/CV186X与BM1684X/BM1684对应的sdk不是同一套,暂时还未发布到官网上,请联系技术人员获取。