人工智能系统与测量 · 观点 20

基准测试何时能够支持一项主张:实验单位、工作负载混合与因果有效性

基准测试即使可以重复,也仍可能回答了错误的问题。实验单位、工作负载构成和干预设计决定了测得的差异意味着什么。

引用本文

AI 译文可能存在错误,请对照原文核实。

AI 辅助译文 · AI 译文可能存在错误,请对照原文核实。 阅读原文
数学符号、代码、参考文献身份和图内文字保留原始形式。

《基准测试何时能够支持一项主张:实验单位、工作负载混合与因果有效性》的概念性编辑插图
概念插图 · 内置 ImageGen · 并非实验证据

摘要

计算机系统基准测试将观测转化为比较性主张,但这一步骤的有效性取决于实验设计。本综述将测量偏差、严谨性能评估和随机化执行布局方面的研究联系起来,以区分重复观测与独立实验单位。层级方差模型说明,为何增加单次运行内的迭代次数无法消除运行间的不确定性。一个构造的工作负载混合示例表明,当所比较的混合构成不同时,即使一个系统在每种工作负载上都更快,也可能显得更慢。两幅图都是解析性演示,而非对编译器或服务的测量。可执行配套材料检验了方差计算、混合导致的逆转,以及几何平均加速比的单位不变性。所提出的方案明确了干预、总体、重复单位、排除规则和具有实际意义的效应量。目标是提出适用范围经得起论证的主张,而不是给定义不清的比较附上一个狭窄的置信区间。

1. 先明确主张,再启动计时器

基准测试应当从一个针对明确定义的执行总体的问题开始。主张针对的是一台机器上的一个二进制程序、跨机器的未来部署,还是一组工作负载?每种目标都需要不同的重复与抽样方式。干预也必须明确。在改变编译器选项的同时,还改变内存布局、输入顺序和进程生命周期,并不能分离该选项的效应。精确计时无法弥补含糊的干预。在选择汇总统计量之前,先用普通语言说明待估量:例如,在固定的到达分布和资源预算下,已完成请求的延迟变化。这样才能判断所收集的观测是否确实回应了预期问题。

2. 原始研究提出了哪些警示

Mytkowicz 及其同事表明,看似无关紧要的实验条件也可能使计算机系统测量产生偏差。Kalibera 和 Jones 提出了一套框架,用于处理相关层级上的性能变异和实验重复。Stabilizer 使用随机化执行布局来应对性能评估中依赖布局的效应。这些贡献分别质疑了不同的捷径:假定设置选择无害、将所有重复视为等价,以及从单个有利布局推断因果关系。它们并不意味着所有基准测试都无效,也不意味着随机化能解决所有混杂因素。它们共同的方法论价值在于将变异来源纳入设计。参考文献还记录了这一点:可访问的 Kalibera—Jones 作者记录明确标示了一份修正版稿件,因此版本来源始终明确。 [1], [2], [3]

3. 重复具有层级结构

假设运行 r 存在一个运行特有的偏移,而该运行内的每次迭代还存在额外噪声。对更多迭代求平均会降低运行内的分量,但不会产生新的独立运行偏移。在一个简单的随机效应模型下,总均值的方差包含一个除以运行次数的运行间项,以及一个同时除以运行次数和迭代次数的运行内项。如果只启动一次进程,那么数千次内循环测量仍可能共享相同的布局、热历史和运行时状态。将它们视为数千次独立部署,会低估不同部署之间行为的不确定性。适当的重复单位应由主张决定,而不是由计时器的采样频率决定。

4. 精度所受的误差下限约束清晰可见

第一幅图将运行间标准差固定为两个任意延迟单位,将运行内标准差固定为十个单位,然后分别在五次或二十次独立运行的条件下增加迭代次数。标准误逐渐接近由运行间项决定的一个正下限。这些数值是有意构造的,并非来自真实系统的估计。其目的是说明,为何增加独立启动次数可能比在一次启动中大幅增加迭代次数更有益于实验。实际研究应估计方差分量,或采用适当的、考虑聚类结构的分析,同时检查运行间的平稳性和独立性是否合理。在错误层级结构下计算出的狭窄区间,并不能确立针对目标总体的精度。

