桃子桃子快讯
返回首页
开源

Sail 开源 HTDYM:用 Roofline 模型做 LLM 推理硬件选型

Sail 公开内部推理性能建模框架 HTDYM,基于 Roofline 模型快速评估不同芯片、分片方案下的 token…

2026.08.28 · 周五5 分钟阅读

AI 基础设施团队 Sail 近日开源了其内部用于 LLM 推理部署决策的性能建模框架 HTDYM(How To Deploy Your Model),并提供了托管版 UI 供社区试用。该工具的核心目标是在不依赖完整 benchmark 的前提下,快速估算模型在不同芯片、分片方案下的推理上限,帮助团队以「每个 token 的成本」为单位挑选硬件。

出发点:没有差的芯片,只有差的价格

Sail 表示,公司的核心理念是「没有差的芯片,只有差的价格」—— 任何芯片只要在其擅长的工作负载下价格合理,就值得使用。对于每一个要服务的模型,团队都需要回答「市场上每颗芯片对我们值多少钱」这个问题。

这个问题并不简单。模型层面的差异就很多:MoE 与 dense 不同,有些模型训练时使用 MXFP8,有些必须用 BF16;注意力机制上也存在压缩注意力、滑动窗口与 dense 注意力交替等多种形态。工作负载层面,prefill 阶段偏 compute-bound,decode 阶段则通常受内存带宽限制——内存带宽与 FLOP 比高的芯片可能是优秀的 decode 芯片,却未必适合 prefill。在 disaggregated serving 架构下,两个阶段并不强求跑在同一硬件上。

更关键的是分片(sharding)维度。Sail 指出,同样的模型、工作负载与芯片组合,仅分片方式不同就可能带来 3 倍以上的 token 单价差异,这一维度在业内普遍被低估。

为什么不能只靠 benchmark

在推理硬件选型中,常见的做法是使用 vLLM、SGLang 等推理引擎在目标平台上 grid search 各组并行度与 batch 参数,直接读出 tok/s 最高的方案。SemiAnalysis 的 InferenceX 平台即采用这种思路,Sail 团队自身也大量使用 benchmark,但纯 benchmark 存在三个主要问题:

  • 无法 benchmark 未持有的硬件。 团队经常需要评估尚未广泛可得、或尚未被公开 benchmark 的芯片与配置。
  • 搜索空间巨大。 每种模型 × 机器配置下,遍历分片 × 放置 × batch × 工作负载组合,可能耗时数天乃至数周,而团队希望秒级或分钟级得到答案。
  • 引擎性能 ≠ 可达性能。 benchmark 测出的不仅是硬件能力,更是特定推理引擎的实现质量。由于推理引擎需要 day 0 支持大量模型,其开箱性能与经手工 kernel 优化后的可达性能之间常有显著差距。这一点在小众硬件平台上尤为突出,且欠优化的引擎实现还会误导团队对「最佳分片」的判断——例如某组 TP/EP 配置在引擎中表现差,可能并非分片本身不合理,而是通信 overlap 不充分。

理想情况下,团队希望有一个系统可以基于硬件能力为模型和分片「定价」,从而避免因引擎实现不成熟而误判某些芯片或分片方案的价值。

Roofline 模型:用算术给出推理上限

HTDYM 的理论基础是 Roofline 建模。其基本思路是:先计算工作负载所需的浮点运算量和从内存加载的字节数,再分别除以硬件对应的算力与带宽,取两者较大值得到完美 overlap 下的性能上界,取两者之和得到完全无 overlap 下的性能上界:

  • T_compute = FLOPs / 硬件 FLOP/s
  • T_memory = 加载字节数 / 硬件内存带宽
  • T_total ∈ [max(T_compute, T_memory), T_compute + T_memory]

在多芯片场景下还需引入第三类资源——网络。大模型通常必须将权重分片到多颗加速器上,不同的分片方式在前向传播各阶段会产生不同的通信量,与算力和内存同理,可简化为:

  • T_comms = 通信字节数 / 硬件网络带宽
  • T_total ∈ [max(T_compute, T_memory, T_comms), T_compute + T_memory + T_comms]

Roofline 的边界与 HTDYM 的价值

Roofline 建模本身的输入并不都容易预先确定:「通信字节数」既不是模型的固有属性,也不完全由硬件决定,而几乎完全取决于分片策略的选择,而如何在一组给定的硬件 / 拓扑上为模型分片,本身就不是一件显然的事。即便是「加载字节数」,在 expert parallelism 下也只取决于该芯片上被路由到的专家权重,而非全部参数。

HTDYM 的定位,正是把这套上界估算工程化、产品化:用户在 UI 中选择模型与候选硬件配置,工具会快速给出不同分片方案下的 token 成本上界,作为进一步 benchmark 与 kernel 优化工作的指南。如果真实 benchmark 远低于估算出的上界,则说明存在 kernel 优化空间。

Sail 表示,HTDYM 的代码已在 GitHub 开源(github.com/sailresearchco/htdym),感兴趣的开发者也可以直接访问 htdym.sailresearch.com 试用托管版 UI,亲手比较不同芯片与分片组合下的理论性能上界。

信源