All checks were successful
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 2m59s
standards workspaces build + test / aac-rs (pull_request) Successful in 1m21s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 1m5s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 43s
standards workspaces build + test / map-rs (pull_request) Successful in 43s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
no-vanity-metrics / WAI public text names no comparison (pull_request) Successful in 3s
no-vanity-metrics / WAI public text names no company or product (pull_request) Successful in 3s
standards workspaces build + test / mesh-rs (pull_request) Successful in 35s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m54s
standards workspaces build + test / openpay (pull_request) Successful in 2m8s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m27s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m13s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m25s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 4m43s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 33s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 1m33s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 3m43s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 3m57s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 13s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 2m15s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 23s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 44s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 1m15s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 1m2s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 1m5s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 3m52s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 1m49s
standards workspaces build + test / arl-rs (pull_request) Successful in 15m11s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 10m2s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 15m36s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 11m32s
standards workspaces build + test / sense-rs (pull_request) Successful in 10m53s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 14m5s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 12m15s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 43s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 2m44s
quantum_arch prices what has cut projected fault-tolerant cost since 2023 without a better qubit: - Yoked storage (arXiv:2312.04522): plain, row-yoked and grid-yoked patches, cold and hot, under the published path-counting fits (SI1000, uniform, and the refit used by arXiv:2505.15917). The layout search matches the source's own footprint tool on all 915 layouts it produces (three fit sets, 61 targets, five storage kinds): distance, block shape, check period and qubits per logical qubit. - Whole-block storage plans: copies of one shape plus one remainder block, capped at the block sizes the fits were drawn from. - Magic-state cultivation (arXiv:2409.17595), read off the published end-to-end curves (Apache-2.0 data), interpolated log-linearly; refuses unsimulated noise strengths. - 8T-to-CCZ factories and a clock set by the slowest of lattice surgery, the CCZ supply and the control loop; it says which one binds. - The factoring workload of arXiv:2505.15917: its operation tallies, logical qubits and Toffoli counts. Under the source's counting rule the counts match its reference implementation to its rounding of half operations, for every tabulated key size (1024 to 8192 bits). Re-running the 2048-bit estimate reproduces its 897,864 qubits from its layout and its 429.03 qubits per cold logical qubit from its fit. It also finds six places where the source disagrees with itself: - its tallies at its stated durations give 10.62 h per shot, not 12.07 h; - its hot-storage count (131) sits below its own peak formula (152); - its reference counting code prices a 6-bit phaseup at 0.25 Toffolis, not 8 (+1.7%); - loop 4's table swaps additions and lookups relative to its code; - its 30,000 qubit-rounds per 10^-7 T state is 22,600 in the data behind the figure; - 1280 cold qubits need seven whole blocks (582,624 qubits), not 550,400. With every correction the machine is 958,480 qubits and 4.3 days: the conclusion holds. CLI: wai-quantum arch factoring|storage|cultivate [--json]. Example: arch_factoring. Pinned bit for bit natively and under wasm32-wasip2; CLI output byte-identical across the two. Co-Authored-By: Claude Opus 5.5 <[email protected]>
28 lines
2 KiB
Rust
28 lines
2 KiB
Rust
//! Re-run a published factoring estimate on a whole machine, and print every
|
||
//! region, the clock and the totals.
|
||
//!
|
||
//! ```text
|
||
//! cargo run --release --example arch_factoring --features quantum_arch -- [BITS]
|
||
//! ```
|
||
use wai_quantum::quantum_arch::{factoring_estimate, FactoringParams, Machine, PhaseupCount};
|
||
|
||
fn main() {
|
||
let bits: u32 = std::env::args().nth(1).map_or(2048, |a| a.parse().expect("modulus bits"));
|
||
let params = FactoringParams::published(bits).expect("one of 1024, 1536, 2048, 3072, 4096, 6144, 8192");
|
||
let machine = Machine::published();
|
||
let e = factoring_estimate(¶ms, &machine).expect("estimate");
|
||
println!("modulus bits {bits}");
|
||
println!("logical qubits {} cold + {} hot (peak {})", e.cold_logical, e.hot_logical, params.peak_logical_qubits());
|
||
println!("hot distance {}", e.hot_distance);
|
||
for (b, k) in &e.cold.blocks {
|
||
println!("cold block {k} × {}×{} grid at d={} ({} logical, {:.2} qubits each)", b.rows - 1, b.cols - 1, b.distance, b.logical, b.qubits_per_logical());
|
||
}
|
||
println!("physical qubits {} cold + {} hot + {} compute = {}", e.cold_qubits, e.hot_qubits, e.compute_qubits, e.physical_qubits());
|
||
println!("T state d1={} error {:.2e} at {:.0} qubit·rounds", e.t_state.d1, e.t_state.error, e.t_state.volume);
|
||
println!("CCZ {:.1} rounds per factory, error {:.1e}", e.ccz_rounds, e.ccz_error);
|
||
println!("clock step {:.1} µs ({:?}-bound)", e.timing.step_us(), e.timing.bound());
|
||
println!("toffolis per shot {:.4e} (source rule {:.4e}, as stated {:.4e})", e.toffolis_per_shot, params.toffolis_per_shot_source_rule(PhaseupCount::AsCoded), params.toffolis_per_shot_source_rule(PhaseupCount::AsStated));
|
||
println!("hours per shot {:.3} at the clock, {:.3} at whole milliseconds", e.hours_per_shot, e.hours_per_shot_rounded);
|
||
println!("shots {:.3} expected, survival {:.4}", e.expected_shots, e.shot_survival);
|
||
println!("days {:.3}", e.days);
|
||
}
|