forked from eaiadmin/rtos_llm_opt
Initial commit
This commit is contained in:
+210
@@ -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*
|
||||
Reference in New Issue
Block a user