forked from eaiadmin/rtos_llm_opt
docs: reorganize MCU static intelligence research materials
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
# 实验设计与验证方法
|
||||
|
||||
## 1. 实验目标
|
||||
|
||||
验证静态联合编排是否能够在AI进入控制系统后,同时保证:
|
||||
|
||||
1. 控制任务时间边界;
|
||||
2. AI任务质量与时效性;
|
||||
3. 内存、功耗和启动预算;
|
||||
4. 超时、过载和异常时的安全降级。
|
||||
|
||||
## 2. 平台分层
|
||||
|
||||
| 层级 | 平台 | 作用 |
|
||||
|---|---|---|
|
||||
| H0 | 4×V100服务器 | 训练、量化、转换和参考精度 |
|
||||
| H1 | RK3588 16 GB | SylixOS方法原型和完整链路 |
|
||||
| H2 | RK3588 8 GB限额 | 预算收缩与准入判定验证 |
|
||||
| H3 | RK3568/RK3576 | 控制端迁移、低功耗和跨BSP验证 |
|
||||
| H4 | 真正MCU | SRAM/Flash、快速启动和极限资源实证 |
|
||||
|
||||
## 3. 对照组
|
||||
|
||||
| 编号 | 配置 | 目的 |
|
||||
|---|---|---|
|
||||
| O0 | 无AI,仅控制任务 | 控制性能下界 |
|
||||
| O1 | AI作为普通后台任务 | 观察未经治理的干扰 |
|
||||
| O2 | 静态Arena + 固定优先级 | 验证基础静态机制 |
|
||||
| O3 | O2 + 固定窗口/算子分段 | 验证时间编排 |
|
||||
| O4 | O3 + 准入、超时和规则兜底 | 完整方案 |
|
||||
|
||||
在同硬件、同模型、同输入和同编译选项下进行机制消融。Linux/PREEMPT_RT与SylixOS比较属于系统方案对照,若推理后端不同,必须单独解释。
|
||||
|
||||
## 4. 负载场景
|
||||
|
||||
| 编号 | 场景 | 目的 |
|
||||
|---|---|---|
|
||||
| L0 | 仅周期控制 | 建立基线 |
|
||||
| L1 | 仅AI任务 | 建立模型时间与能耗基线 |
|
||||
| L2 | 控制 + AI | 核心共存场景 |
|
||||
| L3 | L2 + CPU竞争 | 验证调度和抢占 |
|
||||
| L4 | L2 + 内存/DMA竞争 | 验证内存与总线干扰 |
|
||||
| L5 | L2 + CAN/网络/存储 | 验证中断和I/O污染 |
|
||||
| L6 | L2 + 突发输入 | 验证队列、丢弃与准入 |
|
||||
| L7 | L2 + 超时/崩溃/错误输出 | 验证规则兜底和恢复 |
|
||||
|
||||
## 5. 实验单元
|
||||
|
||||
### E0:设备和软件准入
|
||||
|
||||
- BSP启动、时钟、SMP、外设和看门狗;
|
||||
- SylixOS/RealEvo版本冻结;
|
||||
- 模型在CPU路径完成正确性验证;
|
||||
- NPU路径单独设置准入门槛;
|
||||
- 测量工具和时间戳校验。
|
||||
|
||||
### E1:控制任务基线
|
||||
|
||||
测量1 ms主任务及5/10 ms扩展任务的唤醒延迟、响应时间、抖动和GPIO端到端响应。
|
||||
|
||||
### E2:模型和算子基线
|
||||
|
||||
记录每个算子与完整模型的执行时间、峰值内存、工作区、任务质量和 `E/inference`。
|
||||
|
||||
### E3:内存方案对照
|
||||
|
||||
比较动态堆、固定Arena、生命周期复用和不同内存限额,观察峰值、碎片、失败点和长稳行为。
|
||||
|
||||
### E4:时间编排对照
|
||||
|
||||
比较普通后台运行、固定窗口和算子分段,观察控制任务尾延迟、AI完成率和切分开销。
|
||||
|
||||
### E5:混合干扰
|
||||
|
||||
依次增加CPU、内存、DMA、通信和存储干扰,不同时改变多个变量。
|
||||
|
||||
### E6:准入和过载
|
||||
|
||||
逐级增加AI到达率,记录队列峰值、拒绝率、过期输入、有效完成率和控制任务边界。
|
||||
|
||||
### E7:故障与规则兜底
|
||||
|
||||
注入模型超时、错误输出、任务崩溃和驱动不可用,测量切换时间、控制保持率和恢复时间。
|
||||
|
||||
### E8:启动、功耗和长稳
|
||||
|
||||
分别测量启动到安全控制、启动到AI就绪、平均功耗、单次推理能耗和24小时运行状态。
|
||||
|
||||
## 6. 指标
|
||||
|
||||
### 6.1 控制层
|
||||
|
||||
- deadline miss ratio;
|
||||
- P50/P95/P99/P99.9 jitter;
|
||||
- 观测最大响应时间;
|
||||
- GPIO/CAN端到端响应;
|
||||
- 降级期间控制任务保持率。
|
||||
|
||||
### 6.2 AI层
|
||||
|
||||
- 单次推理时延及分布;
|
||||
- 完成率、拒绝率和过期率;
|
||||
- 任务准确率、F1或业务指标;
|
||||
- 权重、Arena、工作区和峰值内存。
|
||||
|
||||
### 6.3 系统层
|
||||
|
||||
- CPU占用和抢占次数;
|
||||
- 队列长度;
|
||||
- 内存安全余量;
|
||||
- `E/inference`;
|
||||
- 温度、频率和降频;
|
||||
- 启动与恢复时间。
|
||||
|
||||
## 7. 统计与报告原则
|
||||
|
||||
1. 普通单元至少独立运行5次;
|
||||
2. 控制任务报告样本数、分位数、最大值和违约分子/分母;
|
||||
3. 零违约只表述为“在指定工况和样本数下未观测到违约”;
|
||||
4. 不用P99.9或观测最大值冒充理论WCET;
|
||||
5. 保存超时、拒绝、OOM和任务崩溃,不静默删除失败数据;
|
||||
6. 预测与实测必须使用相同配置和版本;
|
||||
7. 功耗报告说明测量边界、采样率和空载功率。
|
||||
|
||||
## 8. 数据产物
|
||||
|
||||
每次运行至少保存:
|
||||
|
||||
- `manifest.json`:硬件、SylixOS/BSP、模型、任务和编译配置;
|
||||
- `control.csv`:释放、开始、完成、CPU、截止期状态;
|
||||
- `inference.csv`:输入、开始、结束、结果、超时与拒绝原因;
|
||||
- `memory.csv`:静态区、Arena、栈和峰值;
|
||||
- `power.csv`:功率、温度和频率;
|
||||
- `events.log`:看门狗、降级、重启和恢复;
|
||||
- `summary.json`:指标、样本量和准入结论。
|
||||
|
||||
## 9. 阶段完成条件
|
||||
|
||||
- P0:RK3588 CPU路径完成E0~E7;
|
||||
- P1:NPU或加速路径在准入后完成E2、E5、E7;
|
||||
- P2:RK3568/RK3576复现实验并量化迁移成本;
|
||||
- P3:真正MCU完成E0~E8,形成严格MCU论文证据。
|
||||
|
||||
若BSP、驱动或推理运行时不可用,停止对应路径,输出适配缺口,不把计划写成实测结果。
|
||||
@@ -0,0 +1,147 @@
|
||||
# 首个实验冻结说明
|
||||
|
||||
> 实验名称:RK3588 + SylixOS上1 ms控制任务与INT8 1D CNN共存实验
|
||||
>
|
||||
> 状态:草案,待BSP与场景数据确认后冻结
|
||||
> 原则:冻结后,正式实验期间不得静默改变模型、输入、任务、频率和测量口径。
|
||||
|
||||
## 1. 实验目标
|
||||
|
||||
回答以下问题:
|
||||
|
||||
1. AI作为普通后台任务运行时,会对1 ms控制任务造成多大干扰;
|
||||
2. 静态Arena、固定优先级和固定推理窗口能否降低干扰;
|
||||
3. 有界队列、超时和规则兜底能否限制AI过载与故障传播;
|
||||
4. 离线预测的内存和执行时间与板端实测相差多少。
|
||||
|
||||
## 2. 平台冻结
|
||||
|
||||
| 项目 | 冻结值 | 状态 |
|
||||
|---|---|---|
|
||||
| 设备型号/编号 | RK3588工业盒,待填写 | 待确认 |
|
||||
| CPU | 4×A76 + 4×A55 | 已知 |
|
||||
| 内存 | 16 GB;增加8 GB限额组 | 计划 |
|
||||
| 存储 | eMMC/NVMe,待填写 | 待确认 |
|
||||
| SylixOS版本 | | 待翼辉确认 |
|
||||
| BSP版本 | | 待翼辉确认 |
|
||||
| RealEvo版本 | | 待翼辉确认 |
|
||||
| 编译器与优化级别 | | 待确认 |
|
||||
| CPU频率策略 | 固定频率优先 | 待确认 |
|
||||
| 散热与环境温度 | | 待填写 |
|
||||
|
||||
## 3. 控制任务冻结
|
||||
|
||||
| 参数 | 初始建议 | 最终冻结值 |
|
||||
|---|---:|---:|
|
||||
| 周期 `T` | 1 ms | |
|
||||
| 截止期 `D` | 1 ms | |
|
||||
| 任务体 | 确定性计算 + GPIO/CAN回环 | |
|
||||
| 参考执行时间 | 约100~200 μs | |
|
||||
| 释放方式 | 绝对周期释放 | |
|
||||
| 优先级 | 最高业务优先级 | |
|
||||
| CPU绑定 | 独占核与共享核各一组 | |
|
||||
| 日志 | 预分配内存缓冲 | |
|
||||
|
||||
控制任务必须在无AI条件下先通过基线准入。
|
||||
|
||||
## 4. AI任务冻结
|
||||
|
||||
| 参数 | 初始建议 | 最终冻结值 |
|
||||
|---|---|---|
|
||||
| 任务 | 振动/电流窗口状态分类 | |
|
||||
| 模型 | 小型INT8 1D CNN | |
|
||||
| 输入长度 | 固定,待数据集确认 | |
|
||||
| 输出类别 | 正常/轻微异常/严重异常 | |
|
||||
| 推理周期 | 50或100 ms | |
|
||||
| 推理后端 | 第一阶段CPU | |
|
||||
| Tensor Arena | 静态生成 | |
|
||||
| 最大允许执行时间 | 由基线试运行后冻结 | |
|
||||
| 质量阈值 | Accuracy/F1,待冻结 | |
|
||||
| 超时行为 | 丢弃结果并触发规则路径 | |
|
||||
|
||||
## 5. 对照组
|
||||
|
||||
| 编号 | 配置 |
|
||||
|---|---|
|
||||
| O0 | 仅控制任务 |
|
||||
| O1 | 控制 + AI普通后台任务、动态内存 |
|
||||
| O2 | 控制 + AI静态Arena、固定优先级 |
|
||||
| O3 | O2 + 固定推理窗口或算子分段 |
|
||||
| O4 | O3 + 有界队列、超时、规则兜底和恢复 |
|
||||
|
||||
## 6. 负载组
|
||||
|
||||
- L0:无干扰;
|
||||
- L1:CPU竞争25/50/75%;
|
||||
- L2:内存流式读写;
|
||||
- L3:GPIO/CAN/网络I/O;
|
||||
- L4:AI输入突发;
|
||||
- L5:模型超时;
|
||||
- L6:AI任务异常退出;
|
||||
- L7:连续运行与热状态。
|
||||
|
||||
## 7. 规则兜底
|
||||
|
||||
AI结果仅用于状态分类、告警或参数建议,不直接覆盖硬安全约束。
|
||||
|
||||
触发兜底的条件:
|
||||
|
||||
- 推理超过冻结截止期;
|
||||
- 输出类别或数值越界;
|
||||
- 输入时间戳过期;
|
||||
- 队列溢出;
|
||||
- AI任务或运行时异常;
|
||||
- 连续若干次结果不可信。
|
||||
|
||||
兜底动作:
|
||||
|
||||
1. 丢弃当前AI结果;
|
||||
2. 保持或恢复规则控制;
|
||||
3. 记录事件;
|
||||
4. 必要时重启AI任务;
|
||||
5. 连续自检通过后恢复AI路径。
|
||||
|
||||
## 8. 指标
|
||||
|
||||
### 控制任务
|
||||
|
||||
- deadline miss ratio;
|
||||
- P50/P95/P99/P99.9响应时间与抖动;
|
||||
- 观测最大值;
|
||||
- GPIO/CAN端到端响应。
|
||||
|
||||
### AI任务
|
||||
|
||||
- 单次推理时延;
|
||||
- 完成、拒绝、超时和过期率;
|
||||
- 任务质量;
|
||||
- 权重、Arena、工作区和峰值内存。
|
||||
|
||||
### 系统
|
||||
|
||||
- CPU占用、抢占和上下文切换;
|
||||
- 内存余量;
|
||||
- 功率、温度和频率;
|
||||
- 降级切换和恢复时间。
|
||||
|
||||
## 9. 运行方法
|
||||
|
||||
1. 保存硬件和软件配置快照;
|
||||
2. 重启进入指定配置;
|
||||
3. 先运行O0基线;
|
||||
4. 模型预热与冷启动分开测量;
|
||||
5. 各组随机或平衡顺序运行;
|
||||
6. 普通单元至少独立运行5次;
|
||||
7. 保存所有失败、拒绝和超时;
|
||||
8. 正式结果使用冻结后的新运行批次。
|
||||
|
||||
## 10. 首轮完成判据
|
||||
|
||||
- [ ] BSP、时钟和测量链路通过;
|
||||
- [ ] O0控制基线无未解释异常;
|
||||
- [ ] CPU模型正确运行;
|
||||
- [ ] O0~O4全部有数据;
|
||||
- [ ] 至少完成CPU、内存和突发干扰;
|
||||
- [ ] 至少完成一次超时和任务异常注入;
|
||||
- [ ] 预测内存与实测内存完成比较;
|
||||
- [ ] 得出静态联合编排是否改善控制边界的结论。
|
||||
@@ -0,0 +1,109 @@
|
||||
# 硬件与软件版本清单模板
|
||||
|
||||
> 每次正式实验必须复制一份本模板并填写完整。无法获取的字段填写 `N/A` 或 `UNKNOWN`,不得留空或按经验猜测。
|
||||
|
||||
## 1. 实验标识
|
||||
|
||||
| 字段 | 内容 |
|
||||
|---|---|
|
||||
| 项目 | 面向MCU的静态智能控制基础系统 |
|
||||
| 实验编号 | |
|
||||
| 运行编号 | |
|
||||
| 日期与时区 | |
|
||||
| 操作人 | |
|
||||
| 数据目录 | |
|
||||
| Git提交 | |
|
||||
|
||||
## 2. 硬件
|
||||
|
||||
| 字段 | 内容 |
|
||||
|---|---|
|
||||
| 设备名称 | |
|
||||
| 实物编号 | |
|
||||
| 主板/核心板型号 | |
|
||||
| PCB/硬件版本 | |
|
||||
| SoC/MCU | |
|
||||
| CPU核心与频率 | |
|
||||
| DSP/NPU/GPU | |
|
||||
| RAM容量与类型 | |
|
||||
| Flash/eMMC/NVMe | |
|
||||
| 网络接口 | |
|
||||
| CAN/RS485/GPIO | |
|
||||
| 电源 | |
|
||||
| 散热方式 | |
|
||||
| 环境温度 | |
|
||||
|
||||
## 3. SylixOS与BSP
|
||||
|
||||
| 字段 | 内容 |
|
||||
|---|---|
|
||||
| SylixOS版本 | |
|
||||
| Base版本 | |
|
||||
| BSP名称与版本 | |
|
||||
| 设备树校验值 | |
|
||||
| RealEvo版本 | |
|
||||
| 编译器版本 | |
|
||||
| 编译优化级别 | |
|
||||
| C/C++运行库 | |
|
||||
| 启动参数 | |
|
||||
| CPU亲和性 | |
|
||||
| 中断亲和性 | |
|
||||
| 频率策略 | |
|
||||
| 看门狗配置 | |
|
||||
|
||||
## 4. AI模型与运行时
|
||||
|
||||
| 字段 | 内容 |
|
||||
|---|---|
|
||||
| 模型名称 | |
|
||||
| 模型版本/校验值 | |
|
||||
| 模型格式 | |
|
||||
| 量化格式 | |
|
||||
| 输入形状 | |
|
||||
| 输出定义 | |
|
||||
| 权重大小 | |
|
||||
| Tensor Arena | |
|
||||
| 最大工作区 | |
|
||||
| 推理运行时 | |
|
||||
| 算子库版本 | |
|
||||
| NPU/驱动版本 | |
|
||||
| 校准数据版本 | |
|
||||
| 任务质量阈值 | |
|
||||
|
||||
## 5. 控制任务
|
||||
|
||||
| 字段 | 内容 |
|
||||
|---|---|
|
||||
| 周期 | |
|
||||
| 截止期 | |
|
||||
| 优先级 | |
|
||||
| CPU绑定 | |
|
||||
| 栈大小 | |
|
||||
| 任务体版本 | |
|
||||
| GPIO/CAN回环 | |
|
||||
| 安全规则版本 | |
|
||||
| 超时动作 | |
|
||||
|
||||
## 6. 测量设备
|
||||
|
||||
| 字段 | 内容 |
|
||||
|---|---|
|
||||
| 逻辑分析仪/示波器 | |
|
||||
| 探头与采样率 | |
|
||||
| 功率计 | |
|
||||
| 功率采样率 | |
|
||||
| CAN/RS485分析仪 | |
|
||||
| 时间同步方式 | |
|
||||
| 空载环回延迟 | |
|
||||
|
||||
## 7. 配置校验
|
||||
|
||||
- [ ] 设备编号与实物一致;
|
||||
- [ ] Git提交已记录;
|
||||
- [ ] 模型校验值已记录;
|
||||
- [ ] BSP、编译器和运行时版本已记录;
|
||||
- [ ] CPU频率和亲和性已确认;
|
||||
- [ ] 输入、随机种子和负载序列已冻结;
|
||||
- [ ] 测量设备和采样率已确认;
|
||||
- [ ] 数据目录空间充足;
|
||||
- [ ] 故障与无效批次记录方式已确认。
|
||||
@@ -0,0 +1,107 @@
|
||||
# 实验运行记录模板
|
||||
|
||||
## 1. 运行信息
|
||||
|
||||
| 字段 | 内容 |
|
||||
|---|---|
|
||||
| 实验编号 | |
|
||||
| 运行编号 | |
|
||||
| 日期/开始时间/结束时间 | |
|
||||
| 操作人 | |
|
||||
| 对照组 | O0/O1/O2/O3/O4 |
|
||||
| 负载组 | L0~L7 |
|
||||
| 数据目录 | |
|
||||
| 配置清单 | |
|
||||
|
||||
## 2. 运行前检查
|
||||
|
||||
- [ ] 硬件编号正确;
|
||||
- [ ] SylixOS/BSP/应用版本正确;
|
||||
- [ ] 模型校验值正确;
|
||||
- [ ] CPU频率与亲和性正确;
|
||||
- [ ] 中断配置正确;
|
||||
- [ ] 测量设备已连接;
|
||||
- [ ] 空载环回值正常;
|
||||
- [ ] 时间同步正常;
|
||||
- [ ] 数据目录空间充足;
|
||||
- [ ] 环境温度已记录。
|
||||
|
||||
## 3. 运行参数
|
||||
|
||||
| 参数 | 值 |
|
||||
|---|---|
|
||||
| 控制周期/截止期 | |
|
||||
| 控制任务优先级/CPU | |
|
||||
| AI周期/截止期 | |
|
||||
| AI任务优先级/CPU | |
|
||||
| 模型/量化/输入 | |
|
||||
| Arena/工作区 | |
|
||||
| 队列长度 | |
|
||||
| 超时策略 | |
|
||||
| 干扰负载 | |
|
||||
| 运行时长 | |
|
||||
| 随机种子 | |
|
||||
|
||||
## 4. 运行过程
|
||||
|
||||
| 时间 | 事件 | 影响 | 处理 |
|
||||
|---|---|---|---|
|
||||
| | 启动 | | |
|
||||
| | 进入稳态 | | |
|
||||
| | 干扰开始 | | |
|
||||
| | 故障注入 | | |
|
||||
| | 降级/恢复 | | |
|
||||
| | 结束 | | |
|
||||
|
||||
## 5. 结果摘要
|
||||
|
||||
### 控制任务
|
||||
|
||||
| 指标 | 结果 |
|
||||
|---|---:|
|
||||
| 计划释放数 | |
|
||||
| 完成数 | |
|
||||
| 截止期违约数/比率 | |
|
||||
| P99/P99.9响应时间 | |
|
||||
| 观测最大响应时间 | |
|
||||
| GPIO/CAN端到端延迟 | |
|
||||
|
||||
### AI任务
|
||||
|
||||
| 指标 | 结果 |
|
||||
|---|---:|
|
||||
| 输入数 | |
|
||||
| 完成/拒绝/超时/过期 | |
|
||||
| P50/P99推理时延 | |
|
||||
| 任务质量 | |
|
||||
| 峰值内存 | |
|
||||
|
||||
### 系统
|
||||
|
||||
| 指标 | 结果 |
|
||||
|---|---:|
|
||||
| CPU占用 | |
|
||||
| 平均/峰值功率 | |
|
||||
| `E/inference` | |
|
||||
| 温度/降频比例 | |
|
||||
| 降级切换时间 | |
|
||||
| 恢复时间 | |
|
||||
|
||||
## 6. 有效性判定
|
||||
|
||||
- [ ] 配置与冻结说明一致;
|
||||
- [ ] 原始数据完整;
|
||||
- [ ] 无丢失且未解释的时间戳;
|
||||
- [ ] 测量设备正常;
|
||||
- [ ] 失败、超时和拒绝均已保存;
|
||||
- [ ] 无人为中断或未记录操作。
|
||||
|
||||
运行判定:`VALID / INVALID / EXPLORATORY`
|
||||
|
||||
原因:
|
||||
|
||||
## 7. 异常与后续动作
|
||||
|
||||
| 异常 | 初步原因 | 是否重跑 | 后续负责人 |
|
||||
|---|---|---|---|
|
||||
| | | | |
|
||||
@@ -0,0 +1,22 @@
|
||||
# 20-实验与验证
|
||||
|
||||
本层管理研究证据、冻结配置和逐次实验记录。
|
||||
|
||||
## 方法文档
|
||||
|
||||
1. [00-实验设计与验证方法.md](./00-实验设计与验证方法.md):O0~O4对照、L0~L7负载、E0~E8实验和指标;
|
||||
2. [01-首个实验冻结说明.md](./01-首个实验冻结说明.md):RK3588首个正式实验的冻结模板。
|
||||
|
||||
## 实验模板
|
||||
|
||||
3. [02-硬件软件版本清单模板.md](./02-硬件软件版本清单模板.md):每个正式配置填写一次;
|
||||
4. [03-实验运行记录模板.md](./03-实验运行记录模板.md):每次运行填写一次。
|
||||
|
||||
## 使用原则
|
||||
|
||||
- 先冻结配置,再运行正式实验;
|
||||
- 保存失败、拒绝、超时和异常;
|
||||
- 不用观测最大值替代理论WCET;
|
||||
- 不把不同推理后端的差异直接归因于操作系统。
|
||||
|
||||
[返回总目录](../README.md)
|
||||
Reference in New Issue
Block a user