22# Environment variable detection
33
44if [ ! " ${BENCHMARK} " ]; then
5- echo " BENCHMARK environment variable not set - assuming \" spmv\" " 1>&2
65 BENCHMARK=" spmv"
6+ echo " BENCHMARK environment variable not set - assuming \" ${BENCHMARK} \" " 1>&2
77fi
88
99if [ ! " ${DRY_RUN} " ]; then
10- echo " DRY_RUN environment variable not set - assuming \" false\" " 1>&2
1110 DRY_RUN=" false"
11+ echo " DRY_RUN environment variable not set - assuming \" ${DRY_RUN} \" " 1>&2
1212fi
1313
1414if [ ! " ${EXECUTOR} " ]; then
15- echo " EXECUTOR environment variable not set - assuming \" cuda\" " 1>&2
1615 EXECUTOR=" cuda"
16+ echo " EXECUTOR environment variable not set - assuming \" ${EXECUTOR} \" " 1>&2
1717fi
1818
1919if [ ! " ${SEGMENTS} " ]; then
@@ -26,8 +26,8 @@ elif [ ! "${SEGMENT_ID}" ]; then
2626fi
2727
2828if [ ! " ${PRECONDS} " ]; then
29- echo " PRECONDS environment variable not set - assuming \" none\" " 1>&2
3029 PRECONDS=" none"
30+ echo " PRECONDS environment variable not set - assuming \" ${PRECONDS} \" " 1>&2
3131fi
3232
3333if [ ! " ${FORMATS} " ]; then
@@ -36,33 +36,38 @@ if [ ! "${FORMATS}" ]; then
3636fi
3737
3838if [ ! " ${SOLVERS} " ]; then
39- echo " SOLVERS environment variable not set - assuming \ " bicgstab,cg,cgs,fcg,gmres,idr\" " 1>&2
40- SOLVERS= " bicgstab,cg,cgs,fcg,gmres,idr "
39+ SOLVERS= " bicgstab,cg,cgs,fcg,gmres,cb_gmres_reduce1, idr"
40+ echo " SOLVERS environment variable not set - assuming \" ${SOLVERS} \" " 1>&2
4141fi
4242
4343if [ ! " ${SOLVERS_PRECISION} " ]; then
44- echo " SOLVERS_PRECISION environment variable not set - assuming \" 1e-6\" " 1>&2
4544 SOLVERS_PRECISION=1e-6
45+ echo " SOLVERS_PRECISION environment variable not set - assuming \" ${SOLVERS_PRECISION} \" " 1>&2
4646fi
4747
4848if [ ! " ${SOLVERS_MAX_ITERATIONS} " ]; then
49- echo " SOLVERS_MAX_ITERATIONS environment variable not set - assuming \" 10000\" " 1>&2
5049 SOLVERS_MAX_ITERATIONS=10000
50+ echo " SOLVERS_MAX_ITERATIONS environment variable not set - assuming \" ${SOLVERS_MAX_ITERATIONS} \" " 1>&2
51+ fi
52+
53+ if [ ! " ${SOLVERS_GMRES_RESTART} " ]; then
54+ SOLVERS_GMRES_RESTART=100
55+ echo " SOLVERS_GMRES_RESTART environment variable not set - assuming \" ${SOLVERS_GMRES_RESTART} \" " 1>&2
5156fi
5257
5358if [ ! " ${SYSTEM_NAME} " ]; then
54- echo " SYSTEM_MANE environment variable not set - assuming \" unknown\" " 1>&2
5559 SYSTEM_NAME=" unknown"
60+ echo " SYSTEM_MANE environment variable not set - assuming \" ${SYSTEM_NAME} \" " 1>&2
5661fi
5762
5863if [ ! " ${DEVICE_ID} " ]; then
59- echo " DEVICE_ID environment variable not set - assuming \" 0\" " 1>&2
6064 DEVICE_ID=" 0"
65+ echo " DEVICE_ID environment variable not set - assuming \" ${DEVICE_ID} \" " 1>&2
6166fi
6267
63- if [ ! " ${SOLVERS_RHS } " ]; then
64- echo " SOLVERS_RHS environment variable not set - assuming \" unit \" " 1>&2
65- SOLVERS_RHS= " unit "
68+ if [ ! " ${SOLVERS_JACOBI_MAX_BS } " ]; then
69+ SOLVERS_JACOBI_MAX_BS= " 32 "
70+ " SOLVERS_JACOBI_MAX_BS environment variable not set - assuming \" ${SOLVERS_JACOBI_MAX_BS} \" " 1>&2
6671fi
6772
6873if [ ! " ${BENCHMARK_PRECISION} " ]; then
8489 exit 1
8590fi
8691
92+ if [ ! " ${SOLVERS_RHS} " ]; then
93+ SOLVERS_RHS=" 1"
94+ echo " SOLVERS_RHS environment variable not set - assuming \" ${SOLVERS_RHS} \" " 1>&2
95+ fi
96+
8797if [ " ${SOLVERS_RHS} " == " random" ]; then
88- SOLVERS_RHS_FLAG=" --random_rhs=true"
98+ SOLVERS_RHS_FLAG=" --rhs_generation=random"
99+ elif [ " ${SOLVERS_RHS} " == " 1" ]; then
100+ SOLVERS_RHS_FLAG=" --rhs_generation=1"
101+ elif [ " ${SOLVERS_RHS} " == " sinus" ]; then
102+ SOLVERS_RHS_FLAG=" --rhs_generation=sinus"
89103else
90- SOLVERS_RHS_FLAG=" --random_rhs=false"
104+ echo " SOLVERS_RHS does not support the value \" ${SOLVERS_RHS} \" ." 1>&2
105+ echo " The following values are supported: \" 1\" , \" random\" and \" sinus\" " 1>&2
106+ exit 1
107+ fi
108+
109+ if [ ! " ${SOLVERS_INITIAL_GUESS} " ]; then
110+ SOLVERS_INITIAL_GUESS=" rhs"
111+ echo " SOLVERS_RHS environment variable not set - assuming \" ${SOLVERS_INITIAL_GUESS} \" " 1>&2
112+ fi
113+
114+ if [ " ${SOLVERS_INITIAL_GUESS} " == " random" ]; then
115+ SOLVERS_INITIAL_GUESS_FLAG=" --initial_guess_generation=random"
116+ elif [ " ${SOLVERS_INITIAL_GUESS} " == " 0" ]; then
117+ SOLVERS_INITIAL_GUESS_FLAG=" --initial_guess_generation=0"
118+ elif [ " ${SOLVERS_INITIAL_GUESS} " == " rhs" ]; then
119+ SOLVERS_INITIAL_GUESS_FLAG=" --initial_guess_generation=rhs"
120+ else
121+ echo " SOLVERS_RHS does not support the value \" ${SOLVERS_RHS} \" ." 1>&2
122+ echo " The following values are supported: \" 0\" , \" random\" and \" rhs\" " 1>&2
123+ exit 1
91124fi
92125
93126if [ ! " ${GPU_TIMER} " ]; then
94- echo " GPU_TIMER environment variable not set - assuming \" false\" " 1>&2
95127 GPU_TIMER=" false"
128+ echo " GPU_TIMER environment variable not set - assuming \" ${GPU_TIMER} \" " 1>&2
96129fi
97130
98131# Control whether to run detailed benchmarks or not.
@@ -202,7 +235,10 @@ run_solver_benchmarks() {
202235 --executor=" ${EXECUTOR} " --solvers=" ${SOLVERS} " \
203236 --preconditioners=" ${PRECONDS} " \
204237 --max_iters=${SOLVERS_MAX_ITERATIONS} --rel_res_goal=${SOLVERS_PRECISION} \
205- ${SOLVERS_RHS_FLAG} ${DETAILED_STR} --device_id=" ${DEVICE_ID} " --gpu_timer=${GPU_TIMER} \
238+ ${SOLVERS_RHS_FLAG} ${DETAILED_STR} ${SOLVERS_INITIAL_GUESS_FLAG} \
239+ --gpu_timer=${GPU_TIMER} \
240+ --jacobi_max_block_size=${SOLVERS_JACOBI_MAX_BS} --device_id=" ${DEVICE_ID} " \
241+ --gmres_restart=" ${SOLVERS_GMRES_RESTART} " \
206242 < " $1 .imd" 2>&1 > " $1 "
207243 keep_latest " $1 " " $1 .bkp" " $1 .bkp2" " $1 .imd"
208244}
0 commit comments