Files

172 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 技术路线:静态编排、工具链与芯片协同
## 1. 总体架构
本子课题采用“离线联合编排 + SylixOS有界运行时 + 规则兜底”的结构。
```text
模型与数据集 控制任务与安全规则
│ │
├──模型解析/量化 ├──周期/截止期/WCET
├──算子图/张量生命周期 ├──中断/DMA/通信开销
└──质量阈值 └──降级与恢复条件
│ │
└────┬─────┘
▼
离线联合编排器
内存规划/时间编排/准入判定
│
┌───────────┴───────────┐
▼ ▼
拒绝或降级建议 SylixOS工程产物
│
▼
固定任务、静态内存、有界队列
│
▼
超时检测、规则兜底、恢复
```
## 2. 四层技术结构
### 2.1 模型与算子层
- 固定模型版本、输入尺寸和任务质量标准;
- INT8等目标量化;
- 有限算子集合;
- 统计权重、Tensor Arena和工作区;
- 建立目标板算子执行时间和能耗数据库。
### 2.2 离线编排层
- 分析控制任务周期、截止期、执行时间与干扰;
- 规划静态内存和张量复用;
- 选择完整推理窗口或算子分段窗口;
- 计算响应时间和安全余量;
- 输出 `PASS / PASS WITH LIMITS / REJECT`。
### 2.3 SylixOS执行层
- 固定优先级与周期释放;
- 控制任务、AI任务和安全任务分级;
- 任务核绑定与中断治理;
- 静态区、固定Arena和DMA缓冲;
- 高精度时间戳、看门狗和异常恢复。
### 2.4 规则与闭环层
- AI输出范围、状态机和置信度检查;
- 超时或过载时丢弃过期结果;
- 默认动作或规则控制接管;
- 恢复前连续自检;
- 保证控制内环不等待AI。
## 3. 核心机制
### 3.1 静态内存
部署前计算:
\[
M_{AI}=M_{weights}+M_{arena}+M_{workspace}+M_{IO}+M_{stack}
\]
并保证:
\[
M_{AI}\leq M_{total}-M_{OS}-M_{control}-M_{comm}-M_{safety}
\]
运行阶段避免模型路径使用无界动态分配;权重、张量、DMA和控制缓冲分区管理。
### 3.2 静态时间
控制任务始终高于AI任务。AI采用以下两种方式之一:
- 固定周期内完成一次完整推理;
- 把算子图切分成若干有界片段,分布在多个控制周期的空闲窗口执行。
必须分析AI不可抢占片段、中断和DMA对关键任务造成的最大阻塞。
### 3.3 有界通信
- 固定长度队列或环形缓冲;
- 最新值优先,过期输入可丢弃;
- 控制任务不得因等待AI队列而阻塞;
- 结果携带时间戳和有效期;
- 超时结果不得晚到生效。
### 3.4 部署准入
在编译和烧录前检查:
- Flash/RAM是否超限;
- 算子是否受支持;
- 模型质量是否达标;
- 推理窗口是否满足;
- 控制任务是否仍可调度;
- 是否存在规则兜底和故障恢复路径。
## 4. 工具链路线
```text
ONNX/TFLite/其他固定模型
→ 解析与校验
→ 量化和算子合法化
→ 目标芯片算子映射
→ 张量生命周期与静态内存规划
→ 控制任务联合调度分析
→ SylixOS C/C++、链接段和任务配置生成
→ RealEvo编译、部署、调试
→ 板端数据回灌
```
建议研究团队开发独立的编排器,不重复实现IDE。编排器负责模型、资源和任务分析;RealEvo继续负责BSP/App工程、交叉编译、部署和调试。
## 5. 结合现有设备的实现
### 5.1 4×V100服务器
负责训练、剪枝、量化校准、参考精度、模型转换和编排工具运行。服务器结果只提供模型侧基线,不作为控制端实时性证据。
### 5.2 RK3588工业盒
首期以CPU路径打通端到端流程,再把NPU作为条件扩展:
1. SylixOS BSP和控制任务准入;
2. CPU小模型运行;
3. 静态Arena和任务生成;
4. 固定核、共享核与干扰对照;
5. 超时、过载和规则兜底;
6. NPU运行时可用后增加DMA、统一内存和中断实验。
### 5.3 RK3568/RK3576
用于验证生成代码和资源描述能否跨BSP迁移,并逐步缩小内存、算力和功耗预算。两者仍归类为控制端SoC。
### 5.4 真正MCU
必须在BSP、最小系统、模型运行时和测量链路确认后选型。真正MCU阶段应把模型收敛到1D CNN、DS-CNN、MLP、决策树等有限任务,不延续大模型口径。
## 6. SylixOS技术映射
| 研究机制 | SylixOS/RealEvo落点 | 待确认项 |
|---|---|---|
| 周期任务与优先级 | 线程、定时器、RMS/固定优先级 | API和实际调度配置 |
| 核绑定 | SMP与大小核调度 | RK3588具体亲和性接口 |
| 静态内存 | BSP内存映射、链接脚本、静态区 | 内存域和限额能力 |
| DMA/Cache | BSP与驱动接口 | NPU、摄像头等设备一致性路径 |
| 异常恢复 | 看门狗、任务/进程恢复 | 推荐的局部重启方式 |
| 代码部署 | RealEvo BSP/App构建、上传和调试 | 外部生成工程接口 |
| MCU落地 | lite/tiny与目标BSP | 芯片清单和最小资源占用 |
## 7. 技术边界
- 不把GPU/NPU内部执行时间直接归因于RTOS;
- 不把不同推理后端的整栈差异写成操作系统差异;
- 不用观测最大值替代理论WCET;
- 不在驱动未准入时承诺NPU路径;
- 不用SoC受限配置替代真正MCU功耗和存储结论。
六步编排、配置产物和准入门槛详见 [01-离线联合编排研究框架.md](./01-离线联合编排研究框架.md)。