# HPC-Ops × SGLang：腾讯混元开源高性能 Attention、Router GEMM 与 MoE 算子

- 来源：LMSYS：Blog（Chatbot Arena 团队）
- 作者：Tencent Hunyuan AI Infra and the SGLang Team
- 发布时间：2026-08-08 01:51
- AIHOT 分数：76
- AIHOT 标记：精选
- AIHOT 链接：https://aihot.virxact.com/items/cmsj8rfkl02ruroo5uvyqiqiq
- 原文链接：https://www.lmsys.org/blog/2026-08-07-hpc-ops-sglang

## 精选理由

HPC-Ops 集成到 SGLang，带来生产验证的负载均衡 Attention 和精度感知 Router GEMM，实测 Hy3 TPOT 降幅最高 48.8%，为 MoE 低延迟服务提供了可直接使用的开源优化。

## AI 摘要

腾讯混元开源算子库 HPC-Ops 已集成至 SGLang 主分支，其 Dynamic Attention 与 Fused MoE 在 Hy3 模型上最高降低 TPOT 48.8%。

## 正文

HPC-Ops 是一个面向大语言模型推理的开源算子库，已部署于腾讯的大规模生产服务中。其核心算子（包括 Dynamic Attention 和 Fused MoE）在混元的在线推理中发挥着关键作用，可将 Hy3 模型的 TPOT 最高降低 48.8%。HPC-Ops Attention、Router GEMM 和 MoE 现已集成到 SGLang 的主分支中，将这些经过生产验证的优化方案带给开源推理服务社区。

在本文中，我们介绍 HPC-Ops 中三个重要算子的设计及其与 SGLang 的集成情况。随后，我们展示在 H20 上的算子基准测试和推理服务结果，以及 H200 上的验证结果。这些集成面向 NVIDIA Hopper GPU（SM90），并已使用 Qwen3、Hy3 和 LongCat 工作负载完成验证。

亮点

Attention：在 H20 上，HPC-Ops 动态调度相比其静态 split-KV 调度达到 2.95× 加速，并且在每个实测场景中平均比 FlashInfer 和 FlashAttention 中的最优者快 2.25×。在上游 H200 验证中，集成后的 Hy3-FP8 路径配合 FP8 KV cache，相比 FlashAttention 将输出吞吐量提升了 3.7–5.9%。

Router GEMM：在 H20 上，HPC-Ops 比 FP32 cuBLAS 快 1.30–3.22×，同时其相对于 FP32 cuBLAS 的最大绝对误差为 0.00177，而 TF32 cuBLAS 的对应误差为 0.06464。在上游 H200 LongCat-Flash 内核验证中，它相比现有 FP32 路径实现了 4.31× 的加速。

MoE：在 H20 上，针对 Hy3，HPC-Ops 在 TP8 / EP1 配置下相比 SGLang 和 vLLM 基线中的最优者实现了平均每批次 1.08× 的加速，在 TP1 / EP8 配置下实现了 1.21× 的加速。在上游 Qwen3/H200 内核基准测试中，在八个 token 时，它相比 Triton 最高达到 4.21× 的加速。

端到端推理服务：在 8× H20 搭配 Hy3-FP8 的环境下，同时启用 HPC-Ops Attention 和 MoE，在批大小 4–64 时可将 TPOT 降低 15.1–48.8%，在批大小 4–16 时可将 TTFT 降低 3.3–6.0%。在 8× H20 搭配 LongCat-Flash-Lite-FP8 的环境下，启用 HPC-Ops Router GEMM 在批大小 4–64 时可将输入吞吐量提升 5.5–6.1%。

Attention、路由和专家：MoE 模型推理服务中的三条关键路径

生产环境中的 MoE 服务很少会像独立内核基准测试中测量的那样，面对均匀的工作负载。它在同一条对延迟敏感的路径上，混合了不同长度的 Attention 计算、对精度敏感的路由，以及稀疏的专家执行；长上下文、多轮对话和智能体工作负载进一步拉大了实时 KV 长度的分布范围。因此，服务性能不仅取决于原始矩阵乘法的吞吐量，还取决于工作负载均衡、数值保真度和开销控制。

