## TL;DR

从整理的与 Qwen 模型相关的优化 commit 可以看出：
大部分优化点比较工程化（从常见的优化点方式出发：数据流优化、算子级优化、初始化、长上下文等等），哪里有钉子就哪锤头打哪，case by case 的优化某一模型在某一配置下存在的性能问题。

可以看出仍然缺乏系统层的「自动优化」与「动态调优」，所有优化均为静态配置与人工调参（如：手写 fused_moe 的 json 配置、硬编码 warp/block 尺寸），优化主要针对已知 GPU 拓扑的静态 tuning，缺少基于 runtime profiling 的动态优化层。
> 对比 DynamoLLM, NanoFlow, OrcaServe, AutoTP, MorphServe 已经探索了：自动并行拓扑搜索、异步调度重构与运行时自适应 FP8 策略

线上的 workflow 更接近于：测试性能有问题 -> 找到 bottleneck -> 解决问题

核心挑战：system 的经典问题，抽象的通用性与优化的定制性。
做抽象之后：系统一致，容易得到通用性优化，但是针对每一模型可能达不到最优性能 
不做抽象：每个模型都能灵活的在任意组件上手动调优性能，但成本高、难以通用

对于 MoE 的优化：shared experts 计算与通信的重叠、kernel fuse

## 模型优化点总结

### 1. 并行化与数据流优化

| 优化点                            | 适用模型                  | Commit(s)                                                              | 优化说明                                   | 模型特性出发点                   | 是否可以自动调优                               |
| ------------------------------ | --------------------- | ---------------------------------------------------------------------- | -------------------------------------- | ------------------------- | -------------------------------------- |
| Vision Data-Parallel 编码器路径     | Qwen2-VL, Qwen3-VL    | `c98be0a23`, `70b808fe1`, `3127274d0`                                  | 支持在视觉塔中关闭TP、改为DP运行                     | 视觉编码器张量大、TP通信过重           | 是，本质为 parallelism config search        |
| Sequence-Parallel MoE dispatch | Qwen3-Next, Qwen3-MoE | `vllm/model_executor/models/qwen3_next.py:183`, `3127274d0`            | 令 tokens 在 TP rank 之间切分后再送 EP，防止重复专家调度 | DeepEP / TP×EP 并行导致重复计算   | 是，本质需要的是类似 DynamoLLM，根据 token 负载调整通信策略 |
| Shared Fused MoE 重叠优化          | Qwen3-Next            | `shared_fused_moe.py`, `vllm/model_executor/models/qwen3_next.py:161`  | 避免重复计算共享专家，节省计算                        | Shared expert 与 EP 重叠浪费算力 | 是，本质属于 DBO 搜索的一环                       |
| Fused MoE 内部 all-reduce        | Qwen3-MoE             | `4f510bc2`                                                             | 将 all-reduce 内嵌进专家执行阶段                 | TP>1 时额外一次 all-reduce 过慢  | 是，本质属于 DBO 搜索的一环<br>                   |
| 非阻塞数据流 + pinned buffer         | Qwen3-VL, Qwen2.5-VL  | `b2155ed31`, `2c1c7dfb3`, `0426e3c5e`, `67da5720d4`, `e283976f3`       | 主机异步构建 seqlens 并异步拷贝到 GPU              | 避免 cudaSync 阻塞，多帧视频管线更流畅  | 否，取决于 runtime benchmark 观测 H2D/D2H 延迟  |
| DeepEP 通信修正 (TP×EP)            | Qwen3-Next, Qwen3-MoE | `vllm/model_executor/models/qwen3_next.py:183`, `qwen3_moe.py:139,192` | 消除 EP 重复调度，避免多余 all-to-all             | 多维并行模式中重复专家调用             | 是，本质属于 DBO 搜索的一环                       |


### 2. 内核与算子级优化

