wai-quantum: published architectures, re-estimated — the bicycle architecture, RSA-2048 and FeMoCo, each delta explained #665

Merged
dcharlot merged 6 commits from wai/quantum-published-architecture-check into main 2026-11-06 14:43:46 -05:00

2026-11-06

Transaction Science
wai-quantum: the guard on the removed section names no product
All checks were successful
wai-quantum views in agent hosts / views · a scripted host (pull_request) Successful in 5m16s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness (pull_request) Successful in 5m0s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 4m22s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 5m10s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 11m4s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 20m31s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 36m21s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 3m59s
wai-quantum CUDA member / member · CUDA (jetson-hub) (pull_request) Successful in 1m34s
wai-quantum OpenCL member / member · OpenCL GPU and CPU (jetson-hub) (pull_request) Successful in 35s
wai-quantum service / service energy · linux packages (pull_request) Successful in 1m32s
wai-quantum portable tensor program / tensor program · GPUs (jetson-hub) (pull_request) Successful in 24s
wai-quantum WebGPU member / member · GPU, Vulkan (jetson-hub) (pull_request) Successful in 21m30s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 14m21s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 26s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 22m10s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 16s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 48s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m38s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 25m21s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 7m51s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 18m2s
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Successful in 1m23s
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Successful in 33s
wai-quantum pulse and dynamics / the same bits · linux-arm64 (pull_request) Successful in 1m43s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 28s
wai-quantum extension points / the registry and the example · linux-arm64 (pull_request) Successful in 3m53s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Successful in 2m23s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 4m57s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h39m36s
The review asked for the section on the announced machine to go, and
the fix for that left the product's name in a test, as a string that
must appear in no row. The name was a bare literal in a public file, and
it guarded nothing the other strings did not: the removed rows' sources
read "press release", and their text "announced".

The test keeps those two. Put "press release" back in one pinned source
and it still fails, naming that string.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 10:22:41 -05:00
Transaction Science
wai-quantum: the published-architecture check, as its review asked
Some checks failed
wai-quantum portable tensor program / tensor program · GPUs (jetson-hub) (pull_request) Has been cancelled
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Has been cancelled
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux, release (pull_request) Has been cancelled
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Has been cancelled
wai-quantum verdicts and repairs / verdicts, repairs and the intent set · linux (pull_request) Has been cancelled
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
wai-quantum views in agent hosts / views · the page and its engine (pull_request) Has been cancelled
wai-quantum views in agent hosts / views · a scripted host (pull_request) Has been cancelled
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness (pull_request) Has been cancelled
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · GPU, Vulkan (jetson-hub) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · GPU, Vulkan (thor) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Has been cancelled
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Has been cancelled
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Has been cancelled
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Has been cancelled
WAI Studio / Studio in WebKit · linux (pull_request) Has been cancelled
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Has been cancelled
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Has been cancelled
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Has been cancelled
Every fix with a test that fails on the code before it.

Figures and rules
- The published figures move out of the code into
  tests/data/published_figures.tsv: each with where it is printed, as
  printed, its value and its rule, so regenerating the page cannot move
  them. A row that agrees is held to the digits its source prints:
  exact, the nearest printed unit, rounded up or down where the source
  rounds so, or, for a figure ours takes from the source's fits, the
  range its fits' printed parameters (ln f0 and gamma, two decimals)
  allow. It was 6% for every row: 8.72M re-pinned as 9.00M passed. Every
  other numeric row carries a guard, ours to four digits.
  (every_row_holds_to_its_published_figure,
  a_rule_holds_to_the_printed_digits_and_no_further)
- Fig. 10(a)'s surface-code timesteps are its printed 381, 2,269, 115,
  115, 509 and 509, not the formula compared with itself.
- Figures carry no more digits than the PDF prints (7.32e-4, 2.09e-5,
  8.2e-21, Table 10 to its printed two and three digits) unless the row
  says "source files". The Toffoli count of arXiv:1905.09749 is its
  Table 1's, not Table 3's.

Reasons and classes
- The authors' compiler is released (bicycle_compiler, bicycle_cliffords
  and bicycle_common 0.1.0 on crates.io, 2025-07-31). The compile-mean
  rows now cite bicycle_cliffords 0.1.0 src/measurement.rs, which takes
  a shift as A on X and A^-1 on Z (version 0.2.1: A^-1 on X, A^T on Z),
  for what was an inference. The two gross rows at p = 1e-4 stay open,
  with that compiler named as what would settle them; this check runs
  no third-party code.