这些约束在 MoE 模型服务的三个性能关键阶段显现出来。在解码阶段，Attention 计算量随每个请求的实时 KV 长度增长，这使得混合长度批次成为一个负载均衡问题。Router GEMM 产生用于 top-k 选择的分数，其中微小的数值变化就可能改变专家选择。随后，被选中的专家处理小而分布不均的 token 组，这使得元数据构建、token 移动、中间存储和启动开销足以与专家 GEMM 本身的计算量相抗衡。

HPC-Ops 针对每个阶段都设计了专门的算子：针对 Attention 的工作负载感知调度、针对 Router GEMM 的精度感知公式化，以及针对 MoE 的融合流水线，后者消除了独立的 gather 操作，并减少了启动和中间流量。上游集成通过 SGLang 的原生后端和调度接口，将这些算子与 SGLang 的服务运行时配对。以下章节将说明每个算子是如何设计的。

Attention：混合长度解码的负载均衡

在解码阶段，每个新 token 都要对整个请求的 KV 缓存进行注意力计算，因此 Attention 的计算量随实时序列长度增长。一个缓存了 16K token 的请求，其 KV 计算量大约是缓存 1K token 请求的 16 倍。在生产环境中，提示词和输出长度差异很大，而连续批处理会将处于不同生成阶段的请求放入同一次启动中；因此，一个批次通常会混合短 KV 缓存和长达数万 token 的序列。

静态 split-KV 调度将工作映射到 KV 头、请求和 KV 块上的固定启动网格，整个批次共享一种分区策略。静态 split-KV 调度器通常遵循两种策略之一，但两者在混合长度批次上表现都不佳。（1）固定拆分数量时，长请求会产生更重的块：短请求的 CTA 提前完成，而少数长运行的 CTA 决定了内核的尾部延迟。（2）改为固定块大小时，网格必须为最长请求预留足够的拆分，导致较短请求出现空块或近乎空的块，却仍然占用调度槽位。一种策略造成工作不均；另一种策略则调度了不存在的工作。

围绕实时 KV 工作进行调度

HPC-Ops 用持久化内核取代了静态的逐请求拆分，该内核根据批次的实际长度分布，在 CTA 之间动态平衡 KV 瓦片。对于每个解码批次，一个分配内核根据实时 KV 长度构建全局任务映射：它将每个序列切成统一的 64-token 瓦片，汇总所有头和请求的瓦片数量，并将总数除以持久化 CTA 的数量，以设定每个 CTA 的瓦片预算。分配内核将每个 CTA 的容器填满至该预算，然后溢出到下一个容器，因此长序列按长度比例跨越多个 CTA，而短序列只贡献其实际拥有的瓦片。当总工作量较小时，最低工作量下限可防止过度分区，从而保持下游合并的开销低廉。任务映射在每个解码步骤中根据设备端序列长度生成一次，并在 Transformer 各层之间复用，从而摊薄其成本。

在执行阶段，每个 CTA 负责清空其分配到的分箱。对于每一条描述符，它会在一个或多个连续的 KV tile 上计算 Attention，并连同其 log-sum-exp 统计量一起写出部分输出；该常驻 CTA 会继续处理下一条描述符，直到其分箱为空。由于每个 CTA 仅为给定请求生成部分输出的一个子集，因此最终的合并内核会读取每个请求和每个注意力头的实际块数，并在正确的全局 softmax 归一化下合并这些部分输出。近乎均等的分箱大小可确保各 CTA 大致同时完成，从而消除少数异常长请求原本会引发的内核尾部效应。

融合的 Attention 前奏