| 优化点                            | 适用模型                     | Commit(s)                             | 优化说明                            | 模型特性出发点                     | 是否可以自动调优                    |
| ------------------------------ | ------------------------ | ------------------------------------- | ------------------------------- | --------------------------- | --------------------------- |
| fast_pos_embed_interpolate 向量化 | Qwen3-VL                 | `30d08911f`, `af7dfb0d1`, `a6049be7`  | 将 Python 循环替换为 meshgrid 张量操作    | 大图像/视频分辨率下插值耗时过高            | 否，过于 specific               |
| Triton Interleaved MRoPE 核     | Qwen3-VL                 | `cea91a32f`, `3127274d0`, `c242c9803` | 用 Triton kernel 实现交织 3D RoPE    | 视觉-时序交错嵌入需 GPU 融合旋转         | 否                           |
| Fused RMSNorm 替代多次 norm        | Qwen3 dense / MoE / Next | `f80ae5bd`, `82e64c7`                 | RMSNorm 融合为单 kernel 以减少 launch  | 长上下文下 norm 成为热点             | 是，类似 NanoFlow 等可以自动搜索进行算子融合 |
| O(n) inverse permutation       | Qwen2.5-VL               | `67da5720d4`, `e283976f3`             | 取代 argsort 排序以降低 O(n log n) 复杂度 | 视觉窗口注意力频繁重排                 | 否                           |
| Bool-mask → index_select       | Qwen3-Next               | `785d8b6`                             | 改为纯 GPU 索引避免 host copy          | MTP 多 token 预测频繁索引          | 否                           |
| FP8 batched expert kernels     | Qwen3-MoE                | `compressed_tensors_moe.py:937,991`   | 自动选择 FP8 Cutlass / Triton 专家核   | MoE 中 expert 众多需 batched 执行 | 通用                          |
| LayerNorm tile 化 与 SM cache    | Qwen3-Next               | `82e64c7`                             | Triton LN 按行块 tile 计算           | 减少 kernel launch + 提升 占用率   | 通用                          |

### 3. 精度与存储路径优化（FP8 / 量化 / KV Cache）

| 优化点                  | 适用模型                  | Commit(s)                                                                                                          | 优化说明                                        | 模型特性出发点                         | 是否可以自动调优        |
| -------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------- | ------------------------------- | --------------- |
| FP8 KV-Cache 存储      | Qwen2                 | `da971ec7`                                                                                                         | 允许 FP8 缓存 KV 对                              | 长上下文 KV 占显存大                    | 是               |
| FP8 KV-Scale 重映射     | Qwen2 MoE             | `bd4397352`                                                                                                        | 修正 FP8 缓存比例 加载                              | 防止量化漂移                          | 是               |
| 分离 QKVZ / BA 投影      | Qwen3-Next            | `ef7eefe1` (`2025-09-18`)                                                                                          | 拆分 in-proj 以支持 FP8 checkpoint               | FP8 blockwise 加载需结构匹配           | 否               |
| FP8 精度 guard 修正      | Qwen3-MoE             | `a258ad8b`                                                                                                         | 调整量化 scale 计算                               | FP8 精度漂移                        | 工程实践            |
| 4-bit bnb 预量化加载      | Qwen3-MoE             | `bitsandbytes_loader.py:467`                                                                                       | 支持 4bit BNB 权重                              | 降低权重存储带宽                        | trivial         |
| FP8 / Fused MoE 配置矩阵 | Qwen3-Next, Qwen3-MoE | `238c4c17`, `482e52f56`, `75334956c`, `9f04d9d55`, `12a8414d8`, `f82f7a899`, `7a70a7189`, `569bf1c9c`, `c733bd5e8` | 针对 GB200 / H200 / H100 等 GPU 提供 FP8 调参 json | 不同 GPU SM 结构 差异大需 warp/block 适配 | 离线 profile 进行调优 |
| ROCm FP8 配置 (MI300X) | Qwen3 / MoE           | `2007d4d5`, `f5a3c655`                                                                                             | ROCm 专用 Triton 块 配置                         | 兼容 AMD 栈                        | 工程实践            |

### 4. 初始化与加载

| 优化点                                         | 适用模型         | Commit(s)              | 优化说明                    | 模型特性出发点           | 是否可以自动调优 |
| ------------------------------------------- | ------------ | ---------------------- | ----------------------- | ----------------- | -------- |
| Max-token heuristics                        | Qwen2/2.5-VL | `2c5302fad`            | 通过启发式计算最大 token 代替伪输入   | 启动时避免生成假图像        | 否        |
| Cached profiling inputs + fast HF processor | Qwen2-VL     | `1298c677`, `d49adea1` | 缓存启动探测 数据 以减少 初始化       | 模型启动耗时高           | trivial  |
| Rotary dispatch abstraction (CUDA/ROCm)     | Qwen series  | `5e4a8223c`            | 动态选择后端 FlashAttn kernel | 兼容 ROCm 与 CUDA 堆栈 | 工程实践     |

### 5. 推理路径与长上下文优化

