返回Ai开源
HPC-Ops 开源解读:腾讯混元生产级 LLM 推理算子库如何榨干 H20 等推理卡性能

HPC-Ops 开源解读:腾讯混元生产级 LLM 推理算子库如何榨干 H20 等推理卡性能

Ai开源 Admin 124 次浏览

一、摘要

HPC-Ops 是腾讯混元(Hunyuan)AI Infra 团队开源的生产级 LLM 推理算子库,目标是让主流推理卡(尤其是 NVIDIA Hopper/SM90,如 H20)更接近硬件峰值利用率。项目主打从零用 CUDA + CuTe/CUTLASS 打磨 SOTA 内核,并提供相对干净的 API,方便集成到 vLLM、SGLang 等推理框架中,面向 BF16/FP8 等多精度推理场景。

二、核心特性

1、面向生产的极致性能:针对推理关键路径深度优化,官方给出 Attention / GroupGEMM / FusedMoE 的最大观测加速比(最高可达 2.22x)。

2、关键算子覆盖:包含 Attention(Prefill/Decode,含 paged attention)、Grouped GEMM、Fused MoE 等推理高频算子。

3、多精度与量化支持:原生支持 BF16、FP8,并覆盖不同量化缩放方式(如 block-wise / per-tensor)。

4、易集成与可读性:强调“干净抽象 + 可定制”,同时把内核实现做成现代 CUDA 学习样例,降低二次开发门槛。

三、安装

1、环境要求:NVIDIA SM90 架构 GPU;Python 3.8+;支持 C++17 的编译器;CUDA Toolkit 12.8+

