Skip to content

feat: github proving benchmark #5

feat: github proving benchmark

feat: github proving benchmark #5

Workflow file for this run

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
path: ./proving_benchmark_results.txt
retention-days: 90
overwrite: true
- name: Download previous results
uses: actions/download-artifact@v4
with:
name: proving_benchmark
path: ./proving_benchmark_results.txt
- 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: ./proving_benchmark_results.txt
retention-days: 90
overwrite: true