| 优化点                             | 适用模型        | Commit(s)                                                      | 优化说明                                | 模型特性出发点                | 是否可以自动调优                 |
| ------------------------------- | ----------- | -------------------------------------------------------------- | ----------------------------------- | ---------------------- | ------------------------ |
| Dual-chunk attention            | Qwen3 dense | `qwen3.py:118,199`                                             | 支持 >128K 上下文 分块 KV                  | 长上下文 KV 膨胀             | 是，根据负载在线自动决定是否切分         |
| Gated DeltaNet linear attention | Qwen3-Next  | `vllm/model_executor/models/qwen3_next.py:206`, `1266`, `1292` | 融合 conv + recurrent 层 线性化 attention | Prefill 阶段 计算 O(n²) 太高 | 否，需要结合模型调优选择合适的算法        |
| Mamba-style state cache         | Qwen3-Next  | `1218`, `vllm/model_executor/layers/mamba/abstract.py:50`      | 状态缓存 高效 布局 + 允许 speculative decode  | GDN/Mamba 混合 需要 状态 重用  | 否                        |
| Multi-Token Prediction (MTP)    | Qwen3-Next  | `785d8b6` (相关 MTP 路径)                                          | 重用 decoder 层 用于草稿 token 预测          | 提升 spec decode 吞吐      | 是，根据 metrics 自动决定 MTP 深度 |
| Speculative metadata 构建         | Qwen3-Next  | `gdn_attn.py:22,61` `gpu_model_runner.py:1374`                 | 预建 元数据 避免 draft 接受 重算               | 减少 prefill 延迟          | 工程实践                     |

### 6. 多模态视觉流水线优化

| 优化点                           | 适用模型                  | Commit(s)                                          | 优化说明                      | 模型特性出发点           | 是否可以自动调优               |
| ----------------------------- | --------------------- | -------------------------------------------------- | ------------------------- | ----------------- | ---------------------- |
| reshape 替代 concat 拼接          | Qwen3-VL, Qwen2.5-VL  | `0426e3c5`, `2c1c7dfb`                             | 减少内存重新分配                  | 图像批次拼接昂贵          | 是，图优化                  |
| 缓存 vision dims 与 deepstack 拆分 | Qwen3-VL              | `1dfea5f4`                                         | 避免重复 .contiguous() 与 维度计算 | 多尺度视觉特征 频繁分块      | 是，runtime shape memory |
| Flash / xFormers / SDPA 适配    | Qwen2.5-VL / Qwen3-VL | `02ed8a1fb`, `70b808fe1`, `47c712621`, `c242c9803` | 统一不同 attention 后端         | 不同 GPU 和 视频 长度 需求 | 工程实践                   |
| Rotary window pipeline GPU 重写 | Qwen2.5-VL            | `67da5720d4`, `e283976f3`                          | 预建 窗口 索引，减少 cudaMemcpy    | 重复 CPU→GPU 拷贝     | 否                      |
| Memoized seqlens 缓存           | Qwen2-VL / Qwen3-VL   | `70b808fe1`, `3127274d0`                           | 重用序列长度 元数据                | 视频帧结构 重复 计算多      | 工程实践                   |

---

### 总结视图（跨类对照）

| 优化类别    | 代表模型                               | 核心收益                  | 代表 Commits                                      |
| ------- | ---------------------------------- | --------------------- | ----------------------------------------------- |
| 并行化与数据流 | Qwen3-VL / Qwen3-Next / Qwen3-MoE  | 异步、少通信、高并发            | `b2155ed31`, `0426e3c5e`, `3127274d0`           |
| 内核与算子   | Qwen3-VL / Qwen3-Next / Qwen2.5-VL | GPU 融合计算              | `30d08911f`, `cea91a32f`, `82e64c7`             |
| 精度与存储   | Qwen2 / Qwen3-MoE / Next           | FP8 高效推理              | `da971ec7`, `bd4397352`, `ef7eefe1`, `238c4c17` |
| 初始化加载   | Qwen2-VL / 全系                      | 快速启动 / 多后端            | `2c5302fad`, `5e4a8223c`                        |
| 推理优化    | Qwen3-Next / dense                 | 线性化注意力、Spec Decode 加速 | `785d8b6`, `1266`, `1374`                       |
| 视觉流水线   | Qwen2.5-VL / 3-VL                  | GPU 端视频处理 吞吐          | `0426e3c5`, `67da5720d4`, `1dfea5f4`            |
| 跨平台     | Qwen3-Next / 全系                    | ROCm / Blackwell 兼容   | `qwen3_next.py:306`                             |