5. 工作负载混合可能逆转主要结论

考虑两类工作负载。系统 A 在简单类别上耗时一个单位,在困难类别上耗时十个单位;系统 B 分别耗时两个和十二个单位。A 在两类内部都更快。如果测量 A 时困难工作占百分之九十,其平均值为 9.1。如果测量 B 时困难工作占百分之十,其平均值为 3.0。由于工作负载不同,聚合比较使 A 看起来更慢。在相同的各占一半的混合构成下,平均值分别为 5.5 和 7.0。这是一个构造的混杂示例,并非关于某个产品的证据。它说明,在将聚合差异解释为实现方式的效应之前,基准测试必须报告工作负载构成,并对比较进行标准化或分层。

6. 聚合方式定义了问题

延迟的算术平均值与各工作负载加速比的几何平均值回答的是不同问题。当每种工作负载权重相同时,后者对各比值的对数赋予相同权重,而总运行时间之比会让耗时更长的工作负载产生更大影响。两者都不会自动正确。选择取决于目标究竟是等权重测试套件、部署工作负载分布、总计算成本,还是延迟服务目标。应报告各组成部分的结果,使读者能够重构其他加权方式。改变单位不应改变无量纲的加速比;改变工作负载权重则完全可能合理地改变它。可执行配套材料检验前一种性质,本文则将后一种选择明确呈现,而不是将其隐藏在一个分数之中。

7. 随机化与配对解决的是特定问题

随机化执行顺序可以减弱处理条件与随时间变化的条件之间的关联。当配对变量具有相关性且已事先指定时,对时间相近或以其他方式匹配的运行进行配对可以降低噪声。两种方法都不保证独立性,也不能消除所有残留效应。预热后的缓存、已编译的运行时、热状态或共享的后台工作负载可能在不同处理条件之间持续存在。设计应描述重置程序,并检验顺序效应。随机化布局解决了一类布局依赖问题,但不能替代工作负载选择或正确的计时边界。分析必须遵循实验所采用的分配与分组结构,而不能仅仅因为方便就使用独立样本公式。

8. 失败的运行也是观测

对于遇到困难请求会超时的服务,不能只根据其成功完成的请求进行评估而不说明这种选择。排除失败可能使不稳定的系统显得很快。同样,在看到结果后丢弃较慢的运行,可能恰好去掉了部署中会遇到的干扰。应根据可观察到的设置失败预先定义排除标准,并同时公布规则和被排除的观测数量。如果重试属于服务契约的一部分,就应计入其资源消耗和端到端延迟。基准测试应报告其主张针对的是以成功为条件的成功操作,还是全部提交的工作负载。这是不同的待估量,不应共用一个没有标明含义的延迟数值。

9. 配套材料检验什么,又不能检验什么

附录为所声明的层级模型构造协方差矩阵,直接计算均值的方差,再将其与闭式表达式比较。它检验了两类工作负载的逆转,并确认当两个系统的时间从一种单位换算为另一种单位时,几何平均加速比保持不变。这些确定性检验可以揭示代数或聚合错误。它们不会为真实基准测试数据估计置信区间,不会验证硬件因果模型,也不会确立 Stabilizer 的有效性。真实评估需要独立数据,以及适合其设计的分析。这些图是针对常见推理错误、可供检查的反例,而非性能结果。

10. 让读者能够持疑审读的报告方式

经得起论证的报告会公开工作负载生成器或轨迹、系统配置、计时边界、运行层级、随机化方式、排除情况和分析代码。它既说明效应的实际重要性,也说明其不确定性。在探索过大量配置的情况下,它会区分探索性选择与基于新运行的验证性比较。结论应指明适用的总体,以及可能使其失效的条件。这种报告方式可能让一个幅度不大的结果比显著却脆弱的加速更有价值。标准不是让所有变异来源都消失,而是让读者能够辨认改变了什么、固定了什么、如何评估不确定性,以及还存在哪些替代解释。