对于 Hy3 FP8，HPC-Ops 将 Attention 前奏融合在 QKV 投影之后：它在 RoPE 之前应用 QK-Norm，以按 token、按头的缩放因子将 Q 输出为 FP8，并将 K 和 V 直接写入分页 FP8 缓存。它将量化后的 Q 及其缩放因子直接传递给主 Attention 内核，从而避免重新量化。该融合路径消除了中间张量及其相关的 HBM 往返，以及 prefill 和 decode 阶段中各自独立的内核启动。

Router GEMM：平衡路由精度与吞吐量

Router 精度直接影响 MoE 模型质量。在每个 MoE 层，router 将隐藏状态投影为专家得分，并通过对这些得分进行 top-k 选择来决定执行哪些专家。第 k 个与第 (k+1) 个专家之间的得分差异可能很小，因此该投影的算术精度决定了能否选出正确的专家。

为保持 router 精度，一些生产模型即使在隐藏状态为 BF16 时仍保留 FP32 的 router 权重。将这些权重转换为 BF16 可启用 BF16 Tensor Core 吞吐量，但会丢弃可能改变 top-k 决策的低位尾数位。完整的 FP32 GEMM 可保留全部权重精度，但 Tensor Core 吞吐量较低。

一种精度感知的 BF16 公式

HPC-Ops 通过将 FP32 权重分解为两个 BF16 分量来解决这一问题。它通过直接截断提取 BF16 高位部分，然后利用缩放后的残差构成第二个 BF16 分量。原始权重被近似为两者之和，因此矩阵乘积变为两次 BF16 GEMM，其结果通过缩放校正合并，以恢复低阶尾数的贡献。单个内核同时执行两次 BF16 乘法：它从共享内存中一次性加载激活块，在 FP32 寄存器中累加两个部分结果，在收尾阶段应用缩放，并将最终的 FP32 路由分数写入全局内存。这种设计在 BF16 Tensor Core 上执行主要算术运算的同时，恢复了接近完整 FP32 GEMM 的精度。Whigh(W−Whigh)×256W≈Whigh+Wlow/2561/256

在框架层面，SGLang 在模型加载时缓存分解后的权重对，并在请求和 CUDA 图重放之间复用。一个感知形状的调度器在实测交叉点处选择 HPC-Ops 内核或默认路径。在交叉点以下，单一 FP32 路径更快，因为双乘积的开销超过了 Tensor Core 带来的增益。

MoE：降低小型专家 GEMM 周围的额外开销

在解码阶段，MoE 层中的每个专家仅接收少量 token。由此产生的专家 GEMM 规模小且受内存带宽限制，GPU 的 SM 在这些形状下利用率不足。负载不均衡使问题更加严重：路由到每个专家的 token 数量因专家而异，且随步骤变化，这使得将这些小而形状不均的块均匀分布到可用 SM 上变得困难。

除了专家 GEMM 本身，围绕它们的操作也引入了大量额外开销。传统的 MoE 路径将路由、将 token 收集到各专家缓冲区、Gate-Up GEMM、激活与量化、Down GEMM 以及将 top-k 加权归约回 token 位置等操作串联为多个独立内核。收集步骤在任何矩阵乘法开始之前，就在 HBM 中物化出完整的 token 张量，而后续每个阶段都要承担自身的内核启动和中间结果的 HBM 往返开销。当 GEMM 规模较小时，这些周边开销消耗了该阶段相当比例的墙钟时间。

一个融合的、面向延迟优化的 MoE 流水线

在低批次大小推理场景下，HPC-Ops MoE 后端围绕任务映射驱动的持久化专家 GEMM，构建低延迟流水线，将路由与索引预处理、Gate-Up、激活与重量化、Down 以及 top-k 加权归约协调在一起。

路由与索引构建。从选定的 top-k 专家 ID 出发，通过共享内存计数遍历将 token–专家分配整理为连续的按专家划分的输出区间，从而降低全局原子操作压力，并构建路由索引和按 tile 划分的任务映射，供持久化专家 GEMM 直接消费。

