diff --git a/crates/ipu-codegen/src/package.rs b/crates/ipu-codegen/src/package.rs index 4dd265b..3cfc4a2 100644 --- a/crates/ipu-codegen/src/package.rs +++ b/crates/ipu-codegen/src/package.rs @@ -1279,6 +1279,17 @@ pub fn capture_exchange_finalist( &Ipu21CostModel, planning.exchange_schedule_finalists.max(4), )?; + for (index, mid) in finalists.iter().enumerate() { + let mut text = String::new(); + for op in &mid.operations { + text.push_str(&format!("{:?} {:?} {:?}\n", op.source, op.kind, crate::estimate::operation_cost(op, &mid.values))); + for id in op.inputs.iter().chain(&op.results) { + text.push_str(&format!(" {:?}\n", mid.values[id.index() as usize])); + } + } + std::fs::write(format!("/tmp/b2-historical-{index}.txt"), text).unwrap(); + } + if std::env::var_os("DUMP_MID_ONLY").is_some() { return Err(invalid("diagnostic mid dump complete")); } let mid = finalists .get(finalist) .ok_or_else(|| invalid("exchange capture finalist out of range"))?;