forked from eaiadmin/rtos_llm_opt
242 lines
10 KiB
Markdown
242 lines
10 KiB
Markdown
# RTOS + Linux + Hypervisor 边缘并行架构说明
|
||
|
||
## 1. 架构目标
|
||
|
||
边缘侧采用并行分域思路:RTOS 负责控制和安全关键路径,Linux 负责 AI 推理与复杂软件生态,Hypervisor 或等价静态分区层负责空间隔离、时间干扰控制和设备分配。
|
||
|
||
该架构不把“让 RTOS 原生运行全部大模型软件栈”作为前提。优化目标按优先级排序为:
|
||
|
||
1. 控制闭环截止期不被推理负载破坏;
|
||
2. AI 结果在规定的新鲜度窗口内可用;
|
||
3. 推理域故障不扩散到控制域;
|
||
4. 在前三项满足后提高推理吞吐、能效和资源利用率。
|
||
|
||
## 2. 逻辑架构
|
||
|
||
```text
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ 边缘计算硬件 │
|
||
│ CPU 核 / LLC / DRAM / 内存带宽 / NPU或GPU / I/O / 时钟 │
|
||
├─────────────────────────────────────────────────────────────┤
|
||
│ Hypervisor、静态分区器或具备等价能力的隔离层 │
|
||
│ vCPU/物理核分配、内存区间、IOMMU、设备直通、中断路由、监控 │
|
||
├───────────────────────────┬─────────────────────────────────┤
|
||
│ RTOS 控制域 │ Linux 推理域 │
|
||
│ - 周期控制与联锁 │ - 模型加载与推理运行时 │
|
||
│ - 现场总线与关键传感器 │ - GPU/NPU 驱动与厂商 SDK │
|
||
│ - 时间戳、结果校验 │ - 数据预处理与后处理 │
|
||
│ - 超时、降级与安全状态 │ - 模型更新、日志与网络服务 │
|
||
├───────────────────────────┴─────────────────────────────────┤
|
||
│ 有界跨域通道:共享内存环形队列 + 通知 / RPMsg / 虚拟设备等 │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
这里的“Hypervisor”表示架构角色,不预设具体产品。若 SoC 已具备安全岛、独立 MCU、AMP 或硬件静态分区能力,只要能够提供可验证的资源和故障隔离,也可以作为实现路径。
|
||
|
||
## 3. 两个域的职责边界
|
||
|
||
### 3.1 RTOS 控制域
|
||
|
||
RTOS 域应拥有:
|
||
|
||
- 周期控制、联锁、执行器输出和关键状态采集;
|
||
- 控制任务使用的定时器、关键中断和关键 I/O;
|
||
- AI 请求的采样时刻、任务编号、期望完成期限和优先级;
|
||
- AI 结果的完整性、新鲜度、置信度和序列一致性检查;
|
||
- 超时、失联、异常结果和推理域重启时的回退控制;
|
||
- 必要的看门狗与推理域生命周期控制接口。
|
||
|
||
RTOS 域不应依赖 Linux 域才能维持基本安全状态。AI 可增强系统能力,但关键控制闭环应明确 AI 缺席时的可接受行为。
|
||
|
||
### 3.2 Linux 推理域
|
||
|
||
Linux 域应拥有:
|
||
|
||
- 模型文件、模型运行时和推理服务;
|
||
- GPU/NPU/DLA 等加速器驱动及厂商 SDK;
|
||
- 复杂预处理、后处理、模型编排和批处理;
|
||
- 网络、存储、模型更新以及非关键日志服务;
|
||
- 推理资源的吞吐优化和域内调度。
|
||
|
||
Linux 域可以对 AI 服务做软实时优化,但不得把域内平均时延等同于控制系统的实时保证。
|
||
|
||
### 3.3 Hypervisor/分区层
|
||
|
||
隔离层需要明确而不是笼统声称以下能力:
|
||
|
||
- CPU 核是静态独占、时间分片还是混合分配;
|
||
- 内存区域是否静态划分,是否存在共享页和动态气球机制;
|
||
- LLC、内存带宽和互联是否可分配、限额或仅可观测;
|
||
- 加速器采用直通、复用还是由单一域独占;
|
||
- 设备 DMA 是否受 IOMMU 限制;
|
||
- 物理中断如何路由,是否会在控制核上产生额外虚拟化出口;
|
||
- 一个域崩溃、重启或过载时,另一域是否持续运行。
|
||
|
||
Hypervisor 本身也会引入 VM exit、虚拟中断和跨域通信开销,必须纳入实测,不能只把它视为零成本隔离层。
|
||
|
||
## 4. 跨域通信契约
|
||
|
||
推荐使用异步、有界、可丢弃的通信语义,避免 RTOS 控制任务同步等待 Linux 推理。
|
||
|
||
### 4.1 请求消息最小字段
|
||
|
||
| 字段 | 作用 |
|
||
|---|---|
|
||
| `request_id` | 区分请求和乱序结果 |
|
||
| `sample_time` | 标识传感数据的采样时刻 |
|
||
| `deadline` | AI 结果最晚可用时刻 |
|
||
| `priority/class` | 区分任务重要性和推理策略 |
|
||
| `payload_ref` | 指向受控共享缓冲区或内联小数据 |
|
||
| `schema/version` | 防止两域版本不一致 |
|
||
|
||
### 4.2 结果消息最小字段
|
||
|
||
| 字段 | 作用 |
|
||
|---|---|
|
||
| `request_id` | 与请求配对 |
|
||
| `model_version` | 支撑审计和回滚 |
|
||
| `finish_time` | 计算跨域端到端时延 |
|
||
| `confidence/status` | 判断结果是否可用 |
|
||
| `valid_until` | 规定结果新鲜度边界 |
|
||
| `payload/checksum` | 结果与完整性校验 |
|
||
|
||
### 4.3 控制域消费规则
|
||
|
||
RTOS 只在以下条件同时满足时采用 AI 结果:
|
||
|
||
```text
|
||
ID 匹配
|
||
AND 数据完整
|
||
AND finish_time <= deadline
|
||
AND now <= valid_until
|
||
AND confidence/status 满足策略
|
||
```
|
||
|
||
任一条件不满足时执行预定义回退,例如沿用上次可信结果、使用传统控制器、降低运行等级或进入安全状态。回退动作和完成时间本身也属于实时需求。
|
||
|
||
## 5. 系统级时间模型
|
||
|
||
AI 辅助决策链可表示为:
|
||
|
||
```text
|
||
R_ai = C_sample + C_tx_req + Q_linux + C_pre
|
||
+ C_infer + C_post + C_tx_rsp + C_validate
|
||
```
|
||
|
||
系统约束不是简单要求 `C_infer` 最小,而是:
|
||
|
||
```text
|
||
R_control <= D_control
|
||
|
||
AI 结果被采用时:R_ai <= D_ai 且 age(result) <= A_max
|
||
|
||
AI 结果未按时到达时:R_fallback <= D_fallback
|
||
```
|
||
|
||
其中,控制闭环约束为硬优先级;AI 时效约束通常为任务相关的软实时或固实时约束;回退路径必须有独立期限。
|
||
|
||
## 6. 资源并行与隔离策略
|
||
|
||
### 6.1 CPU 和中断
|
||
|
||
- 为 RTOS 域保留独立物理核,避免与 Linux vCPU 时间复用;
|
||
- 将关键定时器和现场总线中断直达 RTOS 域;
|
||
- 将网卡、存储和加速器完成中断尽量路由到 Linux 域;
|
||
- 若共享 LLC,测量 Linux 推理对控制任务缓存行为的干扰;
|
||
- 记录 SMT、动态迁核和电源管理对分区确定性的影响。
|
||
|
||
### 6.2 内存、带宽和 DMA
|
||
|
||
- 两域使用静态内存区间,共享区保持最小化;
|
||
- 共享缓冲区预分配,禁止关键路径动态扩容;
|
||
- 使用 IOMMU 或硬件访问控制限制 DMA 范围;
|
||
- 对 DRAM 带宽、内存控制器和互联竞争进行压力实验;
|
||
- 若硬件不支持带宽限额,必须把“核隔离”和“内存隔离”分开表述。
|
||
|
||
### 6.3 加速器
|
||
|
||
推荐由 Linux 推理域独占 GPU/NPU,以保留成熟驱动和运行时生态。RTOS 通过请求契约使用推理服务,而不是直接进入厂商运行时。
|
||
|
||
若控制域也需访问同一加速器,则必须额外解决队列仲裁、DMA 隔离、不可抢占执行段和故障复位归属。这种共享模式风险更高,应作为扩展方案而非默认主线。
|
||
|
||
### 6.4 功耗和热
|
||
|
||
分域不自动消除芯片级功耗和温度耦合。Linux 域的持续推理可能触发全芯片功耗限制或降频,进而改变 RTOS 域执行时间。因此需要:
|
||
|
||
- 固定或记录各域频率和功率模式;
|
||
- 同步采集控制延迟、推理负载、温度和实际频率;
|
||
- 对推理域设置负载准入或功耗上限;
|
||
- 验证热稳态而非只测短时冷机性能。
|
||
|
||
## 7. 故障与降级状态机
|
||
|
||
```text
|
||
正常增强控制
|
||
│ AI 超时/低置信度
|
||
▼
|
||
传统控制或保持模式
|
||
│ 连续超时/通信故障
|
||
▼
|
||
推理域隔离与重启
|
||
│ 控制风险上升
|
||
▼
|
||
受限运行或安全状态
|
||
```
|
||
|
||
需要验证的故障至少包括:
|
||
|
||
- Linux 推理进程崩溃;
|
||
- Linux 域卡死或重启;
|
||
- 加速器驱动错误或设备复位;
|
||
- 跨域队列堆满、消息乱序或数据损坏;
|
||
- 推理持续超时;
|
||
- Linux 域 CPU、内存、网络或存储过载。
|
||
|
||
每种故障都要记录检测时间、隔离时间、回退完成时间、控制任务违约数和恢复后首个有效 AI 结果时间。
|
||
|
||
## 8. 可比较的架构组
|
||
|
||
| 组别 | 架构 | 用途 |
|
||
|---|---|---|
|
||
| A0 | 单 Linux,控制与推理同域 | 通用部署基线 |
|
||
| A1 | PREEMPT_RT Linux,控制与推理同域 | 实时增强 Linux 基线 |
|
||
| A2 | RTOS 同域承载控制与可运行的 AI | 适用于 MCU/小模型,不强求大模型生态 |
|
||
| A3 | RTOS 控制域 + Linux 推理域 + 分区层 | 边缘并行主方案 |
|
||
| A4 | A3 加入通信、带宽、故障和热治理机制 | 完整优化方案 |
|
||
|
||
比较时必须固定硬件、控制任务语义、AI 模型、输入到达序列和功率策略。A2 与 A3 若使用不同推理后端,应明确这是“系统方案比较”,不能仅归因为内核差异。
|
||
|
||
## 9. 核心评价指标
|
||
|
||
### 控制域
|
||
|
||
- 周期任务响应时间、抖动和 deadline miss ratio;
|
||
- 外部输入到执行器输出的物理链路延迟;
|
||
- AI 过载与故障期间的观测最大响应时间;
|
||
- 回退路径完成时间。
|
||
|
||
### AI 链路
|
||
|
||
- 从 RTOS 发起请求到结果验证完成的端到端延迟;
|
||
- 结果按期率、新鲜度合格率、超时率和丢弃率;
|
||
- 吞吐、TTFT/TPOT 或任务特定推理时延;
|
||
- 推理域重启后的恢复时间。
|
||
|
||
### 隔离与代价
|
||
|
||
- 空载和推理满载时控制延迟之差;
|
||
- CPU、内存带宽、I/O、DMA 和热干扰敏感度;
|
||
- 跨域 IPC 延迟、抖动、拷贝次数和 CPU 开销;
|
||
- 静态资源预留造成的推理吞吐及能效损失。
|
||
|
||
## 10. 架构结论边界
|
||
|
||
本架构旨在证明“系统可以在 AI 负载不确定的情况下保护关键控制路径,并对 AI 结果实施有期限的安全消费”。它不自动证明:
|
||
|
||
- Linux 域中的大模型具备硬实时性;
|
||
- Hypervisor 消除了所有共享硬件干扰;
|
||
- 一个硬件平台的分区结果可直接迁移到另一 SoC;
|
||
- 只要控制域未违约,AI 功能就一定满足任务需求。
|
||
|
||
最终结论必须同时报告控制保障效果、AI 结果可用性以及隔离带来的资源代价。
|