大模型推理引擎完整技术栈
基础知识
| 模块 | 子模块 | 技术概念/组件 | 详细说明 |
|---|---|---|---|
| 算法基础 | LLM 原理 | Transformer 架构 | Self-Attention · Multi-Head · FFN · Residual |
| 推理两阶段 | Prefill (compute-bound) · Decode (memory-bound) | ||
| 模型架构 | 位置编码 | RoPE · ALiBi · YaRN 长上下文扩展 | |
| 现代组件 | GQA · MQA · MLA · MoE · RMSNorm · SwiGLU | ||
| 编程基础 | GPU 编程 | CUDA | Thread/Block/Warp · Shared Memory · Roofline Model · Nsight |
| 框架 | PyTorch | Autograd · nn.Module · torch.compile · DDP · FSDP | |
| 性能指标 | 吞吐量 | Throughput | Throughput (tok/s) · QPS · Concurrency |
| 延迟 | Latency | TTFT · TPOT · ITL · E2E Latency · P99 |
内存管理
| 模块 | 核心方案 | 技术特性 | 详细说明 |
|---|---|---|---|
| KV Cache | 基础 | 显存分析 | |
| PagedAttention | vLLM 方案 | Block 级内存管理 · 消除碎片化 · 非连续 KV 存储 | |
| RadixAttention | SGLang 方案 | Radix Tree 前缀自动复用 · LRU Eviction · 5x 吞吐提升 | |
| HiCache | 多级层缓存 | GPU CPU Disk · 可插拔后端 · 运行时 Attach/Detach | |
| KV Cache 量化 | FP8 KV | 显存减半 | FlashInfer / FA3 / Triton 支持 · 精度损失小 |
| FP4 KV | 显存 1/4 | FA4 / FlashMLA / Triton 支持 · Blackwell 原生 | |
| Page Size | 精度+性能权衡 | page=1 最大复用 · 大 page 提升 kernel 性能 | |
| Cache 路由 | Cache-Aware 路由 | Approximate Radix Tree · 命中率 20% 75% · Rust 实现 | |
| Prefix Cache | System Prompt 复用 · Few-Shot 复用 · Multi-Turn 复用 |
调度系统
| 模块 | 核心方案 | 策略说明 | 详细说明 |
|---|---|---|---|
| Batching | Continuous Batching | Iteration-level | 每步可插入/移除请求 · GPU Slot 零空转 |
| Chunked Prefill | 长 Prompt 分段 | 与 Decode 混合执行 · Budget 策略 · 防止 Decode 饥饿 | |
| Overlap | Zero-Overhead | CPU-GPU Overlap | Future Token · CUDA Event 同步 · GPU 零空闲 |
| Two-Batch Overlap | Prefill + Decode 并行 | Compute Memory 互补 · --enable-two-batch-overlap | |
| 请求管理 | 优先调度 | Cache 命中率优先 · 等待时间 · 内存约束 | |
| Preemption | 请求抢占 | Swap (GPU CPU) · Recompute |
计算优化
| 模块 | 优化方案 | 技术路径 | 详细说明 |
|---|---|---|---|
| CUDA Graph | Decode Graph | 标准 Capture/Replay | Bucket Sizes + Padding · Shared Memory Pool · ~5s Replay |
| Piecewise Graph | Prefill 分段 Capture | FX Graph 拆分 · 按段 Capture · torch.compile 集成 | |
| torch.compile | 编译执行 | TorchDynamo FX Graph Inductor Triton Kernel | |
| Attention Kernel | FlashAttention | IO-Aware Tiling | Online Softmax · 不存中间矩阵 · FA1 FA2 FA3 FA4 |
| FlashInfer | Ampere/Blackwell 默认 | Native Paging · FP8 KV · MLA 支持 · Speculative | |
| Triton Backend | 跨平台 Fallback | CUDA / ROCm / NPU / CPU · Python 编写 GPU Kernel | |
| TRTLLM / 其他 | 硬件专用 | TRTLLM MHA/MLA (Blackwell) · FlashMLA · Cutlass MLA | |
| Kernel 融合 | Fused Ops | 减少 Launch + IO | Fused RMSNorm · Fused SwiGLU · Fused RoPE · Fused Softmax |
| Custom AllReduce | Bypass NCCL | CUDA IPC 两阶段 · 小 Tensor 低延迟 · NVLink 直连 | |
| sgl-kernel | SGLang 自定义 | 独立 PyPI 包 · CUDA + Triton · JIT Kernel (tvm-ffi) |
并行策略
| 模块 | 并行方案 | 切分/执行维度 | 详细说明 |
|---|---|---|---|
| 模型并行 | Tensor Parallelism | 层内切分 | 权重按列/行切分 · AllReduce 聚合 · 需要 NVLink |
| Pipeline Parallelism | 层间切分 | Chunked PP · 百万 Token 长上下文 · 1F1B 调度 | |
| 数据并行 | DP + Gateway | 多副本 | SGLang Model Gateway · Cache-Aware 路由 · Rust 实现 |
| DP Attention | MLA 专用 | Attention DP AllGather MoE TP Redistribute · 1.9x | |
| Expert 并行 | FusedMoE | 5 阶段 Pipeline | Dispatch PrePermute GEMM PostPermute Combine |
| 通信后端 | 7 种 All-to-All | DeepEP · Mooncake · NIXL · FlashInfer · Mori · Ascend | |
| 优化 | Overlap + 均衡 | TBO · SBO · EPLB · DeepGEMM (FP8 GEMM) | |
| 多节点 | Multi-Node | NCCL · InfiniBand · NVLink · --nnodes · --nccl-init-addr |
加速技术
| 模块 | 加速方案 | 技术原理 | 详细说明 |
|---|---|---|---|
| Speculative Decoding | EAGLE | Draft + Verify | EAGLE-2 / EAGLE-3 · Tree Verification · SpecForge 训练 |
| MTP | 模型内置 | DeepSeek / MiMo 内置 MTP Head · 无需额外 Draft Model | |
| Ngram | 零额外开销 | 从已生成 Token 的 Ngram Cache 检索 Draft · 无需模型 | |
| Standalone | 传统方案 | 小模型 Draft + 大模型 Verify · 2-3x Latency 改善 | |
| 权重量化 | FP8 / FP4 | 低精度推理 | W8A8 · NVFP4 · CUTLASS FP8 Block-Scaled GEMM |
| 4-bit | Weight-Only | AWQ · GPTQ · Marlin Kernel · W4A16 | |
| 混合精度 | W4A8FP8 | 4-bit Weight + FP8 Activation · MoE 专用 CUTLASS Kernel | |
| Structured Output | Grammar Backend | 约束生成 | XGrammar (10x 加速) · Lguidance · Outlines |
| Jump-Forward | 跳过确定 Token | Compressed FSM · 确定性序列直接生成 · 不走模型 |
架构设计
| 模块 | 设计方案 | 架构说明 | 详细说明 |
|---|---|---|---|
| Disaggregation | PD 分离 | Prefill + Decode | 独立 GPU Pool · KV Transfer · Mooncake / NIXL |
| EPD 分离 | VLM 三阶段 | Encoder + Prefill + Decode · 弹性 Encoder 扩缩 | |
| KV Transfer | 传输后端 | MooncakeTransferEngine (RDMA) · NIXL (UCX) · Ascend | |
| RL 集成 | 引擎控制 | Sleep/Wake | 释放 KV Cache/权重 · torch_memory_saver · 不重启 Server |
| 权重更新 | 三种策略 | From Disk · From Tensor (内存共享) · From Distributed (NCCL) | |
| Model Gateway | 路由控制平面 | Rust 实现 · gRPC · Cache-Aware · JWT/OIDC · MCP | |
| 生产特性 | Circuit Breaker · 限流 · 40+ Prometheus 指标 · 动态扩缩 |