Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

automatic tuning of (QUDA)-MG parameters [WIP, DO NOT MERGE] #537

Open
wants to merge 40 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
f38f097
skeleton for automatic tuning of (QUDA)-MG parameters for usage in fe…
kostrzewa Mar 24, 2022
49ae26b
fix a few typos and a forgotten newline processor
kostrzewa Mar 24, 2022
c0081a3
first concrete implementation of a search algorithm (which kinda brea…
kostrzewa Mar 25, 2022
daa4a53
first kind of working implementation of QUDA-MG parameter tuner
kostrzewa Mar 25, 2022
42d9848
fix tuning logic and use multiple passes to improve on tuning result
kostrzewa Mar 26, 2022
76b5fbe
deriv_mg_tune: simplify input format and temporarily remove support f…
kostrzewa Mar 28, 2022
ec02c47
refine tuning logic to always start from the best set of parameters w…
kostrzewa Apr 4, 2022
55bd8b2
suppress one instance of console output by 'find_best_params'
kostrzewa Apr 4, 2022
28e9caf
we were stopping early in tuning due to a logic bug
kostrzewa Apr 4, 2022
dfc93ce
print number of tuning iterations and total
kostrzewa Apr 4, 2022
d5d681a
Merge branch 'quda_work_add_actions' of github.com:etmc/tmLQCD into d…
kostrzewa Apr 25, 2022
a008824
Merge remote-tracking branch 'origin/quda_work' into deriv_mg_tune
kostrzewa Nov 1, 2022
293315b
ansatz to provide some explanatory strings for MG tuning directions
kostrzewa Nov 1, 2022
1870d09
extraneous curly brace
kostrzewa Nov 1, 2022
6d9e92a
Merge remote-tracking branch 'origin/quda_work' into deriv_mg_tune
kostrzewa Nov 2, 2022
2efe069
Merge remote-tracking branch 'origin/quda_work' into deriv_mg_tune
kostrzewa Mar 16, 2023
e24efb4
typo in sample_deriv_mg_tune_tmclover.input
kostrzewa Mar 16, 2023
783af10
first stab at a multi-config MG tuner
kostrzewa Mar 22, 2023
e017035
fix some issues with multi-config MG auto-tuner and test it successfully
kostrzewa Mar 22, 2023
41ed324
add treshold below which time-to-solution improvements are ignored in…
kostrzewa Mar 25, 2023
378dad4
tuning_plam is a pointer
kostrzewa Mar 25, 2023
9f7a328
Merge remote-tracking branch 'origin/quda_work' into deriv_mg_tune
kostrzewa Mar 28, 2023
c3248ba
install benchmark, offline_measurement and deriv_mg_tune too
kostrzewa Mar 29, 2023
afd73e9
set good defaults for MGTuningIgnoreThreshold and MGTuningTolerance b…
kostrzewa Apr 6, 2023
eeb5c43
support 0 tuning iterations and reset tuning plan between calls of tuner
kostrzewa Jul 28, 2023
f7c21be
only replace current tuning params with 'best' params if the 'best' s…
kostrzewa Aug 1, 2023
2fe1762
Merge remote-tracking branch 'origin/quda_work' into deriv_mg_tune
kostrzewa Aug 1, 2023
8f74a25
Merge remote-tracking branch 'origin/quda_work' into deriv_mg_tune
kostrzewa Oct 15, 2023
bb1c8bf
document the MG autotuner
kostrzewa Oct 15, 2023
2f144d0
clarify balance between MGTuningTolerance and MGTuningIgnoreThreshold
kostrzewa Oct 16, 2023
3798564
add example log from tuning procedure
kostrzewa Oct 16, 2023
a1971be
typo in docs
kostrzewa Dec 28, 2023
2fed63c
Merge remote-tracking branch 'origin/quda_work' into deriv_mg_tune
kostrzewa Dec 28, 2023
405f70c
merge with current quda_work
kostrzewa Jan 29, 2024
2812388
Merge remote-tracking branch 'origin/quda_work' into deriv_mg_tune
kostrzewa Feb 10, 2024
7f90d21
Merge remote-tracking branch 'origin/master' into deriv_mg_tune
kostrzewa Jun 14, 2024
7d30f29
fix undefined behaviour in part of the MG autotuner (without conseque…
kostrzewa Jul 18, 2024
66fa8e8
interchange ordering of coarse solver tolerance and coarse solver max…
kostrzewa Jul 18, 2024
0c8d86f
add MPI_Barrier in mg_tune before and after MG update and after inver…
kostrzewa Jul 19, 2024
d2d1848
more tuning params that can go negative but shouldn't
kostrzewa Jul 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile.global
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@



PROGRAMS_WITH_GIT_HASH := hmc_tm invert offline_measurement test_Dslash
PROGRAMS_WITH_GIT_HASH := hmc_tm invert offline_measurement test_Dslash deriv_mg_tune

.SUFFIXES:

Expand Down
10 changes: 5 additions & 5 deletions Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ NOOPTMOD = test/check_xchange test/check_geometry

PROGRAMS = hmc_tm benchmark invert gen_sources \
check_locallity test_lemon hopping_test LapH_ev \
offline_measurement @QPHIX_PROGRAMS@
offline_measurement deriv_mg_tune @QPHIX_PROGRAMS@

ALLOBJ = ${MODULES} ${PROGRAMS} ${SMODULES}
SUBDIRS = ${USESUBDIRS}
Expand All @@ -76,7 +76,7 @@ SUBDIRS = ${USESUBDIRS}
.SUFFIXES:

# need to build modules before subdirs!
all: Makefile dep $(SUBDIRS) hmc_tm invert benchmark offline_measurement @QPHIX_PROGRAMS@
all: Makefile dep $(SUBDIRS) hmc_tm invert benchmark offline_measurement deriv_mg_tune @QPHIX_PROGRAMS@

$(SUBDIRS):
$(MAKE) --directory=$@
Expand Down Expand Up @@ -136,15 +136,15 @@ dep: $(addsuffix .d,$(ALLOBJ)) $(addsuffix .d,$(CXXMODULES))

install: Makefile
@mkdir -p $(bindir); \
for p in hmc_tm invert; do \
for p in hmc_tm invert benchmark offline_measurement deriv_mg_tune; do \
progname=`echo $$p | sed '$(program_transform_name)'`; \
echo "Installing $$p as $$progname in $(bindir)..."; \
cp $$p $(bindir)/$$progname; \
done; \
echo "done";

uninstall: Makefile
for p in hmc_tm invert; do \
for p in hmc_tm invert benchmark offline_measurement deriv_mg_tune; do \
progname=`echo $$p | sed '$(program_transform_name)'`; \
echo "Un-Installing $$progname in $(bindir)..."; \
rm $(bindir)/$$progname; \
Expand All @@ -155,7 +155,7 @@ compile-clean: compile-clean-recursive Makefile
rm -f *.o *.d test/*.o test/*.d tests/*.o tests/*.d

clean: clean-recursive Makefile
rm -f benchmark hmc_tm invert offline_measurement test_Dslash *.o *.d test/*.o test/*.d tests/*.o tests/*.d
rm -f benchmark hmc_tm invert offline_measurement test_Dslash deriv_mg_tune @QPHIX_PROGRAMS@ *.o *.d test/*.o test/*.d tests/*.o tests/*.d

distclean: distclean-recursive Makefile
rm -f benchmark hmc_tm invert offline_measurement *.o *.d *~ Makefile config.log config.status fixed_volume.h
Expand Down
4 changes: 4 additions & 0 deletions default_input_values.h
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,10 @@
#define _default_quda_enable_device_memory_pool 0
#define _default_quda_enable_pinned_memory_pool 1

#define _default_quda_mg_tuning_iterations 1000
#define _default_quda_mg_tuning_tolerance 0.996
#define _default_quda_mg_tuning_ignore_threshold 0.999

// gradient flow measurement step size and maximum flow time
#define _default_gf_eps 0.01
#define _default_gf_tmax 9.99
Expand Down
Loading
Loading