Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
20ce75d
first working merge of stag + flow
rkarur Jan 26, 2025
00dfcbf
succesful copy of invert raw
rkarur Jan 27, 2025
37551af
add adjoint in right place
rkarur Jan 27, 2025
76c1e9e
add one normal flow alg
rkarur Jan 27, 2025
f96611f
compiling but reconstrcting infty:(
rkarur Jan 27, 2025
ebdd45c
correct mem runtime issue
rkarur Feb 17, 2025
114c76c
Merge remote-tracking branch 'lattice/develop' into dev_stag
rkarur Feb 19, 2025
f7c2d28
up to date
rkarur Mar 6, 2025
109e6db
add ferm observables barebones
rkarur Mar 13, 2025
65be9c9
fix fwd snip
rkarur Mar 13, 2025
a6ca90d
remove some comments
rkarur Mar 13, 2025
bc7b039
temp changes to be removed
rkarur Mar 15, 2025
3c36e77
latest changes hopefully ci working now
rkarur Mar 15, 2025
4f02ad1
some additions to new KSLink
rkarur Mar 18, 2025
a22d1d0
working staggerd flow with hisq but wrong re unupload
rkarur Apr 9, 2025
4cc604e
get up to develop
rkarur May 10, 2025
e9e80f0
up to date with everything
rkarur May 16, 2025
55df011
rephrase act_paths
rkarur Jun 9, 2025
fa0a9ca
Act_paths header
rkarur Jun 9, 2025
c708850
at least something
rkarur Jun 9, 2025
f0d9073
added alt
rkarur Jun 11, 2025
8fcba56
starting to work?
rkarur Jun 11, 2025
03f62cb
more working?
rkarur Jun 11, 2025
28ab663
good stage for push
rkarur Jun 11, 2025
9a162ea
merge cleanup
rkarur Jun 11, 2025
0f0efcc
reformat to multiferm
rkarur Jun 12, 2025
c92d12e
first pass ferm observables
rkarur Jun 14, 2025
26ee4ff
invert multisrc
rkarur Jun 15, 2025
e20b6d2
more stuff for adj flow test + cleanup
rkarur Jun 15, 2025
6235cfa
added meas intervals
rkarur Jun 16, 2025
7bdf15d
added prelim gauge io
rkarur Jun 17, 2025
add8165
clean up
rkarur Jun 17, 2025
ad628ec
reconfig naiks
rkarur Jun 17, 2025
91dc86a
and nsrc-tiling
rkarur Jun 18, 2025
3601c00
contraction actually working? too good to be true
rkarur Jun 23, 2025
0637d44
workis but investigate autotuning for odd # tile
rkarur Jun 24, 2025
fab3333
back to start
rkarur Jun 24, 2025
5d9b0d0
contractions working now but hardcoded the dimenisonalr eduction, so …
rkarur Jun 29, 2025
94efe89
clean up a bit
rkarur Jun 29, 2025
bb28957
intermediate
rkarur Jun 29, 2025
579dfbf
major tiling fix
rkarur Jun 29, 2025
54ef7e6
resolved file naming scheme, still havent figured out V normalziation
rkarur Jun 30, 2025
7fdb4b2
change back to 4 vec contraction
rkarur Jun 30, 2025
08045c3
added final flow plus rank invert fail annotations
rkarur Jul 2, 2025
6cd35c0
lots of changes, fixed ordering on gpu invert problem
rkarur Jul 3, 2025
dcdd4a7
commit before structure change
rkarur Jul 3, 2025
76d18a2
things seem to be working with hier restructure
rkarur Jul 4, 2025
232de07
temporary break in ad save > 1
rkarur Jul 4, 2025
ca45819
above problem fixed
rkarur Jul 4, 2025
e3c29cd
remove gout redundancy
rkarur Jul 4, 2025
f2d8a27
removed explicit rng
rkarur Jul 5, 2025
638b3cd
tiny change in savingauge stages
rkarur Jul 7, 2025
4504ad1
add fwd gflow option
rkarur Jul 8, 2025
4d8f406
more correct jansen updates
rkarur Aug 9, 2025
63971d7
add meas option group
rkarur Aug 10, 2025
32980bc
added new measurement scheme skeleton and beginning method for separa…
rkarur Aug 23, 2025
5b0d51c
more changes
rkarur Aug 23, 2025
a2e4e13
add different source support
rkarur Aug 26, 2025
a380fa0
fixed m = 1 case and added file output stuff
rkarur Aug 27, 2025
dfba738
add flow time output support
rkarur Aug 27, 2025
521fe7f
base output dir automate
rkarur Aug 28, 2025
342a185
important rank 0 filewriting check
rkarur Aug 29, 2025
18a4b6a
cleanup for mod adjoint in interface
rkarur Jan 6, 2026
3dc710e
hopefully no more conflict
rkarur Jan 6, 2026
72058fb
Remove computeKSLinkO function from interface_quda.cpp
rkarur Jan 6, 2026
828be00
minor fix: change loop variable type from int to unsigned int
rkarur Jan 6, 2026
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
27 changes: 23 additions & 4 deletions include/quda.h
Original file line number Diff line number Diff line change
Expand Up @@ -863,6 +863,17 @@ extern "C" {
with the underlying issue documented https://github.com/lattice/quda/issues/1315 */
} QudaGaugeObservableParam;

typedef struct QudaFermMeasurements_s {
size_t struct_size; /**< Size of this struct in bytes. Used to ensure that the host application and QUDA see the same struct*/
void **ppb;
void *ppb_t;
unsigned int meas_int;
void *meas_int_vec;
void *meas_list;
QudaBoolean take_meas;
QudaBoolean take_fwd_gflow;
} QudaFermMeasurements;

typedef struct QudaGaugeSmearParam_s {
size_t struct_size; /**< Size of this struct in bytes. Used to ensure that the host application and QUDA see the same struct*/
unsigned int n_steps; /**< The total number of smearing steps to perform. */
Expand Down Expand Up @@ -1094,6 +1105,14 @@ extern "C" {
*/
QudaGaugeSmearParam newQudaGaugeSmearParam(void);

/**
* A new QudaFermMeasurements should always be initialized
* immediately after it's defined (and prior to explicitly setting
* its members) using this function. Typical usage is as follows:
*
* QudaFermMeasurements ferm_meas = newQudaFermMeasurements();
*/
QudaFermMeasurements newQudaFermMeasurements(void);
/**
* A new QudaBLASParam should always be initialized immediately
* after it's defined (and prior to explicitly setting its members)
Expand Down Expand Up @@ -1381,6 +1400,8 @@ extern "C" {

void computeKSLinkQuda(void* fatlink, void* longlink, void* ulink, void* inlink,
double *path_coeff, QudaGaugeParam *param);

void set_act_path(double *act_path, int i);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't look like an interface function, and if that's the case it shouldn't be in quda.h. It's also missing documentation.


/**
* Compute two-link field
Expand Down Expand Up @@ -1740,13 +1761,11 @@ extern "C" {
* @param[in] h_in Input fermion field set
* @param[in] inv_param Dirac/Laplacian and solver meta data
* @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.
* @param[in,out] ferm_meas Parameter struct that conducts measurements of fermionic observables
* @param[in] nSpinors Number of spinors in the input and output fields
*/
void performAdjGFlowHier(void **h_out, void **h_in, QudaInvertParam *inv_param, QudaGaugeSmearParam *smear_param,
void performAdjGFlowHier(void **h_out, void **h_in, QudaInvertParam *inv_param, QudaGaugeSmearParam *smear_param, QudaFermMeasurements *ferm_meas,
size_t nSpinors);

/**
* @brief Calculates a variety of gauge-field observables. If a
* smeared gauge field is presently loaded (in gaugeSmeared) the
Expand Down
43 changes: 43 additions & 0 deletions lib/check_params.h
Original file line number Diff line number Diff line change
Expand Up @@ -1207,6 +1207,49 @@ void printQudaGaugeSmearParam(QudaGaugeSmearParam *param)
#endif
}

#if defined INIT_PARAM
QudaFermMeasurements newQudaFermMeasurements(void)
{
QudaFermMeasurements ret;
#elif defined CHECK_PARAM
static void checkQudaFermMeasurements(QudaFermMeasurements *param)
{
#else
void printQudaFermMeasurements(QudaFermMeasurements *param)
{
printfQuda("QUDA Gauge Smear Parameters:\n");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs fixed

#endif

#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

#ifdef INIT_PARAM
P(meas_int, 5);
P(meas_int_vec, nullptr);
P(take_meas, QUDA_BOOLEAN_FALSE);
P(take_fwd_gflow, QUDA_BOOLEAN_FALSE);
P(ppb, nullptr);
P(ppb_t, nullptr);
P(meas_list, nullptr);
#else
P(meas_int, (unsigned int)INVALID_INT);
P(take_meas, QUDA_BOOLEAN_INVALID);
P(take_fwd_gflow, QUDA_BOOLEAN_INVALID);
#endif

#ifdef INIT_PARAM
return ret;
#endif
}




#if defined INIT_PARAM
QudaBLASParam newQudaBLASParam(void)
{
Expand Down
Loading
Loading