✏️
SophonSDK3开发指南
  • SophonSDK3 开发指南
  • 1 SDK软件包
    • 1.1 SDK 简介
    • 1.2 资料简介
    • 1.3 获取SDK
    • 1.4 安装SDK
      • 1.4.1 环境配置-Linux
      • 1.4.2 环境配置-Windows
      • 1.4.3 环境配置-SoC
    • 1.5 更新SDK
    • 1.6 SDK更新记录
    • 1.7 SDK已知问题
  • 2 快速入门
    • 2.1 移植开发综述
    • 2.2 重要概念
    • 2.3 样例程序
  • 3 网络模型迁移
    • 3.1 模型迁移概述
    • 3.2 FP32 模型生成
    • 3.3 INT8 模型生成
      • 3.3.1 准备lmdb数据集
      • 3.3.2 生成FP32 Umodel
      • 3.3.3 生成INT8 Umodel
      • 3.3.4 精度测试
      • 3.3.5 生成INT8 Bmodel
      • 3.3.6 auto_cali一键量化工具
  • 4 算法移植
    • 4.1 算法移植概述
    • 4.2 C/C++编程详解
    • 4.3 Python编程详解
    • 4.4 解码模块
    • 4.5 图形运算加速模块
    • 4.6 模型推理
  • 5 打包和发布
    • 5.1 概述
    • 5.2 PCIE加速卡模式
    • 5.3 SOC模式
  • 附录
由 GitBook 提供支持
在本页
  • 2.1.1 算法移植流程
  • 2.1.2 典型视频AI分析任务
  1. 2 快速入门

2.1 移植开发综述

2.1.1 算法移植流程

​基于Sophon BM168X芯片进行产品开发会经历如下几个阶段:

  1. 评测选型:根据应用场景,确定使用的产品形态。

  2. 模型迁移:将原始深度学习框架下训练生成的模型转换为BM168x平台运行的FP32 BModel,必要时使用BMLang开发不支持的算子;使用量化集量化生成INT8 BModel,并测试调优确保INT8 BModel精度符合要求(推荐使用4N Batch BModel以获得最佳性能)。

  3. 算法移植:基于BM168X硬件加速接口,对模型的前后处理及推理现有算法进行移植。

  4. 程序移植:移植任务管理、资源调度等算法引擎代码及逻辑处理、结果展示、数据推送等业务代码。

  5. 测试调优:网络性能与精度测试、压力测试,基于网络编译、量化工具、多卡多芯、任务流水线等方面的深度优化。

  6. 部署联调:将算法服务打包(如Docker)部署到BM168X硬件产品上,并在实际场景中与业务平台或集成平台进行功能联调;必要时在生产环境中调整参数配置并收集数据进一步优化模型。

在移植工作开始前,请先确保已经按照第一节的内容下载并安装配置好所需环境:

2.1.2 典型视频AI分析任务

一个典型的AI视频分析任务pipeline,通常包括:视频源 > 视频解码 > 预处理 > 推理 > 后处理 > 业务逻辑 > 视频/图片编码等环节。Sophon设备对各环节的硬件加速支持情况如下:

算法步骤
支持硬件加速
BM-OpenCV
BM-FFmpeg
Native接口

视频/图片编解码

支持

Y

Y

BMCV(图片)/SAIL

输入预处理

支持

Y

N

BMCV/SAIL

模型推理

支持

N

N

BMRuntime/SAIL

输出后处理

部分支持

N

N

BMCV

  • 对于不支持的层或者算子可使用BMLang或者ARM CPU开发,然后融合到BModel中,参考《BMLang》开发手册

  • 对于其他需要使用TPU加速的算法可使用基于TPU原子操作接口的TPUKernel(BMKernel/OKKernel)开发

  • 算子支持情况和已经测试的模型情况,请参见《NNToolchian用户开发手册》

上一页1.7 SDK已知问题下一页2.2 重要概念

最后更新于2年前

样例代码见,关于使用多线程构建多模型推理任务pipeline,可参考examples/inference目录下的示例代码

github examples仓库