diff --git a/backend-comparison/benches/custom_gelu.rs b/backend-comparison/benches/custom_gelu.rs index 1b1ff72770..ed6ea4949a 100644 --- a/backend-comparison/benches/custom_gelu.rs +++ b/backend-comparison/benches/custom_gelu.rs @@ -27,10 +27,9 @@ impl Benchmark for CustomGeluBenchmark { fn name(&self) -> String { match self.autodiff { - true => "gelu_autodiff", - false => "gelu", + true => format!("gelu_autodiff_{:?}", self.kind), + false => format!("gelu_{:?}", self.kind), } - .into() } fn options(&self) -> Option { diff --git a/backend-comparison/src/persistence/base.rs b/backend-comparison/src/persistence/base.rs index 9ce8f1f4dd..a85f7095dd 100644 --- a/backend-comparison/src/persistence/base.rs +++ b/backend-comparison/src/persistence/base.rs @@ -242,20 +242,33 @@ pub(crate) struct BenchmarkCollection { impl Display for BenchmarkCollection { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + // Compute the max length for each column + let mut max_name_len = 0; + let mut max_backend_len = 0; + for record in self.records.iter() { + let backend_name = [record.backend.clone(), record.device.clone()].join("-"); + max_name_len = max_name_len.max(record.results.name.len()); + max_backend_len = max_backend_len.max(backend_name.len()); + } + // Header writeln!( f, - "| {0:<15}| {1:<35}| {2:<15}|\n|{3:-<16}|{4:-<36}|{5:-<16}|", - "Benchmark", "Backend", "Median", "", "", "" + "| {:width_name$}--|{:->width_backend$}--|----------------|", + "Benchmark", "Backend", "", "", width_name = max_name_len, width_backend = max_backend_len )?; + // Table entries for record in self.records.iter() { - let backend = [record.backend.clone(), record.device.clone()].join("-"); + let backend_name = [record.backend.clone(), record.device.clone()].join("-"); writeln!( f, - "| {0:<15}| {1:<35}| {2:<15.3?}|", - record.results.name, backend, record.results.computed.median + "| {: