Skip to content

Feature/adjoint flow #1526

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

Open
wants to merge 77 commits into
base: develop
Choose a base branch
from
Open
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
151e48f
add fermion test skeleton
rkarur Oct 25, 2024
372df86
basic wilson fermion flow test
rkarur Oct 27, 2024
462e3fd
first successful compile of adjFlowSafe
rkarur Oct 31, 2024
eddf431
Successful compile of adjFlowSafe
rkarur Nov 2, 2024
637fd72
first working Adj Safe GFlow
rkarur Nov 3, 2024
1e18c3b
added adjoint flow first commit
rkarur Nov 15, 2024
e88dc98
added hiearchical counting structure
rkarur Nov 15, 2024
91d1391
first working implementation of hierarchial adjoint gradient flow
rkarur Nov 17, 2024
368ec5b
more changes with meaningful log messages
rkarur Nov 18, 2024
42b8a5a
verbosity switches in interface
rkarur Nov 18, 2024
d123539
Mods to allow copy in/out of full QDP-JIT spinors
bjoo Oct 16, 2024
95b12e3
QDPJIT parity only flopped on ODD parity
bjoo Oct 28, 2024
6f3409e
Prettied doxygen for compute parity
bjoo Oct 28, 2024
b339c8f
Fixed another doxygen booboo
bjoo Oct 28, 2024
eb3bc5a
Use the first `r_coarse` to verify the MG setup.
SaltyChiang Nov 1, 2024
b2cea40
Enable `computeHISQForceQuda` for other gauge field orders than the M…
SaltyChiang Nov 1, 2024
1628ac7
Fix typo.
SaltyChiang Nov 1, 2024
3dd7fad
Add hash for the Eigen tarball.
SaltyChiang Nov 1, 2024
a56cb4d
add printing gauge field for debugging
jcosborn Nov 17, 2024
c2307c6
fix issue caused by formatting
jcosborn Nov 17, 2024
fae8a66
Fix bug with fine-grained accessor with staggered half precision fiel…
maddyscientist Nov 17, 2024
ef21a75
add config options for adj_test
rkarur Nov 18, 2024
8ff70c4
ONE n_safe step of Safe agrees with Hier numerically
rkarur Nov 20, 2024
34a8904
get the fin, fout out of the refernee wrapper list
rkarur Nov 20, 2024
01d44e4
numerical agreement 2 steps, 2 nsave
rkarur Nov 20, 2024
e985648
numerical agreement 3 steps, 2 nsave
rkarur Nov 20, 2024
edf5967
apparently working for n nsave steps
rkarur Nov 20, 2024
0fc7deb
clean up interface
rkarur Nov 20, 2024
3bfa042
cleaning log messages plus NB section removed (useless and irritating)
rkarur Nov 20, 2024
a6977ed
removed all NB stuff from header files...etc and changed config on Safe
rkarur Nov 20, 2024
5d455af
merged two fermion tests
rkarur Nov 21, 2024
26615f4
add fermion test
rkarur Nov 21, 2024
5d3efc1
Merge branch 'tempdev' into dev, bring lattice develop changes to dev
rkarur Nov 21, 2024
7483d27
added first pass correctness check and cleaning things up
rkarur Dec 1, 2024
b9287f3
cleaned up tests
rkarur Dec 1, 2024
b981d9f
begun adding obs params for adj
rkarur Dec 1, 2024
ccbc750
verified global indexing in hier works
rkarur Dec 1, 2024
a2a3145
removed gauge obs params from adjoint
rkarur Dec 1, 2024
8a683e0
just identical verification btw fwd and adj
rkarur Dec 1, 2024
883d8f3
removed gauge verification
rkarur Dec 1, 2024
a08c2fa
added separate timings for different methods
rkarur Dec 2, 2024
c214eae
rearranging
rkarur Dec 2, 2024
a1ecba3
tidy
rkarur Dec 2, 2024
2bcfe52
correction to deviation oom pred
rkarur Dec 4, 2024
81b55a9
revert back
rkarur Dec 4, 2024
c12e774
with matmul in test
rkarur Dec 12, 2024
7c34c5a
rearranging smear warnings
rkarur Dec 12, 2024
6ae6374
cleanup
rkarur Dec 12, 2024
b7abaf2
extend to multirank
rkarur Dec 13, 2024
091ff76
fix some warnings
rkarur Dec 14, 2024
a440cd9
Incorportating changes to lattice develop into local dev; Merge branc…
rkarur Dec 15, 2024
5dea08e
modify laplacians in adjoint
rkarur Dec 15, 2024
0683ad6
trace computation clang compatibility
rkarur Dec 16, 2024
7d79cf2
remove superflouous
rkarur Dec 28, 2024
40ce1c4
M# Please enter a commit message to explain why this merge is necessary,
rkarur Dec 28, 2024
f476de2
keep up to date
rkarur Jan 24, 2025
4881fe6
up to date
rkarur Mar 6, 2025
725ef0e
remove vanilla
rkarur Mar 6, 2025
c268f1f
latest changes hopefully ci working now
rkarur Mar 15, 2025
4d84afa
fixed merge conflict
rkarur Apr 9, 2025
816f86f
made changes with MRHS gflow but just RHS adjoint flow
rkarur Apr 12, 2025
1095000
w deans suggestions
rkarur Apr 15, 2025
f670e06
fix mem leaks plus check params
rkarur Apr 16, 2025
e0d2260
command line free
rkarur Apr 16, 2025
94ec9e4
remove 'necessary?' comment and subsequent lines
rkarur Apr 17, 2025
1c89878
add inv param verbosity
rkarur Apr 17, 2025
cafd3c0
delete break
rkarur Apr 17, 2025
81ae442
delete '// f_temp3 = fin;' comment
rkarur Apr 17, 2025
71e7fe7
delte '// fout = f_temp0;' comment
rkarur Apr 17, 2025
a5e9f23
delete hier list comment for loop
rkarur Apr 17, 2025
5da4cdb
put fermion test in Laplace qualifier
rkarur Apr 17, 2025
8f5f729
put fermion test in Laplace qualifier
rkarur Apr 17, 2025
c263dd6
Merge branch 'develop' into feature/adjoint-flow
rkarur Apr 17, 2025
e6e6d63
get up to date
rkarur Apr 17, 2025
740a449
get up to date 2
rkarur Apr 17, 2025
cd76e19
get to new WFlow changes and change host header format
rkarur Apr 17, 2025
19fabe4
Merge remote-tracking branch 'lattice/feature/adjoint-flow' into git_res
rkarur Apr 18, 2025
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
22 changes: 22 additions & 0 deletions include/quda.h
Original file line number Diff line number Diff line change
@@ -873,6 +873,8 @@ extern "C" {
double alpha3; /**< The coefficient used in HYP smearing step 1*/
unsigned int meas_interval; /**< Perform the requested measurements on the gauge field at this interval */
QudaGaugeSmearType smear_type; /**< The smearing type to perform */
unsigned int adj_n_save; /**< How many intermediate gauge fields to save at each large nblock to perform adj flow*/
unsigned int hier_threshold; /**< Minimum *hierarchical* threshold for adj gradient flow*/
QudaBoolean restart; /**< Used to restart the smearing from existing gaugeSmeared */
double t0; /**< Starting flow time for Wilson flow */
int dir_ignore; /**< The direction to be ignored by the smearing algorithm
@@ -1706,6 +1708,26 @@ extern "C" {
*/
void performGFlowQuda(void **h_out, void **h_in, QudaInvertParam *inv_param, QudaGaugeSmearParam *smear_param,
QudaGaugeObservableParam *obs_param, const size_t nSpinors);

/**
* Performs Adjoint Gradient Flow (gauge + fermion) the "safe" way on gaugePrecise and stores it in gaugeSmeared
* @param[out] h_out Output fermion field
* @param[in] h_in Input fermion field
* @param[in] smear_param Parameter struct that defines the computation parameters
* @param[in,out] obs_param Parameter struct that defines which
* observables we are making and the resulting observables.
*/
void performAdjGFlowSafe(void *h_out, void *h_in, QudaInvertParam *inv_param, QudaGaugeSmearParam *smear_param);

/**
* Performs Adjoint Gradient Flow (gauge + fermion) the Hierarchical way on gaugePrecise and stores it in gaugeSmeared
* @param[out] h_out Output fermion field
* @param[in] h_in Input fermion field
* @param[in] smear_param Parameter struct that defines the computation parameters
* @param[in,out] obs_param Parameter struct that defines which
* observables we are making and the resulting observables.
*/
void performAdjGFlowHier(void *h_out, void *h_in, QudaInvertParam *inv_param, QudaGaugeSmearParam *smear_param);

/**
* @brief Calculates a variety of gauge-field observables. If a
5 changes: 5 additions & 0 deletions lib/check_params.h
Original file line number Diff line number Diff line change
@@ -1161,6 +1161,7 @@ void printQudaGaugeSmearParam(QudaGaugeSmearParam *param)
#if defined CHECK_PARAM
if (param->struct_size != (size_t)INVALID_INT && param->struct_size != sizeof(*param))
errorQuda("Unexpected QudaGaugeSmearParam struct size %lu, expected %lu", param->struct_size, sizeof(*param));

#else
P(struct_size, (size_t)INVALID_INT);
#endif
@@ -1176,6 +1177,8 @@ void printQudaGaugeSmearParam(QudaGaugeSmearParam *param)
P(smear_anisotropy, 1.0);
P(rk_order, 3);
P(restart, QUDA_BOOLEAN_FALSE);
P(adj_n_save,5);
P(hier_threshold,6);
P(t0, 0.0);
P(alpha1, 0.0);
P(alpha2, 0.0);
@@ -1190,6 +1193,8 @@ void printQudaGaugeSmearParam(QudaGaugeSmearParam *param)
P(smear_anisotropy, INVALID_DOUBLE);
P(rk_order, (unsigned int)INVALID_INT);
P(restart, QUDA_BOOLEAN_INVALID);
P(adj_n_save,(unsigned int)INVALID_INT);
P(hier_threshold,(unsigned int)INVALID_INT);
P(t0, INVALID_DOUBLE);
P(alpha1, INVALID_DOUBLE);
P(alpha2, INVALID_DOUBLE);
Loading