Commit Graph

150 Commits

Author SHA1 Message Date
Leandro Pacheco
3caa321441 run larger tests by themselves (#3237)
somehow they run out of memory if run as part of the full suite
2025-08-29 13:40:10 +00:00
Leandro Pacheco
fff802a933 post merge APC tests (#3238)
run some of the nightly tests in a non-blocking way after merging to
main
2025-08-29 07:46:33 +00:00
Leo
c5b35ea4b0 remove podwr vm from main repo (#3231)
- Remove all crates that are not linked with `autoprecompiles`,
`openvm`, `constraint-solver`
- Remove tests and artifacts linked with removed crates
- Adjust CI
2025-08-28 10:03:36 +00:00
Georg Wiese
608a1f09ca Nightly hot fix: Move tests after benchmarks (#3222)
Nightly has been failing for a while. We should fix that, but by moving
ignored the tests after the benchmarks, we should at least get nightly
benchmark results again (and test our most important guest programs).

I think this is also a good idea in general, because we often manually
run nightly to get the latest benchmarks on a particular branch. This
way, we get results earlier.

I started a manual run on this branch:
https://github.com/powdr-labs/powdr/actions/runs/17212171321
2025-08-25 15:36:22 +00:00
chriseth
ffc3395056 Increase number of runners. (#3189) 2025-08-18 14:54:04 +00:00
Leo
4626b052dc Use a different cache for test_apc (#3179)
The `illegal instruction` error is back on nightly, see here:
https://github.com/powdr-labs/powdr/actions/runs/16954946528/job/48054989302

We suspect it could because `test_apc` uses the same cache as the normal
tests, but that cache has its build done in a different machine so the
dependencies could have instructions that cannot run on the server. If
this is the case, it happens most likely from the C/C++ dependency.

Anyway, we don't know that for sure, but this PR seems to fix it, see
here
https://github.com/powdr-labs/powdr/actions/runs/16944315837/job/48021334148.
2025-08-15 06:14:06 +00:00
Leo
fe3b3550d6 update openvm (#3163)
If this works we can merge the openvm PR
2025-08-12 10:10:01 +00:00
Leo
00bf223efe Fix Rust 1.88 requirement by fresh deps of OpenVM (#3159)
When installing `cargo-openvm` for the openvm-reth related tests, the
installation pulls fresh versions of the dependencies that are not
pinned. Some of these dependencies only work with Rust >= 1.88.

I made a [test PR in
powdr-labs/openvm](https://github.com/powdr-labs/openvm/pull/37) which
the changes here point to to get the `cargo-openvm` crate.

We can merge the PR above which would force us to change powdr as well,
but for now it may be enough to merge this PR to get the test passing,
and then change the openvm hash in powdr together with the Rust version
in a follow-up PR.
2025-08-11 12:52:12 +00:00
Leo
fdc663bb3a Fix nightly (#3152)
This branch passed nightly test_apc here:
https://github.com/powdr-labs/powdr/actions/runs/16828983380/job/47671913748
2025-08-08 12:46:31 +00:00
Steve Wang
f22419f7af Fix nightly tests (#3142)
Currently we get a file not found error for input of
`effectiveness_plot.py`, because the `cargo prove` with no APC case
doesn't generate `apc_candidates.json` as input for the Python script
anymore after #3109.

This PR fixes this error and now `run_guest_benches.sh` runs on the
server, though I'm not sure if all nightly tests will be fixed that
aren't run on CI yet.
2025-08-05 12:09:28 +00:00
Steve Wang
1ded39b9f6 Refactor JsonExport and effectiveness plot (#3116)
Now `JsonExport` and `plot_effectiveness.py` both live in APC crate.

Didn't move other scripts, which rely on `metrics.json` and I think it's
specific to OVM?

---------

Co-authored-by: Georg Wiese <georgwiese@gmail.com>
2025-07-31 14:38:41 +00:00
Thibaut Schaeffer
86bd7c5db3 Update reth hash in CI (#3096) 2025-07-28 16:20:47 +00:00
Thibaut Schaeffer
9f36102a16 Keep openvm program intact (#3075)
Since #3055, we don't need to change the program anymore.
This PR keeps the program intact in openvm, passing the apc opcodes to
openvm through a new API in openvm.
See https://github.com/powdr-labs/openvm/pull/36
Related: https://github.com/powdr-labs/openvm-reth-benchmark/pull/26
2025-07-28 14:48:10 +00:00
Leo
4446c7298f Replace broken udeps action by direct calls (#3071)
The action itself seems broken with JS errors in every PR recently.
Only merge if the `udeps` job passes.
2025-07-22 11:12:28 +00:00
Thibaut Schaeffer
3ab2dba41f Update openvm (#3062) 2025-07-19 22:41:42 +00:00
Thibaut Schaeffer
4f6eee46de Point reth to main (#3045)
omission in #3036
2025-07-14 15:43:47 +00:00
Thibaut Schaeffer
54861dd793 Move pgo to apc crate (#3036)
Larger PR, but after this basically everything that can be made agnostic
is agnostic.
`PowdrConfig` is split in two, as the `autoprecompile` crate does not
care about the arithmetization method. This could be cleaned up a bit
though.

Need to merge
https://github.com/powdr-labs/openvm-reth-benchmark/pull/24/ first and
update the hashes.

TODO:
- [x] merge #3033 
- [x] fix reth
- [x] remove POWDR_OPCODE constant in apc and pass it instead
2025-07-14 12:53:01 +00:00
Georg Wiese
f0a0e3a804 Benchmarks: Generate effectiveness plots (#3024)
Builds on #3023 and
https://github.com/powdr-labs/openvm-reth-benchmark/pull/23

Worked on this manually triggered nightly run:

https://github.com/powdr-labs/powdr/actions/runs/16182186333/job/45680988436

See these results:

https://github.com/powdr-labs/bench-results/tree/gh-pages/results/2025-07-10-0155
2025-07-10 09:29:52 +00:00
Steve Wang
4471c7580d Update reth CI commit hash (#2999)
Final one to be merged after
https://github.com/powdr-labs/openvm-reth-benchmark/pull/21/files
2025-07-04 13:58:23 +00:00
Leandro Pacheco
770e948c64 nightly benchmarks (#2982)
This PR runs a few benchmarks nightly, saving the results to a separate
repo: `bench-results`.
Idea is to get something going on and improve reporting later.
Currently, it runs `keccak` and `reth`.
2025-07-04 12:09:45 +00:00
Leo
6e2f272403 Compile reth test also for prs (#2965)
Let's see if this works
2025-07-01 15:28:05 +00:00
Thibaut Schaeffer
ca51346695 Point at reth benchmark main (#2946) 2025-06-25 07:38:42 +00:00
Leo
6669d9447b update nightly reth script (#2932)
Waiting for
https://github.com/powdr-labs/powdr/actions/runs/15777736373/job/44475889809
2025-06-20 13:22:55 +00:00
Leo
0e6dcb4830 Add reth test to nightly test_apc (#2911) 2025-06-17 17:27:13 +00:00
Leo
33e9577360 use fewer threads in nightly (#2860) 2025-06-07 17:57:59 +00:00
Leo
b573cdbd80 more nightly tests (#2855)
This should be merged only if
https://github.com/powdr-labs/powdr/actions/runs/15495026836/job/43629576763
passes.
2025-06-06 16:52:53 +00:00
Leo
5416a6050a Add nightly run for apcs (#2851)
This adds a job to our nightly run that runs all tests in the
powdr-openvm crate, including recursion.
Future ideas:
- Split the common nightly into 2. I tried to do this but couldn't get
it to work initially. TBD
- Since we don't run Halo2 anymore, we can actually run recursion for a
lot of the tests. Next I would suggest to run the guest_recursion test
enabled here in a PR test actually that also uses the self hosted runner
- Similarly to above, add a larger Keccak test to PR tests
2025-06-06 09:25:54 +00:00
chriseth
5f5b8996dc Run slow tests only on nightly. (#2824) 2025-06-04 07:25:24 +00:00
chriseth
0dd06f9c1b Mark some tests as slow (#2823) 2025-06-03 10:11:52 +00:00
chriseth
0bed8b7a8c Run bench on nightly only. (#2822)
Bench takes 20 minutes, that's too long for us not really using it.
2025-06-03 09:27:17 +00:00
Thibaut Schaeffer
ef11e48462 Fix nightly tests and simplify CI (#2760)
- remove target triple
- more succinct rustup command
- install 2025-02-14 for openvm in nightly tests
2025-05-24 07:44:56 +00:00
Thibaut Schaeffer
3ae17c7fcb Remove halo2 (#2740)
Remove halo2 from the backends, as well as the tutorials which heavily
reference it.
2025-05-21 12:08:50 +00:00
Thibaut Schaeffer
aafe2570be Remove estark (#2739)
Following #2735 , remove all of estark
2025-05-20 17:50:33 +00:00
Thibaut Schaeffer
2d6708bbc5 Add openvm crates (#2714)
Based on commit 1dbe4db
- Split into two crates, lib and cli
- upgrade stwo, marked one stwo test `should_panic` @ShuangWu121 
- various clippy and fmt fixes linked to the rust version update
- bring all rust versions to 2025-05-14. CI still installs other
versions for openvm which uses them internally. The stable rust version
we test on is bumped to 1.85
- remove `examples` and related tests, which test the powdr crate on the
previous version of powdr (since it uses another nightly). Happy to
discuss this if it's important @leonardoalt
2025-05-16 14:30:09 +00:00
chriseth
81e410cd1c No cache for examples because it is not used anyway. (#2701) 2025-05-13 08:12:18 +00:00
chriseth
8878d5dcb7 Fix cache (#2668)
Seems to be working now:
https://github.com/powdr-labs/powdr/actions/runs/14663513819/job/41152963601
2025-04-25 12:55:03 +00:00
chriseth
bfe7604684 Check out cache, set mtime and re-check out actual commit. (#2655)
Instead of setting `mtime` to the committed date, which @lvella noted is
error-prone, this PR does the following so that we can utilize the build
cache:

- check out the commit the build cache was built for
- set mtime to the time the cache was built
- check out the commit we are running the tests on

This hopefully has the effect that all modified files will have the
current time as mtime and will trigger re-builds correctly
2025-04-24 10:31:20 +00:00
Lucas Clemente Vella
f02fd626e2 Revert "CI: Avoid rebuilding cached files. (#2648)" (#2650)
Don't fix the problem, due to depth=1, and might even cause others, due
to git timestamp being unreliable to track changes since last build.
2025-04-16 16:57:48 +00:00
Lucas Clemente Vella
2d44e9ff95 CI: Avoid rebuilding cached files. (#2648)
Sets the timestamp of files to the commit timestamp, so that cargo can
know which files were not modified in the PR.
2025-04-15 14:50:11 +00:00
chriseth
6639f00b3e Mark some tests fast. (#2609) 2025-03-30 18:22:59 +00:00
chriseth
60352dda43 Reduce number of threads for nightly. (#2603) 2025-03-28 15:49:00 +00:00
Steve Wang
8ed49876fd Optimize PR test workflow (Simple starter version) (#2581)
This PR increases the number of `test_slow` PR test bins from 8 to 17,
thereby strictly reducing the time spent on `test_slow`.

We have three types of runners: 
- `warp-ubuntu-2404-x64-8x` for: build, run_examples, bench. I think
this is a paid server: https://www.warpbuild.com/, which @leonardoalt
last changed in #2187, so I have a question: why don't we use the GitHub
Workflow free ones? Besides, I think we can parallelize `run_examples`,
which is a bottleneck of 38 minutes currently run single threaded, so
there can be some immediate time improvement if we run it on multiple
runner instances. Is this server charged by the number of runners or the
number of minutes?
- `ubuntu-24.04` for: test_quick, test_estark_polygon, test_slow.
- `ubuntu-22.04` for: udeps.

**BEFORE Optimization**
<img width="346" alt="Screen Shot 2025-03-24 at 17 25 11"
src="https://github.com/user-attachments/assets/b197eca3-9994-4113-8f4d-1e7b106b064c"
/>

**AFTER Optimization**
See run time of this PR.

**Future Optimization**
In #2580, I'm working on creating 14 bins with 4 threads each because we
have 55 tests in total and each can run on a separate thread. This would
reduce the `test_slow` run time to that of the longest test, which is
~10 minutes.

This requires computing the bin-thread assignment because `nextest` only
supports the hash method for partitions, which isn't ideal in this case.
2025-03-26 12:08:39 +00:00
Lucas Clemente Vella
2583f7f057 Checking formatting first because it fails faster. (#2590) 2025-03-26 07:32:55 +00:00
Lucas Clemente Vella
4dc747ae1d Fix cache (#2584)
It seems WarpBuild removed the ability to overwrite a cache with the
same key.

But since they allow for removing a cache, this fix simply removes the
old one before saving the new one.

Please make sure the build cache test run was successful before merging.
2025-03-25 22:48:41 +00:00
Thibaut Schaeffer
bc8aed95db Remove pilcom (#2575)
- remove the `connect_no_witgen` test
- use the mock prover instead, when applicable
2025-03-25 08:50:06 +00:00
Georg Wiese
d7653ce9de Mark PIL docstring as no_run (#2562)
This should fix the [failing nightly
test](https://github.com/powdr-labs/powdr/actions/runs/13937842213/job/39009058952#step:14:42451).
2025-03-19 14:25:04 +00:00
chriseth
59bd7d2b69 Update nightly toolchains. (#2518)
I'm not really sure if this is the right fix. For the riscv targets, we
are using nightly-2024-08-01 - is that on purpose? Maybe we should keep
the examples on 2024-08-01 as well?
2025-03-05 11:56:41 +00:00
chriseth
efb30a75cf Install another nightly for benches. (#2519) 2025-03-05 11:00:11 +00:00
Leo
7c2012c728 add div instr test to pr tests (#2388)
This should break the CI PR tests. The idea is to fix it in this PR.

Edit: it is fixed now
2025-01-27 16:40:30 +00:00
chriseth
65a2fdd6a4 Unify single step and block processor. (#2317)
Extracts the common code in single step processor and block processor
into a unified "processor".

---------

Co-authored-by: Georg Wiese <georgwiese@gmail.com>
2025-01-10 23:15:50 +00:00