forked from eaiadmin/rtos_llm_opt
11 KiB
11 KiB
RTOS 针对大模型运行的优化方向 — 整体研究框架
0. 核心问题
矛盾:RTOS追求确定性的微秒
毫秒级延迟,而LLM推理是计算密集、耗时长(mss级)、内存大(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 | 推理图任务分解与混合调度算法 |
| 02-kv-cache-memory.md | KV Cache内存池与带宽竞争管理 |
| 03-accelerator-collab.md | CPU+NPU流水线协同与异步调度 |
| 04-quantization-scheduling.md | 量化精度感知的调度策略 |
| 05-irq-realtime.md | 中断管理与实时性保障 |
| 06-power-thermal.md | 能耗感知调度与热管理 |
| 07-analysis-methods.md | 方法论与评估工具链 |
8. 预期研究成果
- 理论:LLM推理任务的实时性建模与调度分析理论
- 算法:针对嵌入式场景的LLM推理调度算法(至少2种:hybrid-priority + EDF)
- 系统:基于FreeRTOS/Zephyr的LLM推理调度原型系统
- 数据:不同平台上的LLM推理profile数据集
- 论文:针对RTSS、RTAS、ISLPED等实时系统的论文
最后更新: 2026-09-17