Gate-Up 与激活。Gate-Up GEMM 通过路由索引直接读取原始 token，省去了独立的 gather 操作及其额外的 HBM 流量。随后 SiLU-and-mul 与 FP8 重量化作为单个融合内核运行，其输出由 Down GEMM 直接读取。

以占用率为先，不采用 warp 特化。由单个 warp 组同时负责数据搬运和矩阵运算，而非预留独立的 producer 与 consumer 组。这提高了 CTA 驻留率，并将内存延迟隐藏从 CTA 内软件流水线转移到跨 CTA 硬件调度。持久化网格随后消费这些任务映射，将小而参差不齐的专家 tile 分布到各 SM 上。

PDL 链式阶段。Programmatic Dependent Launch 将每个下游内核的启动与前一阶段的尾部重叠，缩小 Gate-Up、激活、Down 以及最终 top-k 加权归约（将专家输出恢复为 token 顺序）之间的间隙。

这些优化共同减少了关键路径上的中间流量和内核启动开销。

从 HPC-Ops 内核到 SGLang

通过 SGLang 的原生后端与调度接口，HPC-Ops 直接作用于服务运行时已有的状态，同时保持为独立维护的算子库。Attention 直接使用分页 KV 存储和实时的设备端序列元数据，无需额外的布局转换；Router GEMM 在请求间和 CUDA graph 重放时复用预处理后的权重和工作区；MoE 则遵循 SGLang 的专家 ID 和分区方式，无需额外重映射。这些集成在适配 SGLang 现有执行模型的同时，保留了每个算子预期的数据路径。

三个集成的算子路径总结如下：

HPC-Ops 算子优化内容精度上游 PR

Attention负载均衡的混合长度解码，以及融合的 QK-Norm、RoPE、量化和 KV 写入前序操作BF16 激活值；BF16 或 FP8 E4M3 KV cache#30540, #32304

Router GEMM使用 BF16 Tensor Core 进行精度感知的路由投影，同时保留 FP32 权重信息BF16 激活值 × FP32 权重 → FP32 分数#30247, #31943

MoE针对小型且不均衡的专家 GEMM 的低开销执行BF16 隐藏状态；FP8 E4M3 专家权重#30541

快速开始

本指南介绍如何在 SGLang 中使用 HPC-Ops 的 Attention、Router GEMM 和 MoE 算子。

安装

从源码安装 HPC-Ops：

git clone https://github.com/Tencent/hpc-ops.git cd hpc-ops make wheel python3 -m pip install dist/*.whl

HPC-Ops 已包含在 SGLang 官方 x86_64 开发镜像中（lmsysorg/sglang:dev，或用于 CUDA 12.9 的 lmsysorg/sglang:dev-cu12），因此使用这些镜像时无需单独安装。

Attention 和 MoE

Attention 和 MoE 是 SGLang 中相互独立的后端选项，对于 Qwen3 和 Hy3 等兼容模型，可以单独或同时启用。以下示例同时选择两个 HPC-Ops 后端，并启用 FP8 KV-cache Attention 路径：

python3 -m sglang.launch_server \ --model tencent/Hy3-FP8 \ --tp-size 8 \ --attention-backend hpc_ops \ --kv-cache-dtype fp8_e4m3 \ --page-size 64 \ --moe-runner-backend hpc_ops

对于 BF16 KV cache，请省略 --kv-cache-dtype fp8_e4m3。若只想使用一个 HPC-Ops 算子，只需指定对应的后端选项。

Router GEMM

在 SGLang 中，HPC-Ops Router GEMM 在执行 BF16 Tensor Core 矩阵运算的同时，保留了 FP32 路由权重的低阶信息。该集成路径已在 LongCat-Flash Chat 和 Lite 上完成验证，并会对受支持的模型和路由形状自动选择启用。一旦安装 HPC-Ops，即可通过标准的 LongCat-Flash 启动方式使用它：

