Skip to content

Commit ee2f1e7

Browse files
feat: attempting compilation of smaller chunks for faster parallel
processing
1 parent 411fbcd commit ee2f1e7

File tree

1 file changed

+9
-14
lines changed
  • crates/intrinsic-test/src/common

1 file changed

+9
-14
lines changed

crates/intrinsic-test/src/common/mod.rs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ pub trait SupportedArchitectureTest {
4949
fn cpp_compilation(&self) -> Option<CppCompilation>;
5050

5151
fn build_c_file(&self) -> bool {
52-
let (chunk_size, chunk_count) = chunk_info(self.intrinsics().len());
52+
let (chunk_size, chunk_count) = manual_chunk(self.intrinsics().len(), 100);
5353

5454
let cpp_compiler_wrapped = self.cpp_compilation();
5555

@@ -72,15 +72,6 @@ pub trait SupportedArchitectureTest {
7272
return Err(format!("Error writing to mod_{i}.cpp: {error:?}"));
7373
}
7474

75-
println!("Finished writing mod_{i}.cpp");
76-
77-
Ok(())
78-
})
79-
.collect::<Result<(), String>>()
80-
.unwrap();
81-
82-
(0..chunk_count)
83-
.map(|i| {
8475
// compile this cpp file into a .o file.
8576
//
8677
// This is done because `cpp_compiler_wrapped` is None when
@@ -135,7 +126,7 @@ pub trait SupportedArchitectureTest {
135126
fn build_rust_file(&self) -> bool {
136127
std::fs::create_dir_all("rust_programs/src").unwrap();
137128

138-
let (chunk_size, chunk_count) = chunk_info(self.intrinsics().len());
129+
let (chunk_size, chunk_count) = manual_chunk(self.intrinsics().len(), 100);
139130

140131
let mut cargo = File::create("rust_programs/Cargo.toml").unwrap();
141132
write_bin_cargo_toml(&mut cargo, chunk_count).unwrap();
@@ -205,9 +196,13 @@ pub trait SupportedArchitectureTest {
205196
}
206197
}
207198

208-
pub fn chunk_info(intrinsic_count: usize) -> (usize, usize) {
209-
let available_parallelism = std::thread::available_parallelism().unwrap().get();
210-
let chunk_size = intrinsic_count.div_ceil(Ord::min(available_parallelism, intrinsic_count));
199+
// pub fn chunk_info(intrinsic_count: usize) -> (usize, usize) {
200+
// let available_parallelism = std::thread::available_parallelism().unwrap().get();
201+
// let chunk_size = intrinsic_count.div_ceil(Ord::min(available_parallelism, intrinsic_count));
202+
203+
// (chunk_size, intrinsic_count.div_ceil(chunk_size))
204+
// }
211205

206+
pub fn manual_chunk(intrinsic_count: usize, chunk_size: usize) -> (usize, usize) {
212207
(chunk_size, intrinsic_count.div_ceil(chunk_size))
213208
}

0 commit comments

Comments
 (0)