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

Feature/adjoint flow #1526

Open
wants to merge 59 commits into
base: develop
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
151e48f
add fermion test skeleton
Oct 25, 2024
372df86
basic wilson fermion flow test
Oct 27, 2024
462e3fd
first successful compile of adjFlowSafe
Oct 31, 2024
eddf431
Successful compile of adjFlowSafe
Nov 2, 2024
637fd72
first working Adj Safe GFlow
Nov 3, 2024
1e18c3b
added adjoint flow first commit
Nov 15, 2024
e88dc98
added hiearchical counting structure
Nov 15, 2024
91d1391
first working implementation of hierarchial adjoint gradient flow
Nov 17, 2024
368ec5b
more changes with meaningful log messages
Nov 18, 2024
42b8a5a
verbosity switches in interface
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
Nov 18, 2024
8ff70c4
ONE n_safe step of Safe agrees with Hier numerically
Nov 20, 2024
34a8904
get the fin, fout out of the refernee wrapper list
Nov 20, 2024
01d44e4
numerical agreement 2 steps, 2 nsave
Nov 20, 2024
e985648
numerical agreement 3 steps, 2 nsave
Nov 20, 2024
edf5967
apparently working for n nsave steps
Nov 20, 2024
0fc7deb
clean up interface
Nov 20, 2024
3bfa042
cleaning log messages plus NB section removed (useless and irritating)
Nov 20, 2024
a6977ed
removed all NB stuff from header files...etc and changed config on Safe
Nov 20, 2024
5d455af
merged two fermion tests
Nov 21, 2024
26615f4
add fermion test
Nov 21, 2024
5d3efc1
Merge branch 'tempdev' into dev, bring lattice develop changes to dev
Nov 21, 2024
7483d27
added first pass correctness check and cleaning things up
Dec 1, 2024
b9287f3
cleaned up tests
Dec 1, 2024
b981d9f
begun adding obs params for adj
Dec 1, 2024
ccbc750
verified global indexing in hier works
Dec 1, 2024
a2a3145
removed gauge obs params from adjoint
Dec 1, 2024
8a683e0
just identical verification btw fwd and adj
Dec 1, 2024
883d8f3
removed gauge verification
Dec 1, 2024
a08c2fa
added separate timings for different methods
Dec 2, 2024
c214eae
rearranging
Dec 2, 2024
a1ecba3
tidy
Dec 2, 2024
2bcfe52
correction to deviation oom pred
Dec 4, 2024
81b55a9
revert back
Dec 4, 2024
c12e774
with matmul in test
Dec 12, 2024
7c34c5a
rearranging smear warnings
Dec 12, 2024
6ae6374
cleanup
Dec 12, 2024
b7abaf2
extend to multirank
Dec 13, 2024
091ff76
fix some warnings
Dec 14, 2024
a440cd9
Incorportating changes to lattice develop into local dev; Merge branc…
Dec 15, 2024
5dea08e
modify laplacians in adjoint
Dec 15, 2024
0683ad6
trace computation clang compatibility
Dec 16, 2024
7d79cf2
remove superflouous
Dec 28, 2024
40ce1c4
M# Please enter a commit message to explain why this merge is necessary,
Dec 28, 2024
f476de2
keep up to date
Jan 24, 2025
4881fe6
up to date
Mar 6, 2025
725ef0e
remove vanilla
Mar 6, 2025
c268f1f
latest changes hopefully ci working now
Mar 15, 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
Prev Previous commit
Next Next commit
verified global indexing in hier works
  • Loading branch information
rokarur committed Dec 1, 2024
commit ccbc7501a556975d5326ba2e13ef85228fcba8b5
13 changes: 10 additions & 3 deletions lib/interface_quda.cpp
Original file line number Diff line number Diff line change
@@ -5447,7 +5447,7 @@ void performAdjGFlowSafe(void *h_out, void *h_in, QudaInvertParam *inv_param, Qu
double b = -8.;

int comm_dim[4] = {};

int measurement_n = 0; // The nth measurement to take
// only switch on comms needed for directions with a derivative
for (int i = 0; i < 4; i++) { comm_dim[i] = comm_dim_partitioned(i); }

@@ -5512,6 +5512,13 @@ void performAdjGFlowSafe(void *h_out, void *h_in, QudaInvertParam *inv_param, Qu
fout = f_temp0;
//redefining f_temp0 to restart loop
f_temp3 = f_temp0;

if ((j + 1) % smear_param->meas_interval == 0) {
measurement_n++; // increment measurements.
gaugeObservables(g_VT, obs_param[measurement_n]);
logQuda(QUDA_SUMMARIZE, "%le %.16e %+.16e\n", (smear_param->t0 + smear_param->epsilon * (j + 1)),
obs_param[measurement_n].plaquette[0], blas::norm2(fout));
}

}
cpuParam.v = h_out;
@@ -5538,7 +5545,7 @@ void adjSafeEvolve(std::vector<std::reference_wrapper<ColorSpinorField>> sf_list
ColorSpinorField &f_temp3 = sf_list[3].get();
ColorSpinorField &f_temp4 = sf_list[4].get();

int &meas_i = meas_cinf[0].get();
int &i_glob = meas_cinf[0].get();
int &measurement_n = meas_cinf[1].get();

int parity = 0;
@@ -5610,7 +5617,7 @@ void adjSafeEvolve(std::vector<std::reference_wrapper<ColorSpinorField>> sf_list
//redefining f_temp0 to restart loop
f_temp3 = f_temp0;

meas_i++;
i_glob++;
}

}
4 changes: 3 additions & 1 deletion tests/su3_fermion_test.cpp
Original file line number Diff line number Diff line change
@@ -197,6 +197,8 @@ int main(int argc, char **argv)
obs_param[i].compute_qcharge = QUDA_BOOLEAN_TRUE;
obs_param[i].su_project = su_project ? QUDA_BOOLEAN_TRUE : QUDA_BOOLEAN_FALSE;
}

QudaGaugeObservableParam *obs_adj_safe(obs_param), *obs_adj_hier(obs_param);

// We here set all the problem parameters for all possible smearing types.
QudaGaugeSmearParam smear_param = newQudaGaugeSmearParam();
@@ -289,7 +291,7 @@ int main(int argc, char **argv)

// Perform two adjoint flow algorithms, these methods dont alter the final value for the gauge so we excecute them first
performAdjGFlowHier(check_hier.data(),check.data(), &invParam, &smear_param, obs_param);
performAdjGFlowSafe(check_safe.data(),check.data() , &invParam, &smear_param, obs_param);
performAdjGFlowSafe(check_safe.data(),check.data() , &invParam, &smear_param, obs_adj_safe);
// Perform forward flow algorithm
performGFlowQuda(check_fwd.data(),check.data(), &invParam, &smear_param, obs_param);
break;