Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Integrate tracers and implement circuits tracer in vm2 #2653

Merged
merged 68 commits into from
Sep 4, 2024

Conversation

montekki
Copy link
Contributor

@montekki montekki commented Aug 14, 2024

What ❔

Integrates tracers support into the codebase and implements the circuits tracer.

Why ❔

Tracers are required for some VM applications, e.g. to determine batch seal criteria and for tracing calls.

Checklist

  • PR title corresponds to the body of PR (we generate changelog entries from PRs).
  • Documentation comments have been added / updated.
  • Code has been formatted via zk fmt and zk lint.

Copy link
Contributor

@slowli slowli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is performance degradation on iai benches expected? (AFAIU, it is real degradation compared to the main branch, e.g. judging by these results on main.) Have you checked whether it translates to the real-time degradation?

core/lib/contracts/src/lib.rs Outdated Show resolved Hide resolved
core/lib/multivm/src/versions/vm_fast/circuits_tracer.rs Outdated Show resolved Hide resolved
core/lib/multivm/src/versions/vm_fast/vm.rs Outdated Show resolved Hide resolved
@joonazan
Copy link
Contributor

joonazan commented Sep 3, 2024

The slowdown is real but mostly under 10%. heap_read_write shows +15% on my M1 even though it shows no change in iai.
This can be investigated later when we want to really optimize performance.

Copy link
Contributor

github-actions bot commented Sep 3, 2024

Detected VM performance changes

Benchmark name change in estimated runtime change in number of opcodes executed
event_spam +5.9% +0 (NaN%)
decode_shl_sub +17.4% +0 (NaN%)
slot_hash_collision +11.4% +0 (NaN%)
access_memory +13.8% +0 (NaN%)
write_and_decode +11.2% +0 (NaN%)

Changes in number of opcodes executed indicate that the gas price of the benchmark has changed, which causes it run out of gas at a different time. Or that it is behaving completely differently.

@slowli slowli changed the title fix: integrate tracers and implement circuits tracer in vm2 feat: Integrate tracers and implement circuits tracer in vm2 Sep 4, 2024
@joonazan joonazan added this pull request to the merge queue Sep 4, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Sep 4, 2024
@slowli slowli added this pull request to the merge queue Sep 4, 2024
Merged via the queue into main with commit 87b02e3 Sep 4, 2024
56 checks passed
@slowli slowli deleted the fvs-vm-fast-circuits-tracer branch September 4, 2024 07:03
github-merge-queue bot pushed a commit that referenced this pull request Sep 5, 2024
🤖 I have created a release *beep* *boop*
---


##
[24.24.0](core-v24.23.0...core-v24.24.0)
(2024-09-05)


### Features

* conditional cbt l1 updates
([#2748](#2748))
([6d18061](6d18061))
* **eth-watch:** do not query events from earliest block
([#2810](#2810))
([1da3f7e](1da3f7e))
* **genesis:** Validate genesis config against L1
([#2786](#2786))
([b2dd9a5](b2dd9a5))
* Integrate tracers and implement circuits tracer in vm2
([#2653](#2653))
([87b02e3](87b02e3))
* Move prover data to
/home/popzxc/workspace/current/zksync-era/prover/data
([#2778](#2778))
([62e4d46](62e4d46))
* Remove prover db from house keeper
([#2795](#2795))
([85b7346](85b7346))
* **vm-runner:** Implement batch data prefetching
([#2724](#2724))
([d01840d](d01840d))
* **vm:** Extract batch executor to separate crate
([#2702](#2702))
([b82dfa4](b82dfa4))
* **vm:** Simplify VM interface
([#2760](#2760))
([c3bde47](c3bde47))
* **zk_toolbox:** add multi-chain CI integration test
([#2594](#2594))
([05c940e](05c940e))


### Bug Fixes

* **config:** Do not panic for observability config
([#2639](#2639))
([1e768d4](1e768d4))
* **core:** Batched event processing support for Reth
([#2623](#2623))
([958dfdc](958dfdc))
* return correct witness inputs
([#2770](#2770))
([2516e2e](2516e2e))
* **tee-prover:** increase retries to reduce spurious alerts
([#2776](#2776))
([4fdc806](4fdc806))
* **tee-prover:** mitigate panic on redeployments
([#2764](#2764))
([178b386](178b386))
* **tee:** lowercase enum TEE types
([#2798](#2798))
([0f2f9bd](0f2f9bd))
* **vm-runner:** Fix statement timeouts in VM playground
([#2772](#2772))
([d3cd553](d3cd553))


### Performance Improvements

* **vm:** Fix VM performance regression on CI loadtest
([#2782](#2782))
([bc0d7d5](bc0d7d5))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <[email protected]>
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.

3 participants