From b2bdaac8b453e13eb7d66fc0f55923f441264289 Mon Sep 17 00:00:00 2001 From: Manish Kumar Date: Thu, 9 Nov 2023 21:23:52 +0530 Subject: [PATCH] sha256 benchmark added --- .../bench/host/benches/sha256_benchmarks.rs | 68 ++++++++++++++++--- hash/risc0/bench/host/src/lib.rs | 29 +------- 2 files changed, 59 insertions(+), 38 deletions(-) diff --git a/hash/risc0/bench/host/benches/sha256_benchmarks.rs b/hash/risc0/bench/host/benches/sha256_benchmarks.rs index fb0d9d5..c695809 100644 --- a/hash/risc0/bench/host/benches/sha256_benchmarks.rs +++ b/hash/risc0/bench/host/benches/sha256_benchmarks.rs @@ -2,8 +2,8 @@ use host::sha_bench; use criterion::{criterion_group, criterion_main, Criterion}; use rand::RngCore; -fn sha256_1kb(c: &mut Criterion) { - c.bench_function("sha256_bench", |b| { +fn sha256_benchmarks(c: &mut Criterion) { + c.bench_function("Benchmarking sha256 on 1KB of random data:", |b| { //generating 1kb of random data in a vector of u8 let mut data = [0u8; 64]; rand::thread_rng().fill_bytes(&mut data); @@ -12,34 +12,80 @@ fn sha256_1kb(c: &mut Criterion) { // println!("{:?}", input); b.iter(|| { sha_bench(input.clone()); - // hasher.update(data); - // black_box(hasher.finalize()); }); }); - c.bench_function("sha256_bench", |b| { - //generating 1kb of random data in a vector of u8 - let mut data = [0u8; 64]; + c.bench_function("Benchmarking sha256 on 2KB of random data:", |b| { + //generating 2kb of random data in a vector of u8 + let mut data = [0u8; 128]; rand::thread_rng().fill_bytes(&mut data); let input: Vec = data.to_vec(); // println!("{:?}", input); b.iter(|| { sha_bench(input.clone()); - // hasher.update(data); - // black_box(hasher.finalize()); + + }); + }); + + c.bench_function("Benchmarking sha256 on 10KB of random data:", |b| { + //generating 10kb of random data in a vector of u8 + let mut data = [0u8; 1280]; + rand::thread_rng().fill_bytes(&mut data); + let input: Vec = data.to_vec(); + + b.iter(|| { + sha_bench(input.clone()); }); }); - } +// fn sha256_benchmarks_2(c: &mut Criterion) { +// c.bench_function("Benchmarking sha256 on 1KB of random data:", |b| { +// //generating 1kb of random data in a vector of u8 +// let mut data = [0u8; 64]; +// rand::thread_rng().fill_bytes(&mut data); +// let input: Vec = data.to_vec(); + +// // println!("{:?}", input); +// b.iter(|| { +// sha_bench(input.clone()); +// }); +// }); + +// // c.bench_function("Benchmarking sha256 on 2KB of random data:", |b| { +// // //generating 2kb of random data in a vector of u8 +// // let mut data = [0u8; 128]; +// // rand::thread_rng().fill_bytes(&mut data); +// // let input: Vec = data.to_vec(); + +// // // println!("{:?}", input); +// // b.iter(|| { +// // sha_bench(input.clone()); + +// // }); +// // }); + +// // c.bench_function("Benchmarking sha256 on 10KB of random data:", |b| { +// // //generating 10kb of random data in a vector of u8 +// // let mut data = [0u8; 1280]; +// // rand::thread_rng().fill_bytes(&mut data); +// // let input: Vec = data.to_vec(); + +// // b.iter(|| { +// // sha_bench(input.clone()); +// // }); +// // }); + +// } + criterion_group!( name = benches; // Setting the sample size to 10 for quick benchmarks // Becuase running default number of samples(100) takes a lot of time config = Criterion::default().sample_size(10); - targets = sha256_1kb + targets = sha256_benchmarks //, sha256_benchmarks_2 ); // criterion_group!(benches, sha256_bench); diff --git a/hash/risc0/bench/host/src/lib.rs b/hash/risc0/bench/host/src/lib.rs index 8ff50cd..2d48276 100644 --- a/hash/risc0/bench/host/src/lib.rs +++ b/hash/risc0/bench/host/src/lib.rs @@ -37,35 +37,10 @@ pub fn sha_bench(input: Vec) { // println!("output: {:?}", _output); // Optional: Verify receipt to confirm that recipients will also be able to // verify your receipt - // receipt.verify(METHOD_ID).unwrap(); + receipt.verify(METHOD_ID).unwrap(); } +#[allow(dead_code)] fn main() { sha_bench(vec![97, 98, 99, 100, 101, 102, 103, 104]); } - -// #[cfg(test)] -// mod benches { -// extern crate criterion; - -// use criterion::{black_box, criterion_group, criterion_main, Criterion}; -// use crate::main as your_function_to_benchmark; -// // Your benchmark function - -// fn my_benchmark(c: &mut Criterion) { -// c.bench_function("my_function", |b| { -// b.iter(|| { -// // Code to benchmark -// let result = your_function_to_benchmark(); -// black_box(result); -// }); -// }); -// } - -// // Define other benchmark functions here - -// criterion_group!(benches, my_benchmark); -// criterion_main!(benches); -// } - -