已在本地执行 · 范围有限

协方差计算、工作负载逆转与单位不变性

构造的统计量;不涉及经验置信区间或产品性能比较。

6 项断言通过。 这些检验验证的是所提供的示例,而不是所引用的系统。

检查已记录的验证见证
{
  "variance": [
    {
      "runs": 2,
      "iterations": 3,
      "direct": 18.666666666666664,
      "formula": 18.666666666666668
    },
    {
      "runs": 5,
      "iterations": 4,
      "direct": 5.800000000000001,
      "formula": 5.8
    },
    {
      "runs": 10,
      "iterations": 2,
      "direct": 5.399999999999999,
      "formula": 5.4
    }
  ],
  "unmatched_means": [
    9.1,
    3.0
  ],
  "matched_means": [
    5.5,
    7.0
  ]
}

明确声明的解析模型

四个方程,明确的假设

Yrj=μ+Ur+εrjY_{rj}=\mu+U_r+\varepsilon_{rj}

(1) 独立运行效应 U 的方差为 sigma_b 的平方,独立运行内误差的方差为 sigma_w 的平方;这是声明的模型,而非对数据的拟合。

Var⁡(Y‾)=σb2R+σw2RJ\operatorname{Var}(\overline{Y})=\frac{\sigma_b^2}{R}+\frac{\sigma_w^2}{RJ}

(2) 在所述平衡层级结构中,R 次独立运行各包含 J 次迭代。

L‾A(w)=1+9w,L‾B(w)=2+10w\overline{L}_A(w)=1+9w,\qquad\overline{L}_B(w)=2+10w

(3) 构造的简单与困难工作负载延迟值;w 是困难工作负载的占比,直接比较时必须匹配。

G=exp⁡(1m∑i=1mlog⁡TB,iTA,i)G=\exp\left(\frac1m\sum_{i=1}^{m}\log\frac{T_{B,i}}{T_{A,i}}\right)

(4) 各工作负载正加速比的等权重几何平均值;其待估量不同于总时间之比。

构造示例 · 可复现数据

检查定量论证

这些曲线由所声明的模型计算得出,并非引用研究中的观测。每幅图都附有数值数据和矢量版本。

增加内部迭代无法消除运行间变异。构造的独立运行效应标准差为 2,运行内噪声标准差为 10。这是已知模型的不确定性,而非拟合得到的置信区间。
图 1。增加内部迭代无法消除运行间变异。 构造的独立运行效应标准差为 2,运行内噪声标准差为 10。这是已知模型的不确定性,而非拟合得到的置信区间。
工作负载权重会改变聚合比较。构造的工作负载中,A 在每一类中都更快。将 w=0.9 条件下的 A(9.1)与 w=0.1 条件下的 B(3.0)进行比较,会因工作负载不同而使聚合结果逆转。
图 2。工作负载权重会改变聚合比较。 构造的工作负载中,A 在每一类中都更快。将 w=0.9 条件下的 A(9.1)与 w=0.1 条件下的 B(3.0)进行比较,会因工作负载不同而使聚合结果逆转。

哪种证据回答哪种问题?

设计选择所解决的问题省略时的失效模式
实验单位什么算作独立重复伪重复
工作负载权重聚合结果代表哪个总体混合构成导致的混杂
计时边界结果指标包含哪些工作隐藏的准备工作或重试
预先声明的排除规则哪些观测进入分析看到结果后进行选择

一项拟议的验证方案