python3 -m sglang.launch_server \ --model meituan-longcat/LongCat-Flash-Lite-FP8

性能评估

HPC-Ops 后端目前支持 NVIDIA Hopper 架构 GPU，并在 H20 上发挥最佳性能。以下评估涵盖 H20 上的算子基准测试、8× H20 上的端到端 SGLang 服务，以及上游 SGLang 拉取请求中报告的 H200 结果。

H20 算子基准测试

注意力机制。

注意力调度器的核心优势体现在混合长度解码场景中，即同一批次内的请求可能具有差异极大的 KV 缓存长度。我们评估了从均匀分布到高度偏斜分布的 FP8 KV 缓存解码；表中 A×B 表示 A 个请求，每个请求的 KV 长度为 B。为隔离调度效果的影响，我们将 HPC-Ops 动态调度与其静态拆分 KV 方案进行对比，同时以 FlashInfer 和 FlashAttention 作为额外基线。动态与静态相比的增益随偏斜度增加而增长，从均匀 64×0.5K 批次下的持平，到 1×128K + 31×4K 混合场景下的 2.95 倍。在所有六种情况下，动态调度平均比每种情况下 FlashInfer 和 FlashAttention 中的最优者快 2.25 倍。

表 1：H20 上不同 KV 长度分布的解码延迟。数值越低越好。

解码场景HPC-Ops 动态HPC-Ops 静态FlashInferFlashAttention动态 vs. 静态

64×0.5K0.013 毫秒0.013 毫秒0.050 毫秒0.025 毫秒1.00×

64×4K0.033 毫秒0.043 毫秒0.221 毫秒0.095 毫秒1.32×

32×0.125K + 32×4K0.020 毫秒0.033 毫秒0.119 毫秒0.053 毫秒1.59×

2×32K + 30×4K0.032 毫秒0.056 毫秒0.169 毫秒0.094 毫秒1.76×

1×64K + 15×4K0.042 毫秒0.097 毫秒0.118 毫秒0.065 毫秒2.32×

1×128K + 31×4K0.063 毫秒0.186 毫秒0.220 毫秒0.097 毫秒2.95×

图 1：随着实时 KV 工作负载偏斜度增加，动态调度的效果愈发显著。数值越低越好。

路由 GEMM。

我们首先通过一次通用扫描来评估 Router GEMM。在所测量的 M 值范围内，HPC-Ops 比 FP32 cuBLAS 快 1.30–3.22 倍，比 TF32 cuBLAS 快 1.25–1.78 倍。以 FP32 cuBLAS 作为数值参考，最大绝对误差保持在 0.00177 或以下，而 TF32 的误差为 0.06464。K=4096,N=192

表 2：H20 上 K = 4096、N = 192 时的 BF16 × FP32 Router GEMM 延迟。数值越低越好。

MHPC-OpsFP32 cuBLASTF32 cuBLAS相对 FP32 的加速比相对 TF32 的加速比

111.200 µs14.576 µs14.048 µs1.30×1.25×

1611.744 µs23.808 µs18.752 µs2.03×1.60×

4812.144 µs31.008 µs20.064 µs2.55×1.65×

9613.904 µs31.760 µs24.720 µs2.28×1.78×

20817.088 µs39.280 µs28.928 µs2.30×1.69×

51226.992 µs86.976 µs44.736 µs3.22×1.66×

102450.640 µs110.480 µs68.544 µs2.18×1.35×

204876.688 µs198.576 µs100.800 µs2.59×1.31×

4096141.120 µs403.728 µs205.760 µs2.86×1.46×

图 2：Router GEMM 相对于 FP32 cuBLAS 的数值误差（左）以及相对于 FP32 和 TF32 cuBLAS 的延迟对比（右）。数值越低越好。

随后，我们重新测试了 LongCat-Flash 使用的两种路由形状。在 SGLang 的模型感知调度范围内，与 SGLang 默认实现相比，HPC-Ops 在 Chat 形状上实现了 1.06–2.83 倍的加速，在 Lite 形状上实现了 1.09–2.46 倍的加速。

