You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Phase 3 T3.1 of the SIMD integration plan: introduce
crate::hpc::simd_profile::SimdProfile, the silicon-grained dispatch
identity that replaces the coarse three-Tier collapse called out in
audit findings TD-T12/T13/T14.
The decision tree in SimdProfile::detect() implements
.claude/knowledge/td-simd-cpu-dispatch-matrix.md lines 271-305
verbatim, preserving the four load-bearing invariants from the
"Detection invariants" section: GraniteRapids-before-SapphireRapids,
Zen4-vs-SPR via amx_tile, CooperLake-vs-IceLakeSp via the mutually
exclusive BF16/VBMI bit pattern, and TigerLakeU-vs-IceLakeSp via
VP2INTERSECT.
Risk #4 of the integration plan (no GNR detection without leaf 7,1
reader) closed in the same change: SimdCaps gains avx512fp16,
avx512vp2intersect, and amx_fp16 fields, with the x86 detect() arm
adding a __cpuid_count(7, 1) read gated on the leaf 7,0 EAX max
subleaf advertising support. has_amx_fp16() requires amx_tile in
addition to the FP16 bit, mirroring the defense-in-depth pattern in
simd_amx::amx_available().
Surface follows cognitive-shader-foundation.md: SimdProfile +
simd_profile() re-exported through crate::simd::* so consumers
import a single public path. The existing private Tier / tier()
machinery in src/simd.rs is untouched; this lands alongside, with
incremental migration deferred to T3.5/T3.6.
Tests: 7 new in simd_profile (detection determinism, arch
partitioning, AVX-512 subset invariant, x86_64-only Scalar
fallback, name uniqueness), 2 new in simd_caps (FP16 fields false
on non-x86, has_amx_fp16 requires amx_tile). 2075/2075 lib tests
pass, clippy -D warnings clean.
0 commit comments