mirror of
https://github.com/arnaucube/hyperplonk.git
synced 2026-01-11 08:31:29 +01:00
Batch all (#89)
- use sumcheck to batch open PCS - split Prod and witness into two batches - benchmark code
This commit is contained in:
51
bench_results/plot_component
Normal file
51
bench_results/plot_component
Normal file
@@ -0,0 +1,51 @@
|
||||
filename = 'pie_chart.txt'
|
||||
set terminal postscript eps enhanced color font "18"
|
||||
set size square
|
||||
set output "components.eps"
|
||||
|
||||
rowi = 0
|
||||
rowf = 7
|
||||
|
||||
# obtain sum(column(2)) from rows `rowi` to `rowf`
|
||||
set datafile separator ','
|
||||
stats filename u 2 every ::rowi::rowf noout prefix "A"
|
||||
|
||||
# rowf should not be greater than length of file
|
||||
rowf = (rowf-rowi > A_records - 1 ? A_records + rowi - 1 : rowf)
|
||||
|
||||
angle(x)=x*360/A_sum
|
||||
percentage(x)=x*100/A_sum
|
||||
|
||||
# circumference dimensions for pie-chart
|
||||
centerX=0
|
||||
centerY=0
|
||||
radius=1
|
||||
|
||||
# label positions
|
||||
yposmin = 0.0
|
||||
yposmax = 0.95*radius
|
||||
xpos = -0.8*radius
|
||||
ypos(i) = -2.2*radius + yposmax - i*(yposmax-yposmin)/(1.0*rowf-rowi)
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# now we can configure the canvas
|
||||
set style fill solid 1 # filled pie-chart
|
||||
unset key # no automatic labels
|
||||
unset tics # remove tics
|
||||
unset border # remove borders; if some label is missing, comment to see what is happening
|
||||
|
||||
set size ratio -1 # equal scale length
|
||||
set xrange [-radius:3*radius] # [-1:2] leaves space for labels
|
||||
set yrange [-3*radius:radius] # [-1:1]
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
pos = 0 # init angle
|
||||
colour = 0 # init colour
|
||||
|
||||
# 1st line: plot pie-chart
|
||||
# 2nd line: draw colored boxes at (xpos):(ypos)
|
||||
# 3rd line: place labels at (xpos+offset):(ypos)
|
||||
plot filename u (centerX):(centerY):(radius):(pos):(pos=pos+angle($2)):(colour=colour+1) every ::rowi::rowf w circle lc var,\
|
||||
for [i=0:rowf-rowi] '+' u (xpos):(ypos(i)) w p pt 5 ps 4 lc i+1,\
|
||||
for [i=0:rowf-rowi] filename u (xpos):(ypos(i)):(sprintf('%04.1f%% %s', percentage($2), stringcolumn(1))) every ::i+rowi::i+rowi w labels left offset 3,0
|
||||
|
||||
31
bench_results/plot_high_degree
Normal file
31
bench_results/plot_high_degree
Normal file
@@ -0,0 +1,31 @@
|
||||
set terminal postscript eps enhanced color font "18"
|
||||
filename = '64threads_growing_degree.txt'
|
||||
set output "grow_degree.eps"
|
||||
|
||||
# set font "32"
|
||||
|
||||
set key left top
|
||||
set grid
|
||||
# set logscale y
|
||||
# set logscale x
|
||||
|
||||
|
||||
set title font ",64"
|
||||
set key font ",18"
|
||||
set xtics font ",20"
|
||||
set ytics font ",20"
|
||||
set xlabel font ",20"
|
||||
set ylabel font ",20"
|
||||
|
||||
# set key title "IOP proving time"
|
||||
set key title font ", 20"
|
||||
# set key title "2^{15} constraints"
|
||||
set xlabel "degree d"
|
||||
set ylabel 'time (us)'
|
||||
# set yrange []
|
||||
# set xrange [500000:1100000]
|
||||
# set xtics (0, 1,2,4,8,16,32)
|
||||
plot filename using 1:2 w lp t "q_Lw_1 + q_Rw_2 + q_Mw_1^{d-1}w_2 + q_C = 0",
|
||||
|
||||
|
||||
reset
|
||||
59
bench_results/plot_iop
Normal file
59
bench_results/plot_iop
Normal file
@@ -0,0 +1,59 @@
|
||||
set terminal postscript eps enhanced color font "18"
|
||||
sumcheck = 'iop/sum_check.txt'
|
||||
zerocheck = 'iop/zero_check.txt'
|
||||
permcheck = 'iop/perm_check.txt'
|
||||
prodcheck = 'iop/prod_check.txt'
|
||||
|
||||
set output "iop_prover.eps"
|
||||
|
||||
set font "64"
|
||||
|
||||
set key left
|
||||
set grid
|
||||
set logscale y
|
||||
|
||||
set title font ",64"
|
||||
set key font ",18"
|
||||
set xtics font ",20"
|
||||
set ytics font ",20"
|
||||
set xlabel font ",20"
|
||||
set ylabel font ",20"
|
||||
|
||||
set key title "IOP proving time"
|
||||
set key title font ", 20"
|
||||
set xlabel "\#variables"
|
||||
set ylabel 'time (ms)'
|
||||
# set xtics (4,8,16,32,64)
|
||||
plot sumcheck using 1:2 w lp t "Sum Check",\
|
||||
zerocheck using 1:2 w lp t "Zero Check",\
|
||||
prodcheck using 1:2 w lp t "Prod Check",\
|
||||
permcheck using 1:2 w lp t "Perm Check",
|
||||
reset
|
||||
|
||||
|
||||
# set terminal postscript eps enhanced color
|
||||
# sumcheck = 'iop/sum_check.txt'
|
||||
# zerocheck = 'iop/zero_check.txt'
|
||||
# permcheck = 'iop/perm_check.txt'
|
||||
# prodcheck = 'iop/prod_check.txt'
|
||||
|
||||
# set output "iop_verifier.eps"
|
||||
|
||||
# set font "32"
|
||||
|
||||
# set key left
|
||||
# set grid
|
||||
# set logscale y
|
||||
|
||||
# set title font ",10"
|
||||
# set key title "IOP verifier time"
|
||||
# set xlabel "\#variables"
|
||||
# set ylabel 'log time (us)'
|
||||
# # set xtics (4,8,16,32,64)
|
||||
# plot sumcheck using 1:3 w lp t "Sum Check",\
|
||||
# zerocheck using 1:3 w lp t "Zero Check",\
|
||||
# prodcheck using 1:3 w lp t "Prod Check",\
|
||||
# permcheck using 1:3 w lp t "Perm Check",
|
||||
# reset
|
||||
|
||||
|
||||
50
bench_results/plot_msm
Normal file
50
bench_results/plot_msm
Normal file
@@ -0,0 +1,50 @@
|
||||
filename = 'msm_vs_eval.txt'
|
||||
set terminal postscript eps enhanced color font "18"
|
||||
set size square
|
||||
set output "msm_vs_eval.eps"
|
||||
|
||||
rowi = 0
|
||||
rowf = 3
|
||||
|
||||
# obtain sum(column(2)) from rows `rowi` to `rowf`
|
||||
set datafile separator ','
|
||||
stats filename u 2 every ::rowi::rowf noout prefix "A"
|
||||
|
||||
# rowf should not be greater than length of file
|
||||
rowf = (rowf-rowi > A_records - 1 ? A_records + rowi - 1 : rowf)
|
||||
|
||||
angle(x)=x*360/A_sum
|
||||
percentage(x)=x*100/A_sum
|
||||
|
||||
# circumference dimensions for pie-chart
|
||||
centerX=0
|
||||
centerY=0
|
||||
radius=1
|
||||
|
||||
# label positions
|
||||
yposmin = 0.0
|
||||
yposmax = 0.95*radius
|
||||
xpos = -0.8*radius
|
||||
ypos(i) = -2.2*radius + yposmax - i*(yposmax-yposmin)/(1.0*rowf-rowi)
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# now we can configure the canvas
|
||||
set style fill solid 1 # filled pie-chart
|
||||
unset key # no automatic labels
|
||||
unset tics # remove tics
|
||||
unset border # remove borders; if some label is missing, comment to see what is happening
|
||||
|
||||
set size ratio -1 # equal scale length
|
||||
set xrange [-radius:radius] # [-1:2] leaves space for labels
|
||||
set yrange [-3*radius:radius] # [-1:1]
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
pos = 0 # init angle
|
||||
colour = 0 # init colour
|
||||
|
||||
# 1st line: plot pie-chart
|
||||
# 2nd line: draw colored boxes at (xpos):(ypos)
|
||||
# 3rd line: place labels at (xpos+offset):(ypos)
|
||||
plot filename u (centerX):(centerY):(radius):(pos):(pos=pos+angle($2)):(colour=colour+1) every ::rowi::rowf w circle lc var,\
|
||||
for [i=0:rowf-rowi] '+' u (xpos):(ypos(i)) w p pt 5 ps 4 lc i+1,\
|
||||
for [i=0:rowf-rowi] filename u (xpos):(ypos(i)):(sprintf('%05.2f%% %s', percentage($2), stringcolumn(1))) every ::i+rowi::i+rowi w labels left offset 3,0
|
||||
32
bench_results/plot_multi_thread
Normal file
32
bench_results/plot_multi_thread
Normal file
@@ -0,0 +1,32 @@
|
||||
set terminal postscript eps enhanced color "18"
|
||||
filename = 'degree_16_grow_threads_1006.txt'
|
||||
set output "vanilla_multi_threads.eps"
|
||||
|
||||
# set font "32"
|
||||
|
||||
# set font "32"
|
||||
|
||||
set key left
|
||||
set grid
|
||||
set logscale y
|
||||
|
||||
set title font ",64"
|
||||
set key font ",18"
|
||||
set xtics font ",20"
|
||||
set ytics font ",20"
|
||||
set xlabel font ",20"
|
||||
set ylabel font ",20"
|
||||
set key title font ", 20"
|
||||
|
||||
set key title "Multi-threading\n performance"
|
||||
set xlabel "\#threads"
|
||||
set ylabel 'time (us)'
|
||||
plot filename using 1:2 w lp t "1 thread",\
|
||||
filename using 1:3 w lp t "2 threads",\
|
||||
filename using 1:4 w lp t "4 threads",\
|
||||
filename using 1:5 w lp t "8 threads",\
|
||||
filename using 1:6 w lp t "16 threads",\
|
||||
filename using 1:7 w lp t "32 threads",\
|
||||
|
||||
|
||||
reset
|
||||
55
bench_results/plot_spartan
Normal file
55
bench_results/plot_spartan
Normal file
@@ -0,0 +1,55 @@
|
||||
set terminal postscript eps enhanced color font "18"
|
||||
spartan = 'comparison/spartan.txt'
|
||||
hyperplonk = 'comparison/hyperplonk.txt'
|
||||
jellyfish = 'comparison/jellyfish.txt'
|
||||
|
||||
set output "spartan_prover.eps"
|
||||
|
||||
set title font ",64"
|
||||
set key font ",18"
|
||||
set xtics font ",20"
|
||||
set ytics font ",20"
|
||||
set xlabel font ",20"
|
||||
set ylabel font ",20"
|
||||
|
||||
set key left
|
||||
set grid
|
||||
set logscale y
|
||||
|
||||
set xrange [9:20]
|
||||
# set title font ",10"
|
||||
# set key title "Proving time"
|
||||
set xlabel "log \# constraits"
|
||||
set ylabel 'time (sec)'
|
||||
# set xtics (4,8,16,32,64)
|
||||
plot spartan using 1:2 w lp t "spartan",\
|
||||
jellyfish using 1:2 w lp t "jellyfish plonk",\
|
||||
hyperplonk using 1:2 w lp t "hyperplonk",
|
||||
reset
|
||||
|
||||
set terminal postscript eps enhanced color font "18"
|
||||
ratio = 'comparison/ratio.txt'
|
||||
|
||||
set output "ratio.eps"
|
||||
|
||||
|
||||
set title font ",64"
|
||||
set key font ",18"
|
||||
set xtics font ",20"
|
||||
set ytics font ",20"
|
||||
set xlabel font ",20"
|
||||
set ylabel font ",20"
|
||||
# set font "32"
|
||||
|
||||
set key left
|
||||
set grid
|
||||
# set logscale y
|
||||
|
||||
set xrange [9:20]
|
||||
set title font ",10"
|
||||
# set key title "Proving time"
|
||||
set xlabel "log \# constraits"
|
||||
set ylabel 'ratio '
|
||||
# set xtics (4,8,16,32,64)
|
||||
plot ratio using 1:6 w lp t "Jellyfish/Hyperplonk",\
|
||||
ratio using 1:7 w lp t "Spartan/Hyperplonk"
|
||||
Reference in New Issue
Block a user