表 3：H20 上 SGLang 调度范围内 LongCat-Flash Router GEMM 的延迟。数值越低越好。

MChat 默认Chat HPC-Ops加速比Lite 默认Lite HPC-Ops加速比

6439.19 µs37.01 µs1.06×———

12874.18 µs59.36 µs1.25×25.83 µs23.72 µs1.09×

256100.03 µs82.47 µs1.21×41.87 µs34.01 µs1.23×

512190.37 µs141.73 µs1.34×71.89 µs41.95 µs1.71×

1024380.68 µs207.00 µs1.84×108.64 µs74.09 µs1.47×

2048961.15 µs339.04 µs2.83×235.81 µs106.81 µs2.21×

40961469.70 µs670.14 µs2.19×423.52 µs172.44 µs2.46×

81922881.00 µs1333.84 µs2.16×835.22 µs339.66 µs2.46×

图 3：在 SGLang 调度范围内，LongCat-Flash Chat（左）和 Lite（右）形状的 Router GEMM 延迟。数值越低越好。

MoE。

对于 MoE，我们在 Hy3 形状下、TP8 / EP1 和 TP1 / EP8 配置中，将完整的融合算子与 SGLang、vLLM Triton 和 vLLM CUTLASS 进行了基准测试。以每行三个基线中的最低延迟为基准，HPC-Ops 在 TP8 / EP1 下实现了平均每批次 1.08× 的加速，在 TP1 / EP8 下实现了 1.21× 的加速，其中在低延迟解码常见的中小批次规模下收益最大。

表 4：H20 上 TP8 / EP1 配置的 Hy3 MoE 延迟。数值越低越好。

批次HPC-OpsSGLangvLLM TritonvLLM CUTLASS相对最优加速比

1685.7 µs88.6 µs124.2 µs209.2 µs1.03×

32124.0 µs137.2 µs184.3 µs275.6 µs1.11×

64147.2 µs164.4 µs374.9 µs330.3 µs1.12×

128161.5 µs179.9 µs302.9 µs345.3 µs1.11×

256170.1 µs191.5 µs310.9 µs351.6 µs1.13×

512194.5 µs230.1 µs331.6 µs369.2 µs1.18×

1024281.4 µs300.5 µs652.7 µs438.3 µs1.07×

2048491.8 µs522.5 µs731.5 µs794.4 µs1.06×

4096872.0 µs899.2 µs1366.0 µs1230.7 µs1.03×

81921695.0 µs1712.7 µs2216.8 µs2362.9 µs1.01×

163843241.9 µs3257.1 µs4329.1 µs4364.4 µs1.00×

表 5：H20 上 TP1 / EP8 配置的 Hy3 MoE 延迟。数值越低越好。

批次HPC-OpsSGLangvLLM TritonvLLM CUTLASS相对最优加速比

4118.6 µs183.1 µs147.4 µs140.4 µs1.18×

8136.7 µs231.5 µs192.8 µs170.7 µs1.25×

16149.8 µs234.2 µs198.4 µs263.5 µs1.32×

32153.6 µs475.3 µs214.6 µs264.4 µs1.40×

64166.5 µs477.3 µs358.1 µs266.8 µs1.60×

128213.5 µs482.3 µs251.7 µs272.6 µs1.18×

256386.2 µs494.3 µs454.9 µs493.5 µs1.18×

512705.5 µs970.7 µs691.7 µs741.7 µs0.98×

10241342.6 µs1476.8 µs1369.1 µs1359.1 µs1.01×

20482513.9 µs2871.2 µs2668.7 µs2530.4 µs1.01×

图 4：TP8 / EP1 和 TP1 / EP8 配置下的 Hy3 MoE 延迟。数值越低越好。

H200 算子验证

上游 PR 中还包含了 H200 的服务结果，证实了性能提升在 Hopper GPU 上具有普适性。

