Skip to content
Merged
Show file tree
Hide file tree
Changes from 41 commits
Commits
Show all changes
191 commits
Select commit Hold shift + click to select a range
7a1a87f
feat: typeless `AddressMap` with typed APIs (#1559)
jonathanpwang Apr 14, 2025
01c028d
feat: `GuestMemory` trait (#1574)
jonathanpwang Apr 13, 2025
aef64c9
feat(new-execution): make vm segment executor generic (#1582)
shuklaayush Apr 15, 2025
e51d918
feat(new-execution): `TracingMemory` and removal of records/logs (#1584)
jonathanpwang Apr 17, 2025
13d6234
feat(new-execution): add execute functions for rv32im instructions (#…
shuklaayush Apr 18, 2025
b85bfc2
feat(new-execution): `AdapterTraceStep` trait and rv32 ALU refactor (…
jonathanpwang Apr 21, 2025
bcde3f8
feat(new-execution): rv32im tracegen and e1 execution (#1607)
shuklaayush Apr 29, 2025
ae9635c
fix(new-execution): fix some rv32im loadstore tests (#1611)
shuklaayush Apr 29, 2025
e885ec0
feat: access adapters (#1614)
jonathanpwang May 2, 2025
8c2d6af
fix(new-execution): make rv32im hintstore work (#1616)
jonathanpwang May 2, 2025
6c86876
fix(new-execution): don't override min block size (#1619)
shuklaayush May 1, 2025
4a2ac13
fix: auipc tracegen
jonathanpwang May 2, 2025
e9cabd2
chore: remove `OfflineMemory` (#1623)
jonathanpwang May 3, 2025
d12a24d
feat: make rv32im testing uniform accross all the chips (#1630)
arayikhalatyan May 7, 2025
5506f06
fix: divrem tests (#1633)
arayikhalatyan May 7, 2025
9695af7
feat: bigint circuit to compile (#1639)
arayikhalatyan May 12, 2025
9174577
feat(new-execution): add codspeed execution benchmark (#1643)
shuklaayush May 13, 2025
169d5bb
feat: memory access adapters, boundary chips, merkle chip E3 (#1640)
Golovanov399 May 13, 2025
65ab533
fix: Cargo lock & format (#1650)
nyunyunyunyu May 14, 2025
8c33445
fix: new block initialization in memory access adapters (#1651)
Golovanov399 May 14, 2025
164eb0e
feat(new-execution): trigger codspeed ci on branch pushes (#1654)
shuklaayush May 15, 2025
327fe86
feat: new execution remove redundant controller memory e1 (#1653)
Golovanov399 May 15, 2025
d603ad0
feat: mod builder rewrite (#1644)
arayikhalatyan May 15, 2025
cf8bcdc
feat(new-execution): measure walltime in codspeed ci job (#1656)
shuklaayush May 15, 2025
00bab47
feat: rv32im working execution + tracegen + prove (aka integration te…
Golovanov399 May 16, 2025
5da1c54
feat: e1, e3 implementation for sha2 + keccak extensions (#1657)
arayikhalatyan May 20, 2025
950320b
feat(new-execution): metered execution (#1652)
shuklaayush May 20, 2025
e8afdad
fix: handle keccak256 input/output not 4-byte aligned (#1671)
jonathanpwang May 21, 2025
15a9ae8
fix: misaligned calls to sha256 (#1674)
arayikhalatyan May 21, 2025
87e9e3f
fix: remove serialized_modulus and align modulus constant (#1678)
jonathanpwang May 21, 2025
cc1002c
feat(new-execution): port native chips (#1665)
shuklaayush May 22, 2025
b1387a3
fix: integration test (#1679)
arayikhalatyan May 22, 2025
ae501ac
feat(new-execution): add interfaces for running different execute fun…
shuklaayush May 22, 2025
a32e4be
feat: port public values chip and native adapter (#1681)
shuklaayush May 22, 2025
fe29323
chore: bump stark backend (#1682)
shuklaayush May 22, 2025
61913de
fix: add InsExecutorE1 to sdk vc executor (#1684)
luffykai May 22, 2025
f188a93
fix(new-execution): return final memory (#1685)
shuklaayush May 23, 2025
46e36b0
fix(new-execution): add missing pc increment (#1687)
shuklaayush May 23, 2025
cb2a533
fix(new-execution): properly calculate total max cells (#1688)
shuklaayush May 23, 2025
cc62f86
feat: Poseidon2 chip (#1672)
nyunyunyunyu May 23, 2025
e9bc13d
fix: Fix setting initial memory (#1690)
Golovanov399 May 24, 2025
c9c7240
refactor: VM Executor for E1/E2 (#1699)
nyunyunyunyu May 30, 2025
3f3147b
fix(new-execution): use unpadded height for segmentation (#1698)
shuklaayush May 30, 2025
9b217c5
fix: fixes to get e2e benchmark working (#1696)
jonathanpwang May 30, 2025
a7f81dc
refactor: Make InsExecutorE1 Stateless (#1700)
nyunyunyunyu May 30, 2025
82f7ff9
fix(new-execution): return segments in `execute_metered` (#1702)
shuklaayush Jun 2, 2025
69aa7a0
refactor: Move `Streams` into `VmStateMut` (#1707)
nyunyunyunyu Jun 4, 2025
e8f34f4
feat: make merkle tree finalization parallel in new execution (#1701)
Golovanov399 Jun 5, 2025
356162e
feat: Do not build a `BTreeMap` when we don't need to (#1718)
Golovanov399 Jun 5, 2025
e9d9a6a
fix(new-execution): remove hardcoded trace heights (#1715)
shuklaayush Jun 13, 2025
9364d65
chore: merge `main` branch (#1740)
jonathanpwang Jun 15, 2025
e8ded6c
chore: add serde to segment (#1749)
luffykai Jun 17, 2025
d5a267c
fix(new-execution): cleanup `vm.rs` (#1751)
shuklaayush Jun 18, 2025
2851dc5
chore(new-execution): clk/cycles -> instret/insns (#1755)
shuklaayush Jun 18, 2025
337f768
ci: add benches for `execute_metered` (#1752)
shuklaayush Jun 18, 2025
bc094fa
Merge branch 'main' into jpw/merge-main-again
jonathanpwang Jun 18, 2025
7d6f53a
fmt
jonathanpwang Jun 18, 2025
341cada
fix bad merge
jonathanpwang Jun 18, 2025
724ab98
fix again
jonathanpwang Jun 18, 2025
70ae977
chore: merge `main` (#1759)
jonathanpwang Jun 18, 2025
2fa8d0b
fix(new-execution): prevent segmentation in single segment executor (…
shuklaayush Jun 19, 2025
df0a38a
feat: generalize E3 with generic `RecordArena` (#1761)
jonathanpwang Jun 20, 2025
8730118
fix(new-execution): use `StdRng` for deterministic execution (#1769)
shuklaayush Jun 20, 2025
42d4dc7
chore: add execution insn/s logging (#1764)
jonathanpwang Jun 20, 2025
6cbe7d1
fix(ci): make codspeed instrumentation dispatch only (#1771)
shuklaayush Jun 20, 2025
b0b892f
chore(ci): fix REF_HASH calculation (#1776)
jonathanpwang Jun 23, 2025
5eba513
perf(new-execution): use page-based approach for merkle tree metering…
shuklaayush Jun 23, 2025
c5d731b
feat(sdk): derive Debug traits in config (#1777)
Qumeric Jun 23, 2025
2011411
feat: RecordArena implementation on DenseRecordArena for variable len…
arayikhalatyan Jun 24, 2025
d0399d7
chore: make testing ProgramDummyAir mod public (#1781)
stephenh-axiom-xyz Jun 24, 2025
29e11c3
chore: make RANGE_CHECKER_BUS pub (#1783)
stephenh-axiom-xyz Jun 24, 2025
9875e86
chore: add 'allocated' method to DenseRecordArena (#1785)
arayikhalatyan Jun 24, 2025
6446607
chore: fix last chore (#1786)
arayikhalatyan Jun 24, 2025
77983f5
feat: use memmap instead of paged_vecs on platforms that support it (…
pjabbarzade Jun 25, 2025
184b12e
chore: derive Clone for Segment
Qumeric Jun 25, 2025
ca2e67d
fix: proper memory access functions in `execute_e1_impl` in the nativ…
Golovanov399 Jun 25, 2025
bb20ff8
refactor(new-execution): make `ExecutionCtrl`s stateless (#1789)
shuklaayush Jun 25, 2025
d0f6585
chore(ci): make sdk and cli tests faster
jonathanpwang Jun 25, 2025
fc3d59e
chore: use tracing spans for metrics (#1791)
jonathanpwang Jun 25, 2025
9be060c
chore: make memory volatile and persistent boundary chips pub (#1792)
stephenh-axiom-xyz Jun 25, 2025
24786c5
fix(new-execution): no segmentation in single segment executor (#1796)
shuklaayush Jun 26, 2025
24dc65b
feat(new-execution): change default `PAGE_BITS` value in e2 to 6 (#1794)
shuklaayush Jun 26, 2025
b4cd1d7
refactor: use PagedVec for TracingMemory metadata storage (#1793)
jonathanpwang Jun 26, 2025
6169738
fix(new-execution): remove duplicate assignment (#1799)
shuklaayush Jun 26, 2025
054b336
ci(new-execution): run codspeed instrumentation on push (#1797)
shuklaayush Jun 26, 2025
6fce5ac
fix: account for E1 / E2 execution in metrics summary (#1800)
yi-sun Jun 27, 2025
6dffa9b
fix(new-execution): adapter offset should be boundary_idx + 1 (#1803)
shuklaayush Jun 27, 2025
9fafdbb
chore(ci): fix the instance type for codspeed benches (#1811)
jonathanpwang Jul 2, 2025
ffdfbbc
feat: new execution e4 for memory adapters (#1733)
Golovanov399 Jul 2, 2025
040d653
chore: update `stark-backend` commit (#1812)
jonathanpwang Jul 2, 2025
3f2b5fc
feat: extract_layout implementation for native Poseidon2 (#1813)
stephenh-axiom-xyz Jul 3, 2025
25ecd07
chore: make plonky3 nightly-features optional (#1818)
jonathanpwang Jul 3, 2025
8638194
fix(new-execution): disable loads from address space 1 (#1802)
shuklaayush Jul 5, 2025
0ed7820
feat(new-execution): ignore register addr space for memory ops (#1798)
shuklaayush Jul 5, 2025
378e076
feat: modify fri records + tests (#1819)
arayikhalatyan Jul 7, 2025
4a2f95e
fix: native Poseidon2 record size should be in bytes instead of u32 (…
stephenh-axiom-xyz Jul 7, 2025
c4e2cb6
fix(openvm-prof): replace unwraps with better error strings (#1833)
shuklaayush Jul 9, 2025
dabf5d5
fix(new-execution): add register contribtions on `reset_segment` (#1843)
shuklaayush Jul 10, 2025
45c2403
Merge branch 'main' into feat/new-exec-merge-1.3
jonathanpwang Jul 10, 2025
ad5e7c2
chore: fix merge
jonathanpwang Jul 10, 2025
ac7576d
Merge branch 'main' into feat/new-exec-merge-1.3
jonathanpwang Jul 10, 2025
a7d1125
chore: merge `main` (#1844)
jonathanpwang Jul 10, 2025
a6be3df
feat: use cached max trace heights in leaf/internal aggregation (#1839)
stephenh-axiom-xyz Jul 11, 2025
48c80d7
feat: Add pubs needed for gpu (#1860)
Golovanov399 Jul 14, 2025
9315f1a
feat: RecordSeeker::get_aligned_record_size (#1863)
arayikhalatyan Jul 14, 2025
e027992
refactor(new-execution): optimize E1/E2 implementation (#1827)
nyunyunyunyu Jul 15, 2025
1c43154
chore: General Sys phantom (#1867)
nyunyunyunyu Jul 15, 2025
97eaf48
fix(new-execution): don't pass total_widths to execute_metered (#1868)
shuklaayush Jul 15, 2025
eaa07ab
feat: public sha2 trace (#1881)
matejav Jul 18, 2025
63667e2
fix: lint
arayikhalatyan Jul 18, 2025
2e23e24
feat: update architecture for generic `ProverBackend`s (#1836)
jonathanpwang Jul 24, 2025
9cac46b
Merge branch 'main' into feat/new-execution
jonathanpwang Jul 24, 2025
56531f2
chore: update MSRV to 1.86.0
jonathanpwang Jul 24, 2025
b269dbb
fix(tracing): metric name tracegen -> trace_gen
jonathanpwang Jul 24, 2025
af8f6c9
feat(new-execution): optimize algebra extension e1/e2 execution (#1882)
shuklaayush Jul 24, 2025
1643eba
fix(new-execution): use smaller fib number in `verify_stark` test (#1…
shuklaayush Jul 24, 2025
7b96336
chore: move record arena implementation to separate file (#1894)
jonathanpwang Jul 24, 2025
32ffd88
fix(new-execution): assign bls12_381 output properly (#1895)
shuklaayush Jul 24, 2025
41c2b4b
perf: remove `step` from `Program` (#1897)
jonathanpwang Jul 25, 2025
a35aa57
chore: use explicit `Result<_, ExecutionError>` and `pre_compute*` re…
jonathanpwang Jul 25, 2025
198eb39
fix(new-execution): replace segmentation strategy with segmentation l…
shuklaayush Jul 25, 2025
fb9007d
chore(perf): use constant for address space in `tracing_read` when po…
jonathanpwang Jul 25, 2025
0f1213d
fix: native `FriReducedOpeningRecord` size calculation (#1905)
teokitan Jul 25, 2025
e5e4dbc
perf(new-execution): use unchecked ops in e2 (#1902)
shuklaayush Jul 26, 2025
b788e45
feat: add host configurable memory cell type to `MemoryConfig` (#1903)
jonathanpwang Jul 26, 2025
a62e015
chore: make `SdkVmConfig::to_inner` pub (#1906)
jonathanpwang Jul 26, 2025
d572c40
chore: `PairingProverExt` is vacuous (#1907)
jonathanpwang Jul 26, 2025
0c44b81
chore: clean up benchmarks (#1908)
jonathanpwang Jul 27, 2025
beb385e
fix(metrics): cycle tracker spans recorded only with "perf-metrics" (…
jonathanpwang Jul 28, 2025
c228a4d
fix: update backtrace only when debug_info exists
jonathanpwang Jul 28, 2025
8520406
chore(tracing): trace individual AIR tracegen (#1911)
jonathanpwang Jul 28, 2025
2f03e2b
feat: `generate_app_proof` always verifies segment proofs (#1912)
jonathanpwang Jul 28, 2025
7cc545a
feat: `execute_metered` returns final memory (#1914)
jonathanpwang Jul 29, 2025
2c22314
feat: add "stark-debug" feature (#1915)
jonathanpwang Jul 30, 2025
4a02a39
fix(docs): update isa spec to specify alignment requirements (#1917)
shuklaayush Jul 30, 2025
b4d0ebc
fix(new-execution): always inline `execute_impl` (#1919)
shuklaayush Jul 31, 2025
ffc9f3e
fix(new-execution): fetch segments properly in kitchen_sink (#1921)
shuklaayush Jul 31, 2025
9086b77
chore: Optimistic E3 Execution for Poseidon2 Chip (#1896)
nyunyunyunyu Aug 1, 2025
a71b2a3
chore: remove `DenseRecordArena::current_size` (#1913)
jonathanpwang Aug 2, 2025
3f4d098
perf(new-execution): cache constants in pairing `final_exp_hint` (#1923)
shuklaayush Aug 2, 2025
d0cd609
refactor(new-execution): make `VmSegmentState` a superset of `VmState…
shuklaayush Aug 2, 2025
85dda3b
feat: `InterpretedInstance` holds pre-computed handlers (#1924)
jonathanpwang Aug 4, 2025
c1d907d
feat(new-execution): add `execute_preflight` benchmark for leaf verif…
shuklaayush Aug 5, 2025
f64949a
chore: add `AddressSpaceHostConfig::size` fn for clarity (#1927)
jonathanpwang Aug 5, 2025
fab1b3d
chore: rename segment.rs to state.rs (#1926)
jonathanpwang Aug 5, 2025
fedc167
chore: rename execution traits (#1932)
jonathanpwang Aug 5, 2025
b7f3572
feat(new-execution): add leaf verifier execute/execute_metered benche…
shuklaayush Aug 5, 2025
bf03b5a
perf(new-execution): use const generics for memory block_size and ali…
shuklaayush Aug 5, 2025
3fb163e
fix: setup e12 should also write to match e3 state (#1930)
luffykai Aug 6, 2025
289abce
fix(perf-metrics): perf instrumentation slow (#1936)
jonathanpwang Aug 6, 2025
22f1a5b
chore: update snark-verifier to v0.2.3 (#1938)
Qumeric Aug 6, 2025
e3f4ccb
feat: Field zero initialization (#1939)
arayikhalatyan Aug 6, 2025
8a71af1
feat: allow to override compiler's Rust toolchain (#1940)
Qumeric Aug 7, 2025
1f4eebd
fix(new-execution): revert "chore: update snark-verifier to v0.2.3 (#…
shuklaayush Aug 7, 2025
e67deab
perf(new-execution): optimize tracing memory functions (#1941)
shuklaayush Aug 7, 2025
55b26a1
ci(new-execution): use proper jemalloc settings for execute benchmark…
shuklaayush Aug 7, 2025
9629ac1
feat: Parse struct name in complex field + ECC init macros as string …
jonathanpwang Aug 7, 2025
be8d0d4
chore: cleanup metrics (#1947)
jonathanpwang Aug 7, 2025
37c9e8f
chore: rename `**Step` to `**Executor` (#1949)
jonathanpwang Aug 8, 2025
4869545
chore: rename `JalLuiCoreRecord` for consistency (#1951)
jonathanpwang Aug 8, 2025
f6a0bc1
chore: remove an old `assert!(address_space < NATIVE_AS)` (#1948)
Golovanov399 Aug 8, 2025
f21b19e
chore(metrics): instrument `total_proof_time_ms` directly (#1952)
jonathanpwang Aug 8, 2025
c98a4da
chore: return memory tests back (#1950)
Golovanov399 Aug 8, 2025
e94ef82
chore: update workspace version to `v1.4.0-rc.2` (#1953)
jonathanpwang Aug 9, 2025
b371303
chore: update Cargo.lock for alloy-eips v1.0.24 (#1954)
jonathanpwang Aug 9, 2025
b550df4
chore(new-execution): make executors stateless (#1955)
jonathanpwang Aug 11, 2025
1cf3115
chore(new-execution): add warning on hint_random use (#1956)
shuklaayush Aug 11, 2025
008d89e
fix(new-execution): rename trait/structs referencing e1/e2/e3 (#1958)
shuklaayush Aug 12, 2025
9736d5e
chore: log number of instructions executed (#1961)
jonathanpwang Aug 12, 2025
61ba7ae
feat: `VmInstance` struct to hold program-specific setup (#1957)
jonathanpwang Aug 12, 2025
35b9141
chore: make `set_public_values` pub (#1964)
jonathanpwang Aug 12, 2025
7d42785
feat(new-execution): add execution mode for metering cost (#1959)
shuklaayush Aug 12, 2025
4a1836f
perf: `AddressMap` with `memmap` use madvise for zeroing (#1966)
jonathanpwang Aug 13, 2025
45182e5
feat: consolidate tests (#1960)
arayikhalatyan Aug 13, 2025
d1606d2
feat(new-execution): halt on cost going above threshold (#1963)
shuklaayush Aug 13, 2025
0e365f4
fix(new-execution): avoid double counting `insns` across execution mo…
shuklaayush Aug 14, 2025
ed00aed
refactor(new-execution): move execute fns to execution.rs (#1968)
shuklaayush Aug 14, 2025
f289fe0
feat: consolidate system tests (#1969)
arayikhalatyan Aug 15, 2025
e83064b
feat(sdk): update interfaces (#1962)
jonathanpwang Aug 15, 2025
ae8f139
chore(benchmark): add `segment_max_cells` to benchmark CLI args (#1977)
jonathanpwang Aug 15, 2025
18f133c
Merge branch 'main' into feat/new-execution
jonathanpwang Aug 17, 2025
335f0b3
feat(cli): add openvm version to STARK/EVM proof jsons (#1986)
jonathanpwang Aug 17, 2025
b6bbef4
feat: switch docs into vocs (#1929)
yi-sun Aug 17, 2025
f6dad57
feat: add `--evm` flag for `cargo openvm setup` and bump versions (#1…
yi-sun Aug 17, 2025
290c601
feat: add clean install prereqs for Ubuntu and Mac (#1988)
yi-sun Aug 17, 2025
74a0760
chore: move some logging to debug level (#1991)
jonathanpwang Aug 18, 2025
4db999b
feat(cli): add `--verbose` mode (#1994)
jonathanpwang Aug 18, 2025
30221fb
docs(changelog): document change in vk binary format (#1998)
jonathanpwang Aug 18, 2025
f2a225d
ci(bench): tune jemalloc conf for execute benchmarks (#1999)
jonathanpwang Aug 19, 2025
120f6db
docs: update changelog on halo2 verifier contract (#2001)
jonathanpwang Aug 19, 2025
f73da4d
fix(new-execution): warn if `max_constraint_degree` differ (#1979)
shuklaayush Aug 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 50 additions & 8 deletions .github/workflows/benchmarks-execute.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
name: "benchmarks-execute"
name: "Execution benchmarks"

on:
push:
branches: ["main"]
# TODO(ayush): remove after feat/new-execution is merged
branches: ["main", "feat/new-execution"]
pull_request:
types: [opened, synchronize, reopened, labeled]
branches: ["**"]
Expand All @@ -18,6 +19,10 @@ on:
- ".github/workflows/benchmarks-execute.yml"
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always

Expand All @@ -26,15 +31,14 @@ jobs:
runs-on:
- runs-on=${{ github.run_id }}
- runner=8cpu-linux-x64
- extras=s3-cache
steps:
- uses: runs-on/action@v1
- uses: actions/checkout@v4

- name: Set up Rust
uses: actions-rs/toolchain@v1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
profile: minimal
toolchain: stable
override: true
cache-on-failure: true

- name: Run execution benchmarks
working-directory: benchmarks/execute
Expand Down Expand Up @@ -110,3 +114,41 @@ jobs:
echo -e "\nBenchmark Summary:"
cat "$SUMMARY_FILE"
fi

codspeed-benchmarks:
name: Run codspeed ${{ matrix.mode }} benchmarks
runs-on:
- runs-on=${{ github.run_id }}
- runner=8cpu-linux-x64
- extras=s3-cache

strategy:
matrix:
mode: [instrumentation, walltime]
env:
CODSPEED_RUNNER_MODE: ${{ matrix.mode }}

steps:
- uses: runs-on/action@v1
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true

- name: Install cargo-binstall
uses: cargo-bins/cargo-binstall@main
- name: Install codspeed
run: cargo binstall --no-confirm --force cargo-codspeed

- name: Build benchmarks
working-directory: benchmarks/execute
run: cargo codspeed build
- name: Run benchmarks
uses: CodSpeedHQ/action@v3
with:
working-directory: benchmarks/execute
run: cargo codspeed run
token: ${{ secrets.CODSPEED_TOKEN }}
env:
CODSPEED_RUNNER_MODE: ${{ matrix.mode }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,6 @@ guest.syms

# openvm generated files
crates/cli/openvm/

# samply profile
profile.json.gz
Loading
Loading