From 50730f1e92afa6c9c0288571f8d31a6f23b19c6d Mon Sep 17 00:00:00 2001 From: Manish Kumar Date: Mon, 18 Mar 2024 11:48:14 +0530 Subject: [PATCH] readme and .cfg files added --- hash/sp1/bench/README.md | 10 ++++++++++ hash/sp1/bench/bench.cfg | 11 +++++++++++ hash/sp1/bench/bench_tree.cfg | 10 ++++++++++ hash/sp1/bench/run_tree.sh | 2 +- .../sha256/elf/riscv32im-succinct-zkvm-elf | Bin 113712 -> 113704 bytes 5 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 hash/sp1/bench/README.md create mode 100644 hash/sp1/bench/bench.cfg create mode 100644 hash/sp1/bench/bench_tree.cfg diff --git a/hash/sp1/bench/README.md b/hash/sp1/bench/README.md new file mode 100644 index 0000000..55f09f8 --- /dev/null +++ b/hash/sp1/bench/README.md @@ -0,0 +1,10 @@ +Benchmarking inside sp1 ZKVM +-------------------------------- + +- The `sp1/benches` contains the following hash `program`(the source code that will be proven inside the zkVM): sha256, keccak, blake2, blake3, and poseidon2 ober BN256. +- `script` folder contains the benchmarking code that contains proof generation and verification code for each hash program. +- The `build.sh` script builds the whole code. +- `run.sh` and `run_tree.sh` runs the benchmark. (`run.sh` for sha256, keccak, blake2, blake3 and `run_tree.sh` for poseidon2 over BN256) +- Benchmarks can be parameterized using environment variables. By convention, we start the names of these environment variables with the `ZKBENCH_` prefix. +- By default the `run.sh` will run the sha256 benchmark over 1KB of data. other hashes can be run by settig the environment variables accordingly. +- Additional files `bench.cfg` and `bench_tree.cfg` specifies the configurations and parameters. diff --git a/hash/sp1/bench/bench.cfg b/hash/sp1/bench/bench.cfg new file mode 100644 index 0000000..0aa0b9d --- /dev/null +++ b/hash/sp1/bench/bench.cfg @@ -0,0 +1,11 @@ +name: "Hashes benchmarking using sp1 prover" +author: +timeout: 200 +params: + [ HASH_TYPE: [ "sha256", "keccak", "blake2", "blake3"] + , INPUT_SIZE_BYTES: [ 256, 512, 1024, 2048 ] + ] +tags: sp1, $HASH_TYPE + +comments: + The benchmarks includes for sha256, keccak, blake2, blake3 using sp1. diff --git a/hash/sp1/bench/bench_tree.cfg b/hash/sp1/bench/bench_tree.cfg new file mode 100644 index 0000000..c09e4bc --- /dev/null +++ b/hash/sp1/bench/bench_tree.cfg @@ -0,0 +1,10 @@ +name: "Hashes benchmarking using sp1 prover" +author: +timeout: 500 +params: + [ HASH_TYPE_TREE: [ "poseidon2"] + , TREE_DEPTH: [ 2, 4, 8, 16 ] + ] +tags: sp1, $HASH_TYPE_TREE +comments: + The benchmarks includes for poseidon2(merkle hashing) over BN256. \ No newline at end of file diff --git a/hash/sp1/bench/run_tree.sh b/hash/sp1/bench/run_tree.sh index 094983c..c8db6c6 100755 --- a/hash/sp1/bench/run_tree.sh +++ b/hash/sp1/bench/run_tree.sh @@ -13,4 +13,4 @@ echo "HASH = $ZKBENCH_HASH_TYPE_TREE" echo "Tree Depth = $ZKBENCH_TREE_DEPTH" # Run the benchmarks -./target/release/bench-script $ZKBENCH_HASH_TYPE_TREE $ZKBENCH_TREE_DEPTH \ No newline at end of file +RUST_LOG=info ./target/release/bench-script $ZKBENCH_HASH_TYPE_TREE $ZKBENCH_TREE_DEPTH \ No newline at end of file diff --git a/hash/sp1/bench/sha256/elf/riscv32im-succinct-zkvm-elf b/hash/sp1/bench/sha256/elf/riscv32im-succinct-zkvm-elf index 3e19cb15ad5e1944444886d8de7e39fb22becb0a..5c22e41a4268a0dd74ded1017877f1e2ba03a8c8 100755 GIT binary patch delta 7447 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 delta 7467 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 odNME=pGzVPR