地平线旭日芯片、BPU 架构、嵌入式 SoC、AI 加速器、模型部署、智能驾驶、Matrix RTL、Tensor 移动单元、Runtime 调度、AI 分层建模
地平线旭日(Sunrise)系列 AI SoC 是国产嵌入式视觉智能芯片的重要代表,广泛应用于智能驾驶座舱、ADAS 视觉前端、机器人感知等高性能 AI 场景。其核心 BPU(Brain Processing Unit)架构具备高吞吐、低功耗、深度可编程等特性,通过与 ARM CPU、ISP、视频引擎等模块深度集成,实现多任务 AI 感知闭环。本文围绕旭日系列芯片(如旭日 2、旭日 3)从 SoC 构成、BPU 微架构、模型部署、分层资源映射与运行时优化等方面进行系统实战解析。重点覆盖 Horizon Matrix 开发平台、模型编译链 Horizon Robotic Open Explorer(HRoE)、AI 模型与硬件的高效映射策略,帮助工程人员构建端到端高性能 AI 部署系统。
地平线旭日系列芯片定位于“高性能、低功耗、强实时”的边缘 AI 芯片平台,面向智能驾驶、智能座舱、机器人视觉感知等场景。在整体 SoC 结构上,旭日系列融合多核异构处理器、专用视觉感知加速模块、视频编解码子系统、Tensor 高速交换通道与片上深度神经网络加速器(BPU)等核心组件。
以旭日 3(Sunrise 3)为例,其 SoC 架构主要由以下模块组成:
旭日系列提供单芯片封装方案,便于轻量化模组部署,适配性强,尤其适合中高端智能座舱与高性价比边缘感知设备。
在旭日芯片中,BPU 与 CPU、ISP、VPU 之间通过片上通信互联(内部 NOC + AXI 总线 + 中断桥接)实现协同工作:
以旭日 3 AI SoC 为例,主要性能指标如下:
指标项 | 数据参数 |
---|---|
AI 算力(INT8) | 5.0 TOPS |
AI 算力(FP16) | 2.5 TFLOPS |
最大支持分辨率 | 双路 1080p@30fps 或单路 4K@30fps |
支持模型格式 | BPU-optimized IR, ONNX |
最大支持模型数 | 同时驻留运行 8 个模型 |
峰值功耗 | < 3W(整机) |
旭日系列在 SoC 层面为端侧部署提供了标准化、低成本、可配置的视觉感知平台,具备完整的计算链路封装能力与国产可控优势。
BPU 是地平线旭日芯片的 AI 推理核心,由 Horizon 自研的张量加速指令集(Horizon ISA)与可编程张量执行单元组成,专为深度神经网络运算设计,具备高吞吐、低延迟、结构可拓展等特点。
BPU 整体分为五个主要执行模块:
每个 BPU 内部通常包含多个 Tile Engine,支持同一图多个分支并行运行,极大提升可用带宽与资源利用率。
BPU 并不执行 Python/Paddle/TensorFlow 层级的图,而是执行由 HRoE 编译器生成的张量执行指令链(Tensor Execution Plan):
整个过程为全异步流水线操作,支持多个子图串联与并发并行。
BPU 中张量数据流分为以下几类路径:
张量通路被封装为 Tensor Descriptor Block,运行时支持快速转发与 Layout 转换。访问对齐方式支持:
BPU 架构设计聚焦端侧性能与算力效率,配合 Horizon 编译工具链与调度系统,可实现高并发、多模型、低功耗 AI 推理闭环,后续章节将结合 SoC 分层建模体系展开具体分析。
地平线旭日系列 SoC 在硬件设计层面采用了典型的异构分层架构。为了提升模型部署灵活性与系统执行效率,Horizon 提出了系统级“软硬件映射一体化”的分层建模体系。该建模体系通过将硬件资源建模抽象为功能层(Functional Layer)、执行层(Execution Layer)与控制层(Control Layer),实现神经网络模型结构到底层资源的映射闭环。
系统层面可划分如下三层:
控制层(Control Layer)
包括 CPU、系统总线、Scheduler 管理器,负责整体资源调度、任务下发、状态反馈等;
执行层(Execution Layer)
主要包括 BPU、VPU、Tensor Scheduler、Tile Buffer 管理器等,是模型执行核心;
功能层(Functional Layer)
对应具体 AI 功能模块,例如 ISP 图像预处理、模型 A/B/C 的 OP Fusion 部分、编码器子图等。
将各层解耦后,模型部署时不再关注物理资源如何划分,而是通过统一的资源接口进行张量描述与调度规则注册。
在 Horizon 工程实践中,模型算子会被映射为中间执行图(Intermediate Tensor DAG),每个算子节点携带如下属性:
Scheduler 根据上述属性生成张量路由图和执行路径列表。
映射机制流程:
分层建模体系有效解耦了算法与底层执行资源之间的耦合,提升了模型部署灵活性与系统运行时调度的可控性,是支撑旭日 SoC 多模型协同执行与复杂任务感知闭环的基础。
Matrix Runtime 是地平线为 BPU 执行环境专门设计的推理运行时系统,构建在 CNNDK(Cambricon Neural Network DevKit)接口与异构 SoC 架构之上,负责模型生命周期管理、张量创建与释放、子图调度、异步执行与结果同步等任务,是连接应用与底层 BPU 的核心执行引擎。
Matrix Runtime 架构如下所示:
.bin
格式模型文件,解析为 Runtime 结构体;完整加载流程如下:
执行阶段分为同步与异步两种调用方式:
matrix_run_sync(model_handle, input_tensor, output_tensor);
matrix_run_async(model_handle, input_tensor, output_tensor, callback_fn);
Matrix Runtime 内置错误处理模块,涵盖:
调度策略支持:
matrix_reset()
,避免任务堆积;Matrix Runtime 是连接高层模型调用与底层 BPU 执行资源的关键桥梁,提供了成熟、灵活、稳定的推理管理能力,为地平线旭日系列芯片实现复杂 AI 应用提供了高质量的运行时基础设施保障。
地平线提供了一套完整的模型编译工具链——HRoE(Horizon Robotics Open Explorer),该工具链支持从主流训练框架导出模型、静态图分析与优化、子图划分与融合、BPU 指令编译到最终 .bin
模型生成的全过程。HRoE 是旭日系列 BPU 的官方支持编译路径,是系统部署工程中最关键的环节之一。
HRoE 支持多种主流框架模型的转换与适配:
框架 | 支持情况 | 推荐路径 |
---|---|---|
PyTorch | ✅ 完整支持 | torch.onnx.export() → ONNX |
TensorFlow | ✅ 主要支持 TF1.x | .pb → ONNX → HRoE |
ONNX | ✅ 强推荐 | 直接支持 |
PaddlePaddle | ⚠️ 部分支持 | 建议先转 ONNX |
原始模型统一转为 ONNX 格式后,交由 HRoE 进行结构化分析与中间表示生成。
第一阶段为模型结构转换与静态优化,使用 hr_convert_tool
命令行工具:
hr_convert_tool \
--model-type onnx \
--model-path yolov5.onnx \
--output-model yolov5_output.json \
--output-data yolov5_output.data \
--input-shape '[1,3,640,640]' \
--optimize_level O2
输出的 .json + .data
文件为模型结构描述与权重数据。
常见结构优化包括:
第二阶段使用 hr_build_model
编译成 BPU 可执行的 .bin
文件:
hr_build_model \
--input-model yolov5_output.json \
--input-data yolov5_output.data \
--output-model yolov5.bin \
--platform Sunrise3 \
--bpu-precision int8 \
--calibration-data ./calib_images/ \
--quantization-type symmetric
此阶段将:
量化策略:
类型 | 描述 |
---|---|
symmetric | 推荐用于 INT8 精度,简化乘加路径 |
asymmetric | 支持更宽泛输入范围,但执行较慢 |
per-layer | 每层使用一个 scale,兼容性更强 |
per-channel | 精度更高,适用于高动态输入模型 |
报错类型 | 原因及处理建议 |
---|---|
op not supported | 模型中包含 BPU 不支持算子,需转换或删除 |
quantization mismatch | 校准数据量不足或数据分布与推理阶段不符 |
shape dynamic not allowed | 输入尺寸未固定,需设置 --input-shape 明确大小 |
memory overflow in tile cut | 子图切分导致中间张量过大,应开启 fuse 降维优化 |
建议启用调试输出:
--debug-level 3 --dump-intermediate true
可在 ./model_dump
中看到完整图结构、每层参数与中间 tensor 内容,便于逐步调试分析。
model_dump
文件,便于 CI/CD 回溯问题;通过 HRoE 工具链的结构分析、图优化与 BPU 指令编译能力,开发者可以将主流 AI 模型以最小代价快速适配到地平线旭日系列芯片,形成高效、稳定、结构闭环的部署模型体系。
在旭日系列 SoC 内部,BPU、CPU、DDR、VPU、ISP 等多个模块之间通过片上互联网络(NoC)进行数据交互。AI 推理阶段涉及大量张量传输,如何合理组织 Tensor 的移动路径、减少数据搬运带宽开销,是影响系统性能的核心因素之一。
每个张量在编译时都被标记以下生命周期阶段:
Tensor 描述结构包含:
{
"name": "input_tensor",
"shape": [1, 3, 640, 640],
"layout": "NCHW",
"dtype": "int8",
"memory_scope": "sram",
"reusable": true,
"life_span": [0, 14]
}
BPU 在编译阶段根据张量的生命周期生成 Memory Time Chart,用于后续的地址分配与冲突规避。
旭日芯片内部采用带宽感知调度模块(Bandwidth Aware Transfer Control),具备以下能力:
具体实现:
Horizon 提供自动张量重用机制,核心规则:
通过 reuse,内存占用可下降 30%~45%,特别适合小模型或高并发任务。
开启方式:
--enable-tensor-reuse true
问题类型 | 原因分析 | 解决策略 |
---|---|---|
Tensor overlap conflict | 两个张量生命周期重叠未标识 | 修正模型结构,开启 reuse 检测 |
SRAM access stall | 张量搬运与计算指令未解耦 | 引入 async DMA + cache preload 指令 |
Layout mismatch | 模型 layout 与 BPU layout 不兼容 | 编译前统一转换为 NCHW + Packed 结构 |
IO 带宽瓶颈 | 多 Batch 张量冲突,外存读写频繁 | 降低 batch,或开启 Tile 内部中转缓存 |
hr_analyze_memory
工具查看张量在时间轴上的冲突密度;通过对 Tensor 生命周期建模、移动路径优化、内存 reuse 策略的结合使用,可显著降低 BPU 推理过程中的搬运开销与内存负载,提升整体 AI 系统的执行效率与功耗表现。
地平线旭日系列芯片在实际应用中常需同时运行多个模型以支持复杂感知任务(如多摄像头、分工模型、多路识别)。为了充分释放片上 BPU 的执行能力,Runtime 提供了多模型并发执行框架与 BPU Task 调度体系。该体系支持子图级并发调度、优先级控制、核间负载平衡,帮助开发者构建稳定高效的推理服务。
场景类型 | 特点说明 |
---|---|
同步切换型模型 | 多模型轮询使用,互不重叠,如人脸识别 + OCR |
并发异构模型 | 多线程独立运行,输入输出张量互不干扰 |
同模型多实例 | 同一模型接收不同来源数据(如多摄像头并发) |
主辅模型结构 | 主模型输出作为辅模型输入(如检测+分类串联) |
旭日 BPU 支持任意组合模型结构的并行执行,但需要合理设计资源分配与调度策略。
BPU 的硬件资源被抽象为可调度 Slot,运行时系统按以下方式进行任务分发:
配置方式(伪代码):
matrix_runtime_config_t config;
config.priority = 2;
config.affinity_mask = 0b11; // 绑定 BPU0 和 BPU1
matrix_set_model_config(model_handle, &config);
matrix_run_async()
配合 callback 回调机制;matrix_release_slot()
明确释放资源。matrix_profiler
工具采样;多模型协同机制结合 BPU 硬件级 Slot 并发能力,配合合理的调度策略,可以在边缘平台上构建近似“多线程 AI 虚拟机”的推理执行环境,极大提升感知系统整体吞吐与响应能力。
旭日系列芯片支持完整的 Horizon AI SDK(Matrix + NN Runtime + BPU Driver + 工具链),可部署在基于 Linux 或 RTOS 的嵌入式系统中。其部署过程涉及驱动加载、运行库集成、模型文件部署、任务调度与系统服务适配等步骤,是边缘智能系统落地的核心技术路径。
Horizon AI SDK 包括以下核心模块:
模块名称 | 功能说明 |
---|---|
libmatrix.so | 推理引擎运行库,负责模型加载与执行 |
libhbrt.so | BPU 硬件抽象层 Runtime |
libbpu_driver.so | 与内核态驱动通信的用户态接口 |
libisp / libvenc | 图像处理与视频编码库(选配) |
bin 工具链 | 模型转换、性能分析、编译支持工具 |
header 文件 | Matrix Runtime 与 Tensor 接口定义 |
SDK 分为 host_package
(开发机交叉编译使用)与 target_package
(设备端部署使用)两部分,二者需版本保持一致。
以 Ubuntu/CentOS 为例,设备端部署流程如下:
insmod bpu_driver.ko
insmod bpu_sram.ko
设备节点验证:
ls /dev/hb-bpu0 /dev/hb-sram0
将 SDK lib
和 model
拷贝至设备 /usr/lib
与 /opt/models
目录下,确保动态库路径配置正确。
为设备节点与资源目录分配访问权限:
chmod 666 /dev/hb-*
chown aiuser /opt/models/*
将推理服务以 daemon 或系统 service 启动,可注册为 systemd 服务单元:
[Unit]
Description=Horizon Matrix Inference Service
[Service]
ExecStart=/usr/bin/inference_server
Restart=always
[Install]
WantedBy=multi-user.target
对于 FreeRTOS、RT-Thread 等微型系统平台,SDK 提供轻量级裁剪版本:
libmatrix.a
、libbpu.a
;部署建议:
hbprofiler
工具定期采样推理时间、帧率与出错率。旭日平台提供了完整 SDK 支持,开发者可快速构建从驱动初始化、模型部署到服务调度的系统落地路径。通过结合 Matrix Runtime 能力与嵌入式系统设计方法,可以高效实现工业级、稳定性强、可长期运行的 AI 终端应用。
地平线旭日 3 芯片在智能座舱场景下得到了广泛应用,主要承载 DMS(驾驶员监测系统)、OMS(乘客监测系统)、多路摄像头感知处理等任务。其多 BPU 并发推理能力与 SoC 级视频处理模块,在保证 AI 推理性能的同时,也兼顾功耗控制与系统响应稳定性。以下为某前装座舱项目的部署实战解析。
模块 | 参数配置 |
---|---|
主控 SoC | Horizon Sunrise 3(旭日3) |
CPU 架构 | 双核 Cortex-A55 @1.4GHz |
AI 加速器 | 双 BPU(INT8)@5 TOPS |
摄像头接口 | MIPI-CSI × 3,接入车内 RGB 与 IR 摄像头 |
存储与内存 | 4GB LPDDR4 + 16GB eMMC |
操作系统 | Linux 5.10 + Yocto(AARCH64) |
外设控制 | CAN × 1, LIN × 2, UART × 4 |
系统共部署了 4 个模型,并基于任务类型进行合理分配:
DMS 模型(人脸关键点 + 闭眼/打哈欠检测)
OMS 模型(乘客数量检测 + 姿态识别)
Face ID 模型(人脸特征向量提取)
行为识别模型(单通道 3s 行为序列 CNN)
模型全部通过 HRoE 工具链编译为 .bin
格式,并在设备启动阶段由 Matrix Runtime 初始化加载至内存。
并配合调度资源隔离:
matrix_config_t dms_cfg = {
.priority = 3,
.affinity_mask = 0b01, // BPU0
};
matrix_set_model_config(dms_model, &dms_cfg);
系统采用 4 个推理线程 + 2 个资源复用线程构建了完整的感知执行池,确保车内所有输入信号可在 200ms 内完成处理与融合决策。
指标项 | 数据表现 |
---|---|
平均帧处理延迟 | 88ms(DMS)/ 103ms(OMS) |
设备平均功耗 | 3.2W(全负载) |
BPU 占用率 | BPU0:60 |
日志级异常率 | < 0.1%,主要集中于张量尺寸不匹配 |
启动后模型加载耗时 | 238ms |
峰值资源使用 | DDR 使用 67%,Flash 使用 42%,CPU 使用 <40% |
hbprofiler
建立 BPU 使用趋势图,辅助系统稳定性调参;.bin
模型文件,不替换完整 runtime。该工程部署实践充分利用了旭日 SoC 的硬件调度能力与软件执行策略,在不借助外部 GPU 或主控 AI 芯片的前提下,完成了座舱核心感知任务的全部落地。
伴随智能汽车、边缘机器人、工业视觉等应用场景的算力密度持续增长,地平线旭日芯片体系正朝向更强大的异构协同、动态调度与云端协同推理方向发展。本文结合 2025 年已公开信息,总结旭日系列芯片的未来演进方向与核心优化趋势。
下一代旭日 4 将采用双 Tile Block 模式,每个 Block 内含独立指令调度器与 SRAM Cache,支持更复杂子图并发与跨子图调度。
从传统 CPU/BPU/VPU 独立 memory controller 演进为统一的 Tensor Memory Bank,由中央 Memory Mapper 管理访问区域与生命周期。
芯片支持在运行时动态切换 INT8 / INT4 / FP16 精度,BPU 支持混合编译模式(Mixed Graph Execution),可降低功耗同时提升吞吐。
未来的旭日 SoC 将不再仅仅是“一个嵌入式 AI 推理芯片”,而是构成车规级、工业级智能系统中灵活协同、智能调度、自适应优化的核心处理器。开发者在工程实践中应构建面向调度架构的设计理念与模型部署逻辑,抓住硬件演进赋能的机会,实现更大规模、更高密度、更低延迟的边缘 AI 系统。
个人简介
作者简介:全栈研发,具备端到端系统落地能力,专注人工智能领域。
个人主页:观熵
个人邮箱:[email protected]
座右铭:愿科技之光,不止照亮智能,也照亮人心!
观熵系列专栏导航:
AI前沿探索:从大模型进化、多模态交互、AIGC内容生成,到AI在行业中的落地应用,我们将深入剖析最前沿的AI技术,分享实用的开发经验,并探讨AI未来的发展趋势
AI开源框架实战:面向 AI 工程师的大模型框架实战指南,覆盖训练、推理、部署与评估的全链路最佳实践
计算机视觉:聚焦计算机视觉前沿技术,涵盖图像识别、目标检测、自动驾驶、医疗影像等领域的最新进展和应用案例
国产大模型部署实战:持续更新的国产开源大模型部署实战教程,覆盖从 模型选型 → 环境配置 → 本地推理 → API封装 → 高性能部署 → 多模型管理 的完整全流程
Agentic AI架构实战全流程:一站式掌握 Agentic AI 架构构建核心路径:从协议到调度,从推理到执行,完整复刻企业级多智能体系统落地方案!
云原生应用托管与大模型融合实战指南
智能数据挖掘工程实践
Kubernetes × AI工程实战
TensorFlow 全栈实战:从建模到部署:覆盖模型构建、训练优化、跨平台部署与工程交付,帮助开发者掌握从原型到上线的完整 AI 开发流程
PyTorch 全栈实战专栏: PyTorch 框架的全栈实战应用,涵盖从模型训练、优化、部署到维护的完整流程
深入理解 TensorRT:深入解析 TensorRT 的核心机制与部署实践,助力构建高性能 AI 推理系统
Megatron-LM 实战笔记:聚焦于 Megatron-LM 框架的实战应用,涵盖从预训练、微调到部署的全流程
AI Agent:系统学习并亲手构建一个完整的 AI Agent 系统,从基础理论、算法实战、框架应用,到私有部署、多端集成
DeepSeek 实战与解析:聚焦 DeepSeek 系列模型原理解析与实战应用,涵盖部署、推理、微调与多场景集成,助你高效上手国产大模型
端侧大模型:聚焦大模型在移动设备上的部署与优化,探索端侧智能的实现路径
行业大模型 · 数据全流程指南:大模型预训练数据的设计、采集、清洗与合规治理,聚焦行业场景,从需求定义到数据闭环,帮助您构建专属的智能数据基座
机器人研发全栈进阶指南:从ROS到AI智能控制:机器人系统架构、感知建图、路径规划、控制系统、AI智能决策、系统集成等核心能力模块
人工智能下的网络安全:通过实战案例和系统化方法,帮助开发者和安全工程师识别风险、构建防御机制,确保 AI 系统的稳定与安全
智能 DevOps 工厂:AI 驱动的持续交付实践:构建以 AI 为核心的智能 DevOps 平台,涵盖从 CI/CD 流水线、AIOps、MLOps 到 DevSecOps 的全流程实践。
C++学习笔记?:聚焦于现代 C++ 编程的核心概念与实践,涵盖 STL 源码剖析、内存管理、模板元编程等关键技术
AI × Quant 系统化落地实战:从数据、策略到实盘,打造全栈智能量化交易系统
大模型运营专家的Prompt修炼之路:本专栏聚焦开发 / 测试人员的实际转型路径,基于 OpenAI、DeepSeek、抖音等真实资料,拆解 从入门到专业落地的关键主题,涵盖 Prompt 编写范式、结构输出控制、模型行为评估、系统接入与 DevOps 管理。每一篇都不讲概念空话,只做实战经验沉淀,让你一步步成为真正的模型运营专家。
点个赞,给我一些反馈动力
⭐ 收藏起来,方便之后复习查阅
关注我,后续还有更多实战内容持续更新