表 6：上游 SGLang 拉取请求中报告的算子验证结果。

算子上游验证工作负载对比结果

FP8 Attention使用 FP8 KV cache 的 Hy3-FP8；混合长度解码HPC-Ops 动态调度 vs. HPC-Ops 静态 split-KV输出吞吐量 +2.0%；总吞吐量 +2.0%；中位 TTFT −5.3%

BF16 Attention使用 BF16 KV cache 的 Qwen3；混合长度解码HPC-Ops 动态调度 vs. HPC-Ops 静态 split-KV输出吞吐量 +3.0%；平均端到端延迟 −2.8%；平均 TPOT −2.8%

Router GEMMLongCat-Flash Chat 与 Lite 路由器的形态HPC-Ops 路由器 GEMM 与 SGLang 默认实现的对比内核加速比：1.56–4.31×

MoEQwen3 FP8 MoE 工作负载，token 数从 1 到 4,096HPC-Ops MoE 与 SGLang Triton 融合专家模块的对比内核加速比：0.89–4.21×

端到端性能

端到端评估在 8× NVIDIA H20 GPU 上运行，与对应的 SGLang 默认实现进行对比。在 Hy3-FP8 上，采用 TP8 并启用 FP8 KV cache，我们通过同时启用 HPC-Ops Attention 和 MoE 来测量组合服务影响。在 LongCat-Flash-Lite-FP8 上，仅测量 Router GEMM。我们还汇总了上游 SGLang pull requests 中报告的 H200 服务验证结果。

Hy3-FP8：Attention 与 MoE。

在 8K 输入和 4K 输出的情况下，HPC-Ops 在 batch size 为 1 时将 TPOT 降低了 3.3%。在 batch size 4–64 范围内，降幅扩大到 15.1–48.8%。

表 7：Hy3-FP8 在启用 FP8 KV cache 并同时启用 HPC-Ops Attention 和 MoE 时的 TPOT。数值越低越好。

BatchSGLang 默认HPC-Ops提升幅度

17.56 ms7.31 ms3.3%

411.10 ms9.42 ms15.1%

814.29 ms10.76 ms24.7%

1622.90 ms13.09 ms42.8%

3235.33 ms18.09 ms48.8%

6440.70 ms23.81 ms41.5%

在 8K 输入的情况下，HPC-Ops 在 batch size 1–16 范围内将 TTFT 提升了 3.3–9.0%。

表 8：Hy3-FP8 在 8K 输入、启用 FP8 KV cache 时的 TTFT。正提升值表示延迟更低。

BatchSGLang 默认HPC-Ops提升幅度

1460.67 ms419.43 ms9.0%

41612.47 ms1533.66 ms4.9%

83210.93 ms3018.68 ms6.0%

165810.53 ms5619.48 ms3.3%

在 batch size 为 16 时，我们还禁用了 chunked prefill 和 prefix caching，将输入长度从 2K 扫描到 8K。HPC-Ops 在三种输入长度下将 TTFT 提升了 2.3–8.9%。

表 9：Hy3-FP8 在 batch size 为 16、启用 FP8 KV cache 时，不同输入长度下的 TTFT。正提升值表示延迟更低。

输入长度SGLang 默认HPC-Ops提升幅度

2K1509.98 ms1375.95 ms8.9%

4K2779.46 ms2715.18 ms2.3%

8K5810.53 ms5619.48 ms3.3%

LongCat-Flash-Lite-FP8：Router GEMM。

Router GEMM 使用 1,024 token 输入和 128 token 输出单独评估。在 batch size 为 1 时，输入吞吐量基本持平，提升 0.5%；在 batch size 4–64 范围内提升 5.5–6.1%。

表 10：LongCat-Flash-Lite-FP8 在启用 HPC-Ops Router GEMM 时的输入吞吐量。数值越高越好。

BatchSGLang 默认HPC-Ops Router GEMM提升幅度

116,612.11 tok/s16,695.77 tok/s0.5%

