mirror of
https://github.com/babybear-labs/benchmark.git
synced 2026-01-09 23:37:54 -05:00
update bench jolt
This commit is contained in:
918
jolt/algos/fib/Cargo.lock
generated
918
jolt/algos/fib/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
[package]
|
||||
name = "nth_prime-native_jolt"
|
||||
name = "fib"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
@@ -12,7 +12,7 @@ codegen-units = 1
|
||||
lto = "fat"
|
||||
|
||||
[dependencies]
|
||||
jolt = { package = "jolt-sdk", git = "https://github.com/a16z/jolt", rev = "dd9e5c4bcf36ffeb75a576351807f8d86c33ec66", features = ["host"] }
|
||||
jolt = { package = "jolt-sdk", git = "https://github.com/a16z/jolt", features = ["host"] }
|
||||
guest = { path = "./guest" }
|
||||
serde_json = "1.0.128"
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
Input n read from JSON: 10
|
||||
|
||||
Trace length: 369
|
||||
Prover Time 21.068039375s
|
||||
Proof Size 281060
|
||||
|
||||
Verify Time 40.597584ms
|
||||
|
||||
result: 55
|
||||
valid: true
|
||||
Total Time elapsed: 21.249532792s
|
||||
@@ -11,4 +11,4 @@ path = "./src/lib.rs"
|
||||
guest = []
|
||||
|
||||
[dependencies]
|
||||
jolt = { package = "jolt-sdk", git = "https://github.com/a16z/jolt", rev = "dd9e5c4bcf36ffeb75a576351807f8d86c33ec66", features = ["guest-std"] }
|
||||
jolt = { package = "jolt-sdk", git = "https://github.com/a16z/jolt", features = ["guest-std"] }
|
||||
@@ -10,6 +10,5 @@ fn fib(n: u64) -> u128 {
|
||||
a = b;
|
||||
b = sum;
|
||||
}
|
||||
|
||||
b
|
||||
}
|
||||
1
jolt/algos/fib/input
Normal file
1
jolt/algos/fib/input
Normal file
@@ -0,0 +1 @@
|
||||
50000
|
||||
Binary file not shown.
@@ -1,3 +1,3 @@
|
||||
[toolchain]
|
||||
channel = "nightly-2024-09-30"
|
||||
channel = "nightly-2024-08-01"
|
||||
targets = ["riscv32im-unknown-none-elf"]
|
||||
|
||||
@@ -1,41 +1,32 @@
|
||||
use jolt::Serializable;
|
||||
use serde_json::Value;
|
||||
use std::fs::File;
|
||||
use std::io::BufReader;
|
||||
use std::io::{self, Read};
|
||||
use std::num::ParseIntError;
|
||||
|
||||
pub fn main() {
|
||||
let file = File::open("../../inputs/data.json").expect("Failed to open input file");
|
||||
let reader = BufReader::new(file);
|
||||
let json: Value = serde_json::from_reader(reader).expect("Failed to parse JSON");
|
||||
let n = json["n"].as_u64().expect("Failed to parse n from JSON");
|
||||
println!("Input n read from JSON: {}", n);
|
||||
pub fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
||||
let mut file = File::open("input")?;
|
||||
let mut contents = String::new();
|
||||
file.read_to_string(&mut contents)?;
|
||||
let n: u64 = contents.trim().parse()?;
|
||||
println!("n: {}", n);
|
||||
|
||||
let start = std::time::Instant::now();
|
||||
// let prover_execution_trace = guest::analyze_fib(n);
|
||||
// prover_execution_trace.clone().write_to_file("trace.txt".into()).expect("should write");
|
||||
// let prover_execution_trace_duration = start.elapsed();
|
||||
// println!("Trace length: {:?}", prover_execution_trace.trace_len());
|
||||
// println!("Prover Execution Time {:?}", prover_execution_trace_duration);
|
||||
println!();
|
||||
|
||||
let (prove_fib, verify_fib) = guest::build_fib();
|
||||
let total = std::time::Instant::now();
|
||||
let (prove, verify) = guest::build_fib();
|
||||
println!("SRS Compute and Guest Program Compile Time: {:?}", total.elapsed());
|
||||
|
||||
let proving_time = std::time::Instant::now();
|
||||
let (output, proof) = prove_fib(n);
|
||||
let (output, proof) = prove(n);
|
||||
println!("Prover Time {:?}", proving_time.elapsed());
|
||||
|
||||
proof
|
||||
.save_to_file("proof.bin")
|
||||
.expect("Failed to save proof to file");
|
||||
println!("Proof Size {:?}", proof.size().unwrap());
|
||||
println!();
|
||||
|
||||
let verify_time = std::time::Instant::now();
|
||||
let is_valid = verify_fib(proof);
|
||||
let is_valid = verify(proof);
|
||||
println!("Verify Time {:?}", verify_time.elapsed());
|
||||
println!();
|
||||
|
||||
println!("result: {:?}", output);
|
||||
println!("valid: {}", is_valid);
|
||||
|
||||
println!("Total Time elapsed: {:?}", start.elapsed());
|
||||
}
|
||||
println!("isProofValid: {}", is_valid);
|
||||
println!("Total Time Elapsed: (build + prove + verify): {:?}", total.elapsed());
|
||||
Ok(())
|
||||
}
|
||||
Binary file not shown.
@@ -1,9 +0,0 @@
|
||||
Trace length: 141
|
||||
Prover Time 31.297901583s
|
||||
Proof Size 266277
|
||||
|
||||
Verify Time 45.633542ms
|
||||
|
||||
result: 30
|
||||
valid: true
|
||||
Total Time elapsed: 31.505612833s
|
||||
Binary file not shown.
@@ -1,15 +1,14 @@
|
||||
use jolt::Serializable;
|
||||
|
||||
pub fn main() {
|
||||
let start = std::time::Instant::now();
|
||||
let total = std::time::Instant::now();
|
||||
let (prove, verify) = guest::build_pos();
|
||||
println!("SRS Compute and Guest Program Compile Time: {:?}", total.elapsed());
|
||||
|
||||
let proving_time = std::time::Instant::now();
|
||||
let (output, proof) = prove();
|
||||
let input = &[5u8; 10000];
|
||||
let (output, proof) = prove(input);
|
||||
println!("Prover Time {:?}", proving_time.elapsed());
|
||||
|
||||
proof
|
||||
.save_to_file("proof.bin")
|
||||
.expect("Failed to save proof to file");
|
||||
println!("Proof Size {:?}", proof.size().unwrap());
|
||||
println!();
|
||||
|
||||
@@ -18,8 +17,6 @@ pub fn main() {
|
||||
println!("Verify Time {:?}", verify_time.elapsed());
|
||||
println!();
|
||||
|
||||
println!("result: {:?}", output);
|
||||
println!("valid: {}", is_valid);
|
||||
|
||||
println!("Total Time elapsed: {:?}", start.elapsed());
|
||||
println!("isProofValid: {}", is_valid);
|
||||
println!("Total Time Elapsed: (build + prove + verify): {:?}", total.elapsed());
|
||||
}
|
||||
|
||||
18
jolt/algos/sha256/Cargo.lock
generated
18
jolt/algos/sha256/Cargo.lock
generated
@@ -1868,15 +1868,6 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nth_prime-native_jolt"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"guest",
|
||||
"jolt-sdk",
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nu-ansi-term"
|
||||
version = "0.46.0"
|
||||
@@ -2758,6 +2749,15 @@ dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"guest",
|
||||
"jolt-sdk",
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha2"
|
||||
version = "0.10.8"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[package]
|
||||
name = "nth_prime-native_jolt"
|
||||
name = "sha"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
use sha2::{Sha256, Digest};
|
||||
|
||||
#[jolt::provable]
|
||||
#[jolt::provable(max_input_size = 20000, max_output_size = 20000)]
|
||||
fn sha2(input: &[u8]) -> [u8; 32] {
|
||||
let mut hasher = Sha256::new();
|
||||
hasher.update(input);
|
||||
|
||||
Binary file not shown.
@@ -1,3 +1,3 @@
|
||||
[toolchain]
|
||||
channel = "nightly-2024-08-01"
|
||||
targets = ["riscv32im-unknown-none-elf"]
|
||||
targets = ["riscv32im-unknown-none-elf"]
|
||||
@@ -1,27 +1,22 @@
|
||||
use jolt::Serializable;
|
||||
|
||||
pub fn main() {
|
||||
let start = std::time::Instant::now();
|
||||
let (prove_sha2, verify_sha2) = guest::build_sha2();
|
||||
let total = std::time::Instant::now();
|
||||
let (prove, verify) = guest::build_sha2();
|
||||
println!("SRS Compute and Guest Program Compile Time: {:?}", total.elapsed());
|
||||
|
||||
let proving_time = std::time::Instant::now();
|
||||
|
||||
let input = &[5u8; 4000];
|
||||
let (output, proof) = prove_sha2(input);
|
||||
let input = &[5u8; 10000];
|
||||
let (output, proof) = prove(input);
|
||||
println!("Prover Time {:?}", proving_time.elapsed());
|
||||
|
||||
proof
|
||||
.save_to_file("proof.bin")
|
||||
.expect("Failed to save proof to file");
|
||||
println!("Proof Size {:?}", proof.size().unwrap());
|
||||
println!();
|
||||
|
||||
let verify_time = std::time::Instant::now();
|
||||
let is_valid = verify_sha2(proof);
|
||||
let is_valid = verify(proof);
|
||||
println!("Verify Time {:?}", verify_time.elapsed());
|
||||
println!();
|
||||
|
||||
println!("result: {:?}", output);
|
||||
println!("valid: {}", is_valid);
|
||||
|
||||
println!("Total Time elapsed: {:?}", start.elapsed());
|
||||
}
|
||||
println!("isProofValid: {}", is_valid);
|
||||
println!("Total Time Elapsed: (build + prove + verify): {:?}", total.elapsed());
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"n": 37500,
|
||||
"expected": 541
|
||||
}
|
||||
Reference in New Issue
Block a user