2、源码安装(构建 wheel):

  • git clone https://github.com/Tencent/hpc-ops.git
  • cd hpc-ops
  • make wheel
  • python3 -m pip install dist/*.whl
  • 3、依赖建议:按仓库的 requirements-dev.txt 准备开发/测试依赖,便于跑用例与对齐版本。

四、典型用例

1、MoE 模型推理加速:用 FusedMoE / GroupGEMM 降低专家路由后的 GEMM 与融合开销,提升 QPS/QPM。

2、长上下文与高并发服务:Attention(含 paged attention)对 prefill/decode 的吞吐与时延更敏感,适合在高负载下压榨 GPU。

3、推理框架二次集成:在 vLLM、SGLang 等运行时中替换/扩展关键算子,实现“局部换内核、整体收益”的工程路径。

4、内核研发与教学:把 CuTe/CUTLASS 的工程化落地当作可读样例,用于团队训练与新算子迭代。

五、生态与竞品

1、生态位置:HPC-Ops 更像“高性能算子底座”,适合与推理框架(vLLM、SGLang)组合使用,而不是直接替代完整推理引擎。

2、竞品/对标:Attention 方向常见对比 FlashAttention/FlashInfer/TensorRT-LLM;MoE 与 GEMM 方向常见对比 TensorRT-LLM、DeepGEMM 等。HPC-Ops 的差异点在于对特定硬件与生产负载做更激进的微架构优化与工程抽象。

六、局限与注意事项

1、硬件门槛:当前明确要求 SM90(Hopper)GPU;其他架构的可用性与收益需要自行验证。

2、版本耦合:对 CUDA 版本、编译器与依赖较敏感,建议严格按仓库说明锁定环境。

3、“最大观测加速比”不等于稳定收益:不同 batch、序列长度、并发与算子融合方式会导致收益差异,需用自家 workload 做基准测试。

4、集成成本:在现有推理栈替换算子时要关注数值一致性、精度策略(BF16/FP8)与回退路径,避免线上不可控风险。

七、项目地址

https://github.com/Tencent/hpc-ops

八、常见问题

Q: HPC-Ops 是什么,适合用来做什么?

A: 它是高性能 LLM 推理算子库,适合在 vLLM/SGLang 等框架中替换关键算子以提升吞吐与 GPU 利用率。

Q: HPC-Ops 支持哪些 GPU 与 CUDA 版本?

A: 官方要求 NVIDIA SM90(Hopper)架构 GPU,且 CUDA Toolkit 需 12.8 及以上。

Q: HPC-Ops 的核心算子覆盖哪些推理环节?

A: 覆盖 Attention(prefill/decode,含 paged attention)、Grouped GEMM、Fused MoE 等推理关键路径算子。

Q: HPC-Ops 的 FP8 量化/缩放方式怎么选?

A: 先按仓库提供的接口与测试用例跑通,再结合精度目标与性能指标选择 block-wise 或 per-tensor 等缩放策略,并做端到端回归。

Q: 如何评估 HPC-Ops 在我自己的模型/业务上的收益?

A: 用真实请求分布(序列长度、batch、并发、MoE 配置)做 A/B 基准,并分别衡量 prefill、decode 与端到端吞吐/时延。

HPC-Ops 开源解读:腾讯混元 AI Infra 的高性能 LLM 推理算子库 如何在 H20/SM90 上榨干推理算力:HPC-Ops 全面解析 HPC-Ops vs FlashAttention:Attention 内核加速点与适用场景 HPC-Ops vs FlashInfer:生产推理中 Attention 性能怎么比 HPC-Ops vs TensorRT-LLM:FusedMoE 与推理栈集成差异 HPC-Ops vs DeepGEMM:GroupGEMM 的 FP8 性能与工程代价 HPC-Ops 上手指南:源码编译、make wheel 与安装流程 HPC-Ops 环境要求详解:SM90、CUDA 12.8 与 C++17 HPC-Ops 的 BF16/FP8 支持:量化缩放策略怎么选 HPC-Ops Attention(Prefill/Decode)优化思路:为何能更快 用 HPC-Ops 提升 QPM:从算子瓶颈到系统吞吐 HPC-Ops 在 MoE 推理中的价值:FusedMoE 如何减少开销 HPC-Ops GroupGEMM 典型用法:PyTorch 调用示例与注意点 HPC-Ops 测试与基准:如何用 tests 目录做回归 HPC-Ops 集成 vLLM:替换算子层的一般路径 HPC-Ops 集成 SGLang:算子适配与性能验证 HPC-Ops 为什么强调“最大观测加速比”:如何正确解读数据 生产环境引入 HPC-Ops 的 checklist:稳定性、精度与回滚 HPC-Ops 的 CuTe/CUTLASS 风格代码:现代 CUDA 学习路线 HPC-Ops Attention 加速实战:KV cache 与 paged attention 相关点 HPC-Ops FP8 推理落地:吞吐提升与数值误差控制 HPC-Ops 的量化 GroupGEMM:按块缩放 vs 按张量缩放 HPC-Ops 的量化 FusedMoE:专家权重 FP8 的工程细节 HPC-Ops 与主流推理库的分工:框架调度 vs 底层算子 从 Roofline 看 HPC-Ops:算力瓶颈与带宽瓶颈怎么判 当 FlashAttention 不够快:为什么要用 HPC-Ops 这类定制库 HPC-Ops 适合哪些模型:混元与 DeepSeek 等推理 workload 分析 HPC-Ops 性能复现指南:输入形态、序列长度与编译参数 HPC-Ops 的安装踩坑:CUDA 版本与编译器兼容性 HPC-Ops 在容器环境部署:构建镜像与驱动匹配建议 HPC-Ops 如何做 A/B Benchmark:延迟、吞吐与显存三指标 HPC-Ops 在多机多卡推理中的位置:算子与通信的边界 HPC-Ops 路线图解读:稀疏注意力与扩展量化支持 用 HPC-Ops 优化长上下文推理:稀疏 attention 的意义 HPC-Ops 与 FP16/BF16 对比:何时该转 FP8 HPC-Ops 的 API 设计:如何做到“易集成、易定制” HPC-Ops 贡献指南:如何提交高影响 PR 与性能改进 HPC-Ops 适配新架构的关注点:从 SM90 到更新 GPU 如何评估 HPC-Ops 的生产收益:QPS/QPM 与成本核算 HPC-Ops 的算子覆盖清单:Attention、GEMM、MoE 一览 用 HPC-Ops 做推理加速:最小可行集成(MVP)步骤 HPC-Ops 与 Triton 内核的差异:可控性与峰值性能 HPC-Ops 的 CMake/Makefile 构建方式:工程结构解析 HPC-Ops 安全与稳定性:线上替换底层算子的风险点 HPC-Ops 精度验收方法:对齐输出、容差与回归集 HPC-Ops 在大规模推理服务中的实践要点:监控与灰度 HPC-Ops 常见问题汇总:硬件门槛、版本要求与性能波动 HPC-Ops 适合你吗:从业务瓶颈出发的选型建议

推荐工具

更多