454,466.27 tok/s57,810.27 tok/s6.1%

860,425.93 tok/s63,833.96 tok/s5.6%

1661,995.23 tok/s65,539.10 tok/s5.7%

3262,833.85 tok/s66,306.52 tok/s5.5%

6462,841.93 tok/s66,422.92 tok/s5.7%

图 5：端到端 SGLang 结果。三个 Hy3-FP8 面板同时启用了 FP8 KV cache、HPC-Ops Attention 和 MoE；右下角面板单独展示 Router GEMM 的结果。

H200 服务验证

上游 pull requests 还在 H200 上评估了集成算子在 SGLang 服务循环中的表现，提供了超出主要 H20 调优目标之外的模型级集成检查。

表 11：上游 SGLang pull requests 中报告的模型级服务验证结果。

算子上游验证工作负载对比结果

AttentionHy3-FP8 搭配 FP8 KV cache 的服务工作负载HPC-Ops Attention 对比 FlashAttention输出吞吐量：+3.7–5.9%

Router GEMMLongCat-Flash Lite 预填充服务工作负载HPC-Ops Router GEMM 对比 SGLang 默认实现输入吞吐量：+2.8–5.4%

MoEQwen3 和 Hy3 FP8 MoE 服务工作负载HPC-Ops MoE 对比 SGLang 默认实现输出吞吐量：Qwen3 从持平到 +2.7%；Hy3 −4.2% 到 +6.3%

上游集成还经过了数值和模型级保真度检查。Attention 测试在 BF16 和 FP8 下均通过，且评估的 Hy3 FP8 贪心输出与 BF16 路径逐 token 完全一致。Router GEMM 通过与 FP32 参考实现的对比，并保持了贪心输出的一致性。对于 Qwen3，HPC-Ops MoE 路径与 Triton 在 FP32 下的误差水平相当，余弦相似度为 0.99974，最大相对误差为 0.024。完整配置和逐案例结果可在上游 PR 中查看。

后续计划

这项工作属于 HPC-Ops 与 SGLang 社区更广泛合作的一部分。我们将继续与 SGLang 维护者和贡献者合作，改进和扩展这些算子，并在相关能力成熟后将其上游化到 HPC-Ops。我们非常欢迎反馈、问题和基准测试，并期待共同推进开放、高性能的大语言模型推理。

致谢

我们感谢跨团队众多人士的通力合作，将这些算子引入 SGLang：

腾讯混元 AI 基础设施团队——负责构建和优化 HPC-Ops Attention、Router GEMM 和 MoE 算子，并将其贡献给 SGLang。团队成员：Sethran Liu、Chase Shao、Shengy Wei、Theo Cheng、Ryann Xue、Lando Jiang、Looper Zhao、Haank Lin、Aiden Ren、Lehua Ding、Chengv Jiang、Steven Kuang、Liqi He、Kipper Gong、Reedlau Liu、Raccoon Liu、Dick Zhu。

腾讯网络平台部——感谢在通信优化方面的紧密合作。团队成员：Xuan Zhang、Haoran Zhao、Yuanyuan Gong、Yadong Liu、Jinzhu Wang、Yinben Xia、Xiang Li、Quan Wen、Zekun He。

SGLang——感谢开放的后端接口、代码审查和设计讨论。感谢 Xiaoyu Zhang (BBuf)、Xinyuan Tong、Ke Bao 以及整个 SGLang 团队。

NVIDIA——感谢在内核和性能优化方面的紧密合作。团队成员：Yuanhang Sun、Perkz Zheng、Yuxi Chi、Jiang Shao、Jun Gu、Meng Wang、River Liu、Gary Ji、Chandler Zhou。

我们还要感谢更广泛的开源内核社区，本工作正是在其成果基础上构建并进行对比评测的，包括 NVIDIA CUTLASS/CuTe、TensorRT-LLM、FlashInfer、FlashAttention 和 Triton。
