Skip to content

chore: Clean up Benchmark API#267

Merged
samuelburnham merged 4 commits intomainfrom
ci-bench-test
Nov 21, 2025
Merged

chore: Clean up Benchmark API#267
samuelburnham merged 4 commits intomainfrom
ci-bench-test

Conversation

@samuelburnham
Copy link
Member

@samuelburnham samuelburnham commented Nov 17, 2025

  • Refactors the Blake3 benchmark to use the Benchmark API with oneShot := true, which enables printed reports and integration with the PR comment action
  • Refactors the Benchmark API to be more idiomatic and deduplicate code, mainly merging one-shot and sampled benchmarks
  • Moves benchmark files under .lake/benches/<group>/<name>/<base|change|new>, whereas before the group name wasn't included. This helps organize related benchmarks and aligns with Criterion.rs
  • Fixes PR comment action to get the correct PR commit hash

Once merged we can test !benchmark bench-aiur bench-blake3, though the throughput measurement of the latter isn't supported within the PR comment yet.

@samuelburnham
Copy link
Member Author

!benchmark

@argument-ci-bot
Copy link

Benchmark for bench-aiur at 7974b29

nat_fib

Function New Benchmark Base Benchmark % change
prove fib 1 430.00ns 441.00ns 249.43% faster
prove fib 200 340.00ns 331.00ns 271.90% slower

Workflow logs

@samuelburnham
Copy link
Member Author

!benchmark bench-aiur bench-blake3

@argument-ci-bot
Copy link

Benchmark for bench-aiur at 7974b29

nat_fib

Function New Benchmark Base Benchmark % change
prove fib 1 500.00ns 421.00ns 1876.48% slower
prove fib 200 341.00ns 300.00ns 1366.67% slower

Workflow logs

@argument-ci-bot
Copy link

Benchmark for bench-blake3 at 7974b29 failed ❌

Workflow logs

@samuelburnham samuelburnham changed the title chore: Test benchmark PR chore: Clean up Benchmark API Nov 21, 2025
@arthurpaulino
Copy link
Member

!benchmark

@argument-ci-bot
Copy link

Benchmark for bench-aiur at e58edd1

nat_fib

Function New Benchmark Base Benchmark % change
prove fib 10 143.60ms None N/A

Workflow logs

@samuelburnham samuelburnham merged commit 939cddf into main Nov 21, 2025
17 checks passed
@samuelburnham samuelburnham deleted the ci-bench-test branch November 21, 2025 20:29
johnchandlerburnham pushed a commit that referenced this pull request Dec 12, 2025
* chore: Test benchmark PR

* Refactor blake3 bench to use Criterion

* chore: Refactoring

* More fixes
johnchandlerburnham added a commit that referenced this pull request Dec 13, 2025
* refactor module organization, env types, and add richer scc result

* tmp rustfmt

* rust, const sorting and expr compilation

* compile_const

* wip: compiler structure, but erroring

* compiling Env in 11.32 seconds

* clippy and warnings

* manual stack management for compile_expr to avoid overflow

* xclippy warnings

* compilation in 6.65s, total pipeline in 16.8s

* remove cons_list

* ci: Add comparative benchmark report (#265)

* feat: Add Json serde for Benchmark API

* (WIP) Add comparison report and PR comment workflow

* Add one-shot benches and markdown report

* Export benchmark API in ix library

* Add env var overrides for config settings

* Finish report pretty-printer

* Fix `bench.yml`

* Scope permissions with app token

* Fix security alert

* Fixup

* Start `Ixon` serde in Aiur (#268)

This patch implements (and changes) enough of the code base as a PoC of being able to provably bootstrap the precise Ixon whose hash is stated as an argument of the claim (as input of the Aiur entrypoint call).

This is done by reading the bytes from the `IOBuffer`, deserializing it and then serializing and hashing the respective bytes. Deserialization followed by serialization was the chosen solution because serialization is, in principle, cheaper. Thus the deserialization can be tagged as `#[unconstrained]` for extra speed.

Furthermore, the unconstrained tag is now more rigorous: an unconstrained function can no longer call a constrained function.

As an extra, the IxVM code has been split into multiple smaller Aiur toplevels to enable parallel elaboration by Lean.

---------

Co-authored-by: Gabriel Barreto <gabriel.aquino.barreto@gmail.com>

* chore: Clean up Benchmark API (#267)

* chore: Test benchmark PR

* Refactor blake3 bench to use Criterion

* chore: Refactoring

* More fixes

* Lifted unconstrained restriction (#273)

* lifted unconstrained restriction

* filtered queries of multiplicity 0

* constrained inside unconstrained test

* Progress on serialize and deserialize (#276)

* Ixon.UVar

* deserialize Ixon.EVar and Ixon.Blob

* some fixes

* small fix

* progress on serialize

* wip

* fixes and deserialize for more cases

* more fixes

* removed stream input from `serialize`

* uvar, evar

* `u64_get_trimmed_le` rewritten

---------

Co-authored-by: Arthur Paulino <arthurleonardo.ap@gmail.com>

* IxVM file split (#278)

* rust compiler (#263)

* refactor module organization, env types, and add richer scc result

* tmp rustfmt

* rust, const sorting and expr compilation

* compile_const

* wip: compiler structure, but erroring

* compiling Env in 11.32 seconds

* clippy and warnings

* manual stack management for compile_expr to avoid overflow

* xclippy warnings

* compilation in 6.65s, total pipeline in 16.8s

* remove cons_list

* review comments

* Pointer pattern (#280)

* Pointer pattern

* elab new Pattern.pointer constructor

* pointer match test

---------

Co-authored-by: Arthur Paulino <arthurleonardo.ap@gmail.com>

* decompilation pipeline working

* fix failing condense.rs tests

* parallelize decoding

* xclippy warnings

---------

Co-authored-by: Samuel Burnham <45365069+samuelburnham@users.noreply.github.com>
Co-authored-by: Arthur Paulino <arthurleonardo.ap@gmail.com>
Co-authored-by: Gabriel Barreto <gabriel.aquino.barreto@gmail.com>
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.

2 participants

Comments