Strata 0.2.7.1 在 GB10 上的基准测试与 SPEC_COST 消融实验

💡 原文英文,约1000词,阅读约需4分钟。
📝

内容提要

作者在ARM64架构的GB10(sm_121)上测试Strata 0.2.7.1。新版本提供官方ARM64预编译包并默认启用四项优化。基准测试显示预填充明显加速,4K提示延迟降低近20%,符合官方约1.2倍的说法,但短解码略慢。作者用ABBA方式单独开关STRATA_SPEC_COST,发现进程间自然波动(约200–300毫秒)大于该开关影响且方向会反转,因此解码变慢不能归因于它,避免了错误上报。

🔎

延伸解读

ARM64 原生支持的实际意义

Strata 0.2.7.1 首次提供官方 Linux ARM64 预编译包,并附带 DGX Spark 文档,用户无需自行编译即可在 GB10 上运行。此前作者通过 PR #3622 添加 ARM64 支持,维护者因无硬件仅从逻辑推导内存顺序,作者在真实硬件上验证了多线程推测验证的输出一致性。这说明官方包不仅方便,也经过了实际硬件检验,降低了 ARM 平台的使用门槛。

预填充加速明显,解码略有代价

基准测试显示,新版本默认启用四项优化后,4K 提示预填充延迟降低近 20%,与官方约 1.2 倍的说法吻合;16K 提示也比旧版快两秒以上。但短解码中位数反而比关闭优化时慢几百毫秒。这表明优化主要惠及长提示场景,对短输出生成可能带来轻微开销,用户需根据负载类型权衡是否启用默认优化。

ABBA 测试揭示进程间波动

作者用 ABBA 顺序单独开关 STRATA_SPEC_COST,发现同一二进制下不同进程的解码时间自然波动约 200–300 毫秒,大于该开关本身的影响,且开关效果方向在两组对比中反转。日志确认开关生效,但解码变慢不能归因于它。这提醒读者:单次基准测试容易误判,需用交叉验证排除进程启动波动,避免向上游提交错误结论。

后续优化方向与当前建议

作者表示短解码差距目前较小,机器继续运行新版本,后续将单独隔离 STRATA_HC_UPMIX 和 STRATA_PF_FUSED 的影响。对于 GB10 用户,当前可放心使用官方 ARM64 包获得预填充收益;若短解码性能关键,可尝试关闭部分优化并自行测试,但需注意进程间波动,建议多次运行取中位数再下结论。

❓

Q&A

Strata 0.2.7.1 在 GB10 上提供了哪些官方支持?

Strata 0.2.7.1 提供了官方 Linux ARM64 预编译包(strata-engine-linux-aarch64-cuda-cuda13.tar.gz),新增了 docs/DGX_SPARK_LINUX.md 文档,并针对 sm_121 默认启用了四项优化:STRATA_PF_FUSED、STRATA_PREFILL_NVFP4、STRATA_HC_UPMIX 和 STRATA_SPEC_COST。

在 GB10 上运行 Strata 0.2.7.1 的预填充性能提升有多大?

预填充明显加速,4K 提示延迟降低近 20%,符合官方约 1.20x–1.24x 的说法;16K 提示下新引擎比旧版本快两秒以上,但硬件优化开关的影响不大。

为什么短解码在默认设置下反而变慢了?

短解码在默认设置下比关闭优化时慢几百毫秒,但通过 ABBA 测试发现进程间自然波动(约 200–300 毫秒)大于开关影响且方向会反转,因此解码变慢不能归因于 STRATA_SPEC_COST。

作者如何验证 STRATA_SPEC_COST 对解码延迟的影响?

作者采用 ABBA 方式,在四个独立进程中仅切换 STRATA_SPEC_COST=0(默认→关→关→默认),保持二进制和内存布局相同。日志确认参数生效,但解码时间变化方向反转,表明自然波动主导,开关本身无显著影响。

基准测试的运行时配置和测试流程是怎样的?

运行时配置为 262K 上下文、INT8 KV 缓存、MTP、spec4、mmap 专家,所有 24,576 个专家驻留统一内存,无提示缓存。测试采用交叉验证顺序:旧→中→新(禁用优化)→新(默认)→重启反向,短请求两次预热后三次正式,长提示测试 4K 和 16K。

作者接下来计划测试哪些优化项?

作者计划在时间允许时单独隔离测试 STRATA_HC_UPMIX 和 STRATA_PF_FUSED 的影响。

🏷️

标签

➡️

继续阅读