Skip to content

Simplify ROB bench with immutable scenario data - #287

Merged
zhoubot merged 1 commit into
mainfrom
codex/rob-scenarios
Oct 10, 2026
Merged

zhoubot merged 1 commit into
mainfrom
codex/rob-scenarios

Conversation

@zhoubot

@zhoubot zhoubot commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

The ROB system bench repeated large conditional trees for fifteen stimulus and expected-result fields. Replace them with one immutable typed Table of 284 scenarios, using existing Struct defaults and a full-width phase clamp. The source shrinks from 6,228 lines / 258,859 bytes to 371 lines / 39,366 bytes.

Preserve all 284 transactions, including the 256-event deterministic random stream; the final row keeps flush=1 through the entire remaining u64 domain. Phase initialization/wrap, eight ordered DUT inputs, seven guarded checks, seven unconditional logs and registration order remain unchanged. No new API, compiler change, DUT/oracle rewrite, cycle reduction or timeout increase. Refresh the example guide and verified module receipt.

Validation:

  • Independent proof compares all 4,260 field values and 284 full-domain intervals, including sustained flush, clamp and wrap. Twenty-one malicious mutations are rejected.
  • Standalone tests pass 2/2. The module retains its 569-sample oracle and failure/discard/retry probes. The system completes 568 sampling epochs and 3,976 observations across native workers 1/2 and Verilator.
  • Complete original and candidate observations agree. Cross-source comparison excludes only changed AST registration/site metadata; event values, specs, epochs, instances and order remain checked.
  • Source-import and transformed artifacts reproduce both published source units byte-for-byte. Measured and public runs share identical final IR and complete generated outputs.
  • Catalog tests 19/19, changed-file pre-commit and strict documentation passed.

Same-machine LLVM 22 / -O0 measurements reduce bench compilation 6.62→1.45 s, linking 6.48→2.67 s and C++ emission 6.14→2.68 s. Three alternating paired warm native runs have medians 1.111→0.641 s (about 42% lower); RTL runtime is approximately unchanged at 0.036 s. Final IR falls 28.20→11.07 MB, generated C++ 5.51→3.69 MB and RTL 1.17→0.65 MB. README records the complete table and measurement limits.

Full catalog/nightly and platform matrices were not run. The known-phase proof does not claim injected X/Z phase equivalence or simulated 64-bit rollover. Remaining migration/scaling work stays in #272 and #265. Intermediate experiments, proof tools and reviews remain ignored under docs/gates/logs/rob-bench-20261010/; runtime tests do not depend on those files.

@zhoubot
zhoubot requested a review from xiekunpeng as a code owner October 10, 2026 03:42
@zhoubot

zhoubot commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

Final candidate bfcd468acb71993da343ed8d05c421964762cdbc: independent code review APPROVE, architecture CLEAR, both required GitHub checks passed. Implementation, independent preservation and review used separate instances.

Evidence preserves all 284 scenarios / 4,260 field values over the complete known-u64 domain, including sustained tail flush and wrap; 21 mutations are rejected. Standalone CTest 2/2, catalog tests 19/19, complete observation comparisons, compiler-stage and generated-output bindings, pre-commit and strict docs passed. Final README reports same-profile phase costs and three alternating paired warm runtime samples, with native median about 42% lower and RTL approximately unchanged.

No compiler, API, DUT, driver, configuration or timeout changes. This is bounded ROB bench acceptance, not full nightly, platform or overall migration completion. Candidate-bound reviews and raw results remain in ignored local evidence.

@zhoubot
zhoubot merged commit a569123 into main Oct 10, 2026
2 checks passed
@zhoubot
zhoubot deleted the codex/rob-scenarios branch October 10, 2026 03:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant