wai-quantum: the branching test pins its reference run and forces the state vector's split paths #393
Merged
dcharlot
merged 1 commit from 2026-10-21 12:11:03 -04:00
wai/quantum-branching-threads-pinned into main 2026-10-21
wai-quantum: the branching test pins its reference run and forces the state vector's split paths
All checks were successful
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m15s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 4m54s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 15s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 8m8s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 57s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 1m8s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m45s
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Successful in 1m7s
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Successful in 32s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 17s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 17m53s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 8m27s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 26m0s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 8m22s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 13m42s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 26s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m6s
wai-quantum command line / command line · macos (pull_request) Successful in 32s
wai-quantum dataflow member / member · dataflow device absent (macos) (pull_request) Successful in 14s
wai-quantum FPGA member / member · FPGA datapath, simulated (macos) (pull_request) Successful in 1m21s
wai-quantum Metal member / member · Metal (macos) (pull_request) Successful in 37s
wai-quantum neural-processor member / member · neural processor (macos) (pull_request) Successful in 6m10s
wai-quantum OpenCL member / member · OpenCL GPU (macos) (pull_request) Successful in 20s
wai-quantum service / service · macos (pull_request) Successful in 49s
wai-quantum matrix-extension member / member · matrix extension absent (macos) (pull_request) Successful in 11s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m10s
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Successful in 15s
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Successful in 13s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 2m21s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 1m44s
branching_runs_depend_on_neither_threads_nor_the_state_limit failed intermittently on the linux-arm64 runner on 2026-10-19 (5 runs in 20 that morning, in debug), and has not failed since. In the failing run the reference run and a variant both moved, by a few parts in 10^5 and differently, with the counts and histories unchanged; so the test could not say which run was wrong. - The reference run is now pinned by a digest of its bits (estimates, counts, shots, histories), the same on every target. A failure of the pin says the reference itself moved; a failure of a comparison alone, a variant. - From 16 qubits a run is one tree on the state vector's own threads, which since 0.6.8 split a pass only from 2^18 amplitudes a thread. So this test's 16-qubit case no longer took the split paths it ran on that morning. It now forces them, with the state vector on 2 and 4 threads (not on wasm32, which has no threads). What was checked before this, on today's main, found no defect: - the whole library suite (716 tests) under AddressSanitizer: no error; - the threaded tests under ThreadSanitizer, with the split paths forced: no race; - the whole suite 8 times in the arm64 runner's own image: all passed; - 240 forced-thread runs of the 16-qubit case in debug: all the same bits; - the last 23 CI runs of the workflow on arm64: all passed. The cause stays unproven. These tests now catch it if it recurs, and say which run moved. Co-Authored-By: Claude Opus 5.5 <[email protected]>