- The capability rows said the rates and the sum were the same. Ours
  divides P_I and P_U by C (Section A.7's text): a third of a point of
  the gross 5k p = 1e-3 gap is that choice. That row is now an
  assumption, with a row beside each capability at the undivided rates.
  (the_division_by_c_is_a_third_of_a_point_of_the_gross_capability)
- The random-circuit fit is Fig. 17, not Fig. 16.
- The "Ours" column holds only ours: the Ising T-count-as-stated row
  shows our 14,665,600; the FeMoCo Table III against layout rows are the
  paper's own two figures, ours empty, their numbers.
- The Ising inter-module count depends on the factory's end of the line
  (946,800 after the last module, 781,200 before the first), which the
  paper does not print. Machine::links states the rule, a test computes
  both, and the row is an assumption that says it was chosen to match.
- The 510: over all native measurements there are 510 distinct R != I,
  284 with Q = I, 19 of those also with Q != I. That the paper counted
  these is our inference from the matching count, and the text says so
  (native_rotation_census).
- The arXiv:2308.07915 rows (about 1,250 times the later fit) are open.
- The expected hours of arXiv:1905.09749's title are one computation,
  WindowedEstimate::expected_hours: 7.31 in the row and the module.

Facts
- The 2021 addition's piece is 1,024 + 38 = 1,062 qubits (the cost
  script's padding; its text's 3 lg n + 10 is 43), not 1,052:
  WindowedFactoringParams::padding and piece_qubits, and the test.

Public text
- The section on the machine announced for 2029, its sources and its
  allow-name are gone, with every verdict on that announcement. The
  rows that check arXiv:2506.03094 itself stay.
- The synthesiser row says what the counts are, without the shortfall
  line; its fix follows separately.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 08:00:15 -05:00
Transaction Science
Merge origin/main into wai/quantum-published-architecture-check
Some checks failed
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 6m5s
wai-quantum views in agent hosts / views · a scripted host (pull_request) Successful in 4m39s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness (pull_request) Successful in 4m38s
wai-quantum service / service · linux (pull_request) Successful in 8m4s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m40s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 14m10s
wai-quantum contract / schemas and the committed tool lists · linux (pull_request) Successful in 17m10s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 7m37s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 18m34s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 20m37s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Has been cancelled
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Has been cancelled
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Has been cancelled
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Has been cancelled
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Has been cancelled
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Has been cancelled
wai-quantum extension points / the registry and the example · linux-arm64 (pull_request) Has been cancelled
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Has been cancelled
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Has been cancelled
WAI Studio / Studio in WebKit · linux (pull_request) Has been cancelled
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Has been cancelled
wai-quantum pulse and dynamics / the same bits · linux-arm64 (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 03:10:45 -05:00
Transaction Science
wai-quantum: published architectures, re-estimated
published_architectures feeds the stated assumptions of published
resource estimates into the estimators (quantum_arch, quantum_bicycle
and the estimate job) and prints, for each quantity, the published
figure, ours, the delta and why: agrees, a different assumption, the
source's model, the source's own figures disagreeing with each other or
with its stated method, a limit of ours, or open. Every row names where
its figure is printed; figures with more digits than a PDF prints are
quoted from the paper's arXiv source files and say so, and the one
secondary figure is marked secondary.

The targets:
- the machine announced for 2029, "100 million quantum operations using
  200 logical qubits" (press release of 2025-06-10), priced on the
  bicycle architecture of arXiv:2506.03094, the paper the release links;
- that paper's own figures: its parts, rates, compile, capabilities and
  10 × 10 Ising program;
- RSA-2048 on the surface code, arXiv:1905.09749 (Quantum 5, 433);
- FeMoCo, arXiv:2011.03494 (PRX Quantum 2, 030305);
- RSA-2048 on yoked surface codes, arXiv:2505.15917;
- the planar model's own source, arXiv:2211.07629.

Of 197 rows, 110 agree. Two are open: the source's gross capability at
p = 10⁻⁴ needs a per-rotation failure of 8.3·10⁻⁷ that its tables do
not account for. One row records a shortfall of ours that the check
found and this change does not fix: on one of the Ising program's four
angles our synthesiser takes 84 T gates where pygridsynth 1.0.1 takes
82, at the same denominator exponent.

docs/published-architectures.md holds the rows, and
the_page_is_what_the_estimators_give holds the page to the code; the
example prints them. The resource-estimation workflow runs the three
modules' tests in a release build, requires seven by name, and runs the
example.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 03:10:36 -05:00
Transaction Science
wai-quantum: quantum_bicycle, a machine of bivariate-bicycle code modules
The estimators priced one logical qubit per surface-code tile and could
not express a high-rate block code: twelve logical qubits in one code
block, reached by a small instruction set instead of lattice surgery on
a tile. The machine announced for 2029 (200 logical qubits, 10⁸
operations) is built on such codes, on the bicycle architecture of
arXiv:2506.03094, so it could not be checked.

quantum_bicycle prices that architecture from the parts the paper
publishes:

- the gross [[144,12,12]] and two-gross [[288,12,18]] codes from their
  printed polynomials and logical basis (tests: the basis is dual, every
  operator commutes with every check, k = 12, and a shift acts as the
  printed matrices);
- the native measurements and, by breadth-first search over the 4¹¹ − 1
  Paulis on a module's data qubits, the in-module cost of each;
- the instruction rates from the paper's failure-spectrum fits (all 28
  printed rates come back), and its assumed rates, marked as assumed;
