From 026aee0139d89281aae3a5cfc48071bee68f1429 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Mon, 2 Feb 2026 13:39:50 -0600 Subject: [PATCH] make: Improved benchmarks/testmarks output - Sort by -Si='min(enumerate())' This was an unexpectedly neat trick for ordering result based on input csv, without disabling folding like -i/-I. Note the min is needed because the field is summed before sorting, so an early case with many permutations can end up after later cases by default. Because -i/-I also disables folding, it doesn't have this problem. - Adopted m -> probe rename. - Adopted delta expr, so we can now show n correctly, without accidentally summing already cumulative results. - Changed benchmark fields simtime+simthroughput -> n+t+throughput - Adopted throughput=avg(throughput), so TOTAL is somewhat useful? Unsure if this is the correct way to merge throughput results. --- Makefile | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 97e6a3e7..197e7813 100644 --- a/Makefile +++ b/Makefile @@ -519,7 +519,7 @@ test-list list-tests: test-runner ## Summarize the test results .PHONY: testmarks -testmarks: SUMMARYFLAGS+=-spassed -Sruntime +testmarks: SUMMARYFLAGS+=-Si='min(enumerate())' testmarks: $(TEST_CSV) $(strip ./scripts/csv.py $^ \ -bsuite \ @@ -568,11 +568,15 @@ bench-list list-benches: bench-runner ## Summarize the bench results .PHONY: benchmarks +benchmarks: SUMMARYFLAGS+=-Si='min(enumerate())' benchmarks: $(BENCH_CSV) $(strip ./scripts/csv.py $^ \ - -bcase='%(case)s+%(m)s' \ - -fsimtime='float(bench_simtime)/1.0e9' \ - -fsimthroughput='float(n)/max(float(bench_simtime)/1.0e9,1.0e-9)' \ + -bprobe='%(case)s+%(probe)s' \ + -fn='delta(n, case, probe)' \ + -ft='float(bench_simtime)/1.0e9' \ + -fthroughput='avg( \ + float(delta(n, case, probe)) \ + / max(float(bench_simtime)/1.0e9, 1.0e-9))' \ $(SUMMARYFLAGS)) ## Save the bench results