[WIP] Evm equivalence Yul #587
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 | |
- 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 zk | |
ci_run zk compiler 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 | |
ci_run yarn workspace system-contracts clean | |
- name: checkout PR | |
run: git checkout --force FETCH_HEAD --recurse-submodules | |
- name: run benchmarks on PR | |
shell: bash | |
run: | | |
ci_run zk | |
ci_run zk compiler 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 != '' }} |