Skip to content

Commit 8b678d8

Browse files
committed
feat: add blake
1 parent 1727a43 commit 8b678d8

File tree

4 files changed

+90
-14
lines changed

4 files changed

+90
-14
lines changed

.github/workflows/bench.yaml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@ on:
4747
required: false
4848
default: "256 512"
4949
type: string
50+
arg-blake:
51+
description: "BLAKE suite arguments"
52+
required: false
53+
default: "256 512"
54+
type: string
55+
arg-blake-chain:
56+
description: "BLAKE chain suite arguments"
57+
required: false
58+
default: "8 16"
59+
type: string
5060
machine_type:
5161
description: "Hetzner Cloud server type (e.g. cx42, ccx63)"
5262
required: false
@@ -72,6 +82,9 @@ env:
7282
SHA3_CHAIN_ARG: ${{ startsWith(github.ref, 'refs/tags/bench-') && '8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768' || inputs.arg-sha3-chain }}
7383
MATMUL_ARG: ${{ startsWith(github.ref, 'refs/tags/bench-') && '4 8 16 32 64 128' || inputs.arg-matmul }}
7484
EC_ARG: ${{ startsWith(github.ref, 'refs/tags/bench-') && '256 512 1024 2048 4096 8192 16384 32768' || inputs.arg-ec }}
85+
BLAKE_ARG: ${{ startsWith(github.ref, 'refs/tags/bench-') && '256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288' || inputs.arg-blake }}
86+
BLAKE_CHAIN_ARG: ${{ startsWith(github.ref, 'refs/tags/bench-') && '8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768' || inputs.arg-blake-chain }}
87+
7588

