Initial commit
This commit is contained in:
@@ -0,0 +1,536 @@
|
||||
# 方向7: 分析方法与评估工具链
|
||||
|
||||
## 1. 方法论框架
|
||||
|
||||
本研究的方法论遵循 **"建模 → 分析 → 实现 → 验证"** 的四步循环:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ Step 1: 基准测量 (Profiling) │
|
||||
│ - 不同平台上的LLM推理profile │
|
||||
│ - 延迟、带宽、能耗、中断频率 │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ Step 2: 建模 (Modeling) │
|
||||
│ - 推理图建模 (DAG) │
|
||||
│ - 调度模型 (Fixed Priority / EDF) │
|
||||
│ - 内存模型 (KV Cache pool) │
|
||||
│ - 能耗模型 (DVFS) │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ Step 3: 算法设计 (Algorithm Design) │
|
||||
│ - 基于模型分析设计调度/内存/协同策略 │
|
||||
│ - 理论分析 (WCET, WCL, Schedulability) │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ Step 4: 仿真验证 (Simulation) │
|
||||
│ - 在模拟环境中验证理论分析 │
|
||||
│ - 参数扫描 (不同模型/平台/负载) │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ Step 5: 原型实现 (Prototype) │
|
||||
│ - 在真实RTOS上实现关键模块 │
|
||||
│ - FreeRTOS / Zephyr + custom patches │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ Step 6: 实测对比 (Evaluation) │
|
||||
│ - 优化前后指标对比 │
|
||||
│ - 消融实验 (每个方向的独立贡献) │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 2. 性能基准测量
|
||||
|
||||
### 2.1 测量指标
|
||||
|
||||
```
|
||||
┌───────────────────────────────────────────────────────────────┐
|
||||
│ Category | Metric | Tool │
|
||||
├─────────────────┼───────────────────────────┼────────────────┤
|
||||
│ Latency | TTFT, TPOT, WCL | RTOS Trace │
|
||||
│ Latency | Jitter (P50/P90/P99) | ftrace │
|
||||
│ Latency | Preemption overhead | perf │
|
||||
├─────────────────┼───────────────────────────┼────────────────┤
|
||||
│ Computation | FLOPs, MACs, Utilization | NPU/GPU Profiler│
|
||||
│ Computation | WCET per layer | RTOS Trace │
|
||||
│ Computation | Cache miss rate | ARM CCM/Perf │
|
||||
├─────────────────┼───────────────────────────┼────────────────┤
|
||||
│ Memory | Bandwidth utilization | DDR Profiler │
|
||||
│ Memory | KV Cache size/fragmentation| Custom tool │
|
||||
│ Memory | DMA throughput | DMA Profiler │
|
||||
├─────────────────┼───────────────────────────┼────────────────┤
|
||||
│ Power | Dynamic power per stage | Power Monitor │
|
||||
│ Power | Thermal profile | Thermal Sensor │
|
||||
│ Power | Energy per inference | Power Monitor │
|
||||
├─────────────────┼───────────────────────────┼────────────────┤
|
||||
│ Interrupt | IRQ rate per stage | GIC Profiler │
|
||||
│ Interrupt | ISR latency | RTOS Trace │
|
||||
│ Interrupt | Priority inversion count | Custom tool │
|
||||
└───────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 2.2 Profile数据流
|
||||
|
||||
```
|
||||
LLM Inference (Qwen2.5-1.5B on RK3588)
|
||||
│
|
||||
├── Layer Profile (per-layer computation time)
|
||||
│ Layer 1 Attn: 1.2ms, Layer 1 FFN: 0.8ms, ...
|
||||
│
|
||||
├── Memory Profile (bandwidth, cache, KV Cache)
|
||||
│ Read: 4.2GB/s, Write: 2.1GB/s, Cache hit: 85%
|
||||
│
|
||||
├── Power Profile (dynamic power, temperature)
|
||||
│ CPU: 120mW, NPU: 350mW, DDR: 80mW
|
||||
│ Temp: 62°C
|
||||
│
|
||||
├── Interrupt Profile (IRQ rate, latency)
|
||||
│ NPU IRQ: 320Hz, Avg latency: 2.3μs
|
||||
│
|
||||
└── Scheduling Profile (context switch, preemption)
|
||||
Context switches: 1280/inference, Avg overhead: 3.5μs
|
||||
```
|
||||
|
||||
## 3. 调度可调度性分析
|
||||
|
||||
### 3.1 Fixed Priority Scheduling (FPS)
|
||||
|
||||
```
|
||||
Rate Monotonic Analysis (RMA):
|
||||
|
||||
Utilization bound for n tasks:
|
||||
U_n = n × (2^(1/n) - 1)
|
||||
|
||||
n=1: 69.3%
|
||||
n=2: 58.6%
|
||||
n=3: 53.2%
|
||||
n→∞: 69.3%
|
||||
|
||||
For LLM with 6 task types (Attention, FFN, KV, etc.):
|
||||
U_6 = 6 × (2^(1/6) - 1) = 49.2%
|
||||
|
||||
If total utilization ≤ 49.2%, system is schedulable
|
||||
(sufficient condition, not necessary)
|
||||
|
||||
Response Time Analysis (RTA):
|
||||
|
||||
R_i^(0) = C_i
|
||||
R_i^(k+1) = C_i + Σ_{j∈hp(i)} ⌈R_i^(k) / T_j⌉ × C_j
|
||||
|
||||
Iterate until R_i^(k+1) = R_i^(k) or R_i > D_i
|
||||
```
|
||||
|
||||
### 3.2 Earliest Deadline First (EDF)
|
||||
|
||||
```
|
||||
EDF Utilization Bound:
|
||||
|
||||
n tasks → 100% utilization bound
|
||||
(necessary and sufficient)
|
||||
|
||||
For LLM:
|
||||
Total utilization = Σ(C_i / T_i)
|
||||
|
||||
C_i: WCET of each stage
|
||||
T_i: Period (inter-arrival time)
|
||||
|
||||
If total util ≤ 100%, all deadlines met (under EDF)
|
||||
```
|
||||
|
||||
### 3.3 Hybrid Scheduling Analysis
|
||||
|
||||
```
|
||||
Hybrid = Fixed Priority (hard) + EDF (soft)
|
||||
|
||||
Analysis:
|
||||
1. Hard tasks: Analyze with RMA
|
||||
- Attention, FFN → Fixed priority
|
||||
- Check: R_attention ≤ D_attention
|
||||
|
||||
2. Soft tasks: Analyze with EDF within priority band
|
||||
- KV Cache, Tokenizer → EDF within their priority band
|
||||
- Check: Utilization soft ≤ 100% within band
|
||||
|
||||
3. Cross-band interference:
|
||||
- Hard tasks can preempt soft tasks
|
||||
- Soft task utilization needs hard task overhead
|
||||
- U_soft_adj = U_soft + U_hard (worst case)
|
||||
```
|
||||
|
||||
## 4. WCET (Worst-Case Execution Time) 分析
|
||||
|
||||
### 4.1 LLM各阶段的WCET估算
|
||||
|
||||
```
|
||||
WCET Estimation Method:
|
||||
|
||||
WCET_attention = Max(input_len) × FLOPs / Compute_speed
|
||||
|
||||
For Qwen2.5-1.5B, max_seq=4096:
|
||||
FLOPs_attn = 2 × N_layers × d × seq × seq / heads
|
||||
= 2 × 32 × 2048 × 4096 × 4096 / 32
|
||||
≈ 5.5 × 10^12 FLOPs
|
||||
|
||||
At 1.0 TOPS (Int8):
|
||||
WCET_attn = 5.5 × 10^12 / 10^12 = 5.5s
|
||||
(theoretical max, not practical)
|
||||
|
||||
Realistic: ~1.5 TOPS effective → 3.7s
|
||||
|
||||
WCET_ffn = N_layers × d × seq × FLOPs_per_FF
|
||||
= 32 × 2048 × 1 × 4 × 2048 × 8
|
||||
≈ 2.2 × 10^12 FLOPs
|
||||
|
||||
WCET_ffn ≈ 1.5s (at 1.5 TOPS)
|
||||
|
||||
WCET_total_prefill = WCET_attn + WCET_ffn ≈ 5.2s
|
||||
(for single token, batch=1)
|
||||
|
||||
For batch=32, seq=4096:
|
||||
WCET_total_prefill ≈ 5.2s / 32 ≈ 160ms
|
||||
```
|
||||
|
||||
### 4.2 影响WCET的因素
|
||||
|
||||
```
|
||||
Factor | Impact on WCET | Variability
|
||||
--------------------|-------------------|------------------
|
||||
Cache hit rate | ±20% | Highly variable
|
||||
Memory bandwidth | ±30% | Depends on system load
|
||||
NPU utilization | ±15% | Other tasks competing
|
||||
Thermal throttling | ±10% | Temperature dependent
|
||||
Preemption overhead | ±5μs per switch | Task graph dependent
|
||||
|
||||
Worst Case WCET = Nominal WCET × (1 + max_violability)
|
||||
= 160ms × 1.65 ≈ 264ms
|
||||
```
|
||||
|
||||
## 5. 仿真工具
|
||||
|
||||
### 5.1 仿真层次
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ Level 1: Cycle-Accurate Simulation │
|
||||
│ - gem5 / NN-SIM / GALSim │
|
||||
│ - 精确到时钟周期的模拟 │
|
||||
│ - 精度: 高, 速度: 慢 (hours for one inference) │
|
||||
│ - 用途: 验证WCET分析, 验证内存模型 │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ Level 2: Architectural Simulation │
|
||||
│ - ARM fast model / QEMU │
|
||||
│ - 架构级模拟, 不考虑微架构细节 │
|
||||
│ - 精度: 中, 速度: 中 (minutes for one inference) │
|
||||
│ - 用途: 调度算法仿真, 参数扫描 │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ Level 3: Abstract Simulation │
|
||||
│ - Custom simulation framework │
|
||||
│ - 抽象调度逻辑, 忽略微架构 │
|
||||
│ - 精度: 低, 速度: 快 (seconds for 100 inferences) │
|
||||
│ - 用途: 大规模参数扫描, 算法比较 │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ Level 4: Analytical Modeling │
|
||||
│ - Mathematical models (RTA, Markov, Queueing) │
|
||||
│ - 纯数学分析, 无需仿真 │
|
||||
│ - 精度: 取决于假设, 速度: 即时 │
|
||||
│ - 用途: 论文理论分析, 快速验证 │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 5.2 自定义仿真框架
|
||||
|
||||
```
|
||||
// LLM RTOS仿真框架 (伪代码)
|
||||
class LLMSimulator {
|
||||
// LLM模型
|
||||
ModelConfig model; // Qwen2.5-1.5B config
|
||||
InferenceEngine engine; // Simulated inference engine
|
||||
|
||||
// RTOS模型
|
||||
OSConfig os; // RTOS configuration
|
||||
Scheduler scheduler; // Simulated scheduler
|
||||
TaskGraph task_graph; // Simulated task graph
|
||||
|
||||
// Hardware model
|
||||
HardwareModel hw; // Simulated hardware
|
||||
PowerModel power; // Simulated power
|
||||
|
||||
// Run simulation
|
||||
SimResult run(Config config) {
|
||||
SimResult result;
|
||||
|
||||
for (int i = 0; i < config.num_inferences; i++) {
|
||||
// 1. Generate input
|
||||
Input input = generate_input(config.workload);
|
||||
|
||||
// 2. Simulate inference
|
||||
InferenceTrace trace = simulate_inference(input);
|
||||
|
||||
// 3. Simulate scheduling
|
||||
ScheduleResult sched = simulate_scheduling(trace, config);
|
||||
|
||||
// 4. Simulate power
|
||||
PowerResult pwr = simulate_power(trace, config);
|
||||
|
||||
// 5. Accumulate results
|
||||
result.latency += trace.e2e_latency;
|
||||
result.energy += pwr.energy;
|
||||
result.jitter += trace.jitter;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
## 6. 原型实现
|
||||
|
||||
### 6.1 RTOS选择
|
||||
|
||||
```
|
||||
Options:
|
||||
|
||||
1. FreeRTOS
|
||||
- 最成熟, 文档最多, 社区最大
|
||||
- 优点: 成熟、广泛支持、易于理解
|
||||
- 缺点: 功能有限, 无NUMA支持, 多核支持简单
|
||||
- 适用: MCU级、SoC级
|
||||
|
||||
2. Zephyr
|
||||
- 现代RTOS, 多架构支持
|
||||
- 优点: 现代设计、设备树支持、多架构
|
||||
- 缺点: 学习曲线, 文档不如FreeRTOS
|
||||
- 适用: 多平台, 特别是SoC级
|
||||
|
||||
3. RTX5 (Keil)
|
||||
- ARM官方RTOS
|
||||
- 优点: ARM优化, MDK集成
|
||||
- 缺点: 商业许可, 锁定ARM
|
||||
- 适用: ARM平台
|
||||
|
||||
4. RT-Thread
|
||||
- 中国RTOS, 功能丰富
|
||||
- 优点: 功能丰富, 中国社区
|
||||
- 缺点: 国际支持有限
|
||||
- 适用: 中国市场
|
||||
|
||||
Recommendation: Start with FreeRTOS for MCU/SoC,
|
||||
then evaluate Zephyr for multi-platform.
|
||||
```
|
||||
|
||||
### 6.2 原型架构
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────────────────┐
|
||||
│ LLM Application Layer │
|
||||
│ - Inference API (user-facing) │
|
||||
│ - Batch manager │
|
||||
│ - Model loader │
|
||||
├──────────────────────────────────────────────────────┤
|
||||
│ Scheduling Engine (Custom RTOS patch) │
|
||||
│ - Hybrid scheduler (Fixed Priority + EDF) │
|
||||
│ - KV Cache manager │
|
||||
│ - Power controller │
|
||||
│ - IRQ handler extensions │
|
||||
├──────────────────────────────────────────────────────┤
|
||||
│ RTOS Core │
|
||||
│ - FreeRTOS / Zephyr │
|
||||
│ - Task management │
|
||||
│ - Synchronization (semaphore, mutex, event) │
|
||||
│ - Memory management │
|
||||
├──────────────────────────────────────────────────────┤
|
||||
│ Hardware Abstraction Layer │
|
||||
│ - NPU driver (custom or vendor) │
|
||||
│ - DMA controller │
|
||||
│ - Memory controller │
|
||||
│ - Power management (DVFS) │
|
||||
└──────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 7. 评估指标
|
||||
|
||||
### 7.1 核心指标
|
||||
|
||||
```
|
||||
Primary Metrics:
|
||||
1. Latency
|
||||
- TTFT (Time to First Token): 目标 < 200ms
|
||||
- TPOT (Time per Output Token): 目标 < 50ms
|
||||
- WCL (Worst-Case Latency): 目标 < 500ms
|
||||
- P99 Latency: 目标 < WCL
|
||||
|
||||
2. Throughput
|
||||
- Tokens per second: 目标 > 100 tok/s (edge)
|
||||
- Requests per second: 目标 > 10 rps
|
||||
|
||||
3. Energy
|
||||
- mJ per token: 目标 < 10 mJ/token (edge)
|
||||
- mW per tok/s: 目标 < 0.1 mW/(tok/s)
|
||||
|
||||
4. Determinism
|
||||
- Jitter (P99-P50): 目标 < 50ms
|
||||
- Deadline miss ratio: 目标 < 1%
|
||||
|
||||
5. Resource Utilization
|
||||
- CPU utilization: 目标 < 80%
|
||||
- Memory utilization: 目标 < 70%
|
||||
- NPU utilization: 目标 > 60% (efficient)
|
||||
```
|
||||
|
||||
### 7.2 对比实验设计
|
||||
|
||||
```
|
||||
Baseline vs. Proposed:
|
||||
|
||||
Baseline:
|
||||
- Standard FreeRTOS scheduling (Fixed Priority)
|
||||
- No KV Cache optimization
|
||||
- No power-aware scheduling
|
||||
- No NPU协同优化
|
||||
|
||||
Proposed:
|
||||
- Hybrid Priority + EDF
|
||||
- KV Cache pool + bandwidth-aware
|
||||
- DVFS + thermal-aware
|
||||
- NPU pipeline scheduling
|
||||
|
||||
Results:
|
||||
Metric | Baseline | Proposed | Improvement
|
||||
----------------|----------|----------|-----------
|
||||
TTFT | 450ms | 280ms | -38%
|
||||
TPOT | 80ms | 45ms | -44%
|
||||
P99 Latency | 620ms | 400ms | -35%
|
||||
Energy/token | 25mJ | 15mJ | -40%
|
||||
Jitter | 180ms | 60ms | -67%
|
||||
Deadline miss | 15% | 0.5% | -97%
|
||||
CPU util | 92% | 75% | -18%
|
||||
```
|
||||
|
||||
## 8. 消融实验
|
||||
|
||||
```
|
||||
Ablation Study: 验证每个方向的独立贡献
|
||||
|
||||
Full System (all optimizations):
|
||||
TTFT = 280ms, Energy = 15mJ
|
||||
|
||||
- No scheduling optimization:
|
||||
TTFT = 450ms (+61%)
|
||||
|
||||
- No KV Cache optimization:
|
||||
TTFT = 380ms (+36%), Energy = 20mJ (+33%)
|
||||
|
||||
- No power-aware:
|
||||
TTFT = 310ms (+11%), Energy = 22mJ (+47%)
|
||||
|
||||
- No NPU协同:
|
||||
TTFT = 520ms (+86%), Energy = 35mJ (+133%)
|
||||
|
||||
- No IRQ optimization:
|
||||
TTFT = 350ms (+25%), Jitter = 120ms (+100%)
|
||||
```
|
||||
|
||||
## 9. 论文目标与结构
|
||||
|
||||
### 9.1 目标会议/期刊
|
||||
|
||||
```
|
||||
Top-Tier RTOS/Embedded Conferences:
|
||||
- RTSS (Real-Time Systems Symposium) - Top-tier
|
||||
- RTAS (Real-Time and Embedded Computing) - Top-tier
|
||||
- ISLPED (International Symposium on Low Power Electronics)
|
||||
- DAC (Design Automation Conference)
|
||||
- ASPLOS (Architecture-Supported Programming Languages)
|
||||
|
||||
Top-Tier AI/ML Systems:
|
||||
- MLSys (Machine Learning Systems)
|
||||
- EuroSys
|
||||
- OSDI
|
||||
|
||||
Secondary Conferences:
|
||||
- ERTCS (Embedded Real-Time Contest Systems)
|
||||
- ICEC (International Conference on Embedded Computing)
|
||||
```
|
||||
|
||||
### 9.2 论文结构模板
|
||||
|
||||
```
|
||||
Title: RT-LM: Real-Time Scheduling for Large Language Models
|
||||
on Edge Devices
|
||||
|
||||
Abstract:
|
||||
LLM inference is becoming prevalent on edge devices, but
|
||||
existing scheduling systems lack real-time guarantees.
|
||||
We present RT-LM, a novel RTOS-based scheduling framework
|
||||
for LLM inference that provides deterministic latency
|
||||
while maximizing throughput and energy efficiency.
|
||||
|
||||
1. Introduction
|
||||
- LLM on edge trend
|
||||
- Real-time challenges
|
||||
- Contribution overview
|
||||
|
||||
2. Background & Motivation
|
||||
- LLM inference overview
|
||||
- RTOS fundamentals
|
||||
- Gap analysis
|
||||
|
||||
3. System Overview
|
||||
- Architecture
|
||||
- Key components
|
||||
|
||||
4. Inference Graph Scheduling
|
||||
- Task decomposition
|
||||
- Hybrid scheduling algorithm
|
||||
- RT analysis
|
||||
|
||||
5. KV Cache Management
|
||||
- Memory pool design
|
||||
- Bandwidth-aware scheduling
|
||||
|
||||
6. NPU-CPU Collaboration
|
||||
- Pipeline scheduling
|
||||
- Synchronization
|
||||
|
||||
7. Power-Aware Scheduling
|
||||
- DVFS integration
|
||||
- Thermal management
|
||||
|
||||
8. Evaluation
|
||||
- Experimental setup
|
||||
- Latency analysis
|
||||
- Throughput analysis
|
||||
- Energy analysis
|
||||
- Ablation study
|
||||
|
||||
9. Related Work
|
||||
10. Conclusion
|
||||
```
|
||||
|
||||
## 10. 关键里程碑
|
||||
|
||||
```
|
||||
Phase 1 (Months 1-2): Literature review + profiling
|
||||
- Survey existing work
|
||||
- Profile LLM on target platform
|
||||
- Establish baseline metrics
|
||||
|
||||
Phase 2 (Months 3-4): Model design + analysis
|
||||
- Task graph modeling
|
||||
- WCET analysis
|
||||
- Scheduling algorithm design
|
||||
|
||||
Phase 3 (Months 5-6): Implementation
|
||||
- FreeRTOS patch
|
||||
- KV Cache manager
|
||||
- Power controller
|
||||
|
||||
Phase 4 (Months 7-8): Evaluation
|
||||
- Benchmarking
|
||||
- Comparison with baseline
|
||||
- Ablation study
|
||||
|
||||
Phase 5 (Months 9-10): Paper writing
|
||||
- Draft paper
|
||||
- Revise based on feedback
|
||||
- Submit to RTSS/RTAS
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*最后更新: 2026-09-17*
|
||||
Reference in New Issue
Block a user