Skip to content

Commit 3ef65de

Browse files
author
Aurélien Nicolas
committed
Merge branch 'develop' into bus-auto
2 parents 03690de + 5cf9a37 commit 3ef65de

File tree

5 files changed

+592
-851
lines changed

5 files changed

+592
-851
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
**/*.rs.bk
33
.vscode
44
**/*.html
5-
.DS_Store
5+
.DS_Store

halo2_proofs/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,11 @@ log = "0.4.17"
6767

6868
# timer
6969
ark-std = { version = "0.3.0" }
70-
env_logger = "0.8.0"
7170

7271
[dev-dependencies]
7372
assert_matches = "1.5"
7473
criterion = "0.3"
74+
env_logger = "0.8.0"
7575
gumdrop = "0.8"
7676
proptest = "1"
7777
rand_core = { version = "0.6", default-features = false, features = ["getrandom"] }

halo2_proofs/src/circuit/floor_planner/single_pass.rs

Lines changed: 29 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ use std::ops::Range;
66
use std::sync::{Arc, Mutex};
77
use std::time::Instant;
88

9+
use rayon::prelude::{IndexedParallelIterator, IntoParallelIterator, ParallelIterator};
10+
911
use ff::Field;
1012

1113
use ark_std::{end_timer, start_timer};
@@ -258,39 +260,28 @@ impl<'a, F: Field, CS: Assignment<F> + 'a> Layouter<F> for SingleChipLayouter<'a
258260
let ref_sub_cs = sub_cs.iter_mut().collect();
259261
let sub_layouters = self.fork(ref_sub_cs)?;
260262
let regions_2nd_pass = Instant::now();
261-
let ret = crossbeam::scope(|scope| {
262-
let mut handles = vec![];
263-
for (i, (mut assignment, mut sub_layouter)) in assignments
264-
.into_iter()
265-
.zip(sub_layouters.into_iter())
266-
.enumerate()
267-
{
263+
let ret = assignments
264+
.into_par_iter()
265+
.zip(sub_layouters.into_par_iter())
266+
.enumerate()
267+
.map(|(i, (mut assignment, mut sub_layouter))| {
268268
let region_name = format!("{}_{}", region_name, i);
269-
handles.push(scope.spawn(move |_| {
270-
let sub_region_2nd_pass = Instant::now();
271-
sub_layouter.cs.enter_region(|| region_name.clone());
272-
let mut region =
273-
SingleChipLayouterRegion::new(&mut sub_layouter, (region_index + i).into());
274-
let region_ref: &mut dyn RegionLayouter<F> = &mut region;
275-
let result = assignment(region_ref.into());
276-
let constant = region.constants.clone();
277-
sub_layouter.cs.exit_region();
278-
log::debug!(
279-
"region {} 2nd pass synthesis took {:?}",
280-
region_name,
281-
sub_region_2nd_pass.elapsed()
282-
);
283-
284-
(result, constant)
285-
}));
286-
}
287-
288-
handles
289-
.into_iter()
290-
.map(|handle| handle.join().expect("handle.join should never fail"))
291-
.collect::<Vec<_>>()
292-
})
293-
.expect("scope should not fail");
269+
let sub_region_2nd_pass = Instant::now();
270+
sub_layouter.cs.enter_region(|| region_name.clone());
271+
let mut region =
272+
SingleChipLayouterRegion::new(&mut sub_layouter, (region_index + i).into());
273+
let region_ref: &mut dyn RegionLayouter<F> = &mut region;
274+
let result = assignment(region_ref.into());
275+
let constant = region.constants.clone();
276+
sub_layouter.cs.exit_region();
277+
log::debug!(
278+
"region {} 2nd pass synthesis took {:?}",
279+
region_name,
280+
sub_region_2nd_pass.elapsed()
281+
);
282+
(result, constant)
283+
})
284+
.collect::<Vec<_>>();
294285
let cs_merge_time = Instant::now();
295286
let num_sub_cs = sub_cs.len();
296287
self.cs.merge(sub_cs)?;
@@ -490,17 +481,15 @@ impl<'r, 'a, F: Field, CS: Assignment<F> + 'a> RegionLayouter<F>
490481
}
491482

492483
fn query_advice(&self, column: Column<Advice>, offset: usize) -> Result<F, Error> {
493-
self.layouter.cs.query_advice(
494-
column,
495-
*self.layouter.regions[*self.region_index] + offset,
496-
)
484+
self.layouter
485+
.cs
486+
.query_advice(column, *self.layouter.regions[*self.region_index] + offset)
497487
}
498488

499489
fn query_fixed(&self, column: Column<Fixed>, offset: usize) -> Result<F, Error> {
500-
self.layouter.cs.query_fixed(
501-
column,
502-
*self.layouter.regions[*self.region_index] + offset,
503-
)
490+
self.layouter
491+
.cs
492+
.query_fixed(column, *self.layouter.regions[*self.region_index] + offset)
504493
}
505494

506495
fn assign_advice<'v>(

halo2_proofs/src/plonk/prover.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -268,11 +268,7 @@ pub fn create_proof<
268268
.ok_or(Error::BoundsFailure)
269269
}
270270

271-
fn query_fixed(
272-
&self,
273-
column: Column<Fixed>,
274-
row: usize,
275-
) -> Result<F, Error> {
271+
fn query_fixed(&self, column: Column<Fixed>, row: usize) -> Result<F, Error> {
276272
self.fixed_values
277273
.get(column.index())
278274
.and_then(|v| v.get(row))

0 commit comments

Comments
 (0)