Initial commit

This commit is contained in:
2026-09-17 12:29:44 +08:00
commit c03aff8faa
8 changed files with 3320 additions and 0 deletions
+210
View File
@@ -0,0 +1,210 @@
# RTOS 针对大模型运行的优化方向 — 整体研究框架
## 0. 核心问题
> **矛盾**:RTOS追求确定性的微秒~毫秒级延迟,而LLM推理是计算密集、耗时长(ms~s级)、内存大(GB级)的软实时负载。
>
> **目标**:在资源受限的边缘/嵌入式场景中,设计RTOS调度器/运行时,管理LLM推理过程中的**多源异构资源**,确保推理过程的**确定性**、**低延迟**与**能效**。
**这不是让RTOS"跑大模型",而是用RTOS做"LLM推理资源的调度与协调"。**
---
## 1. 问题空间:硬件平台全景
### 1.1 四层硬件抽象
```
┌───────────────────────────────────────────────────────────┐
│ Controller Layer (MCU/应用CPU) │
│ STM32H7 / ESP32-S3 / Cortex-M7 / RPi CM4 │
│ 目标:跑量化后的小模型(Qwen-1.5B INT4, Qwen2.5-0.5B) │
│ RAM: 256KB~2MB, 主频: 400MHz~1GHz │
├───────────────────────────────────────────────────────────┤
│ SoC Layer (手机/车规SoC) │
│ 骁龙8 Gen / 天玑9300 / NXP i.MX93 │
│ 集成: CPU + NPU + GPU + ISP + DDR, 功耗: 3~15W │
│ 目标:跑500M~3B参数模型, 实时语音/对话 │
├───────────────────────────────────────────────────────────┤
│ Edge AI Accelerator (边缘盒子) │
│ NVIDIA Jetson Orin / RK3588 / 地平线J5 │
│ 集成: CPU集群 + 专用NPU + 大DDR, 功耗: 15~60W │
│ 目标:跑7B~14B参数模型, 多模态推理 │
├───────────────────────────────────────────────────────────┤
│ Server Layer (x86 / ARM Server) │
│ x86: Intel/AMD, ARM: Ampere/Graviton │
│ 集成: 多Core + 多NPU/GPU + 大内存 + PCIe互联 │
│ 目标:跑14B~72B+参数模型, 云端推理 │
└───────────────────────────────────────────────────────────┘
```
### 1.2 各平台的关键约束
| 平台层级 | 内存带宽 | 加速设备 | RTOS适配难度 | 核心挑战 |
|---------|---------|---------|-------------|---------|
| MCU级 | 几十MB/s | 无/简单DSP | 低(RTOS成熟) | 内存太小,模型必须极小 |
| SoC级 | 几百MB/s | NPU + GPU | 中 | NPU驱动不开放,NPU-ARM通信难 |
| Edge盒子 | GB/s级 | 专用NPU | 中高 | 多NPU调度、PCIe延迟 |
| Server级 | 数十GB/s | 多GPU/NPU | 高 | NUMA、互联拓扑、调度粒度 |
---
## 2. 五层技术框架
```
┌───────────────────────────────────────────────────────────────┐
│ L5: 模型层 — Inference Engine │
│ Quantization | KV Cache Layout | Speculative Decode │
│ 目标:减少计算量、降低内存带宽需求 │
├───────────────────────────────────────────────────────────────┤
│ L4: 运行时层 — Runtime & Scheduling │
│ Task Graph | Pipeline Parallel | Memory Pool | Preemption │
│ 目标:将LLM计算分解为RTOS可管理的task与事件 │
├───────────────────────────────────────────────────────────────┤
│ L3: 资源抽象层 — Hardware Abstraction │
│ Accelerator Driver | DMA Engine | Memory Controller │
│ 目标:统一不同硬件的接口,暴露资源状态给调度器 │
├───────────────────────────────────────────────────────────────┤
│ L2: 调度层 — RTOS Core │
│ Priority Scheduling | EDF | Hybrid Scheduling | IRQ mgmt │
│ 目标:在保证硬实时约束的同时高效执行LLM推理 │
├───────────────────────────────────────────────────────────────┤
│ L1: 硬件层 — SoC + Accelerator + Memory │
│ ARM/RISC-V | LPDDR | PCIe | NPU/GPU │
│ 目标:理解硬件物理特性(缓存、带宽、拓扑) │
└───────────────────────────────────────────────────────────────┘
```
### 2.1 L5 → L4 的映射关系
```
LLM推理阶段 RTOS任务映射
────────── ────────────
Tokenization → Task A (低优先级, 可中断)
Embedding → Task B (中优先级, 计算密集)
Attention KV Cache → Task C (高优先级, 延迟敏感)
FFN → Task D (中优先级, 可pipeline)
Logits/Sample → Task E (中优先级, 可并行)
Output decoding → Task A (循环)
```
---
## 3. 六个核心优化方向
```
方向1: 推理图任务调度 ← 调度算法
方向2: KV Cache 与内存管理 ← 内存管理
方向3: 加速器协同调度 ← 资源协同
方向4: 量化与精度感知调度 ← 精度-调度联合优化
方向5: 中断与实时响应 ← 实时性保障
方向6: 能耗与热管理 ← 能效优化
```
每个方向的深入分析见对应子文档(01~06)。
---
## 4. 关键性能指标
### 4.1 延迟指标
| 指标 | 定义 | 优化手段 |
|-----|------|---------|
| TTFT (Time to First Token) | 输入到第一个输出token的时间 | 预计算embedding、Attention优先级提升 |
| TPOT (Time per Output Token) | 每个输出token的平均生成时间 | KV Cache池化、流水线并行 |
| Tail Latency P99 | 99%请求的端到端延迟 | 减少context switch、避免priority inversion |
| WCL (Worst-Case Latency) | 硬实时约束下的最大可接受延迟 | WCET分析、hybrid scheduling |
### 4.2 资源指标
| 指标 | 定义 | 优化手段 |
|-----|------|---------|
| Memory Bandwidth Utilization | DDR带宽利用率 | DMA offload、带宽感知调度 |
| Cache Hit Rate | L1/L2 Cache命中率 | Task pinning、数据局部性优化 |
| NPU/GPU Utilization | 加速器利用率 | 双缓冲、pipeline parallel |
| Power per Inference | 每次推理的能耗 | DVFS、idle-aware scheduling |
### 4.3 实时性指标
| 指标 | 定义 | 优化手段 |
|-----|------|---------|
| Jitter | 延迟的方差 | 固定优先级、减少抢占 |
| Preemption Overhead | 上下文切换开销 | 减少task数量、pin核心 |
| Blocking Time | 低优先级被高优先级阻塞的时间 | Priority inheritance protocol |
| Deadline Miss Ratio | 错过截止时间的比例 | EDF、adaptive priority boost |
---
## 5. 研究方法论
### 5.1 建模方法
```
LLM Inference Model:
T_total = Σ(T_encode + T_decode_i) for i = 1..N_tokens
T_encode = T_tokenizer + T_embedding + Σ(T_attention_l + T_ffn_l) for l = 1..N_layers
RTOS Scheduling Model:
π(task) = priority(task)
τ(task) = WCET(task)
D(task) = deadline(task)
R(task) = response_time(task) = τ(task) + Σ(interference_from_higher_priority_tasks)
```
### 5.2 分析工具链
- **WCET分析**:RTA (Response Time Analysis)、FDAS (Full Demand Analysis for Arbitrary Scheduling)
- **模拟平台**:GEM5(全系统模拟)、NN-SIM(神经网络模拟)
- **原型验证**:FreeRTOS/Zephyr + 自定义调度器 patch
- **性能分析**:perf、ftrace、f2fs-trace、NPU profiler
### 5.3 评估流程
```
1. 基准测量:不同平台上的LLM推理profile(延迟、带宽、能耗)
2. 模型构建:将推理过程建模为RTOS任务图
3. 算法设计:针对识别到的瓶颈设计调度/内存/协同策略
4. 仿真验证:在模拟环境中验证理论分析
5. 原型实现:在真实RTOS上实现关键模块
6. 实测对比:优化前后指标对比
```
---
## 6. 与已有工作的关系
| 已有工作 | 差异点 | 本研究的独特贡献 |
|---------|-------|----------------|
| vLLM / TGI (LLM Serving) | 服务器级,无实时性保证 | 边缘/嵌入式场景,硬实时约束 |
| Micro-LLM (TinyLLM) | 模型压缩,不关注OS调度 | 从OS调度层优化推理延迟确定性 |
| NPU SDK调度 | 封闭blackbox,不暴露接口 | 开放式RTOS集成,可分析可证明 |
| CUDA Stream (GPU) | 无实时性分析,非抢占式 | RTOS可抢占、WCET可证明 |
---
## 7. 文档结构索引
| 文档 | 内容 |
|-----|------|
| [01-inference-scheduling.md](01-inference-scheduling.md) | 推理图任务分解与混合调度算法 |
| [02-kv-cache-memory.md](02-kv-cache-memory.md) | KV Cache内存池与带宽竞争管理 |
| [03-accelerator-collab.md](03-accelerator-collab.md) | CPU+NPU流水线协同与异步调度 |
| [04-quantization-scheduling.md](04-quantization-scheduling.md) | 量化精度感知的调度策略 |
| [05-irq-realtime.md](05-irq-realtime.md) | 中断管理与实时性保障 |
| [06-power-thermal.md](06-power-thermal.md) | 能耗感知调度与热管理 |
| [07-analysis-methods.md](07-analysis-methods.md) | 方法论与评估工具链 |
---
## 8. 预期研究成果
1. **理论**:LLM推理任务的实时性建模与调度分析理论
2. **算法**:针对嵌入式场景的LLM推理调度算法(至少2种:hybrid-priority + EDF)
3. **系统**:基于FreeRTOS/Zephyr的LLM推理调度原型系统
4. **数据**:不同平台上的LLM推理profile数据集
5. **论文**:针对RTSS、RTAS、ISLPED等实时系统的论文
---
*最后更新: 2026-09-17*