feat: github proving benchmark #4
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: Benchmark proving | |
on: | |
schedule: | |
- cron: '0 4 * * *' | |
workflow_dispatch: | |
branches: | |
- "**" | |
#TODO REMOVE PR EXECUTION | |
push: | |
branches: [develop, main] | |
pull_request: | |
branches: | |
- "**" | |
jobs: | |
benchmark_proving: | |
name: Benchmark proving for representative blocks | |
runs-on: zero-reg | |
timeout-minutes: 200 # Timeout TBD | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: Build the project | |
run: | | |
RUSTFLAGS='-C target-cpu=native -Zlinker-features=-lld' cargo build --release | |
sudo su -c "echo 0 > /proc/sys/kernel/perf_event_paranoid" | |
printf ' TIME CPU CYCLES\n' >> proving_benchmark_results.txt | |
- name: Upload new results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: proving_benchmark_results.txt | |
path: ./ | |
retention-days: 90 | |
overwrite: true | |
- name: Download previous results | |
uses: actions/download-artifact@v4 | |
with: | |
name: proving_benchmark_results.txt | |
path: ./ | |
- name: Run the script | |
# TODO - run the benchmark with 20 blocks file | |
run: | | |
./scripts/benchmark_input.sh artifacts/witness_b19807080.json | $MEASURED_PROVING_TIME_SEC | |
MEASURED_PROVING_TIME_SEC=`cat benchmark_output.log | grep 'Proving duration:' | tail -1 | awk '{ print int($3)}'` | |
MEASURED_PROVING_CPU_CLOCK_COUNT=`cat output.log | grep 'cycles' | tail -1 | awk '{ print int($1)}'` | |
printf '%s sec: %10s cpu: %30s\n' `date --utc +%y-%m-%d-%H:%M:%S` $MEASURED_PROVING_TIME_SEC $MEASURED_PROVING_CPU_CLOCK_COUNT >> proving_benchmark_results.txt | |
- name: Upload new results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: proving_benchmark_results.txt | |
path: ./ | |
retention-days: 90 | |
overwrite: true | |