7689
jobs:
7790
create-runner:
@@ -184,7 +197,9 @@ jobs:
184197
"${{ env.SHA3_ARG }}" \
185198
"${{ env.SHA3_CHAIN_ARG }}" \
186199
"${{ env.MATMUL_ARG }}" \
187-
"${{ env.EC_ARG }}"
200+
"${{ env.EC_ARG }}" \
201+
"${{ env.BLAKE_ARG }}" \
202+
"${{ env.BLAKE_CHAIN_ARG }}"
188203
fi
189204
190205
- name: Upload ${{ matrix.zkvm }} results

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
*.ipynb
77
__pycache__/
88
*.png
9-
benchmark_results/*
9+
benchmark_results/*
10+
report

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Run the setup script to install all dependencies:
1313

1414
To run all benchmarks, use:
1515
```bash
16-
./scripts/bench local
16+
just bench-local
1717
```
1818

1919
The benchmark results will be saved in CSV format in the `benchmark_outputs` directory.
@@ -25,4 +25,4 @@ To generate a local HTML report from the benchmark results, run:
2525
./scripts/analyze.sh
2626
```
2727

28-
The report will be generated at: `./report/index.html`.
28+
The report will be generated at: `./report/index.html`.

justfile

Lines changed: 70 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ SHA3_ARG_LOCAL := "256 512 1024 2048 4096 8192"
1515
SHA3_CHAIN_ARG_LOCAL := "64 128 256 512 1024 2048 4096"
1616
MATMUL_ARG_LOCAL := "4 8 16 32 64"
1717
EC_ARG_LOCAL := "16 32 64 128 256 512 1024 2048"
18+
BLAKE_ARG_LOCAL := "256 512 1024 2048 4096 8192"
19+
BLAKE_CHAIN_ARG_LOCAL := "64 128 256 512 1024 2048 4096"
1820

1921
# Default recipe
2022
default:
@@ -114,31 +116,36 @@ bench-local: build-utils machine-info
114116
"{{FIB_ARG_LOCAL}}" \
115117
"{{SHA2_ARG_LOCAL}}" "{{SHA2_CHAIN_ARG_LOCAL}}" \
116118
"{{SHA3_ARG_LOCAL}}" "{{SHA3_CHAIN_ARG_LOCAL}}" \
117-
"{{MATMUL_ARG_LOCAL}}" "{{EC_ARG_LOCAL}}"
119+
"{{MATMUL_ARG_LOCAL}}" "{{EC_ARG_LOCAL}}" \
120+
"{{BLAKE_ARG_LOCAL}}" "{{BLAKE_CHAIN_ARG_LOCAL}}"
118121

119122
just bench-jolt \
120123
"{{FIB_ARG_LOCAL}}" \
121124
"{{SHA2_ARG_LOCAL}}" "{{SHA2_CHAIN_ARG_LOCAL}}" \
122125
"{{SHA3_ARG_LOCAL}}" "{{SHA3_CHAIN_ARG_LOCAL}}" \
123-
"{{MATMUL_ARG_LOCAL}}" "{{EC_ARG_LOCAL}}"
126+
"{{MATMUL_ARG_LOCAL}}" "{{EC_ARG_LOCAL}}" \
127+
"{{BLAKE_ARG_LOCAL}}" "{{BLAKE_CHAIN_ARG_LOCAL}}"
124128

125129
just bench-sp1 \
126130
"{{FIB_ARG_LOCAL}}" \
127131
"{{SHA2_ARG_LOCAL}}" "{{SHA2_CHAIN_ARG_LOCAL}}" \
128132
"{{SHA3_ARG_LOCAL}}" "{{SHA3_CHAIN_ARG_LOCAL}}" \
129-
"{{MATMUL_ARG_LOCAL}}" "{{EC_ARG_LOCAL}}"
133+
"{{MATMUL_ARG_LOCAL}}" "{{EC_ARG_LOCAL}}" \
134+
"{{BLAKE_ARG_LOCAL}}" "{{BLAKE_CHAIN_ARG_LOCAL}}"
130135

131136
just bench-risc0 \
132137
"{{FIB_ARG_LOCAL}}" \
133138
"{{SHA2_ARG_LOCAL}}" "{{SHA2_CHAIN_ARG_LOCAL}}" \
134139
"{{SHA3_ARG_LOCAL}}" "{{SHA3_CHAIN_ARG_LOCAL}}" \
135-
"{{MATMUL_ARG_LOCAL}}" "{{EC_ARG_LOCAL}}"
140+
"{{MATMUL_ARG_LOCAL}}" "{{EC_ARG_LOCAL}}" \
141+
"{{BLAKE_ARG_LOCAL}}" "{{BLAKE_CHAIN_ARG_LOCAL}}"
136142

137143
just bench-openvm \
138144
"{{FIB_ARG_LOCAL}}" \
139145
"{{SHA2_ARG_LOCAL}}" "{{SHA2_CHAIN_ARG_LOCAL}}" \
140146
"{{SHA3_ARG_LOCAL}}" "{{SHA3_CHAIN_ARG_LOCAL}}" \
141-
"{{MATMUL_ARG_LOCAL}}" "{{EC_ARG_LOCAL}}"
147+
"{{MATMUL_ARG_LOCAL}}" "{{EC_ARG_LOCAL}}" \
148+
"{{BLAKE_ARG_LOCAL}}" "{{BLAKE_CHAIN_ARG_LOCAL}}"
142149

143150
#####
144151
# jolt
@@ -149,7 +156,7 @@ build-jolt: build-utils
149156
cd jolt && RUSTFLAGS="-C target-cpu=native -C opt-level=3" cargo build --release
150157

151158
# bench-all takes arguments for all benchmarks
152-
bench-jolt fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_args ec_args: \
159+
bench-jolt fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_args ec_args blake_args blake_chain_args: \
153160
build-jolt
154161
just bench-jolt-fib "{{fib_args}}" "{{VERIFIER_ITERATIONS}}"
155162
just bench-jolt-sha2 "{{sha2_args}}" "{{VERIFIER_ITERATIONS}}"
@@ -158,6 +165,8 @@ bench-jolt fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_a
158165
just bench-jolt-sha3-chain "{{sha3_chain_args}}" "{{VERIFIER_ITERATIONS}}"
159166
just bench-jolt-mat-mul "{{matmul_args}}" "{{VERIFIER_ITERATIONS}}"
160167
just bench-jolt-ec "{{ec_args}}" "{{VERIFIER_ITERATIONS}}"
168+
just bench-jolt-blake "{{blake_args}}" "{{VERIFIER_ITERATIONS}}"
169+
just bench-jolt-blake-chain "{{blake_chain_args}}" "{{VERIFIER_ITERATIONS}}"
161170

162171
bench-jolt-fib fib_args verifier_iterations="1":
163172
for arg in {{fib_args}}; do just run-bench-jolt "fib" "$arg" "{{verifier_iterations}}"; done
@@ -186,6 +195,14 @@ bench-jolt-mat-mul matmul_args verifier_iterations="1":
186195
bench-jolt-ec ec_args verifier_iterations="1":
187196
for arg in {{ec_args}}; do just run-bench-jolt "ec" "$arg" "{{verifier_iterations}}"; done
188197

198+
bench-jolt-blake blake_args verifier_iterations="1":
199+
for arg in {{blake_args}}; do just run-bench-jolt "blake" "$arg" "{{verifier_iterations}}"; done
200+
201+
bench-jolt-blake-chain blake_chain_args verifier_iterations="1":
202+
for arg in {{blake_chain_args}}; do \
203+
just run-bench-jolt "blake-chain" "$arg" "{{verifier_iterations}}"; \
204+
done
205+
189206

190207
#####
191208
# sp1
@@ -204,9 +221,11 @@ build-sp1: build-utils
204221
cd sp1/sha3-chain-precompile && cargo prove build
205222
cd sp1/ec && cargo prove build
206223
cd sp1/ec-precompile && cargo prove build
224+
cd sp1/blake && cargo prove build
225+
cd sp1/blake-chain && cargo prove build
207226
cd sp1 && RUSTFLAGS="-C target-cpu=native -C opt-level=3" cargo build --release
208227

209-
bench-sp1 fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_args ec_args: \
228+
bench-sp1 fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_args ec_args blake_args blake_chain_args: \
210229
build-sp1
211230
just bench-sp1-fib "{{fib_args}}" "{{VERIFIER_ITERATIONS}}"
212231
just bench-sp1-sha2 "{{sha2_args}}" "{{VERIFIER_ITERATIONS}}"
@@ -218,6 +237,8 @@ bench-sp1 fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_ar
218237
just bench-sp1-sha2-chain-precompile "{{sha2_chain_args}}" "{{VERIFIER_ITERATIONS}}"
219238
just bench-sp1-sha3-precompile "{{sha3_args}}" "{{VERIFIER_ITERATIONS}}"
220239
just bench-sp1-sha3-chain-precompile "{{sha3_chain_args}}" "{{VERIFIER_ITERATIONS}}"
240+
just bench-sp1-blake "{{blake_args}}" "{{VERIFIER_ITERATIONS}}"
241+
just bench-sp1-blake-chain "{{blake_chain_args}}" "{{VERIFIER_ITERATIONS}}"
221242
just bench-sp1-ec "{{ec_args}}" "{{VERIFIER_ITERATIONS}}"
222243
# just bench-sp1-ec-precompile "{{ec_args}}"
223244

@@ -273,6 +294,14 @@ bench-sp1-ec-precompile ec_args verifier_iterations="1":
273294
just run-bench-sp1 "ec-precompile" "$arg" "{{verifier_iterations}}"; \
274295
done
275296

297+
bench-sp1-blake blake_args verifier_iterations="1":
298+
for arg in {{blake_args}}; do just run-bench-sp1 "blake" "$arg" "{{verifier_iterations}}"; done
299+
300+
bench-sp1-blake-chain blake_chain_args verifier_iterations="1":
301+
for arg in {{blake_chain_args}}; do \
302+
just run-bench-sp1 "blake-chain" "$arg" "{{verifier_iterations}}"; \
303+
done
304+
276305

277306
#####
278307
# risc0
@@ -296,8 +325,10 @@ build-risc0: build-utils
296325
cd risc0/ec-precompile && \
297326
RUSTFLAGS="-C target-cpu=native -C opt-level=3" cargo build --release
298327
cd risc0/mat-mul && RUSTFLAGS="-C target-cpu=native -C opt-level=3" cargo build --release
328+
cd risc0/blake && RUSTFLAGS="-C target-cpu=native -C opt-level=3" cargo build --release
329+
cd risc0/blake-chain && RUSTFLAGS="-C target-cpu=native -C opt-level=3" cargo build --release
299330

300-
bench-risc0 fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_args ec_args: \
331+
bench-risc0 fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_args ec_args blake_args blake_chain_args: \
301332
build-risc0
302333
just bench-risc0-fib "{{fib_args}}" "{{VERIFIER_ITERATIONS}}"
303334
just bench-risc0-sha2 "{{sha2_args}}" "{{VERIFIER_ITERATIONS}}"
@@ -311,6 +342,8 @@ bench-risc0 fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_
311342
just bench-risc0-mat-mul "{{matmul_args}}" "{{VERIFIER_ITERATIONS}}"
312343
just bench-risc0-ec "{{ec_args}}" "{{VERIFIER_ITERATIONS}}"
313344
just bench-risc0-ec-precompile "{{ec_args}}" "{{VERIFIER_ITERATIONS}}"
345+
just bench-risc0-blake "{{blake_args}}" "{{VERIFIER_ITERATIONS}}"
346+
just bench-risc0-blake-chain "{{blake_chain_args}}" "{{VERIFIER_ITERATIONS}}"
314347

315348
bench-risc0-fib fib_args verifier_iterations="1":
316349
for arg in {{fib_args}}; do \
@@ -370,6 +403,15 @@ bench-risc0-ec-precompile ec_args verifier_iterations="1":
370403
just run-bench-risc0 "ec-precompile" "$arg" "{{verifier_iterations}}"; \
371404
done
372405

406+
bench-risc0-blake blake_args verifier_iterations="1":
407+
for arg in {{blake_args}}; do just run-bench-risc0 "blake" "$arg" "{{verifier_iterations}}"; done
408+
409+
bench-risc0-blake-chain blake_chain_args verifier_iterations="1":
410+
for arg in {{blake_chain_args}}; do \
411+
just run-bench-risc0 "blake-chain" "$arg" "{{verifier_iterations}}"; \
412+
done
413+
414+
373415
#####
374416
# Stone
375417
#####
@@ -444,7 +486,7 @@ bench-stone-ec ec_args verifier_iterations="1":
444486
build-stwo: build-utils
445487
cd stwo && RUSTFLAGS="-C target-cpu=native -C opt-level=3" cargo build --release
446488

447-
bench-stwo fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_args ec_args: \
489+
bench-stwo fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_args ec_args blake_args blake_chain_args: \
448490
build-stwo
449491
just bench-stwo-fib "{{fib_args}}" "{{VERIFIER_ITERATIONS}}"
450492
just bench-stwo-sha2 "{{sha2_args}}" "{{VERIFIER_ITERATIONS}}"
@@ -453,6 +495,8 @@ bench-stwo fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_a
453495
just bench-stwo-sha3-chain "{{sha3_chain_args}}" "{{VERIFIER_ITERATIONS}}"
454496
just bench-stwo-mat-mul "{{matmul_args}}" "{{VERIFIER_ITERATIONS}}"
455497
just bench-stwo-ec "{{ec_args}}" "{{VERIFIER_ITERATIONS}}"
498+
just bench-stwo-blake-precompile "{{blake_args}}" "{{VERIFIER_ITERATIONS}}"
499+
just bench-stwo-blake-chain-precompile "{{blake_chain_args}}" "{{VERIFIER_ITERATIONS}}"
456500

457501
bench-stwo-fib fib_args verifier_iterations="1":
458502
for arg in {{fib_args}}; do just run-bench-stwo "fib" "$arg" "{{verifier_iterations}}"; done
@@ -481,6 +525,14 @@ bench-stwo-mat-mul matmul_args verifier_iterations="1":
481525
bench-stwo-ec ec_args verifier_iterations="1":
482526
for arg in {{ec_args}}; do just run-bench-stwo "ec" "$arg" "{{verifier_iterations}}"; done
483527

528+
bench-stwo-blake-precompile blake_args verifier_iterations="1":
529+
for arg in {{blake_args}}; do just run-bench-stwo "blake-precompile" "$arg" "{{verifier_iterations}}"; done
530+
531+
bench-stwo-blake-chain-precompile blake_chain_args verifier_iterations="1":
532+
for arg in {{blake_chain_args}}; do \
533+
just run-bench-stwo "blake-chain-precompile" "$arg" "{{verifier_iterations}}"; \
534+
done
535+
484536

485537
#####
486538
# openvm
@@ -490,7 +542,7 @@ build-openvm: build-utils
490542
cd openvm && rustup install
491543
cd openvm && RUSTFLAGS="-C target-cpu=native -C opt-level=3" cargo build --release
492544

493-
bench-openvm fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_args ec_args: \
545+
bench-openvm fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul_args ec_args blake_args blake_chain_args: \
494546
build-openvm
495547
just bench-openvm-fib "{{fib_args}}" "{{VERIFIER_ITERATIONS}}"
496548
just bench-openvm-sha2 "{{sha2_args}}" "{{VERIFIER_ITERATIONS}}"
@@ -504,6 +556,8 @@ bench-openvm fib_args sha2_args sha2_chain_args sha3_args sha3_chain_args matmul
504556
just bench-openvm-mat-mul "{{matmul_args}}" "{{VERIFIER_ITERATIONS}}"
505557
just bench-openvm-ec "{{ec_args}}" "{{VERIFIER_ITERATIONS}}"
506558
just bench-openvm-ec-precompile "{{ec_args}}" "{{VERIFIER_ITERATIONS}}"
559+
just bench-openvm-blake "{{blake_args}}" "{{VERIFIER_ITERATIONS}}"
560+
just bench-openvm-blake-chain "{{blake_chain_args}}" "{{VERIFIER_ITERATIONS}}"
507561

508562
bench-openvm-fib fib_args verifier_iterations="1":
509563
for arg in {{fib_args}}; do just run-bench-openvm "fib" "$arg" "{{verifier_iterations}}"; done
@@ -560,3 +614,9 @@ bench-openvm-ec-precompile ec_args verifier_iterations="1":
560614
for arg in {{ec_args}}; do \
561615
just run-bench-openvm "ec-precompile" "$arg" "{{verifier_iterations}}"; \
562616
done
617+
618+
bench-openvm-blake blake_args verifier_iterations="1":
619+
for arg in {{blake_args}}; do just run-bench-openvm "blake" "$arg" "{{verifier_iterations}}"; done
620+
621+
bench-openvm-blake-chain blake_chain_args verifier_iterations="1":
622+
for arg in {{blake_chain_args}}; do just run-bench-openvm "blake-chain" "$arg" "{{verifier_iterations}}"; done

0 commit comments

Comments
 (0)