分类目录:从 Torch Profiler Trace 到可复用的重叠模式库)
SGLang 内核重叠Kernel Overlap分类目录从 Torch Profiler Trace 到可复用的重叠模式库【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang导读本文以 SGLang 仓库中面向 LLM Torch Profiler 分析技能的内核重叠分类目录Overlap Catalog为骨架系统梳理 SGLang 运行时中已被验证存在的 GPU 内核级重叠kernel overlap模式家族、其 trace 识别关键词、对应源码位置与开关控制项。读完本文你将掌握一套按目录匹配 trace 窗口 → 判定既有/上游/新颖重叠的分析流程能够在性能剖析中快速区分既有重叠模式、上游参考模式与真正的新机会避免重复发明已被实现过的优化。一、目录的定位与适用范围overlap-catalog.md是 overlap 专用目录与.claude/skills/llm-torch-profiler-analysis/references/fuse-overlap-catalog.md互为补充。它刻意将范围限定在内核级重叠只收录能在 profiler 中以GPU kernel、collective kernel 或 streamed kernel 族形式观察到的重叠主机的 scheduler、event-loop、executor、offload 与 load-path 重叠被有意排除因此本文档讨论的重叠都必须能在 trace 中看到实实在在的 CUDA 内核窗口而不是纯主机侧的事件循环交错。目录的定位是一个分诊参考分析 trace 时先查表再下结论而不是凭直觉宣称发现了一个新重叠机会。二、使用流程五步判定法原目录给出了明确的分析工作流完整继承如下从overlap-opportunity table即本文各家族表出发将 trace 中可见的 kernel 窗口、collective 窗口或流级重叠与表中行逐一匹配若在主线段mainline命中则将其报告为当前后端上缺失、被禁用、回归或不受支持的既有重叠家族若仅在PR-backed / in-flight段命中则报告为上游重叠模式而非新想法仅当本文件与fuse-overlap-catalog.md中没有任何一行能匹配时才能将某个重叠机会称为新。也就是说这份目录承担着去重与归因职责它既阻止把已知模式当成新成果也帮助分析者把问题准确定位到哪条路径、哪个开关、哪个后端上。此外目录中的vLLM-origin等章节是对比参考它们不一定存在于当前检出的sglang代码树中但在判定一个重叠机会是否新颖之前必须先视为上游或同类内核重叠家族。三、LLM / SRT 内核重叠家族九大既有模式这是目录的主线段全部直接落在 SGLang 的 LLM 服务运行时SRT代码中。逐行匹配 trace 时这九类模式应最先被排除。PatternTrace 关键词主要代码既有路径技能应得出的结论单批重叠SBOMoE combine、down-gemm、shared-expert 工作出现在相邻双流窗口python/sglang/srt/batch_overlap/single_batch_overlap.pycombine 与 down-gemm 重叠、combine 与 shared-expert 重叠、单流 dispatchshared 重叠、显式 SM 划分与事件若 trace 中暴露的 MoE combine 紧邻周边计算先按 SBO 归类再谈新重叠Q/K 归一化分双流Q 侧 norm 与 K 侧 norm 位于不同流python/sglang/srt/models/utils.py::apply_qk_norm、python/sglang/srt/models/qwen3.py、python/sglang/srt/models/qwen3_next.py、python/sglang/srt/models/qwen3_5.pyQ 留在当前流K 在 capture 模式下可跑在alt_stream当alt_stream已接好时Q/K norm 分流视为既有重叠家族DeepSeek shared-expert / routed-expert 重叠shared-expert GEMM 紧邻 DeepEP dispatch / combinepython/sglang/srt/models/deepseek_v2.py、python/sglang/srt/batch_overlap/single_batch_overlap.pyshared experts 跑alt_stream与 dispatch / combine 和 down-gemm 重叠Blackwell 专属环境变量门控这是已确立的 routed-vs-shared 分支重叠模式不是新想法Llama4 shared 分支 vs routed 分支重叠shared expert 分支 routed MoE 分支构成相邻窗口python/sglang/srt/models/llama4.pyshared expert 在当前流router topk routed experts 在alt_stream将 Llama4 视为同类稀疏模型分支级重叠的第一先例ExaoneMoE shared experts vs router experts 重叠shared expert 输出与 router-expert 输出构成双分支窗口python/sglang/srt/models/exaone_moe.py::forward_normal_dual_streamshared experts 在当前流router routed experts 在alt_streamcombine 前显式 join这是既有的双流 MoE 重叠家族Grok residual-MoE 分支重叠dense MLP 与 block-sparse MoE 分支并行python/sglang/srt/models/grok.py::moe_with_rmoedense MLP 在当前流MoE 在alt_stream边界处融合双路 residual RMSNormtrace 中暴露的 Grok 分支重叠视为既有模式NSA 双流重叠Q-proj、K-proj、RoPE、cache-store、量化处于紧凑双流窗口python/sglang/srt/layers/attention/nsa/nsa_indexer.pyQ/K 投影拆分、RoPE 拆分、cache-store 与量化重叠NSA 已包含多个双流重叠先例MoriEP 异步 dispatch / combine 通信流MoriEP、_comm_stream、dispatch、combine、done_eventpython/sglang/srt/layers/moe/token_dispatcher/moriep.pyMoriEP 可将 dispatch 与 combine 提交到专用通信流仅通过事件同步MoriEP 的 comm/compute 交错视为既有 MoE 重叠家族通用alt_stream重叠家族alt_stream 显式wait_stream/with torch.cuda.stream(...)qwen2_moe.py、qwen3_moe.py、glm4_moe.py、bailing_moe.py、llada2.py、grok.py、olmo2.py、step3p5.py、longcat_flash.py、falcon_h1.py各模型在 attention 预处理、MoE 分支或 cache-store 上的专属重叠设计全新重叠方案前先在这些家族中检索3.1 源码纵深SBO 的实现与后端门控SBOSingle-Batch Overlap是目录中第一个、也是被引用最多的家族。打开 single_batch_overlap.py 可以看到它并非单一开关而是由SboFlags拆分为多个可独立启用的重叠子能力enable_combine_down_gemm_two_stream_overlap()combine 与 down-GEMM 双流重叠目前只有 FlashInfer CuTeDSL 后端支持DeepGEMM 仅在非 Blackwell 上可用见 single_batch_overlap.pyenable_combine_shared_two_stream_overlap()combine 与 shared-expert 双流重叠受SGLANG_BLACKWELL_OVERLAP_SHARED_EXPERTS_OUTSIDE_SBO门控enable_dispatch_shared_one_stream_overlap()dispatch 与 shared-expert 单流重叠仅非 Blackwellfuse_shared_experts_inside_sbo()上述两条路径的并集代表shared experts 纳入 SBO 内部的整体能力。在 compute_overlap_args 中可以看到 SM 划分的具体算法它读取 GPU 的multi_processor_count总数减去通信侧占用的 SM 数Blackwell 默认 32、其他平台默认 3剩余 SM 交给计算侧通信侧通过combine_signalBlackwell 上为uint32与事件在两条流之间同步。这正是目录中显式 SM 分区与事件一栏的源码级含义Blackwell 上通信 SM 数显著增大是因为需要同时承载 dispatch/combine 的通信吞吐。从调用关系看enable_single_batch_overlap在 exec_.py 参数组 中定义最终由python/sglang/srt/layers/moe/utils.py::is_sbo_enabled读取并写入 MoE 运行器python/sglang/srt/arg_groups/moe_hook.py中enable_two_batch_overlap与enable_single_batch_overlap的联动也印证了这是一个批量级 单批级双层重叠体系。3.2 源码纵深apply_qk_norm的双流归一化Q/K 归一化分流是一个被多个模型复用的通用模式。在 models/utils.py::apply_qk_norm 中可以看到两种实现路径JIT 融合路径当 CUDA 平台、允许 inplace、q_eps k_eps、未开启确定性推理、prefill 的 TC compiler 不是 inductor 时调用fused_inplace_qknorm把 Q/K 归一化合成一个内核双流路径当传入alt_stream且处于 CUDA graph capture 模式时alt_stream.wait_stream(current_stream)先同步当前流Q 侧留在当前流执行K 侧进入with torch.cuda.stream(alt_stream)执行最后current_stream.wait_stream(alt_stream)汇合。这一实现解释了目录中的判定准则如果 trace 中 Q 侧与 K 侧 norm 窗口是分离的而alt_stream已接好则应将其归为既有重叠家族而不是新发现。Qwen3 系模型在 qwen3.py 中通过get_stream(alt)获取备用流并传给 attention 层正是这一家族的直接调用者。四、Staging / 通信内核重叠家族PD 分离Prefill-Decode Disaggregation场景下KV 需要在异构 TP 规模的实例间搬运这一节收录了两类与 staging buffer 相关的重叠PatternTrace 关键词主要代码既有路径技能应得出的结论Decode scatter 跑专用scatter_streamscatter_stream、_scatter_streampython/sglang/srt/disaggregation/common/staging_handler.pystaging scatter 内核被提交到专用流decode 线程不会阻塞在主前向流上decode 侧的 staging scatter 窗口视为既有重叠模式Staging-buffer 融合 gather / scatter 内核_fused_gather_to_staging_kernel、_fused_scatter_from_staging_kernelpython/sglang/srt/disaggregation/common/staging_buffer.pyTriton 内核把 KV 切片 gather 进连续 staging 内存再 scatter 回 KV cache若异构 TP staging 出现大量小 copy 内核先与此融合重叠家族对比源码证据与目录完全对应在 staging_buffer.py 中_fused_gather_to_staging_kernel与_fused_scatter_from_staging_kernel是两个 Triton 内核第 33、71 行起staging buffer 通过get_gather_stream()惰性创建专用 CUDA 流第 162-165 行gather 流程先gather_stream.wait_stream(default_stream)再切流执行、最后gather_stream.synchronize()汇合。值得注意的是_USE_TRITON_STAGING not envs.SGLANG_STAGING_USE_TORCH.get()第 29 行Triton 路径可以被环境变量强制关闭并回退到 torch 实现——这意味着 trace 中 Triton staging 内核消失可能是有意为之而非回归。五、VLM / 扩散内核重叠家族多模态与扩散模型侧同样有成熟的既有重叠家族PatternTrace 关键词主要代码既有路径技能应得出的结论Vision QK norm 配 aux streamvision 侧 QK norm 或 norm 类内核出现在 attention 之前python/sglang/srt/layers/attention/vision.pyvision QK 归一化可调用共享apply_qk_norm(...)K 侧工作跑aux_stream若 vision QK 预处理被拆分先检查这条既有 aux-stream 路径ViT CUDA graph 关闭 vision aux streamViT graph 下预期中的 vision 重叠缺失python/sglang/srt/models/internvl.py、python/sglang/srt/layers/attention/vision.py、python/sglang/srt/environ.py::SGLANG_VIT_ENABLE_CUDA_GRAPHViT CUDA graph 开启时 visionaux_stream被有意禁用缺失的 vision 重叠可能是设计使然而非回归Ulysses 序列并行 attentionattention 块附近暴露all_to_allpython/sglang/multimodal_gen/runtime/layers/attention/layer.py、python/sglang/multimodal_gen/runtime/distributed/communication_op.pyattention 前后做 head / sequence 重分布序列并行 all-to-all 视为既有分布式 attention 家族USP attention 配 all-to-all 与 ring attentionall_to_all、ring-attention comm、head / sequence 重分片python/sglang/multimodal_gen/runtime/layers/attention/layer.py_usp_input_all_to_all(...)、_usp_output_all_to_all(...)、ring_attn(...)这是许多扩散模型的主要既有 overlap / comm 家族Turbo-layer 异步 all-to-all 流水comm 流上带显式 wait 的流水化 A2A 窗口python/sglang/multimodal_gen/runtime/layers/attention/turbo_layer.py循环all_to_all_single(..., async_opTrue) comm 流上的分阶段后处理暴露的 turbo A2A 窗口视为既有流水化重叠模式TorchInductor compute/comm 重排编译 trace 中 compute 与 comm 部分交错python/sglang/multimodal_gen/runtime/pipelines_core/stages/denoising.py、python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/mova.pytorch._inductor.config.reorder_for_compute_comm_overlap True编译期重排可能已解释扩散 trace 中的部分重叠双流扩散模型单个 DiT / UNet 块内两个相邻计算分支python/sglang/multimodal_gen/runtime/models/dits/hunyuan3d.pyuse_dual_stream True双分支扩散执行视为既有重叠家族从 multimodal_gen/runtime/layers/attention/layer.py 可以看到 USP 家族的实际调用形态_usp_input_all_to_all_qkv/_usp_input_all_to_all_varlen负责进入 attention 前的 QKV 重分布_usp_output_all_to_all/_usp_output_all_to_all_varlen负责输出重分布ring_attn则承载 ring 通信。目录中这是许多扩散模型的主要既有 overlap/comm 家族的结论正是基于这套在layer.py中反复出现的_usp_*ring_attn组合。六、SGLang 在途PR-backed / in-flight重叠家族主线段之外目录还维护了一类尚未合入主线或合入后仍处于实验状态的家族用于防止把上游在途工作误报为新颖想法PatternTrace 关键词主要代码既有路径技能应得出的结论PR#21877融合 down-GEMM combine 取代 SBOenable_fused_grouped_gemm_combine、combine、down_gemmPR#21877、python/sglang/srt/server_args.py、python/sglang/srt/layers/moe/token_dispatcher/deepep.py融合 combine 消除了独立的 combine 窗口因此该路径开启时 SBO 被有意禁用若 trace 讨论围绕 combine 重叠先归入此上游融合重叠家族这条记录体现了目录的互斥知识价值SBO 的 combine 重叠与 DeepEP 侧的enable_fused_grouped_gemm_combine融合路径在功能上重叠两者并存时反而会相互抵消。目录刷新说明中还记录了维护纪律已关闭未合并的 SGLang#22410与 FlashInfer#2840已从 PR-backed 段移除而 SGLang#21877、FlashInfer#2720、vLLM#35968/#39301截至 2026-06-26 刷新时仍是有用的上游重叠参考。七、上游对比参考FlashInfer、TensorRT-LLM、TokenSpeed、vLLM这四个引擎章节全部标记为对比参考用于在判定新颖性之前先做同行对照。它们不一定在当前sglang代码树中出现但应当被当作上游或同类内核重叠家族对待。7.1 FlashInfer 内核重叠家族PatternTrace 关键词主要代码既有路径技能应得出的结论FlashInfer PDL 启动重叠家族enable_pdl、launch_with_pdl、cudaGridDependencySynchronize、cudaTriggerProgrammaticLaunchCompletion、trigger_completion_at_endFalse、allreduce_fusionflashinfer/norm/__init__.py、flashinfer/activation.py、flashinfer/rope.py、flashinfer/comm/allreduce.py、flashinfer/comm/trtllm_ar.pyFlashInfer 广泛使用 Programmatic Dependent Launchallreduce 路径还可提前推进完成使下一个 PDL-aware 内核在同一流上重叠紧致的同流依赖窗口与 allreduce-后接-kernel 窗口先归入这一个 FlashInfer 启动重叠家族FlashInfer CuTeDSL MoE aux-stream 异步 memset 重叠aux_stream、main_event、memset_event、use_async_memsetflashinfer/fused_moe/cute_dsl/fused_moe.py预分配的 MoE 输出在辅助 CUDA 流上清零同时 GEMM1 在主流执行两流在 finalize 前汇合GEMM1 与输出清零窗口视为既有 FlashInfer 多流重叠家族FlashInfer green-context SM 分区重叠split_device_green_ctx、split_device_green_ctx_by_sm_count、green_ctxflashinfer/green_ctx.pyCUDA green context 划分 SM 并创建专用流在独立 SM 切片上并发执行不同内核族SM 分区并发视为既有 FlashInfer 重叠机制而非新的调度想法FlashInfer 的 PDL 家族还有一条在途记录PR#2720将cudaGridDependencySynchronize/cudaTriggerProgrammaticLaunchCompletion从 inline PTX 迁移为 CUDA runtime API涉及include/flashinfer/comm/trtllm_allreduce_fusion.cuh、include/flashinfer/pos_enc.cuh覆盖 norm、RoPE、attention 与 MoE 各路径——PDL 形态的启动组无论实现细节如何修订都应视为上游 FlashInfer 重叠家族。7.2 TensorRT-LLM 内核重叠家族目录指出当前主线 TensorRT-LLM 的重叠行大多是 AutoDeploy 中的显式辅助流重写而非同流 PDL 窗口PatternTrace 关键词主要代码既有路径技能应得出的结论TensorRT-LLM 多流 MLA attentionmulti_stream_mla_attn、record_event_passthrough、_aux、wait_eventtensorrt_llm/_torch/auto_deploy/transform/library/multi_stream_attn.py、tensorrt_llm/_torch/auto_deploy/utils/multi_stream_utils.pyAutoDeploy 重写 MLA 的 Q/KV 分叉KV 投影跑辅助流、Q 路径留在调用者流Q 分支与 KV 分支重叠先归入 TensorRT-LLM 多流家族TensorRT-LLM 多流 MoE shared-vs-routed 重叠multi_stream_moe、begin_aux_stream_passthrough、end_aux_stream_passthrough、wait_aux_stream_passthrough、mlir_elementwise_fusion、piecewise cudagraph、caller_stream.synchronize()tensorrt_llm/_torch/auto_deploy/transform/library/multi_stream_moe.py、tensorrt_llm/_torch/auto_deploy/utils/multi_stream_utils.pyshared-expert 工作移入辅助流routed-expert MoE 留在主流在 merge 节点汇合同一家族还包含 MLIR 融合内核与 piecewise cudagraph 重放下的同步规则shared-vs-routed 窗口含 MLIR / piecewise graph 模式下的行为变化视为既有分支重叠家族TensorRT-LLM 多流 FP8 GEMM 分叉并行multi_stream_gemm、trtllm_finegrained_fp8_linear、record_event_passthrough、_auxtensorrt_llm/_torch/auto_deploy/transform/library/multi_stream_gemm.py、tensorrt_llm/_torch/auto_deploy/utils/multi_stream_utils.py编译 pass 识别含多个 FP8 linear 的分叉点把最大 GEMM 移到辅助流使兄弟 GEMM 相互重叠兄弟 FP8 linear 分支先归入既有 TensorRT-LLM 重叠家族再设计新的流拆分7.3 TokenSpeed 内核重叠家族TokenSpeedlightseekorg/tokenspeed主要用于 vLLM/TokenSpeed 混合部署场景PatternTrace 关键词主要代码既有路径技能应得出的结论TokenSpeed allreduce / 通信融合enable_allreduce_fusion、comm_fusion、comm_fusion_max_num_tokens、allreducedocs/configuration/server.md、python/tokenspeed/runtime/distributed/comm_backendTokenSpeed 暴露通信融合与 token 数门控的运行时旋钮all-reduce 窗口可能是被禁用或按形状门控的 TokenSpeed 路径TokenSpeed trace 中拆分的 all-reduce compute 窗口先问通信融合资格再谈新重叠7.4 vLLM 内核重叠家族vLLM 章节提供了最丰富的对照其中多条路径AsyncTP、SP staging、shared-expert aux-stream、DCP async all-to-all已经在 vLLM 侧落地PatternTrace 关键词主要代码既有路径技能应得出的结论vLLM-origin AsyncTP GEMM collective 重叠fuse_gemm_comms、fused_matmul_reduce_scatter、fused_all_gather_matmulvllm/compilation/passes/fusion/collective_fusion.py、docs/design/fusions.mdAsyncTP 通过 symmetric-memory collective 让 GEMM 与 reduce-scatter / all-gather 重叠GEMMcomm 窗口是明确的 vLLM-origin 重叠先例vLLM-origin 序列并行 stagingenable_sp、ReduceScatter、AllGather、SequenceParallelismPassvllm/compilation/passes/fusion/sequence_parallelism.py、docs/design/fusions.md序列并行把 all-reduce 重写为 RS → 局部 norm → AG使后续 pass 可以重叠 comm 与 computenorm 块周围的 RS / AG staging 视为上游重叠使能家族vLLM-origin shared-expert aux-stream 重叠aux_stream、shared_experts_stream、router 附近的 shared expertvllm/model_executor/layers/fused_moe/runner/shared_experts.py、vllm/model_executor/layers/fused_moe/runner/moe_runner_base.pyMoE shared experts 可在shared_experts_stream上记录克隆输入、等待调用者流、与 router 侧并行、在 merge 前汇合shared-expert 与 router 重叠视为既有上游稀疏模型家族vLLM-origin DCP 异步 all-to-all 重叠dcp_alltoall、all_to_all_single、async_opTruevllm/v1/attention/ops/dcp_alltoall.py输出 / LSE 交换使用异步 all-to-all 句柄而非在主路径上串行等待 collective 完成DCP all-to-all 窗口视为上游异步 collective 家族vLLM 在途部分还有两条 PR 记录PR#35968探索了在 decode 批量中把小weights_projGEMM 与wk k_norm放到二级 CUDA 流上重叠涉及vllm/model_executor/models/deepseek_v2.py、vllm/utils/torch_utils.pyPR#39301在 GLM5 router GEMM 路径上显式使用 PDLTRTLLM_ENABLE_PDL使 router 内核与前置的 fused allreduceRMS 块重叠涉及vllm/model_executor/layers/fused_moe/router/gate_linear.py、vllm/csrc/moe/dsv3_router_gemm_utils.h。八、重要开关与注意事项Toggles Caveats目录最后汇集了所有会影响 trace 解读的开关。分析 trace 前先核对这张表可以避免把开关关闭导致的窗口消失误判为回归或新机会。Toggle / 环境变量位置对 trace 解读的影响enable_single_batch_overlappython/sglang/srt/server_args.py参数组见python/sglang/srt/arg_groups/fields/exec_.py启用 SBO 家族SGLANG_BLACKWELL_OVERLAP_SHARED_EXPERTS_OUTSIDE_SBOpython/sglang/srt/environ.py改变 DeepSeek 式 shared-expert 重叠在 Blackwell 上的行为SGLANG_DISAGG_STAGING_BUFFERpython/sglang/srt/environ.py启用异构 TP staging-buffer 家族及其重叠窗口SGLANG_STAGING_USE_TORCHpython/sglang/srt/disaggregation/common/staging_buffer.py强制 staging gather/scatter 走 torch 回退Triton staging 内核可能按设计消失SGLANG_VIT_ENABLE_CUDA_GRAPHpython/sglang/srt/environ.py可有意禁用 visionaux_stream重叠enable_pdl/launch_with_pdlflashinfer/norm/__init__.py、flashinfer/activation.py、flashinfer/rope.py、flashinfer/fused_moe/core.py、flashinfer/comm/allreduce.py开启后 FlashInfer 大量内核使用 PDL启动分组与同流重叠会显著变化trigger_completion_at_endflashinfer/comm/allreduce.pyFalse启用 FlashInfer allreduce 融合后的下游 PDL-aware 重叠True把完成推迟到内核末尾并移除该重叠窗口use_cuda_graphflashinfer/fused_moe/cute_dsl/fused_moe.py启用预分配 buffer 路径与 FlashInfer CuTeDSL MoE 中安全的 aux-stream 异步 memset 重叠split_device_green_ctx*flashinfer/green_ctx.py把 SM 划分进独立 green context 而非在默认 context 上重叠全设备流改变 trace 形态multi_stream_moetensorrt_llm/_torch/auto_deploy/config/default.yaml启用 TensorRT-LLM shared-expert vs routed-expert 重叠家族multi_stream_mla_attntensorrt_llm/_torch/auto_deploy/config/default.yaml启用 TensorRT-LLM MLA Q-vs-KV 分支重叠家族multi_stream_gemmtensorrt_llm/_torch/auto_deploy/config/default.yaml启用 TensorRT-LLM AutoDeploy 的通用 FP8 GEMM 分叉重叠mlir_elementwise_fusiontensorrt_llm/_torch/auto_deploy/config/default.yaml可将 merge add 吸收进更大融合内核因此 TensorRT-LLM 多流 trace 中缺失显式 merge 节点可能是有意的enable_torch_compilepython/sglang/srt/server_args.py、python/sglang/multimodal_gen/runtime/server_args.py编译器生成的重排可能隐藏或改名重叠窗口enable_fused_grouped_gemm_combinePR#21877路径在途路径因 combine 被折叠进 down-GEMM 而有意禁用 SBOPassConfig.enable_spvllm/config/compilation.py启用 vLLM 的序列并行 staging 家族创造 RS / AG 重叠机会PassConfig.fuse_gemm_commsvllm/config/compilation.py启用 AsyncTP GEMM collective 重叠合法时自动启用enable_spTokenSpeed--comm-fusion-max-num-tokens/--enable-allreduce-fusiondocs/configuration/server.md门控 TokenSpeed 通信融合把 all-reduce 与 compute 分离当作新缺口前先检查它结合源码可以确认其中几个关键开关的真实存在与行为SGLANG_DISAGG_STAGING_BUFFER、SGLANG_STAGING_USE_TORCH与SGLANG_BLACKWELL_OVERLAP_SHARED_EXPERTS_OUTSIDE_SBO均定义于 environ.py后者见 environ.pySGLANG_VIT_ENABLE_CUDA_GRAPH位于 environ.py而enable_single_batch_overlap通过 moe_hook.py 与enable_two_batch_overlap联动并在 moe/utils.py 中被写入 MoE 运行器。九、目录维护刷新命令原目录末尾提供了一组仅供维护者刷新目录用的扫描命令用于重新扫描本地源码树不参与运行时三诊脚本。完整继承如下# 可选的对等检出目录用于对比扫描 FLASHINFER_REPO${FLASHINFER_REPO:-../flashinfer} TRTLLM_REPO${TRTLLM_REPO:-../TensorRT-LLM} VLLM_REPO${VLLM_REPO:-../vllm} TOKENSPEED_REPO${TOKENSPEED_REPO:-../tokenspeed} # SGLang 侧检索 SBO、alt_stream、shared_expert 与 staging 融合内核 rg -n single_batch_overlap|alt_stream|shared_expert|scatter_stream|_fused_gather_to_staging_kernel|_fused_scatter_from_staging_kernel|async_opTrue python/sglang rg -n apply_qk_norm|vision.py|ring_attn|all_to_all_single|reorder_for_compute_comm_overlap|use_dual_stream python/sglang/multimodal_gen python/sglang/srt git log --all --format%h %s | rg -i fused|fusion|overlap|combine|all_to_all|ring attn|stream|triton|cutedsl|cuda # FlashInfer 侧PDL、aux_stream、green_ctx rg -n enable_pdl|launch_with_pdl|trigger_completion_at_end|aux_stream|use_async_memset|split_device_green_ctx|split_device_green_ctx_by_sm_count $FLASHINFER_REPO/flashinfer $FLASHINFER_REPO/include git -C $FLASHINFER_REPO log --all --format%h %s | rg -i fused|fusion|overlap|pdl|stream|rope|kv|quant|topk|moe # TensorRT-LLM 侧多流重写与同步原语 rg -n multi_stream_moe|multi_stream_mla_attn|multi_stream_gemm|record_event_passthrough|begin_aux_stream_passthrough|end_aux_stream_passthrough|wait_aux_stream_passthrough $TRTLLM_REPO/tensorrt_llm/_torch rg -n mlir_elementwise_fusion|piecewise|cudagraph|caller_stream.synchronize $TRTLLM_REPO/tensorrt_llm/_torch git -C $TRTLLM_REPO log --all --format%h %s | rg -i overlap|multi-stream|aux stream|cudagraph|mlir|stream|flashinfer|moe|mla # vLLM 侧collective 融合、SP staging、shared-expert 流、DCP all-to-all rg -n fuse_gemm_comms|enable_sp|fused_matmul_reduce_scatter|fused_all_gather_matmul|shared_experts_stream|maybe_sync_shared_experts_stream|dcp_alltoall|async_opTrue|aux_stream|maybe_execute_in_parallel $VLLM_REPO/vllm $VLLM_REPO/docs/design/fusions.md git -C $VLLM_REPO log --all --format%h %s | rg -i fused|fusion|overlap|allreduce|reduce-scatter|all-gather|all_to_all|stream|multi-stream|triton|cuda|router # TokenSpeed 侧通信融合门控 rg -n enable_allreduce_fusion|comm_fusion|comm_fusion_max_num_tokens|allreduce|reduce_scatter $TOKENSPEED_REPO/python $TOKENSPEED_REPO/docs git -C $TOKENSPEED_REPO log --all --format%h %s | rg -i fused|fusion|overlap|allreduce|stream|comm|mla|tokenspeed_mla这些命令同时覆盖了本文前面所有家族的关键词维护者可用它们校验目录是否与各仓库最新主线一致。需要强调的是这些命令仅供目录维护使用三诊脚本在运行时并不依赖它们——分析 trace 时直接按第二节的五步流程查表即可。十、实践要点小结把目录的精神浓缩为三条可执行准则先归类再创新trace 中任何 MoE combine、Q/K norm 分流、shared-vs-routed 分支、all-to-all 窗口都先在这份目录及其姊妹篇fuse-overlap-catalog.md位于.claude/skills/llm-torch-profiler-analysis/references/fuse-overlap-catalog.md中查找匹配行只有完全不命中时才允许标记为新。缺失不等于回归SGLANG_STAGING_USE_TORCH会让 Triton staging 内核按设计消失SGLANG_VIT_ENABLE_CUDA_GRAPH会按设计关闭 visionaux_streamenable_fused_grouped_gemm_combine会按设计禁用 SBO——解读 trace 前先核对第八节的开关表。上游先例要认账FlashInfer 的 PDL / green-context、TensorRT-LLM AutoDeploy 的多流重写、vLLM 的 AsyncTP / SP staging / shared-expert 流、TokenSpeed 的通信融合都是已经有人做过的重叠家族。站在它们肩膀上做增量优化比把已有模式包装成新发现更有价值。这份目录的价值不在于罗列而在于它把重叠机会从模糊的性能直觉变成了可检索、可归因、可复用的模式库任何新的 torch profiler trace 分析都可以从这里出发快速定位到具体的源码路径、开关配置与上游对照从而把精力集中在真正未被覆盖的重叠空间上。【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考