- a machine of M modules and a factory, q = M(c + u + a) − a + a′ + f
  (every count of its capability table comes back), its capability at a
  failure budget, and the error rate a program needs.

Where the paper disagrees with itself or with the method it states, the
module says so, and a test holds each:

- Its four mean compile costs (Fig. 9) come back to every printed digit
  when a shift's action on Z̄ is taken as A⁻¹ with A on both halves
  (ShiftAction::SourceTables). A CNOT circuit |x⟩ → |Ax⟩ takes Z̄ by A⁻ᵀ,
  which is how the operators move; ours follows the operators. On its
  printed basis a shift acts as A on the first half and Aᵀ on the second.
- Its idle and shift rates are the circuit's failure undivided, where its
  text divides by the circuit's cycles.
- Its native-rotation count of 510 includes the 265 with the identity on
  the pivot, which its definition excludes.

One difference stays open: its gross capability at p = 10⁻⁴ needs a
per-rotation failure of 8.3·10⁻⁷ that does not depend on the machine's
size, against its factory's printed 4·10⁻⁸.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 03:01:26 -05:00
Transaction Science
wai-quantum: quantum_arch prices the 2021 surface-code machine
The architecture estimator could not express the machine of
arXiv:1905.09749 (Quantum 5, 433), so its figures could not be checked.
Its only clock was the step clock: every Toffoli waits a lattice-surgery
beat of d cycles. That prices the source's 1,052-bit addition at
56.7 ms, where the source teleports each Toffoli's Clifford fixups away
from the data and runs it at one 10 µs tick: 22 ms (its §2.11). It also
had no two-level factory, which that machine and arXiv:2011.03494 use.

Added, each held by a test against the source's printed figures:

- Timing::tick_us and Timing::teleported_add_us: a Toffoli at the slower
  of the reaction time and the CCZ supply, not at the beat. The test
  holds the step clock's 56.7 ms beside the tick's 21.03 ms.
- Timing::double_access_lookup_us and its uncomputation: lookups through
  access hallways on both sides of each row, half a beat an entry.
- patch_cycle_error and DistilledCczFactory: 15-to-1 feeding 8T-to-CCZ,
  with the footprint and error rule of the source's cost script.
- WindowedFactoringParams and windowed_factoring_estimate: the source's
  cost script, re-run. Every row of its RSA table comes back to the
  digits it prints, which it takes up to two.
- The FeMoCo estimate of arXiv:2011.03494 on the same factory and clock:
  four factories at distances 19 and 31 tick at 38.75 µs, and 6.7·10⁹
  Toffolis take 3 days.

The module documents where the 2021 source disagrees with itself: its
hand-worked §2.14 rounds as it goes (23 M where its script gives
19.25 M), and its §2.12 reads 6.4% where its script's formula gives 0.6%.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 02:55:31 -05:00