3. 旭日平台概述

旭日(Sunrise)系列是面向边缘智能场景的国产 AI 芯片平台,其核心价值在于把神经网络推理能力压缩进低功耗、小体积的嵌入式模组中。要在该平台上完成目标检测模型的部署,首先必须理解它的整体架构:算力从哪来、数据怎么流、软件如何把训练好的模型翻译成芯片能执行的指令。本节从架构、硬件、软件栈与工具链四个维度建立全局认知,为后续的模型转换与量化实操打基础。

一、核心原理:BPU 与异构计算架构

旭日平台采用典型的异构计算架构,芯片内部并非单一处理器,而是由多个功能单元协同工作。理解这套架构的关键,是分清“谁负责通用逻辑、谁负责张量计算”。

  • BPU(Brain Processing Unit):平台的核心 AI 加速单元,专门执行卷积、池化、激活等神经网络算子,是目标检测推理算力的主要来源。
  • CPU:通常为 ARM Cortex-A 系列,负责操作系统调度、前后处理、非神经网络逻辑以及算子回退。
  • DSP / GPU:部分型号集成,用于图像预处理、色彩空间转换或特定算子加速。
  • 内存与总线:BPU 与 CPU 共享 DDR,通过片上总线交换特征图与权重数据,带宽直接决定推理吞吐。

BPU 的工作方式是“指令流 + 数据流”驱动:编译器把模型编译成 BPU 指令序列,运行时由驱动加载指令、搬运数据、触发计算。因此部署的本质,是让模型经过工具链变成 BPU 可执行的二进制,而不是在 CPU 上逐算子解释执行。

旭日平台软硬件分层架构 硬件层(SoC) BPU AI 张量加速 CPU (ARM) 调度 / 前后处理 DSP / GPU 图像预处理 DDR + 片上总线 共享内存 / 数据搬运 软件栈层 驱动 + 运行时 加载指令 / 管理内存 推理 API 模型加载 / 推理调用 系统镜像 Linux + 板级支持 示例程序 检测 Demo 部署工具链层 模型转换 ONNX → 中间表示 量化校准 INT8 / 精度评估 编译打包 生成 .bin 模型 板端部署验证 精度 / 时延 / 内存

二、硬件特性:算力、功耗与接口

旭日平台面向边缘部署,硬件特性围绕“够用的算力 + 极低的功耗 + 丰富的接口”展开。以典型型号为例,BPU 算力通常在 1~5 TOPS 量级,整板功耗可控制在数瓦以内,适合无风扇、长期运行的场景。

特性维度 典型参数 对部署的影响
BPU 算力1~5 TOPS(INT8)决定可运行的检测模型规模与帧率
内存1~4 GB DDR限制模型体积与特征图缓存
功耗约 2~8 W支持无风扇、嵌入式长期运行
视频接口MIPI CSI / USB / HDMI决定摄像头接入方式
网络接口千兆以太网 / WiFi用于远程调试与结果回传
存储eMMC / TF 卡存放系统镜像与模型文件
选型时不要只看 TOPS 峰值。目标检测的实际帧率还受内存带宽、算子支持度和前后处理开销影响,峰值算力往往只能达到 30%~60%。

三、软件栈:从驱动到推理 API

旭日平台的软件栈自下而上分为四层,部署工作主要发生在“推理 API”与“工具链”之间。

  1. 驱动与运行时:负责加载 BPU 指令、分配共享内存、同步 CPU 与 BPU 的任务。
  2. 推理 API:提供模型加载、输入输出张量绑定、同步/异步推理接口,是应用层调用的入口。
  3. 系统镜像:基于 Linux 的板级支持包,包含内核、根文件系统与预装库。
  4. 示例程序:官方提供的检测 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 指令序列与权重二进制,输出可部署的模型文件。
  • 验证:在板端运行,对比精度、时延与内存占用,定位回退算子。
常见误区:直接在 PC 上完成转换就认为部署成功。实际上,算子回退、量化误差和内存不足往往只在板端运行时才暴露,必须预留板端联调时间。

五、案例场景:一个检测模型的部署复盘

以 YOLOv5s 部署到旭日平台为例。首次转换后,工具链提示 Focus 层与部分 Slice 算子不支持,导致这些算子回退到 CPU,单帧时延从预期的 30 ms 上升到 90 ms。复盘后的处理方式是:将 Focus 层替换为等价的卷积实现,把 Slice 改写为平台支持的切片方式,再重新量化校准。调整后 BPU 算子覆盖率从 82% 提升到 97%,时延回落到 35 ms 左右,精度仅下降约 1.2 个百分点。

这个案例说明:部署不是单向的“转换—运行”,而是模型结构与平台能力的双向适配。理解架构与工具链,才能在遇到算子不支持、精度掉点、时延超标时快速定位问题所在。

掌握本节四个关键词——BPU 异构架构、硬件约束、软件栈分层、工具链五步——就具备了继续深入模型转换与量化实操的基础认知。