Modernize PP.jl benchmarks - #212
Merged
david-pl merged 3 commits intoAug 31, 2026
Merged
Conversation
There was a problem hiding this comment.
👋 Thanks for opening your first pull request against PPVM!
A quick note on contribution terms: by submitting this PR you
agree that your contribution is licensed under the
Apache License 2.0
and that you accept the
PPVM Contributor License Agreement.
Please skim those before a maintainer reviews — opening this PR
counts as your acceptance.
A few things that will speed up review:
- Read
CONTRIBUTING.md
for the workflow, build commands, and style notes. - Run
prek run --all-fileslocally; CI runs the same checks. - Use Conventional Commits
for commit messages.
We'll get to your PR as soon as we can. Thanks for contributing!
### Summary Migrates ppvm-vihaco and vihaco-circuit-isa from vihaco 0.1.1 to vihaco 0.4.0. ### Changes - Migrates PPVM to vihaco 0.4.0 surface/runtime instruction APIs. - Replaces the legacy parser pipeline with v0.4 parsing and resolution. - Generates the circuit instruction set with `vihaco::component!`. - Enforces one-to-one source-to-runtime instruction lowering. - Updates .sst syntax, including: ``` const.u64 0 → cpu::cpu.const u64, 0 eq.u32 → cpu::cpu.eq u32 circuit.h → circuit::circuit.h ret → cpu::cpu.ret 0 @Label: → cpu::cpu.label @Label ``` - Resolves branch targets and function calls to runtime addresses. - Adds bytecode v2 serialization for function tables, labels, signatures, and main_function. - Updates CLI, TUI, examples, embedded programs, and test fixtures. - Adds and updates migration documentation in `docs/changelog/vihaco-0.4.md`. ### Verification - cargo test --workspace - cargo check -p ppvm-vihaco - cargo test -p ppvm-vihaco - cargo test -p vihaco-circuit-isa - cargo test -p ppvm-cli - cargo test -p ppvm-tui
Collaborator
|
@MSRudolph thanks for this! Just to note: there's not place where we run benchmarks automatically. So, the changes here won't be reflected until another manual run is done. |
david-pl
merged commit Aug 31, 2026
4be9756
into
QuEraComputing:bench/cross-library
12 of 13 checks passed
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi all, thanks for including
PauliPropagation.jlin your benchmark. This is a PR showcasing the latest performance possible withPauliPropagation.jl. It requires version0.8, and uses theVectorPauliSumwith thePauliPropagation.Performancesub-module. Also, it performs in-place propagation, which by itself shaves off 4x and 2x (onv0.8.1, but should be similar onv0.7.3) from the baseline (see second timing column). The timings are single-threaded, min of 3 after warm-up, on an AMD Ryzen AI 7 350 CPU. The validation againstppvmmatches to 1e-10.TFIM (
STEPS=10 DT=0.1 J=1 h=1 ATOL=1e-6), time in seconds:Heisenberg (same parameters), time in seconds: