feat(prover): Add min_provers and dry_run features. Improve metrics and test. #11421
Workflow file for this run
This file contains 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
name: Compare VM performance to base branch | |
on: | |
pull_request: | |
paths: | |
- 'core/**' | |
jobs: | |
vm-benchmarks: | |
name: Run VM benchmarks | |
runs-on: [ matterlabs-ci-runner-highmem-long ] | |
steps: | |
- name: checkout base branch | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 | |
with: | |
submodules: "recursive" | |
fetch-depth: 0 | |
ref: ${{ github.base_ref }} | |
- name: fetch PR branch | |
run: | | |
git remote add pr_repo ${{ github.event.pull_request.head.repo.clone_url }} | |
git fetch pr_repo ${{ github.event.pull_request.head.ref }} | |
- name: fetch merge-base SHA | |
id: merge_base | |
run: echo "sha=$(git merge-base HEAD FETCH_HEAD)" >> $GITHUB_OUTPUT | |
- name: checkout divergence point | |
run: git checkout ${{ steps.merge_base.outputs.sha }} --recurse-submodules | |
- name: setup-env | |
run: | | |
touch .env | |
echo ZKSYNC_HOME=$(pwd) >> $GITHUB_ENV | |
echo $(pwd)/bin >> $GITHUB_PATH | |
echo $(pwd)/zkstack_cli/zkstackup >> $GITHUB_PATH | |
echo "SCCACHE_GCS_BUCKET=matterlabs-infra-sccache-storage" >> .env | |
echo "SCCACHE_GCS_SERVICE_ACCOUNT=gha-ci-runners@matterlabs-infra.iam.gserviceaccount.com" >> .env | |
echo "SCCACHE_GCS_RW_MODE=READ_WRITE" >> .env | |
echo "RUSTC_WRAPPER=sccache" >> .env | |
- name: init | |
run: | | |
run_retried docker compose pull zk | |
docker compose up -d zk | |
- name: run benchmarks on base branch | |
shell: bash | |
run: | | |
ci_run zkstackup -g --local | |
ci_run zkstack dev contracts --system-contracts | |
ci_run cargo bench --package vm-benchmark --bench iai | tee base-iai | |
ci_run cargo run --package vm-benchmark --release --bin instruction_counts | tee base-opcodes || touch base-opcodes | |
- name: checkout PR | |
run: | | |
git checkout --force FETCH_HEAD --recurse-submodules | |
- name: run benchmarks on PR | |
shell: bash | |
run: | | |
ci_run zkstackup -g --local | |
ci_run zkstack dev contracts --system-contracts | |
ci_run cargo bench --package vm-benchmark --bench iai | tee pr-iai | |
ci_run cargo run --package vm-benchmark --release --bin instruction_counts | tee pr-opcodes || touch pr-opcodes | |
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) | |
echo "speedup<<$EOF" >> $GITHUB_OUTPUT | |
ci_run cargo run --package vm-benchmark --release --bin compare_iai_results base-iai pr-iai base-opcodes pr-opcodes >> $GITHUB_OUTPUT | |
echo "$EOF" >> $GITHUB_OUTPUT | |
id: comparison | |
- name: Comment on PR | |
uses: thollander/actions-comment-pull-request@fabd468d3a1a0b97feee5f6b9e499eab0dd903f6 # v2.5.0 | |
with: | |
message: | | |
${{ steps.comparison.outputs.speedup == '' && '## No performance difference detected (anymore)' || '## Detected VM performance changes' }} | |
${{ steps.comparison.outputs.speedup }} | |
comment_tag: vm-performance-changes | |
mode: recreate | |
create_if_not_exists: ${{ steps.comparison.outputs.speedup != '' }} |