From 45dfef5c47c50facd8d096f8c1a28d144ef50174 Mon Sep 17 00:00:00 2001 From: Matthias Goergens Date: Wed, 15 Jan 2025 07:07:33 +0000 Subject: [PATCH] New plot --- plotting/plot.gnuplot | 12 ++++++------ plotting/sp1_ceno_mem.png | Bin 0 -> 30740 bytes 2 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 plotting/sp1_ceno_mem.png diff --git a/plotting/plot.gnuplot b/plotting/plot.gnuplot index 24276298..4151618c 100644 --- a/plotting/plot.gnuplot +++ b/plotting/plot.gnuplot @@ -5,14 +5,14 @@ # 1) Choose SVG output set terminal png size 1600,1200 font "Helvetica,10" -set output 'sp1_ceno_cpu_time.png' +set output 'sp1_ceno_mem.png' # 2) Basic plot settings set title "Scatterplot of sp1 vs ceno for sorting a vector" set key left box set grid set xlabel "input length" -set ylabel "time to prove sorting (s)" +set ylabel "maximum memory in kiB" # =========== DEFINE FUNCTIONS FOR FIT =========== # We'll fit each data set separately to its own line. @@ -22,16 +22,16 @@ f_ceno(x) = a_ceno*x + b_ceno # =========== DO THE FITS =========== # Fit sp1 data -fit f_sp1(x) "sp1.data" using 1:($3 + $4) via a_sp1, b_sp1 +fit f_sp1(x) "sp1.data" using 1:6 via a_sp1, b_sp1 # Fit ceno data -fit f_ceno(x) "ceno.data" using 1:($3 + $4) via a_ceno, b_ceno +fit f_ceno(x) "ceno.data" using 1:6 via a_ceno, b_ceno # 3) Plot: sp1 and ceno from the same data file -plot "sp1.data" using 1:($3 + $4) \ +plot "sp1.data" using 1:6 \ with points title "SP1 with AVX512", \ f_sp1(x) title sprintf("sp1 fit: y=%.5fx+%.3f", a_sp1, b_sp1) lw 2, \ - "ceno.data" using 1:($3 + $4) \ + "ceno.data" using 1:6 \ with points title "Ceno", \ f_ceno(x) title sprintf("ceno fit: y=%.5fx+%.3f", a_ceno, b_ceno) lw 2 diff --git a/plotting/sp1_ceno_mem.png b/plotting/sp1_ceno_mem.png new file mode 100644 index 0000000000000000000000000000000000000000..5dc63f0d7733e3d55117d6546c154e3eb6afd96d GIT binary patch literal 30740 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