Skip to content

Commit 1ee9fba

Browse files
authored
[perf] Optimize FriReducedOpeningChip (#1248)
* Refactor FriReducedOpeningChip * Remove redundant codes & update ISA docs * Reduce degree of FriReducedOpeningChip to 3 * Revert degree changes * Fix lint * Update ISA docs
1 parent 2f3ea9d commit 1ee9fba

File tree

15 files changed

+741
-527
lines changed

15 files changed

+741
-527
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/vm/src/arch/testing/mod.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,18 @@ impl VmChipTestBuilder<BabyBear> {
256256
let tester = tester.load(self.execution);
257257
tester.load(self.program)
258258
}
259+
pub fn build_babybear_poseidon2(self) -> VmChipTester<BabyBearPoseidon2Config> {
260+
self.memory
261+
.controller
262+
.borrow_mut()
263+
.finalize(None::<&mut Poseidon2PeripheryChip<BabyBear>>);
264+
let tester = VmChipTester {
265+
memory: Some(self.memory),
266+
..Default::default()
267+
};
268+
let tester = tester.load(self.execution);
269+
tester.load(self.program)
270+
}
259271
}
260272

261273
impl<F: PrimeField32> Default for VmChipTestBuilder<F> {

crates/vm/src/utils/stark_utils.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,13 @@ where
4141
VC::Periphery: Chip<BabyBearPoseidon2Config>,
4242
{
4343
setup_tracing();
44-
let engine = BabyBearPoseidon2Engine::new(FriParameters::standard_fast());
44+
let mut log_blowup = 1;
45+
while config.system().max_constraint_degree > (1 << log_blowup) + 1 {
46+
log_blowup += 1;
47+
}
48+
let engine = BabyBearPoseidon2Engine::new(
49+
FriParameters::standard_with_100_bits_conjectured_security(log_blowup),
50+
);
4551
let vm = VirtualMachine::new(engine, config);
4652
let pk = vm.keygen();
4753
let mut result = vm.execute_and_generate(exe, input).unwrap();

docs/specs/ISA.md

Lines changed: 172 additions & 89 deletions
Large diffs are not rendered by default.

extensions/native/circuit/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ eyre.workspace = true
3030
serde.workspace = true
3131
serde-big-array.workspace = true
3232
bitcode.workspace = true
33+
static_assertions.workspace = true
3334

3435
[dev-dependencies]
3536
openvm-stark-sdk = { workspace = true }

0 commit comments

Comments
 (0)