单纯做模型推理、业务应用二次开发,门槛中等,比 RKNN 略高、比自研 NPU 低;要改内核、TPU 自定义算子、BSP 底层,门槛很高。
BM1684X:INT8 32TOPS,8 核 A53,SOPHON SDK(算丰官方 Sophon 工具链),主打多路视频结构化、边缘视觉推理,支持 PCIe 卡模式、SoC 板载两种形态。

1. 二次开发分三层,门槛差异很大
1.1 应用层开发(绝大多数算法集成,门槛 ★★)
适合:算法工程师、业务开发,只跑现成模型、写业务逻辑。
工具链:bmnetc(模型编译器)+ bmrt(推理 runtime)+ BMCV 多媒体库
支持框架:PyTorch、ONNX、Paddle、TF、Caffe;主流 CV 模型(YOLO、PP-YOLO、OCR、DeepSORT)迁移成熟,现在也支持 MiniCPM 等轻量 LLM 部署
开发方式:
1. PC Ubuntu 上把 PyTorch 导出 ONNX,用 bmnetc 转成 bmodel(BM1684X 专属模型文件),做量化(INT8/BF16)、算子对齐
2. 开发板侧调用 libsophon / bmrt C/C++ API,也有 Python 包装 sail(Sophon Inference)
3. BMCV 自带硬解码、缩放、裁剪、颜色空间转换,不用自己写 FFmpeg 硬编解码,多路视频分析非常省心
难点:算子不支持、ONNX 导出不规范、量化掉精度;遇到冷门算子需要算子适配;sail Python 接口文档示例不如 RKNN 丰富,社区案例偏少
上手条件:懂 PyTorch/ONNX、基础 Linux,C++ 优先;只做 Python 推理也可行
1.2 BSP / 系统层开发(驱动、内核、设备树、底板适配,门槛 ★★★★)
适合:硬件驱动工程师、做自研底板、定制系统镜像。
BSP SDK 独立一套,需要 Ubuntu 20.04 宿主机交叉编译,编译链、内核版本强绑定,版本错配直接无法启动
内容:Uboot、Linux 内核、dtb、内存布局、MIPI/CSI、PCIe、GPIO、网口驱动适配
坑点:内存分区、TPU 和 ARM 之间 DDR 带宽分配、PCIe DMA、电源时序;官方文档偏手册化,踩坑排错成本高
很多成品开发板(天启、Firefly)已经预编译好 BSP,普通开发者基本不用碰这一层。
1.3 TPU Kernel 自定义算子开发(底层算子,门槛 ★★★★★)
适合:需要自研特殊算子、大模型自定义加速,懂硬件指令集。
TPU-Kernel,手写 TPU 汇编 / 底层 kernel,单独编译固件加载到 TPU,需要理解 BM1684X 张量阵列、访存、流水线
这块资料最少,社区几乎没有开源案例,一般只有深度合作伙伴、方案商才会用到
2. SOPHON SDK 完整模型部署流程
PyTorch 训练模型
→ torch.onnx 导出 ONNX(固定输入 shape、避免动态 shape)
→ bmnetc 编译 + 校准量化
→ 输出 bmodel
→ 开发板:sail / bmrt 加载 bmodel
→ BMCV 取流 + 预处理
→ TPU 推理
→ 后处理
1. bmnetc 编译器:核心工具,负责算子映射、图优化、INT8 量化;支持 calibration 数据集做 PTQ 量化;QAT 量化也支持
2. bmrt(BMRuntime):TPU 推理运行时库,管理 TPU 任务、内存、多 batch、多路并发,支持多模型同时跑
3. SAIL(sophon sail):上层封装,C++ 和 Python,简化 BMCV + bmrt 联调,快速写视频流推理 demo
4. BMCV:硬件加速图像库,替代 OpenCV,直接调用 TPU/VPU 硬件单元,多路 1080P 并发性能远高于软 OpenCV
重要限制:动态 shape 支持弱,是 BM1684X 最常见卡点;YOLO 动态输入、变长文本 OCR 很容易编译失败,需要固定尺寸或者分多个 bmodel。
3. 与 RK3588(RKNN)横向对比
项目 | BM1684X(SOPHON SDK) | RK3588(RKNN) |
推理算力 | INT8 32TOPS,多路视频优势极强 | INT8 6TOPS,单路算法友好 |
模型迁移难度 | 中等,动态 shape 坑多,算子库覆盖不错 | 偏低,RKNN Toolkit 可视化、教程、社区案例极多 |
Python 生态 | sail 可用,示例偏少 | rknn-toolkit2 成熟,网上 demo 遍地 |
多媒体 | BMCV 硬编解码强,32 路 1080P 解码 | ISP、MIPI 相机生态更好 |
适合场景 | 安防、视频结构化、多路抓拍、边缘盒子 | 机器人、单路视觉、人机交互、原型快速验证 |
4. 哪些人容易上手,哪些会觉得很难
✅ 适合上手:
做视频结构化、多路抓拍、智慧工地、明厨亮灶这类多路推流分析;
熟悉 ONNX、模型量化,能把模型改成固定输入;
优先选用成品开发板,不自己改 BSP。
❌ 容易劝退:
大量动态输入、Transformer 类复杂模型、冷门算子;
零基础嵌入式,只会调包、不懂 Linux 交叉编译;
需要频繁自定义算子、自研底板驱动。
5. 入门建议(避坑)
1. 优先用官方预烧好镜像的开发板,不要一上来编译 BSP
2. 模型尽量固定 shape,导出 ONNX 时简化图,不要带冗余算子
3. 版本锁死:SDK、固件、驱动、bmodel 必须版本匹配,跨版本基本不兼容,这是 SOPHON SDK 头号大坑
4. 先跑官方 sail demo(yolov5 / yolov8)跑通链路,再替换自己的模型
5. 算子报错优先在 ONNX 层优化,尽量不碰 TPU Kernel
6. 总结
如果你只是部署现成 CV 算法、做多路视频 AI 业务:门槛可控,一周左右可以跑通端到端;
如果你要底层驱动、自研算子、定制硬件底板:门槛高,需要嵌入式 + AI 异构开发经验。
需求留言: