3. 旭日平台概述
旭日(Sunrise)系列是面向边缘智能场景的国产 AI 芯片平台,其核心价值在于把神经网络推理能力压缩进低功耗、小体积的嵌入式模组中。要在该平台上完成目标检测模型的部署,首先必须理解它的整体架构:算力从哪来、数据怎么流、软件如何把训练好的模型翻译成芯片能执行的指令。本节从架构、硬件、软件栈与工具链四个维度建立全局认知,为后续的模型转换与量化实操打基础。
一、核心原理:BPU 与异构计算架构
旭日平台采用典型的异构计算架构,芯片内部并非单一处理器,而是由多个功能单元协同工作。理解这套架构的关键,是分清“谁负责通用逻辑、谁负责张量计算”。
- BPU(Brain Processing Unit):平台的核心 AI 加速单元,专门执行卷积、池化、激活等神经网络算子,是目标检测推理算力的主要来源。
- CPU:通常为 ARM Cortex-A 系列,负责操作系统调度、前后处理、非神经网络逻辑以及算子回退。
- DSP / GPU:部分型号集成,用于图像预处理、色彩空间转换或特定算子加速。
- 内存与总线:BPU 与 CPU 共享 DDR,通过片上总线交换特征图与权重数据,带宽直接决定推理吞吐。
BPU 的工作方式是“指令流 + 数据流”驱动:编译器把模型编译成 BPU 指令序列,运行时由驱动加载指令、搬运数据、触发计算。因此部署的本质,是让模型经过工具链变成 BPU 可执行的二进制,而不是在 CPU 上逐算子解释执行。
二、硬件特性:算力、功耗与接口
旭日平台面向边缘部署,硬件特性围绕“够用的算力 + 极低的功耗 + 丰富的接口”展开。以典型型号为例,BPU 算力通常在 1~5 TOPS 量级,整板功耗可控制在数瓦以内,适合无风扇、长期运行的场景。
| 特性维度 | 典型参数 | 对部署的影响 |
|---|---|---|
| BPU 算力 | 1~5 TOPS(INT8) | 决定可运行的检测模型规模与帧率 |
| 内存 | 1~4 GB DDR | 限制模型体积与特征图缓存 |
| 功耗 | 约 2~8 W | 支持无风扇、嵌入式长期运行 |
| 视频接口 | MIPI CSI / USB / HDMI | 决定摄像头接入方式 |
| 网络接口 | 千兆以太网 / WiFi | 用于远程调试与结果回传 |
| 存储 | eMMC / TF 卡 | 存放系统镜像与模型文件 |
三、软件栈:从驱动到推理 API
旭日平台的软件栈自下而上分为四层,部署工作主要发生在“推理 API”与“工具链”之间。
- 驱动与运行时:负责加载 BPU 指令、分配共享内存、同步 CPU 与 BPU 的任务。
- 推理 API:提供模型加载、输入输出张量绑定、同步/异步推理接口,是应用层调用的入口。
- 系统镜像:基于 Linux 的板级支持包,包含内核、根文件系统与预装库。
- 示例程序:官方提供的检测 Demo,可作为二次开发的起点。
典型的板端推理调用流程如下,理解这段伪代码有助于建立“模型—输入—输出”的映射关系:
// 1. 加载编译后的模型
model = load_model("yolov5s_int8.bin");
// 2. 准备输入张量(NCHW,INT8)
input = model.get_input(0);
input.fill(nv12_to_tensor(frame));
// 3. 执行推理
model.infer();
// 4. 读取输出并做后处理
output = model.get_output(0);
boxes = nms(decode(output), conf_thres=0.25, iou_thres=0.45);
四、部署工具链:模型到板端的完整路径
工具链是旭日平台部署的核心生产力。它把训练框架产出的模型,逐步转换为 BPU 可执行的二进制文件。整体路径可概括为“导出—转换—量化—编译—验证”五步。
- 导出:从 PyTorch / TensorFlow 导出为 ONNX,固定输入尺寸与算子版本。
- 转换:工具链解析 ONNX,映射为平台中间表示,检查算子支持情况。
- 量化:使用校准集统计激活分布,生成 INT8 量化参数,必要时保留敏感层为浮点。
- 编译:生成 BPU 指令序列与权重二进制,输出可部署的模型文件。
- 验证:在板端运行,对比精度、时延与内存占用,定位回退算子。
五、案例场景:一个检测模型的部署复盘
以 YOLOv5s 部署到旭日平台为例。首次转换后,工具链提示 Focus 层与部分 Slice 算子不支持,导致这些算子回退到 CPU,单帧时延从预期的 30 ms 上升到 90 ms。复盘后的处理方式是:将 Focus 层替换为等价的卷积实现,把 Slice 改写为平台支持的切片方式,再重新量化校准。调整后 BPU 算子覆盖率从 82% 提升到 97%,时延回落到 35 ms 左右,精度仅下降约 1.2 个百分点。
这个案例说明:部署不是单向的“转换—运行”,而是模型结构与平台能力的双向适配。理解架构与工具链,才能在遇到算子不支持、精度掉点、时延超标时快速定位问题所在。