这是一项拟议的评估设计。未开展生产系统或硬件基准测试。单独执行的有限模型记录在可执行检验中。

  1. 测量前写明待估量和具有实际意义的效应阈值。
  2. 明确干预、工作负载权重和计时边界。
  3. 选择独立的运行单位,并记录嵌套的迭代结构。
  4. 恰当地进行随机化或配对,并记录重置与残留效应。
  5. 保留失败,仅应用预先声明的排除标准。
  6. 公开各组成部分的结果、不确定性评估方法、原始数据,以及对工作负载加权方式的敏感性。

一手来源确立了什么

Todd Mytkowicz, Amer Diwan, Matthias Hauswirth et al. · 2009 [1]

贡献。 看似无害的设置选择可能使性能测量产生偏差。

边界。 这一结果支持采取明确的控制措施,而不是声称所有基准测试都是错误的。

来源定位。 ASPLOS 论文和 IBM 出版记录。

Tomas Kalibera, Richard Jones · 2013 [2]

贡献。 性能评估应考虑相关重复层级上的变异。

边界。 此处使用的模型是简化的解析构造,并非对该论文评估的复现。

来源定位。 肯特大学的作者修正版稿件记录。

Charlie Curtsinger, Emery D. Berger · 2013 [3]

贡献。 随机化执行布局可以应对依赖布局的测量效应。

边界。 布局随机化不会消除工作负载混杂,也不会消除所有变异来源。

来源定位。 Stabilizer、其机制与实验框架。

本分析的局限

  • 未对真实系统开展基准测试,也未声称提供经验置信区间。
  • 平衡随机效应模型未纳入若干可能的依赖关系和非平稳性。
  • 两种工作负载的逆转是一个有意构造的示例。
  • 这些有针对性的参考文献不能替代对实验设计或因果推断的全面论述。

这是一篇聚焦于三项选定的基础性一手来源的解析综述,包含原创的演算示例。它不是对截至 2026 年文献的穷尽性或系统性综述。来源访问情况和版本说明与参考文献一并记录。

可能改变结论的问题

  1. 在现代异构系统中,哪些方差分量主导了不同部署之间的性能变化?
  2. 基准测试套件如何公布能够反映多个合理用户总体的工作负载权重?
  3. 怎样的报告格式能使探索性调优与验证性评估区分开来?

参考文献

  1. Todd Mytkowicz, Amer Diwan, Matthias Hauswirth et al.. Producing wrong data without doing anything obviously wrong!. Proceedings of the 14th international conference on Architectural support for programming languages and operating systems (2009). 10.1145/1508244.1508275.
  2. Tomas Kalibera, Richard Jones. Rigorous benchmarking in reasonable time. Proceedings of the 2013 international symposium on memory management (2013). 10.1145/2464157.2464160.
  3. Charlie Curtsinger, Emery D. Berger. STABILIZER: statistically sound performance evaluation. Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems (2013). 10.1145/2451116.2451141.

来源 [1] 的访问情况。 一手记录、摘要及选定的可访问文本;并非对全文或补充材料的穷尽性审查。

来源 [2] 的访问情况。 一手记录、摘要及选定的可访问文本;并非对全文或补充材料的穷尽性审查。

版本说明。 所链接的肯特大学记录明确标识了一份作者修正版稿件;方法论细节应参阅该版本。

来源 [3] 的访问情况。 一手记录、摘要及选定的可访问文本;并非对全文或补充材料的穷尽性审查。

书目身份已与 Crossref 及出版方、作者或机构的一手记录核对。下方的来源访问和版本说明描述了核查范围;这并非穷尽性的全文审查。

作者与来源

由 Codex(人工智能)撰写并进行技术自审。参考文献标明原始研究者;解析构造和拟议的评估设计归属于本文。

封面为 ImageGen 概念插图。技术图表根据已声明的模型或有限示例计算生成,并提供 Python 和 CSV。它们不是对已部署产品的测量,也不是复现的性能基准测试。

本地草稿没有独立同行评审或期刊录用记录。范围有限的可执行示例检验了所述小型模型;它们不是对所引用系统的形式化验证。

委托研究综述 · v5. 引用本文 · 原始来源记录 · 发布记录