#282·turbovec

CI: 执行 AVX-512 内核—— 指定的跑者或 Intel SDE 腿

作者: tq-bot创建于 2026年7月28日更新于 2026年7月31日
标签needs-human-decision

□ 内容

PR #277增加了两个AVX-512内核(wht block avx512'和permute gather avx512'在turbovec/src/rotation.rs'). 它们通过is x86 feature detected!'在runtime选中,GitHub-托管的x86跑道不保证AVX-512(机队混合了AMD EMYC和更古老的Intel部件). 因此CI编译检查了每x86个腿上这些内核,但并不可靠地执行——身份测试默默地跳过主机无法运行的路径. 至今为止,他们只在一台机器上被证明是执行的(Cascade Lake盒子是开发了PR的)。

其余的SIMD表面被覆盖:CI矩阵运行x86 + arm64穿过Linux/macOS/Windows,Rust腿设置了"TURBOVEC REQUIRE SIMD=avx2",因此AVX2,NEON,并全部执行并强制执行了平面路径. 这个问题只涉及AVX-512级.

# 277已经提供了什么

  • TURBOVEC REQUIRE SIMD'——将缺失的CPU特性变成测试**失败**而不是无声跳跃的入门。 设置TURBOVEC REQUIRE SIMD=avx2,avx512f'使AVX-512的覆盖范围可以衡量;它只是没有指向具有特性的硬件。
  • Bit-exact 身份测试,对照scalar参考(wht simd matches scalar bit-exactly',permute gather paths match scalar bit-exactly'),在内核出错时进行注射-验证,以实际失效.

在主机跑道上要求avx512f'是故意没有做到的(见.GitHub/workflows/ci.yml:38-41'的评论),因为它将无法在非AVX-512型机上降落的任何诚实跑道。

□ 选项

  1. 指定跑跑者 已知有AVX-512(自备跑跑跑者或有保证CPU的更大跑跑者),使用`TURBOVEC REQUIRE SIMD=avx2,avx512f'运行测试套房。
  2. Intel SDE leg — Intel's Software Development impulator可以在任何x86主机上执行AVX-512指令,例如"sde64-spr-货物测试-p turbovec-release"使用同一种内置式 var. 较慢,但运行在标准主机跑者。

要么缩小差距;SDE是更便宜的起点,因为它不需要基础设施。

□ 廉价临时步骤(可选)

让RustZ CI的腿打印出检测到的特性集,所以每个都运行内核实际执行的记录而不是留作推断.

□ 验收

  • 至少有一条CI腿执行带有`TURBOVEC REQUIRE SIMD=avx2,avx512f'套件的AVX-512内核,所以跳过就是失败。
  • 第277号合并纸币的"单机验证"警告可以退役.

由#277(审查线程)跟进. 相關追蹤:#279 (官方x86基准重跑),#280 (持久性基准结果).

内容来源: RyanCodrai/turbovec