Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

disable fill_builtin_segment when it is not run in proof_mode #436

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions stwo_cairo_prover/crates/adapted_prover/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,12 @@ fn run(args: impl Iterator<Item = String>) -> Result<(), Error> {
let _span = span!(Level::INFO, "run").entered();
let args = Args::try_parse_from(args)?;

let vm_output: ProverInput =
adapt_vm_output(args.pub_json.as_path(), args.priv_json.as_path(), true)?;
let vm_output: ProverInput = adapt_vm_output(
args.pub_json.as_path(),
args.priv_json.as_path(),
true,
true,
)?;
let prover_config = ConfigBuilder::default()
.track_relations(args.track_relations)
.display_components(args.display_components)
Expand Down
7 changes: 4 additions & 3 deletions stwo_cairo_prover/crates/prover/src/input/plain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ pub fn input_from_plain_casm(
)
.expect("Run failed");
runner.relocate(true).unwrap();
adapt_finished_runner(runner, dev_mode)
adapt_finished_runner(runner, true, dev_mode)
}

// NOTE: the proof will include `step_limit -1` steps.
Expand All @@ -48,7 +48,7 @@ pub fn input_from_plain_casm_with_step_limit(
.expect("Run failed");
runner.relocate(true).unwrap();

adapt_finished_runner(runner, true)
adapt_finished_runner(runner, true, true)
}

fn program_from_casm(
Expand Down Expand Up @@ -83,7 +83,7 @@ fn program_from_casm(
/// component only.
/// # Panics
/// - if the memory or the trace are not relocated.
pub fn adapt_finished_runner(runner: CairoRunner, dev_mode: bool) -> ProverInput {
pub fn adapt_finished_runner(runner: CairoRunner, proof_mode: bool, dev_mode: bool) -> ProverInput {
let _span = tracing::info_span!("adapt_finished_runner").entered();
let memory_iter = runner
.relocated_memory
Expand Down Expand Up @@ -119,6 +119,7 @@ pub fn adapt_finished_runner(runner: CairoRunner, dev_mode: bool) -> ProverInput
MemoryBuilder::from_iter(MemoryConfig::default(), memory_iter),
public_memory_addresses,
memory_segments,
proof_mode,
dev_mode,
)
.unwrap()
Expand Down
27 changes: 17 additions & 10 deletions stwo_cairo_prover/crates/prover/src/input/vm_import/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ fn deserialize_inputs<'a>(
pub fn adapt_vm_output(
public_input_json: &Path,
private_input_json: &Path,
proof_mode: bool,
dev_mode: bool,
) -> Result<ProverInput, VmImportError> {
let _span = span!(Level::INFO, "adapt_vm_output").entered();
Expand Down Expand Up @@ -102,6 +103,7 @@ pub fn adapt_vm_output(
MemoryBuilder::from_iter(MemoryConfig::default(), MemoryEntryIter(&mut memory_file)),
public_memory_addresses,
&public_input.memory_segments,
proof_mode,
dev_mode,
)
}
Expand All @@ -115,21 +117,24 @@ pub fn adapt_to_stwo_input(
mut memory: MemoryBuilder,
public_memory_addresses: Vec<u32>,
memory_segments: &HashMap<&str, MemorySegmentAddresses>,
proof_mode: bool,
dev_mode: bool,
) -> Result<ProverInput, VmImportError> {
let (state_transitions, instruction_by_pc) =
StateTransitions::from_iter(trace_iter, &mut memory, dev_mode);
let mut builtins_segments = BuiltinSegments::from_memory_segments(memory_segments);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::range_check);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::pedersen);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::ecdsa);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::keccak);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::bitwise);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::ec_op);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::poseidon);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::range_check96);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::add_mod);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::mul_mod);
if proof_mode {
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::range_check);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::pedersen);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::ecdsa);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::keccak);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::bitwise);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::ec_op);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::poseidon);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::range_check96);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::add_mod);
builtins_segments.fill_builtin_segment(&mut memory, BuiltinName::mul_mod);
}
Ok(ProverInput {
state_transitions,
instruction_by_pc,
Expand Down Expand Up @@ -207,6 +212,7 @@ pub mod tests {
adapt_vm_output(
d.join("pub.json").as_path(),
d.join("priv.json").as_path(),
true,
false,
)
.expect(
Expand All @@ -221,6 +227,7 @@ pub mod tests {
adapt_vm_output(
d.join("pub.json").as_path(),
d.join("priv.json").as_path(),
true,
false,
)
.expect(
Expand Down
2 changes: 1 addition & 1 deletion stwo_cairo_prover/crates/run_and_prove/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ fn run(args: impl Iterator<Item = String>) -> Result<(), Error> {
let _span = span!(Level::INFO, "run").entered();
let args = Args::try_parse_from(args)?;
let cairo_runner = run_vm(&args.vm_args)?;
let cairo_input = adapt_finished_runner(cairo_runner, false);
let cairo_input = adapt_finished_runner(cairo_runner, args.vm_args.proof_mode, false);
let prover_config = ConfigBuilder::default()
.track_relations(args.track_relations)
.display_components(args.display_components)
Expand Down
2 changes: 1 addition & 1 deletion stwo_cairo_prover/crates/vm_runner/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ fn run(args: impl Iterator<Item = String>) -> Result<ProverInput, Error> {
let _span = span!(Level::INFO, "run").entered();
let args = Args::try_parse_from(args)?;
let cairo_runner = run_vm(&args.vm_args)?;
let cairo_input = adapt_finished_runner(cairo_runner, false);
let cairo_input = adapt_finished_runner(cairo_runner, false, false);

let execution_resources = ExecutionResources::from_prover_input(&cairo_input);
log::info!("Execution resources: {:#?}", execution_resources);
Expand Down
Loading