QUDA
1.0.0
|
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <sys/time.h>
#include <complex.h>
#include <quda.h>
#include <quda_fortran.h>
#include <quda_internal.h>
#include <comm_quda.h>
#include <tune_quda.h>
#include <blas_quda.h>
#include <gauge_field.h>
#include <dirac_quda.h>
#include <dslash_quda.h>
#include <invert_quda.h>
#include <eigensolve_quda.h>
#include <color_spinor_field.h>
#include <clover_field.h>
#include <llfat_quda.h>
#include <unitarization_links.h>
#include <algorithm>
#include <staggered_oprod.h>
#include <ks_improved_force.h>
#include <ks_force_quda.h>
#include <random_quda.h>
#include <mpi_comm_handle.h>
#include <multigrid.h>
#include <deflation.h>
#include <cuda.h>
#include <gauge_update_quda.h>
#include "check_params.h"
#include <gauge_tools.h>
#include <contract_quda.h>
#include <momentum.h>
#include <cuda_profiler_api.h>
#include <blas_cublas.h>
#include <blas_magma.h>
Go to the source code of this file.
Classes | |
struct | LexMapData |
Namespaces | |
quda | |
Macros | |
#define | MAX(a, b) ((a)>(b)? (a):(b)) |
#define | TDIFF(a, b) (b.tv_sec - a.tv_sec + 0.000001*(b.tv_usec - a.tv_usec)) |
#define | spinorSiteSize 24 |
#define | MAX_GPU_NUM_PER_NODE 16 |
#define | INIT_PARAM |
#define | CHECK_PARAM |
#define | PRINT_PARAM |
#define | QUDA_MAX_CHRONO 12 |
#define | STR_(x) #x |
#define | STR(x) STR_(x) |
#define | REFINE_INCREASING_MASS |
Functions | |
void | openMagma () |
void | closeMagma () |
std::vector< std::vector< ColorSpinorField * > > | chronoResident (QUDA_MAX_CHRONO) |
static void | profilerStart (const char *f) |
static void | profilerStop (const char *f) |
void | quda::printLaunchTimer () |
void | setVerbosityQuda (QudaVerbosity verbosity, const char prefix[], FILE *outfile) |
static int | lex_rank_from_coords (const int *coords, void *fdata) |
void | setMPICommHandleQuda (void *mycomm) |
void | initCommsGridQuda (int nDim, const int *dims, QudaCommsMap func, void *fdata) |
static void | init_default_comms () |
void | initQudaDevice (int dev) |
void | initQudaMemory () |
void | updateR () |
update the radius for halos. More... | |
void | initQuda (int dev) |
static cudaGaugeField * | createExtendedGauge (cudaGaugeField &in, const int *R, TimeProfile &profile, bool redundant_comms=false, QudaReconstructType recon=QUDA_RECONSTRUCT_INVALID) |
void | loadGaugeQuda (void *h_gauge, QudaGaugeParam *param) |
void | saveGaugeQuda (void *h_gauge, QudaGaugeParam *param) |
void | loadSloppyCloverQuda (const QudaPrecision prec[]) |
void | freeSloppyCloverQuda () |
void | loadCloverQuda (void *h_clover, void *h_clovinv, QudaInvertParam *inv_param) |
void | loadSloppyCloverQuda (const QudaPrecision *prec) |
void | freeSloppyGaugeQuda () |
void | freeGaugeQuda (void) |
void | loadSloppyGaugeQuda (const QudaPrecision *prec, const QudaReconstructType *recon) |
void | freeCloverQuda (void) |
void | flushChronoQuda (int i) |
Flush the chronological history for the given index. More... | |
void | endQuda (void) |
void | quda::setDiracParam (DiracParam &diracParam, QudaInvertParam *inv_param, bool pc) |
void | quda::setDiracSloppyParam (DiracParam &diracParam, QudaInvertParam *inv_param, bool pc) |
void | quda::setDiracRefineParam (DiracParam &diracParam, QudaInvertParam *inv_param, const bool pc) |
void | quda::setDiracPreParam (DiracParam &diracParam, QudaInvertParam *inv_param, const bool pc, bool comms) |
void | quda::createDirac (Dirac *&d, Dirac *&dSloppy, Dirac *&dPre, QudaInvertParam ¶m, const bool pc_solve) |
void | quda::createDirac (Dirac *&d, Dirac *&dSloppy, Dirac *&dPre, Dirac *&dRef, QudaInvertParam ¶m, const bool pc_solve) |
void | quda::massRescale (cudaColorSpinorField &b, QudaInvertParam ¶m) |
void | dslashQuda (void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity) |
void | dslashQuda_4dpc (void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity, int test_type) |
void | dslashQuda_mdwf (void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity, int test_type) |
void | MatQuda (void *h_out, void *h_in, QudaInvertParam *inv_param) |
void | MatDagMatQuda (void *h_out, void *h_in, QudaInvertParam *inv_param) |
bool | quda::canReuseResidentGauge (QudaInvertParam *inv_param) |
void | checkClover (QudaInvertParam *param) |
quda::cudaGaugeField * | checkGauge (QudaInvertParam *param) |
void | cloverQuda (void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity, int inverse) |
void | eigensolveQuda (void **host_evecs, double _Complex *host_evals, QudaEigParam *eig_param) |
void * | newMultigridQuda (QudaMultigridParam *mg_param) |
void | destroyMultigridQuda (void *mg) |
Free resources allocated by the multigrid solver. More... | |
void | updateMultigridQuda (void *mg_, QudaMultigridParam *mg_param) |
Updates the multigrid preconditioner for the new gauge / clover field. More... | |
void | dumpMultigridQuda (void *mg_, QudaMultigridParam *mg_param) |
Dump the null-space vectors to disk. More... | |
void * | newDeflationQuda (QudaEigParam *eig_param) |
void | destroyDeflationQuda (void *df) |
void | invertQuda (void *hp_x, void *hp_b, QudaInvertParam *param) |
void | invertMultiSrcQuda (void **_hp_x, void **_hp_b, QudaInvertParam *param) |
void | invertMultiShiftQuda (void **_hp_x, void *_hp_b, QudaInvertParam *param) |
void | computeKSLinkQuda (void *fatlink, void *longlink, void *ulink, void *inlink, double *path_coeff, QudaGaugeParam *param) |
int | getGaugePadding (GaugeFieldParam ¶m) |
int | computeGaugeForceQuda (void *mom, void *siteLink, int ***input_path_buf, int *path_length, double *loop_coeff, int num_paths, int max_length, double eb3, QudaGaugeParam *qudaGaugeParam) |
void | createCloverQuda (QudaInvertParam *invertParam) |
void * | createGaugeFieldQuda (void *gauge, int geometry, QudaGaugeParam *param) |
void | saveGaugeFieldQuda (void *gauge, void *inGauge, QudaGaugeParam *param) |
void | destroyGaugeFieldQuda (void *gauge) |
void | computeStaggeredForceQuda (void *h_mom, double dt, double delta, void *h_force, void **x, QudaGaugeParam *gauge_param, QudaInvertParam *inv_param) |
void | computeHISQForceQuda (void *const milc_momentum, double dt, const double level2_coeff[6], const double fat7_coeff[6], const void *const w_link, const void *const v_link, const void *const u_link, void **fermion, int num_terms, int num_naik_terms, double **coeff, QudaGaugeParam *gParam) |
void | computeCloverForceQuda (void *h_mom, double dt, void **h_x, void **h_p, double *coeff, double kappa2, double ck, int nvector, double multiplicity, void *gauge, QudaGaugeParam *gauge_param, QudaInvertParam *inv_param) |
void | updateGaugeFieldQuda (void *gauge, void *momentum, double dt, int conj_mom, int exact, QudaGaugeParam *param) |
void | projectSU3Quda (void *gauge_h, double tol, QudaGaugeParam *param) |
void | staggeredPhaseQuda (void *gauge_h, QudaGaugeParam *param) |
double | momActionQuda (void *momentum, QudaGaugeParam *param) |
void | init_quda_ (int *dev) |
void | init_quda_device_ (int *dev) |
void | init_quda_memory_ () |
void | end_quda_ () |
void | load_gauge_quda_ (void *h_gauge, QudaGaugeParam *param) |
void | free_gauge_quda_ () |
void | free_sloppy_gauge_quda_ () |
void | load_clover_quda_ (void *h_clover, void *h_clovinv, QudaInvertParam *inv_param) |
void | free_clover_quda_ (void) |
void | dslash_quda_ (void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity *parity) |
void | clover_quda_ (void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity *parity, int *inverse) |
void | mat_quda_ (void *h_out, void *h_in, QudaInvertParam *inv_param) |
void | mat_dag_mat_quda_ (void *h_out, void *h_in, QudaInvertParam *inv_param) |
void | invert_quda_ (void *hp_x, void *hp_b, QudaInvertParam *param) |
void | invert_multishift_quda_ (void *h_x, void *hp_b, QudaInvertParam *param) |
void | flush_chrono_quda_ (int *index) |
Flush the chronological history for the given index. More... | |
void | register_pinned_quda_ (void *ptr, size_t *bytes) |
Pinned a pre-existing memory allocation. More... | |
void | unregister_pinned_quda_ (void *ptr) |
Pinned a pre-existing memory allocation. More... | |
void | new_quda_gauge_param_ (QudaGaugeParam *param) |
void | new_quda_invert_param_ (QudaInvertParam *param) |
void | update_gauge_field_quda_ (void *gauge, void *momentum, double *dt, bool *conj_mom, bool *exact, QudaGaugeParam *param) |
static int | opp (int dir) |
static void | createGaugeForcePaths (int **paths, int dir, int num_loop_types) |
void | compute_gauge_force_quda_ (void *mom, void *gauge, int *num_loop_types, double *coeff, double *dt, QudaGaugeParam *param) |
Compute the gauge force and update the mometum field. More... | |
void | compute_staggered_force_quda_ (void *h_mom, double *dt, double *delta, void *gauge, void *x, QudaGaugeParam *gauge_param, QudaInvertParam *inv_param) |
void | apply_staggered_phase_quda_ () |
Apply the staggered phase factors to the resident gauge field. More... | |
void | remove_staggered_phase_quda_ () |
Remove the staggered phase factors to the resident gauge field. More... | |
void | kinetic_quda_ (double *kin, void *momentum, QudaGaugeParam *param) |
Evaluate the kinetic (momentum) contribution to classical Hamiltonian for Hybrid Monte Carlo. More... | |
void | comm_set_gridsize_ (int *grid) |
void | set_kernel_pack_t_ (int *pack) |
fTemporary function exposed for TIFR benchmarking More... | |
void | gaussGaugeQuda (unsigned long long seed, double sigma) |
Generate Gaussian distributed fields and store in the resident gauge field. We create a Gaussian-distributed su(n) field and exponentiate it, e.g., U = exp(sigma * H), where H is the distributed su(n) field and beta is the width of the distribution (beta = 0 results in a free field, and sigma = 1 has maximum disorder). More... | |
void | plaq_quda_ (double plaq[3]) |
void | plaqQuda (double plaq[3]) |
void | copyExtendedResidentGaugeQuda (void *resident_gauge, QudaFieldLocation loc) |
void | performWuppertalnStep (void *h_out, void *h_in, QudaInvertParam *inv_param, unsigned int nSteps, double alpha) |
void | performAPEnStep (unsigned int nSteps, double alpha) |
void | performSTOUTnStep (unsigned int nSteps, double rho) |
void | performOvrImpSTOUTnStep (unsigned int nSteps, double rho, double epsilon) |
int | computeGaugeFixingOVRQuda (void *gauge, const unsigned int gauge_dir, const unsigned int Nsteps, const unsigned int verbose_interval, const double relax_boost, const double tolerance, const unsigned int reunit_interval, const unsigned int stopWtheta, QudaGaugeParam *param, double *timeinfo) |
Gauge fixing with overrelaxation with support for single and multi GPU. More... | |
int | computeGaugeFixingFFTQuda (void *gauge, const unsigned int gauge_dir, const unsigned int Nsteps, const unsigned int verbose_interval, const double alpha, const unsigned int autotune, const double tolerance, const unsigned int stopWtheta, QudaGaugeParam *param, double *timeinfo) |
Gauge fixing with Steepest descent method with FFTs with support for single GPU only. More... | |
void | contractQuda (const void *hp_x, const void *hp_y, void *h_result, const QudaContractType cType, QudaInvertParam *param, const int *X) |
double | qChargeQuda () |
double | qChargeDensityQuda (void *h_qDensity) |
Calculates the topological charge from gaugeSmeared, if it exist, or from gaugePrecise if no smeared fields are present. More... | |
Variables | |
static int | R [4] = {0, 0, 0, 0} |
static bool | redundant_comms = false |
static bool | InitMagma = false |
cudaGaugeField * | gaugePrecise = nullptr |
cudaGaugeField * | gaugeSloppy = nullptr |
cudaGaugeField * | gaugePrecondition = nullptr |
cudaGaugeField * | gaugeRefinement = nullptr |
cudaGaugeField * | gaugeExtended = nullptr |
cudaGaugeField * | gaugeFatPrecise = nullptr |
cudaGaugeField * | gaugeFatSloppy = nullptr |
cudaGaugeField * | gaugeFatPrecondition = nullptr |
cudaGaugeField * | gaugeFatRefinement = nullptr |
cudaGaugeField * | gaugeFatExtended = nullptr |
cudaGaugeField * | gaugeLongExtended = nullptr |
cudaGaugeField * | gaugeLongPrecise = nullptr |
cudaGaugeField * | gaugeLongSloppy = nullptr |
cudaGaugeField * | gaugeLongPrecondition = nullptr |
cudaGaugeField * | gaugeLongRefinement = nullptr |
cudaGaugeField * | gaugeSmeared = nullptr |
cudaCloverField * | cloverPrecise = nullptr |
cudaCloverField * | cloverSloppy = nullptr |
cudaCloverField * | cloverPrecondition = nullptr |
cudaCloverField * | cloverRefinement = nullptr |
cudaGaugeField * | momResident = nullptr |
cudaGaugeField * | extendedGaugeResident = nullptr |
std::vector< cudaColorSpinorField * > | solutionResident |
static int * | num_failures_h = nullptr |
static int * | num_failures_d = nullptr |
cudaDeviceProp | deviceProp |
cudaStream_t * | streams |
static bool | initialized = false |
Profiler for initQuda. More... | |
static TimeProfile | profileInit ("initQuda") |
Profile for loadGaugeQuda / saveGaugeQuda. More... | |
static TimeProfile | profileGauge ("loadGaugeQuda") |
Profile for loadCloverQuda. More... | |
static TimeProfile | profileClover ("loadCloverQuda") |
Profiler for dslashQuda. More... | |
static TimeProfile | profileDslash ("dslashQuda") |
Profiler for invertQuda. More... | |
static TimeProfile | profileInvert ("invertQuda") |
Profiler for invertMultiShiftQuda. More... | |
static TimeProfile | profileMulti ("invertMultiShiftQuda") |
Profiler for eigensolveQuda. More... | |
static TimeProfile | profileEigensolve ("eigensolveQuda") |
Profiler for computeFatLinkQuda. More... | |
static TimeProfile | profileFatLink ("computeKSLinkQuda") |
Profiler for computeGaugeForceQuda. More... | |
static TimeProfile | profileGaugeForce ("computeGaugeForceQuda") |
Profiler for updateGaugeFieldQuda. More... | |
static TimeProfile | profileGaugeUpdate ("updateGaugeFieldQuda") |
Profiler for createExtendedGaugeField. More... | |
static TimeProfile | profileExtendedGauge ("createExtendedGaugeField") |
Profiler for computeCloverForceQuda. More... | |
static TimeProfile | profileCloverForce ("computeCloverForceQuda") |
Profiler for computeStaggeredForceQuda. More... | |
static TimeProfile | profileStaggeredForce ("computeStaggeredForceQuda") |
Profiler for computeHISQForceQuda. More... | |
static TimeProfile | profileHISQForce ("computeHISQForceQuda") |
Profiler for plaqQuda. More... | |
static TimeProfile | profilePlaq ("plaqQuda") |
Profiler for wuppertalQuda. More... | |
static TimeProfile | profileWuppertal ("wuppertalQuda") |
Profiler for gaussQuda. More... | |
static TimeProfile | profileGauss ("gaussQuda") |
Profiler for plaqQuda. More... | |
static TimeProfile | profileQCharge ("qChargeQuda") |
Profiler for APEQuda. More... | |
static TimeProfile | profileAPE ("APEQuda") |
Profiler for STOUTQuda. More... | |
static TimeProfile | profileSTOUT ("STOUTQuda") |
Profiler for OvrImpSTOUTQuda. More... | |
static TimeProfile | profileOvrImpSTOUT ("OvrImpSTOUTQuda") |
Profiler for projectSU3Quda. More... | |
static TimeProfile | profileProject ("projectSU3Quda") |
Profiler for staggeredPhaseQuda. More... | |
static TimeProfile | profilePhase ("staggeredPhaseQuda") |
Profiler for contractions. More... | |
static TimeProfile | profileContract ("contractQuda") |
Profiler for covariant derivative. More... | |
static TimeProfile | profileCovDev ("covDevQuda") |
Profiler for momentum action. More... | |
static TimeProfile | profileMomAction ("momActionQuda") |
Profiler for endQuda. More... | |
static TimeProfile | profileEnd ("endQuda") |
Profiler for GaugeFixing. More... | |
static TimeProfile | GaugeFixFFTQuda ("GaugeFixFFTQuda") |
static TimeProfile | GaugeFixOVRQuda ("GaugeFixOVRQuda") |
Profiler for toal time spend between init and end. More... | |
static TimeProfile | profileInit2End ("initQuda-endQuda", false) |
static bool | enable_profiler = false |
static bool | do_not_profile_quda = false |
static bool | comms_initialized = false |
static const std::string | quda_version = STR(QUDA_VERSION_MAJOR) "." STR(QUDA_VERSION_MINOR) "." STR(QUDA_VERSION_SUBMINOR) |
char * | gitversion |
static bool | invalidate_clover = true |
static double | quda::unscaled_shifts [QUDA_MAX_MULTI_SHIFT] |
#define CHECK_PARAM |
Definition at line 65 of file interface_quda.cpp.
#define INIT_PARAM |
Definition at line 60 of file interface_quda.cpp.
#define MAX | ( | a, | |
b | |||
) | ((a)>(b)? (a):(b)) |
Definition at line 52 of file interface_quda.cpp.
#define MAX_GPU_NUM_PER_NODE 16 |
Definition at line 57 of file interface_quda.cpp.
#define PRINT_PARAM |
Definition at line 70 of file interface_quda.cpp.
#define QUDA_MAX_CHRONO 12 |
Definition at line 148 of file interface_quda.cpp.
Referenced by endQuda(), flushChronoQuda(), and invertQuda().
#define REFINE_INCREASING_MASS |
#define spinorSiteSize 24 |
Definition at line 55 of file interface_quda.cpp.
Referenced by clover_dslash(), clover_mat(), clover_matpc(), dw_4d_mat(), dw_4d_matpc(), dw_mat(), dw_matdagmat(), dw_matpc(), main(), mdw_dslash_4_pre(), mdw_dslash_5(), mdw_mat(), mdw_matpc(), test(), tm_mat(), tm_matpc(), tm_ndeg_mat(), tm_ndeg_matpc(), tmc_dslash(), tmc_mat(), tmc_matpc(), twistCloverGamma5(), wil_mat(), and wil_matpc().
#define STR | ( | x | ) | STR_(x) |
Definition at line 473 of file interface_quda.cpp.
#define STR_ | ( | x | ) | #x |
Definition at line 472 of file interface_quda.cpp.
#define TDIFF | ( | a, | |
b | |||
) | (b.tv_sec - a.tv_sec + 0.000001*(b.tv_usec - a.tv_usec)) |
Definition at line 53 of file interface_quda.cpp.
void apply_staggered_phase_quda_ | ( | ) |
Apply the staggered phase factors to the resident gauge field.
Definition at line 5328 of file interface_quda.cpp.
References quda::GaugeField::applyStaggeredPhase(), errorQuda, getVerbosity(), printfQuda, and QUDA_VERBOSE.
void checkClover | ( | QudaInvertParam * | param | ) |
Definition at line 2242 of file interface_quda.cpp.
References QudaInvertParam_s::cuda_prec, QudaInvertParam_s::cuda_prec_precondition, QudaInvertParam_s::cuda_prec_refinement_sloppy, QudaInvertParam_s::cuda_prec_sloppy, QudaInvertParam_s::dslash_type, errorQuda, freeSloppyCloverQuda(), loadSloppyCloverQuda(), prec, quda::LatticeField::Precision(), QUDA_CLOVER_WILSON_DSLASH, and QUDA_TWISTED_CLOVER_DSLASH.
Referenced by checkGauge().
quda::cudaGaugeField* checkGauge | ( | QudaInvertParam * | param | ) |
Definition at line 2266 of file interface_quda.cpp.
References checkClover(), QudaInvertParam_s::cuda_prec, QudaInvertParam_s::cuda_prec_precondition, QudaInvertParam_s::cuda_prec_refinement_sloppy, QudaInvertParam_s::cuda_prec_sloppy, cudaGauge, QudaInvertParam_s::dslash_type, errorQuda, freeSloppyGaugeQuda(), gaugeFatPrecise, gaugePrecise, loadSloppyGaugeQuda(), QudaInvertParam_s::overlap, quda::LatticeField::Precision(), QUDA_ASQTAD_DSLASH, and quda::GaugeField::Reconstruct().
Referenced by quda::deflated_solver::deflated_solver(), dumpMultigridQuda(), eigensolveQuda(), invertMultiShiftQuda(), invertMultiSrcQuda(), invertQuda(), quda::multigrid_solver::multigrid_solver(), and updateMultigridQuda().
std::vector< std::vector<ColorSpinorField*> > chronoResident | ( | QUDA_MAX_CHRONO | ) |
void closeMagma | ( | ) |
Definition at line 106 of file interface_quda.cpp.
References CloseMagma(), InitMagma, and printfQuda.
Referenced by destroyDeflationQuda().
void clover_quda_ | ( | void * | h_out, |
void * | h_in, | ||
QudaInvertParam * | inv_param, | ||
QudaParity * | parity, | ||
int * | inverse | ||
) |
Apply the clover operator or its inverse.
h_out | Result spinor field |
h_in | Input spinor field |
param | Contains all metadata regarding host and device storage |
parity | The source and destination parity of the field |
inverse | Whether to apply the inverse of the clover term |
Definition at line 5157 of file interface_quda.cpp.
References cloverQuda().
void cloverQuda | ( | void * | h_out, |
void * | h_in, | ||
QudaInvertParam * | inv_param, | ||
QudaParity | parity, | ||
int | inverse | ||
) |
Definition at line 2339 of file interface_quda.cpp.
References quda::GaugeField::Anisotropy(), quda::blas::ax(), quda::DiracClover::Clover(), quda::DiracCloverPC::CloverInv(), quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), dirac, QudaInvertParam_s::dirac_order, QudaInvertParam_s::dslash_type, errorQuda, getVerbosity(), in, initialized, QudaInvertParam_s::input_location, quda::blas::norm2(), out, QudaInvertParam_s::output_location, popVerbosity(), printfQuda, printQudaInvertParam(), pushVerbosity(), QUDA_CLOVER_WILSON_DSLASH, QUDA_CPS_WILSON_DIRAC_ORDER, QUDA_CPU_FIELD_LOCATION, QUDA_DEBUG_VERBOSE, QUDA_EVEN_PARITY, QUDA_NULL_FIELD_CREATE, QUDA_ODD_PARITY, QUDA_TWISTED_CLOVER_DSLASH, quda::setDiracParam(), QudaInvertParam_s::verbosity, and quda::LatticeField::X().
Referenced by clover_quda_().
void comm_set_gridsize_ | ( | int * | grid | ) |
BQCD wants a node mapping with x varying fastest.
Definition at line 5370 of file interface_quda.cpp.
References initCommsGridQuda().
void compute_gauge_force_quda_ | ( | void * | mom, |
void * | gauge, | ||
int * | num_loop_types, | ||
double * | coeff, | ||
double * | dt, | ||
QudaGaugeParam * | param | ||
) |
Compute the gauge force and update the mometum field.
[in,out] | mom | The momentum field to be updated |
[in] | gauge | The gauge field from which we compute the force |
[in] | num_loop_types | Number of loop types in the gauge action |
[in] | loop_coeff | Coefficients of the different loops in the Symanzik action |
[in] | dt | The integration step size |
[in] | param | The parameters of the external fields and the computation settings |
Definition at line 5267 of file interface_quda.cpp.
References computeGaugeForceQuda(), createGaugeForcePaths(), errorQuda, host_free, and safe_malloc.
void compute_staggered_force_quda_ | ( | void * | mom, |
double * | dt, | ||
double * | delta, | ||
void * | gauge, | ||
void * | x, | ||
QudaGaugeParam * | gauge_param, | ||
QudaInvertParam * | invert_param | ||
) |
Compute the naive staggered force. All fields must be in the same precision.
mom | Momentum field |
dt | Integrating step size |
delta | Additional scale factor when updating momentum (mom += delta * [force]_TA |
gauge | Gauge field (at present only supports resident gauge field) |
x | Array of single-parity solution vectors (at present only supports resident solutions) |
gauge_param | Gauge field meta data |
invert_param | Dirac and solver meta data |
Definition at line 5323 of file interface_quda.cpp.
References computeStaggeredForceQuda().
void computeCloverForceQuda | ( | void * | mom, |
double | dt, | ||
void ** | x, | ||
void ** | p, | ||
double * | coeff, | ||
double | kappa2, | ||
double | ck, | ||
int | nvector, | ||
double | multiplicity, | ||
void * | gauge, | ||
QudaGaugeParam * | gauge_param, | ||
QudaInvertParam * | inv_param | ||
) |
Compute the clover force contributions in each dimension mu given the array of solution fields, and compute the resulting momentum field.
mom | Force matrix |
dt | Integrating step size |
x | Array of solution vectors |
p | Array of intermediate vectors |
coeff | Array of residues for each contribution (multiplied by stepsize) |
kappa2 | -kappa*kappa parameter |
ck | -clover_coefficient * kappa / 8 |
nvec | Number of vectors |
multiplicity | Number fermions this bilinear reresents |
gauge | Gauge Field |
gauge_param | Gauge field meta data |
inv_param | Dirac and solver meta data |
Definition at line 4684 of file interface_quda.cpp.
References checkCudaError, quda::cloverDerivative(), quda::computeCloverForce(), quda::computeCloverSigmaOprod(), quda::computeCloverSigmaTrace(), quda::copy(), cpuMom, quda::GaugeFieldParam::create, quda::ColorSpinorParam::create, quda::Dirac::create(), quda::ColorSpinorField::Create(), createExtendedGauge(), cudaForce, cudaMom, quda::Dirac::Dagger(), dirac, quda::Dirac::Dslash(), errorQuda, quda::ColorSpinorField::Even(), extendedGaugeResident, quda::ColorSpinorParam::fieldOrder, quda::gamma5(), quda::ColorSpinorParam::gammaBasis, QudaGaugeParam_s::gauge_order, quda::GaugeFieldParam::geometry, quda::GaugeFieldParam::link_type, quda::ColorSpinorParam::location, quda::Dirac::M(), quda::ColorSpinorParam::nColor, quda::LatticeFieldParam::nDim, quda::ColorSpinorParam::nSpin, quda::ColorSpinorField::Odd(), quda::GaugeFieldParam::order, quda::LatticeFieldParam::pad, param, quda::LatticeFieldParam::Precision(), profileCloverForce, QUDA_ASQTAD_MOM_LINKS, QUDA_CUDA_FIELD_LOCATION, QUDA_DAG_NO, QUDA_DAG_YES, QUDA_DEGRAND_ROSSI_GAMMA_BASIS, QUDA_DIRECT_PC_SOLVE, QUDA_DOUBLE_PRECISION, QUDA_EVEN_ODD_SITE_ORDER, QUDA_EVEN_PARITY, QUDA_FLOAT2_FIELD_ORDER, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FULL_SITE_SUBSET, QUDA_GENERAL_LINKS, QUDA_NORMOP_PC_SOLVE, QUDA_NULL_FIELD_CREATE, QUDA_ODD_PARITY, QUDA_PARITY_SITE_SUBSET, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_10, QUDA_RECONSTRUCT_12, QUDA_RECONSTRUCT_NO, QUDA_REFERENCE_FIELD_CREATE, QUDA_SPACE_SPIN_COLOR_FIELD_ORDER, QUDA_TENSOR_GEOMETRY, QUDA_UKQCD_GAMMA_BASIS, QUDA_ZERO_FIELD_CREATE, R, quda::GaugeFieldParam::reconstruct, quda::cudaGaugeField::saveCPUField(), quda::setDiracParam(), quda::ColorSpinorParam::setPrecision(), quda::ColorSpinorParam::siteOrder, quda::LatticeFieldParam::siteSubset, QudaInvertParam_s::solve_type, tmp, quda::DiracParam::tmp1, quda::updateMomentum(), QudaInvertParam_s::use_resident_solution, quda::ColorSpinorParam::v, and quda::LatticeFieldParam::x.
int computeGaugeFixingFFTQuda | ( | void * | gauge, |
const unsigned int | gauge_dir, | ||
const unsigned int | Nsteps, | ||
const unsigned int | verbose_interval, | ||
const double | alpha, | ||
const unsigned int | autotune, | ||
const double | tolerance, | ||
const unsigned int | stopWtheta, | ||
QudaGaugeParam * | param, | ||
double * | timeinfo | ||
) |
Gauge fixing with Steepest descent method with FFTs with support for single GPU only.
[in,out] | gauge,gauge | field to be fixed |
[in] | gauge_dir,3 | for Coulomb gauge fixing, other for Landau gauge fixing |
[in] | Nsteps,maximum | number of steps to perform gauge fixing |
[in] | verbose_interval,print | gauge fixing info when iteration count is a multiple of this |
[in] | alpha,gauge | fixing parameter of the method, most common value is 0.08 |
[in] | autotune,1 | to autotune the method, i.e., if the Fg inverts its tendency we decrease the alpha value |
[in] | tolerance,torelance | value to stop the method, if this value is zero then the method stops when iteration reachs the maximum number of steps defined by Nsteps |
[in] | stopWtheta,0 | for MILC criterium and 1 to use the theta value |
[in] | param | The parameters of the external fields and the computation settings |
[out] | timeinfo |
Definition at line 5716 of file interface_quda.cpp.
References checkCudaError, cpuGauge, quda::GaugeFieldParam::create, GaugeFixFFTQuda, quda::gaugefixingFFT(), gaugePrecise, gParam, quda::TimeProfile::Last(), quda::GaugeFieldParam::link_type, QudaGaugeParam_s::make_resident_gauge, quda::GaugeFieldParam::order, quda::LatticeFieldParam::Precision(), QUDA_DOUBLE_PRECISION, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FLOAT4_GAUGE_ORDER, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_NO, quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, and QudaGaugeParam_s::type.
int computeGaugeFixingOVRQuda | ( | void * | gauge, |
const unsigned int | gauge_dir, | ||
const unsigned int | Nsteps, | ||
const unsigned int | verbose_interval, | ||
const double | relax_boost, | ||
const double | tolerance, | ||
const unsigned int | reunit_interval, | ||
const unsigned int | stopWtheta, | ||
QudaGaugeParam * | param, | ||
double * | timeinfo | ||
) |
Gauge fixing with overrelaxation with support for single and multi GPU.
[in,out] | gauge,gauge | field to be fixed |
[in] | gauge_dir,3 | for Coulomb gauge fixing, other for Landau gauge fixing |
[in] | Nsteps,maximum | number of steps to perform gauge fixing |
[in] | verbose_interval,print | gauge fixing info when iteration count is a multiple of this |
[in] | relax_boost,gauge | fixing parameter of the overrelaxation method, most common value is 1.5 or 1.7. |
[in] | tolerance,torelance | value to stop the method, if this value is zero then the method stops when iteration reachs the maximum number of steps defined by Nsteps |
[in] | reunit_interval,reunitarize | gauge field when iteration count is a multiple of this |
[in] | stopWtheta,0 | for MILC criterium and 1 to use the theta value |
[in] | param | The parameters of the external fields and the computation settings |
[out] | timeinfo |
if (!param->use_resident_gauge) { // load fields onto the device
Definition at line 5634 of file interface_quda.cpp.
References checkCudaError, comm_size(), quda::copyExtendedGauge(), cpuGauge, quda::GaugeFieldParam::create, createExtendedGauge(), quda::gaugefixingOVR(), GaugeFixOVRQuda, gaugePrecise, gParam, quda::TimeProfile::Last(), quda::GaugeFieldParam::link_type, QudaGaugeParam_s::make_resident_gauge, quda::GaugeFieldParam::order, quda::LatticeFieldParam::Precision(), QUDA_CUDA_FIELD_LOCATION, QUDA_DOUBLE_PRECISION, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FLOAT4_GAUGE_ORDER, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_NO, R, quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, and QudaGaugeParam_s::type.
int computeGaugeForceQuda | ( | void * | mom, |
void * | sitelink, | ||
int *** | input_path_buf, | ||
int * | path_length, | ||
double * | loop_coeff, | ||
int | num_paths, | ||
int | max_length, | ||
double | dt, | ||
QudaGaugeParam * | qudaGaugeParam | ||
) |
Compute the gauge force and update the mometum field
mom | The momentum field to be updated |
sitelink | The gauge field from which we compute the force |
input_path_buf[dim][num_paths][path_length] | |
path_length | One less that the number of links in a loop (e.g., 3 for a staple) |
loop_coeff | Coefficients of the different loops in the Symanzik action |
num_paths | How many contributions from path_length different "staples" |
max_length | The maximum number of non-zero of links in any path in the action |
dt | The integration step size (for MILC this is dt*beta/3) |
param | The parameters of the external fields and the computation settings |
Definition at line 4073 of file interface_quda.cpp.
References checkCudaError, cpuMom, quda::GaugeFieldParam::create, quda::GaugeField::Create(), createExtendedGauge(), QudaGaugeParam_s::cuda_prec, cudaGauge, cudaMom, errorQuda, extendedGaugeResident, quda::forceMonitor(), QudaGaugeParam_s::gauge_offset, quda::gaugeForce(), gaugePrecise, gParam, quda::GaugeFieldParam::link_type, quda::cudaGaugeField::loadCPUField(), QudaGaugeParam_s::make_resident_gauge, QudaGaugeParam_s::make_resident_mom, QudaGaugeParam_s::mom_offset, momResident, quda::GaugeFieldParam::order, QudaGaugeParam_s::overwrite_mom, profileGaugeForce, QUDA_ASQTAD_MOM_LINKS, QUDA_DOUBLE_PRECISION, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FLOAT4_GAUGE_ORDER, QUDA_MILC_GAUGE_ORDER, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_QDP_GAUGE_ORDER, QUDA_RECONSTRUCT_10, QUDA_RECONSTRUCT_NO, QUDA_TIFR_GAUGE_ORDER, QUDA_TIFR_PADDED_GAUGE_ORDER, QUDA_ZERO_FIELD_CREATE, R, quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, QudaGaugeParam_s::return_result_mom, quda::cudaGaugeField::saveCPUField(), quda::GaugeFieldParam::setPrecision(), quda::GaugeFieldParam::site_offset, quda::GaugeFieldParam::site_size, QudaGaugeParam_s::site_size, quda::updateMomentum(), QudaGaugeParam_s::use_resident_gauge, QudaGaugeParam_s::use_resident_mom, and quda::cudaGaugeField::zero().
Referenced by compute_gauge_force_quda_(), and gauge_force_test().
void computeHISQForceQuda | ( | void * | momentum, |
double | dt, | ||
const double | level2_coeff[6], | ||
const double | fat7_coeff[6], | ||
const void *const | w_link, | ||
const void *const | v_link, | ||
const void *const | u_link, | ||
void ** | quark, | ||
int | num, | ||
int | num_naik, | ||
double ** | coeff, | ||
QudaGaugeParam * | param | ||
) |
Compute the fermion force for the HISQ quark action and integrate the momentum.
momentum | The momentum field we are integrating |
dt | The stepsize used to integrate the momentum |
level2_coeff | The coefficients for the second level of smearing in the quark action. |
fat7_coeff | The coefficients for the first level of smearing (fat7) in the quark action. |
w_link | Unitarized link variables obtained by applying fat7 smearing and unitarization to the original links. |
v_link | Fat7 link variables. |
u_link | SU(3) think link variables. |
quark | The input fermion field. |
num | The number of quark fields |
num_naik | The number of naik contributions |
coeff | The coefficient multiplying the fermion fields in the outer product |
param. | The field parameters. |
Definition at line 4433 of file interface_quda.cpp.
References quda::ax(), quda::GaugeField::Bytes(), comm_dim_partitioned(), quda::computeStaggeredOprod(), quda::cudaGaugeField::copy(), quda::copyExtendedGauge(), QudaGaugeParam_s::cpu_prec, cpuMom, cpuULink, quda::GaugeFieldParam::create, quda::ColorSpinorParam::create, cudaGauge, cudaMom, errorQuda, quda::cudaGaugeField::exchangeExtendedGhost(), quda::ColorSpinorParam::fieldOrder, quda::GaugeFieldParam::gauge, QudaGaugeParam_s::gauge_order, quda::cudaGaugeField::Gauge_p(), quda::LatticeFieldParam::ghostExchange, quda::fermion_force::hisqCompleteForce(), quda::fermion_force::hisqLongLinkForce(), quda::fermion_force::hisqStaplesForce(), quda::GaugeFieldParam::link_type, quda::cudaGaugeField::loadCPUField(), QudaGaugeParam_s::make_resident_mom, momResident, quda::ColorSpinorParam::nColor, quda::LatticeFieldParam::nDim, quda::GaugeFieldParam::nFace, quda::ColorSpinorParam::nSpin, num_failures_d, num_failures_h, quda::GaugeFieldParam::order, quda::LatticeFieldParam::pad, param, quda::LatticeFieldParam::Precision(), profileHISQForce, QUDA_ASQTAD_MOM_LINKS, QUDA_CUDA_FIELD_LOCATION, QUDA_EVEN_ODD_SITE_ORDER, QUDA_FLOAT2_FIELD_ORDER, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FULL_SITE_SUBSET, QUDA_GENERAL_LINKS, QUDA_GHOST_EXCHANGE_EXTENDED, QUDA_GHOST_EXCHANGE_NO, QUDA_MILC_GAUGE_ORDER, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_10, QUDA_RECONSTRUCT_NO, QUDA_REFERENCE_FIELD_CREATE, QUDA_SPACE_COLOR_SPIN_FIELD_ORDER, QUDA_ZERO_FIELD_CREATE, quda::LatticeFieldParam::r, R, quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::return_result_mom, quda::cudaGaugeField::saveCPUField(), quda::GaugeFieldParam::setPrecision(), quda::ColorSpinorParam::setPrecision(), quda::fermion_force::setUnitarizeForceConstants(), quda::ColorSpinorParam::siteOrder, quda::LatticeFieldParam::siteSubset, unitarize_eps, quda::fermion_force::unitarizeForce(), quda::updateMomentum(), QudaGaugeParam_s::use_resident_mom, quda::ColorSpinorParam::v, and quda::LatticeFieldParam::x.
void computeKSLinkQuda | ( | void * | fatlink, |
void * | longlink, | ||
void * | ulink, | ||
void * | inlink, | ||
double * | path_coeff, | ||
QudaGaugeParam * | param | ||
) |
Definition at line 3974 of file interface_quda.cpp.
References cpuFatLink, quda::GaugeFieldParam::create, createExtendedGauge(), QudaGaugeParam_s::cuda_prec, cudaFatLink, errorQuda, quda::fatLongKSLink(), quda::GaugeFieldParam::gauge, quda::LatticeFieldParam::ghostExchange, gParam, quda::GaugeFieldParam::link_type, quda::cudaGaugeField::loadCPUField(), longlink, num_failures_d, num_failures_h, profileFatLink, QUDA_GENERAL_LINKS, QUDA_GHOST_EXCHANGE_NO, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_NO, QUDA_ZERO_FIELD_CREATE, R, quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, reunit_allow_svd, reunit_svd_only, quda::cudaGaugeField::saveCPUField(), quda::GaugeFieldParam::setPrecision(), quda::setUnitarizeLinksConstants(), svd_abs_error, svd_rel_error, QudaGaugeParam_s::type, unitarize_eps, and quda::unitarizeLinks().
Referenced by computeHISQLinksGPU(), hisq_test(), llfat_test(), and unitarize_link_test().
void computeStaggeredForceQuda | ( | void * | h_mom, |
double | dt, | ||
double | delta, | ||
void * | h_force, | ||
void ** | x, | ||
QudaGaugeParam * | gauge_param, | ||
QudaInvertParam * | inv_param | ||
) |
Definition at line 4271 of file interface_quda.cpp.
References quda::applyU(), checkCudaError, quda::computeStaggeredOprod(), cpuForce, cpuMom, quda::GaugeFieldParam::create, quda::ColorSpinorParam::create, quda::Dirac::create(), quda::ColorSpinorField::Create(), cudaForce, cudaMom, dirac, quda::Dirac::Dslash(), errorQuda, quda::ColorSpinorField::Even(), quda::ColorSpinorParam::fieldOrder, quda::ColorSpinorParam::gammaBasis, quda::GaugeFieldParam::gauge, gParam, quda::GaugeFieldParam::link_type, quda::cudaGaugeField::loadCPUField(), quda::ColorSpinorParam::location, QudaGaugeParam_s::make_resident_mom, momResident, quda::ColorSpinorParam::nColor, quda::LatticeFieldParam::nDim, quda::ColorSpinorParam::nSpin, QudaInvertParam_s::num_offset, quda::ColorSpinorField::Odd(), quda::GaugeFieldParam::order, quda::LatticeFieldParam::pad, quda::LatticeFieldParam::Precision(), profileStaggeredForce, QUDA_ASQTAD_MOM_LINKS, QUDA_CUDA_FIELD_LOCATION, QUDA_DEGRAND_ROSSI_GAMMA_BASIS, QUDA_DIRECT_PC_SOLVE, QUDA_EVEN_ODD_SITE_ORDER, QUDA_FLOAT2_FIELD_ORDER, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FULL_SITE_SUBSET, QUDA_GENERAL_LINKS, QUDA_NORMOP_PC_SOLVE, QUDA_NULL_FIELD_CREATE, QUDA_ODD_PARITY, QUDA_PERIODIC_T, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_PREAMBLE, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_10, QUDA_RECONSTRUCT_NO, QUDA_ZERO_FIELD_CREATE, qudaDeviceSynchronize, quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, QudaInvertParam_s::residue, QudaGaugeParam_s::return_result_mom, quda::cudaGaugeField::saveCPUField(), quda::setDiracParam(), quda::ColorSpinorParam::setPrecision(), quda::ColorSpinorParam::siteOrder, quda::LatticeFieldParam::siteSubset, QudaInvertParam_s::solve_type, QudaGaugeParam_s::staggered_phase_type, quda::GaugeField::StaggeredPhase(), quda::GaugeField::StaggeredPhaseApplied(), quda::GaugeFieldParam::t_boundary, quda::updateMomentum(), QudaGaugeParam_s::use_resident_gauge, QudaGaugeParam_s::use_resident_mom, QudaInvertParam_s::use_resident_solution, quda::LatticeFieldParam::x, and X.
Referenced by compute_staggered_force_quda_().
void contractQuda | ( | const void * | x, |
const void * | y, | ||
void * | result, | ||
const QudaContractType | cType, | ||
QudaInvertParam * | param, | ||
const int * | X | ||
) |
Public function to perform color contractions of the host spinors x and y.
[in] | x | pointer to host data |
[in] | y | pointer to host data |
[out] | result | pointer to the 16 spin projections per lattice site |
[in] | cType | Which type of contraction (open, degrand-rossi, etc) |
[in] | param | meta data for construction of ColorSpinorFields. |
[in] | X | spacetime data for construction of ColorSpinorFields. |
Definition at line 5790 of file interface_quda.cpp.
References quda::contractQuda(), quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), quda::ColorSpinorParam::gammaBasis, QudaInvertParam_s::input_location, quda::ColorSpinorParam::location, pool_device_free, pool_device_malloc, quda::LatticeFieldParam::Precision(), profileContract, QUDA_CUDA_FIELD_LOCATION, QUDA_DEGRAND_ROSSI_GAMMA_BASIS, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, qudaMemcpy, quda::ColorSpinorParam::setPrecision(), and quda::ColorSpinorParam::v.
void copyExtendedResidentGaugeQuda | ( | void * | resident_gauge, |
QudaFieldLocation | loc | ||
) |
Definition at line 5441 of file interface_quda.cpp.
References quda::copyExtendedGauge(), createExtendedGauge(), errorQuda, extendedGaugeResident, profilePlaq, and R.
Referenced by main().
void createCloverQuda | ( | QudaInvertParam * | param | ) |
Compute the clover field and its inverse from the resident gauge field.
param | The parameters of the clover field to create |
Definition at line 4198 of file interface_quda.cpp.
References QudaInvertParam_s::clover_coeff, commDimPartitioned(), quda::computeClover(), quda::computeFmunu(), createExtendedGauge(), errorQuda, extendedGaugeResident, quda::LatticeField::Precision(), profileClover, QUDA_CUDA_FIELD_LOCATION, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FULL_SITE_SUBSET, QUDA_GHOST_EXCHANGE_NO, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_12, QUDA_RECONSTRUCT_8, QUDA_RECONSTRUCT_NO, QUDA_TENSOR_GEOMETRY, R, quda::GaugeField::Reconstruct(), redundant_comms, quda::LatticeFieldParam::siteSubset, and quda::LatticeField::X().
Referenced by loadCloverQuda().
|
static |
Definition at line 692 of file interface_quda.cpp.
References quda::GaugeField::Anisotropy(), quda::copyExtendedGauge(), quda::GaugeFieldParam::create, quda::GaugeField::Geometry(), quda::GaugeField::Order(), out, quda::LatticeField::Precision(), QUDA_CUDA_FIELD_LOCATION, QUDA_FULL_SITE_SUBSET, QUDA_GHOST_EXCHANGE_EXTENDED, quda::QUDA_PROFILE_INIT, QUDA_RECONSTRUCT_INVALID, QUDA_ZERO_FIELD_CREATE, quda::GaugeField::Reconstruct(), redundant_comms, quda::GaugeField::Tadpole(), quda::GaugeField::TBoundary(), and quda::LatticeField::X().
Referenced by computeCloverForceQuda(), computeGaugeFixingOVRQuda(), computeGaugeForceQuda(), computeKSLinkQuda(), copyExtendedResidentGaugeQuda(), createCloverQuda(), loadGaugeQuda(), performAPEnStep(), performOvrImpSTOUTnStep(), performSTOUTnStep(), plaqQuda(), qChargeDensityQuda(), and qChargeQuda().
void* createGaugeFieldQuda | ( | void * | gauge, |
int | geometry, | ||
QudaGaugeParam * | param | ||
) |
Allocate a gauge (matrix) field on the device and optionally download a host gauge field.
gauge | The host gauge field (optional - if set to 0 then the gauge field zeroed) |
geometry | The geometry of the matrix field to create (1 - scalar, 4 - vector, 6 - tensor) |
param | The parameters of the external field and the field to be created |
Definition at line 4229 of file interface_quda.cpp.
References cpuGauge, quda::GaugeFieldParam::create, cudaGauge, errorQuda, quda::GaugeFieldParam::geometry, gParam, quda::cudaGaugeField::loadCPUField(), quda::GaugeFieldParam::order, QUDA_FLOAT2_GAUGE_ORDER, QUDA_GENERAL_LINKS, QUDA_SCALAR_GEOMETRY, QUDA_VECTOR_GEOMETRY, and QUDA_ZERO_FIELD_CREATE.
|
static |
Definition at line 5219 of file interface_quda.cpp.
References index(), and opp().
Referenced by compute_gauge_force_quda_().
void destroyDeflationQuda | ( | void * | df_instance | ) |
Free resources allocated by the deflated solver
Definition at line 2823 of file interface_quda.cpp.
References closeMagma().
Referenced by main().
void destroyGaugeFieldQuda | ( | void * | gauge | ) |
Reinterpret gauge as a pointer to cudaGaugeField and call destructor.
gauge | Gauge field to be freed |
Definition at line 4265 of file interface_quda.cpp.
void destroyMultigridQuda | ( | void * | mg_instance | ) |
Free resources allocated by the multigrid solver.
mg_instance | Pointer to instance of multigrid_solver |
param | Contains all metadata regarding host and device storage and solver parameters |
Definition at line 2641 of file interface_quda.cpp.
References quda::multigrid_solver::mg.
Referenced by main().
void dslash_quda_ | ( | void * | h_out, |
void * | h_in, | ||
QudaInvertParam * | inv_param, | ||
QudaParity * | parity | ||
) |
Apply the Dslash operator (D_{eo} or D_{oe}).
h_out | Result spinor field |
h_in | Input spinor field |
param | Contains all metadata regarding host and device storage |
parity | The destination parity of the field |
Definition at line 5155 of file interface_quda.cpp.
References dslashQuda().
void dslashQuda | ( | void * | h_out, |
void * | h_in, | ||
QudaInvertParam * | inv_param, | ||
QudaParity | parity | ||
) |
Apply the Dslash operator (D_{eo} or D_{oe}).
h_out | Result spinor field |
h_in | Input spinor field |
param | Contains all metadata regarding host and device storage |
parity | The destination parity of the field |
Definition at line 1853 of file interface_quda.cpp.
References quda::blas::ax(), quda::ColorSpinorParam::create, quda::Dirac::create(), quda::ColorSpinorField::Create(), QudaInvertParam_s::dagger, dirac, QudaInvertParam_s::dirac_order, QudaInvertParam_s::dslash_type, errorQuda, gaugeLongPrecise, getVerbosity(), in, QudaInvertParam_s::input_location, QudaInvertParam_s::mass, QudaInvertParam_s::mass_normalization, quda::blas::norm2(), out, QudaInvertParam_s::output_location, popVerbosity(), printfQuda, printQudaInvertParam(), profileDslash, pushVerbosity(), QUDA_ASQTAD_DSLASH, QUDA_CLOVER_WILSON_DSLASH, QUDA_CPS_WILSON_DIRAC_ORDER, QUDA_DEBUG_VERBOSE, QUDA_EVEN_PARITY, QUDA_KAPPA_NORMALIZATION, QUDA_NULL_FIELD_CREATE, QUDA_ODD_PARITY, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_STAGGERED_DSLASH, QUDA_TWISTED_CLOVER_DSLASH, quda::setDiracParam(), tmp1, and QudaInvertParam_s::verbosity.
Referenced by dslash_quda_(), and dslashCUDA().
void dslashQuda_4dpc | ( | void * | h_out, |
void * | h_in, | ||
QudaInvertParam * | inv_param, | ||
QudaParity | parity, | ||
int | test_type | ||
) |
Apply the Dslash operator (D_{eo} or D_{oe}) for 4D EO preconditioned DWF.
h_out | Result spinor field |
h_in | Input spinor field |
param | Contains all metadata regarding host and device storage |
parity | The destination parity of the field |
test_type | Choose a type of dslash operators |
Definition at line 1945 of file interface_quda.cpp.
References quda::blas::ax(), quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), dirac, QudaInvertParam_s::dirac_order, quda::DiracDomainWall4D::Dslash4(), quda::DiracDomainWall4D::Dslash5(), quda::DiracDomainWall4DPC::Dslash5inv(), QudaInvertParam_s::dslash_type, errorQuda, gaugeLongPrecise, getVerbosity(), in, QudaInvertParam_s::input_location, QudaInvertParam_s::kappa, quda::blas::norm2(), out, QudaInvertParam_s::output_location, popVerbosity(), printfQuda, printQudaInvertParam(), pushVerbosity(), QUDA_ASQTAD_DSLASH, QUDA_CPS_WILSON_DIRAC_ORDER, QUDA_DEBUG_VERBOSE, QUDA_EVEN_PARITY, QUDA_NULL_FIELD_CREATE, QUDA_ODD_PARITY, quda::setDiracParam(), and QudaInvertParam_s::verbosity.
Referenced by dslashCUDA().
void dslashQuda_mdwf | ( | void * | h_out, |
void * | h_in, | ||
QudaInvertParam * | inv_param, | ||
QudaParity | parity, | ||
int | test_type | ||
) |
Apply the Dslash operator (D_{eo} or D_{oe}) for Mobius DWF.
h_out | Result spinor field |
h_in | Input spinor field |
param | Contains all metadata regarding host and device storage |
parity | The destination parity of the field |
test_type | Choose a type of dslash operators |
Definition at line 2015 of file interface_quda.cpp.
References quda::blas::ax(), quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), dirac, QudaInvertParam_s::dirac_order, quda::DiracMobius::Dslash4(), quda::DiracMobius::Dslash4pre(), quda::DiracMobius::Dslash5(), quda::DiracMobiusPC::Dslash5inv(), QudaInvertParam_s::dslash_type, errorQuda, gaugeLongPrecise, getVerbosity(), in, QudaInvertParam_s::input_location, quda::blas::norm2(), out, QudaInvertParam_s::output_location, popVerbosity(), printfQuda, printQudaInvertParam(), pushVerbosity(), QUDA_ASQTAD_DSLASH, QUDA_CPS_WILSON_DIRAC_ORDER, QUDA_DEBUG_VERBOSE, QUDA_EVEN_PARITY, QUDA_NULL_FIELD_CREATE, QUDA_ODD_PARITY, quda::setDiracParam(), and QudaInvertParam_s::verbosity.
Referenced by dslashCUDA().
void dumpMultigridQuda | ( | void * | mg_instance, |
QudaMultigridParam * | param | ||
) |
Dump the null-space vectors to disk.
[in] | mg_instance | Pointer to the instance of multigrid_solver |
[in] | param | Contains all metadata regarding host and device storage and solver parameters (QudaMultigridParam::vec_outfile sets the output filename prefix). |
Definition at line 2726 of file interface_quda.cpp.
References checkGauge(), quda::MG::dumpNullVectors(), QudaMultigridParam_s::invert_param, quda::multigrid_solver::mg, popVerbosity(), profileInvert, profilerStart(), profilerStop(), pushVerbosity(), quda::QUDA_PROFILE_TOTAL, and QudaInvertParam_s::verbosity.
Referenced by main().
void eigensolveQuda | ( | void ** | host_evecs, |
double _Complex * | host_evals, | ||
QudaEigParam * | eig_param | ||
) |
Definition at line 2408 of file interface_quda.cpp.
References QudaEigParam_s::arpack_check, quda::arpack_solve(), checkGauge(), quda::EigenSolver::create(), quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), quda::createDirac(), QudaEigParam_s::cuda_prec_ritz, cudaGauge, dirac, QudaInvertParam_s::dslash_type, errorQuda, getVerbosity(), QudaInvertParam_s::gflops, initialized, QudaInvertParam_s::input_location, inv_param, QudaEigParam_s::invert_param, QudaInvertParam_s::iter, quda::ColorSpinorParam::location, QudaEigParam_s::nConv, popVerbosity(), printQudaEigParam(), printQudaInvertParam(), profileEigensolve, pushVerbosity(), QUDA_ASQTAD_DSLASH, QUDA_CUDA_FIELD_LOCATION, QUDA_DEBUG_VERBOSE, QUDA_DIRECT_PC_SOLVE, QUDA_DOMAIN_WALL_4D_DSLASH, QUDA_DOMAIN_WALL_DSLASH, QUDA_LAPLACE_DSLASH, QUDA_MOBIUS_DWF_DSLASH, QUDA_NORMERR_PC_SOLVE, QUDA_NORMOP_PC_SOLVE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_STAGGERED_DSLASH, QUDA_ZERO_FIELD_CREATE, quda::saveTuneCache(), QudaInvertParam_s::secs, quda::setKernelPackT(), quda::ColorSpinorParam::setPrecision(), QudaInvertParam_s::solution_type, QudaInvertParam_s::solve_type, QudaEigParam_s::use_dagger, QudaEigParam_s::use_norm_op, QudaEigParam_s::use_poly_acc, quda::ColorSpinorParam::v, QudaInvertParam_s::verbosity, X, and quda::LatticeField::X().
void end_quda_ | ( | void | ) |
Finalize the library.
Definition at line 5148 of file interface_quda.cpp.
References endQuda().
void endQuda | ( | void | ) |
Finalize the library.
Definition at line 1461 of file interface_quda.cpp.
References quda::assertAllMemFree(), comm_finalize(), comms_initialized, quda::cublas::destroy(), quda::destroyDslashEvents(), quda::blas::end(), quda::pool::flush_device(), quda::pool::flush_pinned(), flushChronoQuda(), quda::flushForceMonitor(), freeCloverQuda(), freeGaugeQuda(), quda::LatticeField::freeGhostBuffer(), quda::cpuColorSpinorField::freeGhostBuffer(), getVerbosity(), host_free, initialized, momResident, quda::Nstream, num_failures_d, num_failures_h, quda::TimeProfile::Print(), quda::printAPIProfile(), printfQuda, quda::TimeProfile::PrintGlobal(), quda::printLaunchTimer(), quda::printPeakMemUsage(), profileAPE, profileClover, profileCloverForce, profileContract, profileCovDev, profileDslash, profileEigensolve, profileEnd, profileExtendedGauge, profileFatLink, profileGauge, profileGaugeForce, profileGaugeUpdate, profileHISQForce, profileInit, profileInit2End, profileInvert, profileMomAction, profileMulti, profilePhase, profilePlaq, profileProject, profileQCharge, profileStaggeredForce, profileSTOUT, QUDA_MAX_CHRONO, quda::QUDA_PROFILE_TOTAL, QUDA_SUMMARIZE, quda::saveProfile(), quda::saveTuneCache(), and streams.
Referenced by end(), end_quda_(), gauge_force_test(), hisq_force_end(), hisq_test(), llfat_test(), main(), plaq_test(), SU3test(), StaggeredDslashTest::TearDownTestCase(), DslashTest::TearDownTestCase(), and unitarize_link_test().
void flush_chrono_quda_ | ( | int * | index | ) |
Flush the chronological history for the given index.
[in] | index | Index for which we are flushing |
Definition at line 5192 of file interface_quda.cpp.
References flushChronoQuda().
void flushChronoQuda | ( | int | index | ) |
Flush the chronological history for the given index.
[in] | index | Index for which we are flushing |
Definition at line 1448 of file interface_quda.cpp.
References chronoResident(), errorQuda, and QUDA_MAX_CHRONO.
Referenced by endQuda(), and flush_chrono_quda_().
void free_clover_quda_ | ( | void | ) |
Free QUDA's internal copy of the clover term and/or clover inverse.
Definition at line 5154 of file interface_quda.cpp.
References freeCloverQuda().
void free_gauge_quda_ | ( | void | ) |
Free QUDA's internal copy of the gauge field.
Definition at line 5150 of file interface_quda.cpp.
References freeGaugeQuda().
void free_sloppy_gauge_quda_ | ( | void | ) |
Free QUDA's internal copy of the gauge field.
Definition at line 5151 of file interface_quda.cpp.
References freeSloppyGaugeQuda().
void freeCloverQuda | ( | void | ) |
Free QUDA's internal copy of the clover term and/or clover inverse.
Definition at line 1440 of file interface_quda.cpp.
References cloverPrecise, errorQuda, freeSloppyCloverQuda(), and initialized.
Referenced by endQuda(), free_clover_quda_(), and main().
void freeGaugeQuda | ( | void | ) |
Free QUDA's internal copy of the gauge field.
Definition at line 1259 of file interface_quda.cpp.
References errorQuda, extendedGaugeResident, freeSloppyGaugeQuda(), gaugeExtended, gaugeFatPrecise, gaugeLongExtended, gaugeLongPrecise, gaugePrecise, gaugeSmeared, and initialized.
Referenced by end(), endQuda(), free_gauge_quda_(), main(), plaq_test(), and SU3test().
void freeSloppyCloverQuda | ( | ) |
Definition at line 1428 of file interface_quda.cpp.
References cloverPrecondition, cloverRefinement, cloverSloppy, errorQuda, and initialized.
Referenced by checkClover(), freeCloverQuda(), loadCloverQuda(), loadSloppyCloverQuda(), and saveGaugeQuda().
void freeSloppyGaugeQuda | ( | ) |
Definition at line 1231 of file interface_quda.cpp.
References errorQuda, gaugeFatPrecondition, gaugeFatRefinement, gaugeFatSloppy, gaugeLongPrecondition, gaugeLongRefinement, gaugeLongSloppy, gaugePrecondition, gaugeRefinement, gaugeSloppy, and initialized.
Referenced by checkGauge(), free_sloppy_gauge_quda_(), and freeGaugeQuda().
void gaussGaugeQuda | ( | unsigned long long | seed, |
double | sigma | ||
) |
Generate Gaussian distributed fields and store in the resident gauge field. We create a Gaussian-distributed su(n) field and exponentiate it, e.g., U = exp(sigma * H), where H is the distributed su(n) field and beta is the width of the distribution (beta = 0 results in a free field, and sigma = 1 has maximum disorder).
seed | The seed used for the RNG |
sigma | Width of Gaussian distrubution |
Definition at line 5386 of file interface_quda.cpp.
References errorQuda, quda::cudaGaugeField::exchangeExtendedGhost(), quda::gaugeGauss(), gaugePrecise, quda::LatticeFieldParam::ghostExchange, param, profileGauss, QUDA_GHOST_EXCHANGE_NO, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_12, R, quda::GaugeFieldParam::reconstruct, and redundant_comms.
Referenced by plaq_test().
int getGaugePadding | ( | GaugeFieldParam & | param | ) |
Definition at line 4061 of file interface_quda.cpp.
References quda::LatticeFieldParam::x.
|
static |
Definition at line 452 of file interface_quda.cpp.
References dims, errorQuda, initCommsGridQuda(), and ndim.
Referenced by initQuda(), and initQudaMemory().
void init_quda_ | ( | int * | device | ) |
Initialize the library. Under the interface this just calls initQudaMemory and initQudaDevice.
device | CUDA device number to use. In a multi-GPU build, this parameter may be either set explicitly on a per-process basis or set to -1 to enable a default allocation of devices to processes. |
Definition at line 5145 of file interface_quda.cpp.
References initQuda().
void init_quda_device_ | ( | int * | device | ) |
Initialize the library. This is a low-level interface that is called by initQuda. Calling initQudaDevice requires that the user also call initQudaMemory before using QUDA.
device | CUDA device number to use. In a multi-GPU build, this parameter may either be set explicitly on a per-process basis or set to -1 to enable a default allocation of devices to processes. |
Definition at line 5146 of file interface_quda.cpp.
References initQudaDevice().
void init_quda_memory_ | ( | ) |
Initialize the library persistant memory allocations (both host and device). This is a low-level interface that is called by initQuda. Calling initQudaMemory requires that the user has previously called initQudaDevice.
Definition at line 5147 of file interface_quda.cpp.
References initQudaMemory().
void initCommsGridQuda | ( | int | nDim, |
const int * | dims, | ||
QudaCommsMap | func, | ||
void * | fdata | ||
) |
Declare the grid mapping ("logical topology" in QMP parlance) used for communications in a multi-GPU grid. This function should be called prior to initQuda(). The only case in which it's optional is when QMP is used for communication and the logical topology has already been declared by the application.
nDim | Number of grid dimensions. "4" is the only supported value currently. |
dims | Array of grid dimensions. dims[0]*dims[1]*dims[2]*dims[3] must equal the total number of MPI ranks or QMP nodes. |
func | Pointer to a user-supplied function that maps coordinates in the communication grid to MPI ranks (or QMP node IDs). If the pointer is NULL, the default mapping depends on whether QMP or MPI is being used for communication. With QMP, the existing logical topology is used if it's been declared. With MPI or as a fallback with QMP, the default ordering is lexicographical with the fourth ("t") index varying fastest. |
fdata | Pointer to any data required by "func" (may be NULL) |
Definition at line 401 of file interface_quda.cpp.
References comm_init(), comms_initialized, LexMapData::dims, errorQuda, lex_rank_from_coords(), LexMapData::ndim, and warningQuda.
Referenced by comm_set_gridsize_(), init_default_comms(), and initComms().
void initQuda | ( | int | device | ) |
Initialize the library. This function is actually a wrapper around calls to initQudaDevice() and initQudaMemory().
device | CUDA device number to use. In a multi-GPU build, this parameter may either be set explicitly on a per-process basis or set to -1 to enable a default allocation of devices to processes. |
Definition at line 679 of file interface_quda.cpp.
References comms_initialized, init_default_comms(), initQudaDevice(), and initQudaMemory().
Referenced by eigensolve_test(), gauge_force_test(), hisq_force_init(), hisq_test(), init(), init_quda_(), invert_test(), llfat_test(), main(), plaq_test(), StaggeredDslashTest::SetUpTestCase(), DslashTest::SetUpTestCase(), SU3test(), and unitarize_link_test().
void initQudaDevice | ( | int | device | ) |
Initialize the library. This is a low-level interface that is called by initQuda. Calling initQudaDevice requires that the user also call initQudaMemory before using QUDA.
device | CUDA device number to use. In a multi-GPU build, this parameter may either be set explicitly on a per-process basis or set to -1 to enable a default allocation of devices to processes. |
Definition at line 483 of file interface_quda.cpp.
References checkCudaErrorNoSync, comm_gpuid(), comms_initialized, deviceProp, errorQuda, getVerbosity(), gitversion, initialized, length, printfQuda, profileInit, profileInit2End, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_SILENT, QUDA_SUMMARIZE, quda::quda_version, quda::reorder_location_set(), setNumaAffinityNVML(), and warningQuda.
Referenced by init_quda_device_(), and initQuda().
void initQudaMemory | ( | ) |
Initialize the library persistant memory allocations (both host and device). This is a low-level interface that is called by initQuda. Calling initQudaMemory requires that the user has previously called initQudaDevice.
Definition at line 638 of file interface_quda.cpp.
References checkCudaError, commDimPartitioned(), comms_initialized, quda::createDslashEvents(), quda::cublas::init(), quda::blas::init(), quda::pool::init(), init_default_comms(), quda::loadTuneCache(), mapped_malloc, quda::Nstream, num_failures_d, num_failures_h, profileInit, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, R, redundant_comms, and streams.
Referenced by init_quda_memory_(), and initQuda().
void invert_multishift_quda_ | ( | void * | _hp_x, |
void * | _hp_b, | ||
QudaInvertParam * | param | ||
) |
Solve for multiple shifts (e.g., masses).
_hp_x | Array of solution spinor fields (large contiguous allocation) |
_hp_b | Array of source spinor fields |
param | Contains all metadata regarding host and device storage and solver parameters |
Definition at line 5171 of file interface_quda.cpp.
References QudaInvertParam_s::cpu_prec, QudaInvertParam_s::dirac_order, QudaInvertParam_s::dslash_type, errorQuda, invertMultiShiftQuda(), QudaInvertParam_s::Ls, quda::GaugeField::Ncolor(), QudaInvertParam_s::num_offset, QUDA_ASQTAD_DSLASH, QUDA_MAX_MULTI_SHIFT, QUDA_STAGGERED_DSLASH, QUDA_TIFR_PADDED_DIRAC_ORDER, and quda::LatticeField::X().
void invert_quda_ | ( | void * | h_x, |
void * | h_b, | ||
QudaInvertParam * | param | ||
) |
Perform the solve, according to the parameters set in param. It is assumed that the gauge field has already been loaded via loadGaugeQuda().
h_x | Solution spinor field |
h_b | Source spinor field |
param | Contains all metadata regarding host and device storage and solver parameters |
Definition at line 5163 of file interface_quda.cpp.
References QudaInvertParam_s::dslash_type, invertQuda(), QudaInvertParam_s::Ls, QUDA_ASQTAD_DSLASH, and QUDA_STAGGERED_DSLASH.
void invertMultiShiftQuda | ( | void ** | _hp_x, |
void * | _hp_b, | ||
QudaInvertParam * | param | ||
) |
Generic version of the multi-shift solver. Should work for most fermions. Note that offset[0] is not folded into the mass parameter.
For Wilson-type fermions, the solution_type must be MATDAG_MAT or MATPCDAG_MATPC, and solve_type must be NORMOP or NORMOP_PC. The solution and solve preconditioning have to match.
For Staggered-type fermions, the solution_type must be MATPC, and the solve type must be DIRECT_PC. This difference in convention is because preconditioned staggered operator is normal, unlike with Wilson-type fermions.
Definition at line 3579 of file interface_quda.cpp.
References QudaInvertParam_s::action, quda::blas::ax(), quda::blas::cDotProduct(), checkGauge(), QudaInvertParam_s::compute_action, QudaInvertParam_s::compute_true_res, quda::blas::copy(), quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), quda::createDirac(), QudaInvertParam_s::cuda_prec, QudaInvertParam_s::cuda_prec_refinement_sloppy, QudaInvertParam_s::cuda_prec_sloppy, quda::deflated_solver::d, quda::SolverParam::delta, dirac, QudaInvertParam_s::dslash_type, errorQuda, getVerbosity(), QudaInvertParam_s::gflops, initialized, QudaInvertParam_s::input_location, quda::SolverParam::iter, QudaInvertParam_s::iter, QudaInvertParam_s::iter_res_offset, quda::ColorSpinorParam::location, quda::deflated_solver::m, QudaInvertParam_s::make_resident_solution, QudaInvertParam_s::mass, quda::massRescale(), quda::blas::norm2(), QudaInvertParam_s::num_offset, QudaInvertParam_s::offset, QudaInvertParam_s::output_location, param, popVerbosity(), quda::pow(), quda::LatticeFieldParam::Precision(), printfQuda, profileMulti, profilerStart(), profilerStop(), pushVerbosity(), QUDA_ASQTAD_DSLASH, QUDA_COPY_FIELD_CREATE, QUDA_DIRECT_PC_SOLVE, QUDA_DIRECT_SOLVE, QUDA_HEAVY_QUARK_RESIDUAL, QUDA_MAT_SOLUTION, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_MAX_MULTI_SHIFT, QUDA_NORMOP_PC_SOLVE, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_EPILOGUE, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_PREAMBLE, quda::QUDA_PROFILE_TOTAL, QUDA_SOURCE_NORMALIZATION, QUDA_STAGGERED_DSLASH, QUDA_SUMMARIZE, QUDA_USE_INIT_GUESS_YES, QUDA_VERBOSE, QUDA_ZERO_FIELD_CREATE, QudaInvertParam_s::reliable_delta_refinement, QudaInvertParam_s::residual_type, QudaInvertParam_s::residue, quda::saveTuneCache(), QudaInvertParam_s::secs, quda::Dirac::setMass(), quda::DiracMatrix::shift, QudaInvertParam_s::solution_type, QudaInvertParam_s::solve_type, QudaInvertParam_s::solver_normalization, quda::sqrt(), tmp, quda::SolverParam::tol, tol_hq, quda::SolverParam::tol_hq, QudaInvertParam_s::tol_hq_offset, QudaInvertParam_s::tol_offset, quda::SolverParam::true_res, quda::SolverParam::true_res_hq, quda::SolverParam::true_res_hq_offset, QudaInvertParam_s::true_res_hq_offset, quda::SolverParam::true_res_offset, QudaInvertParam_s::true_res_offset, quda::unscaled_shifts, quda::SolverParam::updateInvertParam(), quda::SolverParam::use_init_guess, quda::ColorSpinorParam::v, QudaInvertParam_s::verbosity, X, and quda::LatticeField::X().
Referenced by invert_multishift_quda_(), invert_test(), and main().
void invertMultiSrcQuda | ( | void ** | _hp_x, |
void ** | _hp_b, | ||
QudaInvertParam * | param | ||
) |
Generic version of the multi-shift solver. Should work for most fermions. Note that offset[0] is not folded into the mass parameter.
At present, the solution_type must be MATDAG_MAT or MATPCDAG_MATPC, and solve_type must be NORMOP or NORMOP_PC. The solution and solve preconditioning have to match.
Definition at line 3234 of file interface_quda.cpp.
References quda::blas::ax(), quda::Solver::blocksolve(), checkGauge(), quda::ColorSpinorField::Component(), quda::ColorSpinorParam::composite_dim, quda::blas::copy(), quda::ColorSpinorParam::create, quda::Solver::create(), quda::ColorSpinorField::Create(), quda::createDirac(), cudaGauge, quda::deflated_solver::d, dirac, errorQuda, getVerbosity(), QudaInvertParam_s::gflops, in, initialized, QudaInvertParam_s::input_location, QudaInvertParam_s::inv_type_precondition, quda::ColorSpinorParam::is_component, quda::ColorSpinorParam::is_composite, QudaInvertParam_s::iter, quda::ColorSpinorParam::location, quda::deflated_solver::m, QudaInvertParam_s::make_resident_solution, quda::massRescale(), quda::Dirac::Mdag(), quda::blas::norm2(), QudaInvertParam_s::num_src, out, QudaInvertParam_s::output_location, popVerbosity(), quda::Dirac::prepare(), printfQuda, printQudaInvertParam(), profileInvert, pushVerbosity(), QUDA_DEBUG_VERBOSE, QUDA_DIRECT_PC_SOLVE, QUDA_DIRECT_SOLVE, QUDA_MAT_SOLUTION, QUDA_MATDAG_MAT_SOLUTION, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_MG_INVERTER, QUDA_NORMERR_PC_SOLVE, QUDA_NORMERR_SOLVE, QUDA_NORMOP_PC_SOLVE, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_EPILOGUE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_TOTAL, QUDA_SOURCE_NORMALIZATION, QUDA_USE_INIT_GUESS_YES, QUDA_VERBOSE, QUDA_ZERO_FIELD_CREATE, quda::Dirac::reconstruct(), quda::saveTuneCache(), QudaInvertParam_s::secs, QudaInvertParam_s::solution_type, QudaInvertParam_s::solve_type, QudaInvertParam_s::solver_normalization, quda::sqrt(), tmp, quda::SolverParam::updateInvertParam(), QudaInvertParam_s::use_init_guess, quda::ColorSpinorParam::v, QudaInvertParam_s::verbosity, X, and quda::LatticeField::X().
Referenced by invert_test(), and main().
void invertQuda | ( | void * | h_x, |
void * | h_b, | ||
QudaInvertParam * | param | ||
) |
Perform the solve, according to the parameters set in param. It is assumed that the gauge field has already been loaded via loadGaugeQuda().
h_x | Solution spinor field |
h_b | Source spinor field |
param | Contains all metadata regarding host and device storage and solver parameters |
Definition at line 2830 of file interface_quda.cpp.
References QudaInvertParam_s::action, quda::blas::ax(), quda::blas::cDotProduct(), checkGauge(), QudaInvertParam_s::chrono_index, QudaInvertParam_s::chrono_make_resident, QudaInvertParam_s::chrono_max_dim, QudaInvertParam_s::chrono_precision, QudaInvertParam_s::chrono_replace_last, QudaInvertParam_s::chrono_use_resident, chronoResident(), QudaInvertParam_s::compute_action, quda::blas::copy(), quda::ColorSpinorParam::create, quda::Solver::create(), quda::ColorSpinorField::Create(), quda::createDirac(), QudaInvertParam_s::cuda_prec, QudaInvertParam_s::cuda_prec_sloppy, cudaGauge, quda::deflated_solver::d, dirac, errorQuda, getVerbosity(), QudaInvertParam_s::gflops, in, initialized, QudaInvertParam_s::input_location, QudaInvertParam_s::inv_type_precondition, QudaInvertParam_s::iter, quda::ColorSpinorParam::location, quda::deflated_solver::m, QudaInvertParam_s::make_resident_solution, quda::massRescale(), quda::Dirac::Mdag(), quda::blas::norm2(), out, QudaInvertParam_s::output_location, popVerbosity(), quda::LatticeField::Precision(), quda::Dirac::prepare(), printfQuda, printQudaInvertParam(), profileInvert, profilerStart(), profilerStop(), pushVerbosity(), QUDA_COPY_FIELD_CREATE, QUDA_DEBUG_VERBOSE, QUDA_DIRECT_PC_SOLVE, QUDA_DIRECT_SOLVE, QUDA_MAT_SOLUTION, QUDA_MATDAG_MAT_SOLUTION, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_MAX_CHRONO, QUDA_MG_INVERTER, QUDA_NORMERR_PC_SOLVE, QUDA_NORMERR_SOLVE, QUDA_NORMOP_PC_SOLVE, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_CHRONO, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_EPILOGUE, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_PREAMBLE, quda::QUDA_PROFILE_TOTAL, QUDA_SOURCE_NORMALIZATION, QUDA_USE_INIT_GUESS_YES, QUDA_VERBOSE, quda::Dirac::reconstruct(), quda::saveTuneCache(), QudaInvertParam_s::secs, quda::ColorSpinorParam::setPrecision(), quda::ColorSpinorField::SiteSubset(), QudaInvertParam_s::solution_type, QudaInvertParam_s::solve_type, QudaInvertParam_s::solver_normalization, quda::sqrt(), tmp, tmp2, quda::SolverParam::updateInvertParam(), QudaInvertParam_s::use_init_guess, QudaInvertParam_s::use_resident_solution, quda::ColorSpinorParam::v, QudaInvertParam_s::verbosity, X, quda::LatticeField::X(), and quda::blas::zero().
Referenced by invert_quda_(), invert_test(), and main().
void kinetic_quda_ | ( | double * | kin, |
void * | momentum, | ||
QudaGaugeParam * | param | ||
) |
Evaluate the kinetic (momentum) contribution to classical Hamiltonian for Hybrid Monte Carlo.
kin | Kinetic energy |
momentum | The momentum field |
param | The parameters of the external fields and the computation settings |
Definition at line 5349 of file interface_quda.cpp.
References dims, momActionQuda(), and rank.
|
static |
For MPI, the default node mapping is lexicographical with t varying fastest.
Definition at line 339 of file interface_quda.cpp.
References rank.
Referenced by initCommsGridQuda().
void load_clover_quda_ | ( | void * | h_clover, |
void * | h_clovinv, | ||
QudaInvertParam * | inv_param | ||
) |
Load the clover term and/or the clover inverse from the host. Either h_clover or h_clovinv may be set to NULL.
h_clover | Base pointer to host clover field |
h_cloverinv | Base pointer to host clover inverse field |
inv_param | Contains all metadata regarding host and device storage |
Definition at line 5152 of file interface_quda.cpp.
References loadCloverQuda().
void load_gauge_quda_ | ( | void * | h_gauge, |
QudaGaugeParam * | param | ||
) |
Load the gauge field from the host.
h_gauge | Base pointer to host gauge field (regardless of dimensionality) |
param | Contains all metadata regarding host and device storage |
Definition at line 5149 of file interface_quda.cpp.
References loadGaugeQuda().
void loadCloverQuda | ( | void * | h_clover, |
void * | h_clovinv, | ||
QudaInvertParam * | inv_param | ||
) |
Load the clover term and/or the clover inverse from the host. Either h_clover or h_clovinv may be set to NULL.
h_clover | Base pointer to host clover field |
h_cloverinv | Base pointer to host clover inverse field |
inv_param | Contains all metadata regarding host and device storage |
Definition at line 985 of file interface_quda.cpp.
References quda::GaugeField::Anisotropy(), quda::CloverField::Bytes(), checkCudaError, QudaInvertParam_s::cl_pad, quda::CloverFieldParam::clover, QudaInvertParam_s::clover_coeff, QudaInvertParam_s::clover_cpu_prec, QudaInvertParam_s::clover_cuda_prec, QudaInvertParam_s::clover_cuda_prec_precondition, QudaInvertParam_s::clover_cuda_prec_refinement_sloppy, QudaInvertParam_s::clover_cuda_prec_sloppy, QudaInvertParam_s::clover_location, QudaInvertParam_s::clover_order, QudaInvertParam_s::clover_rho, quda::CloverFieldParam::cloverInv, quda::cloverInvert(), cloverPrecise, QudaInvertParam_s::compute_clover, QudaInvertParam_s::compute_clover_inverse, QudaInvertParam_s::compute_clover_trlog, quda::cudaCloverField::copy(), quda::CloverFieldParam::create, createCloverQuda(), quda::CloverFieldParam::csw, quda::CloverField::Csw(), quda::CloverFieldParam::direct, QudaInvertParam_s::dslash_type, errorQuda, freeSloppyCloverQuda(), getVerbosity(), in, initialized, invalidate_clover, quda::CloverFieldParam::inverse, quda::inverse(), quda::CloverFieldParam::invNorm, QudaInvertParam_s::kappa, loadSloppyCloverQuda(), QudaInvertParam_s::matpc_type, QudaInvertParam_s::mu, quda::CloverFieldParam::mu2, quda::LatticeFieldParam::nDim, quda::CloverFieldParam::norm, quda::CloverFieldParam::order, quda::LatticeFieldParam::pad, popVerbosity(), prec, printfQuda, printQudaInvertParam(), profileClover, pushVerbosity(), QUDA_CLOVER_WILSON_DSLASH, QUDA_CPU_FIELD_LOCATION, QUDA_DEBUG_VERBOSE, QUDA_DIRECT_PC_SOLVE, QUDA_FULL_SITE_SUBSET, QUDA_HALF_PRECISION, QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, QUDA_MATPC_ODD_ODD_ASYMMETRIC, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_NORMERR_PC_SOLVE, QUDA_NORMOP_PC_SOLVE, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_EPILOGUE, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_REFERENCE_FIELD_CREATE, QUDA_TWISTED_CLOVER_DSLASH, QUDA_VERBOSE, qudaMemcpy, QudaInvertParam_s::return_clover, QudaInvertParam_s::return_clover_inverse, quda::CloverFieldParam::setPrecision(), quda::CloverField::setRho(), quda::LatticeFieldParam::siteSubset, QudaInvertParam_s::solution_type, QudaInvertParam_s::solve_type, quda::CloverField::TrLog(), QudaInvertParam_s::trlogA, quda::CloverFieldParam::twisted, quda::CloverField::V(), QudaInvertParam_s::verbosity, warningQuda, quda::LatticeFieldParam::x, and quda::LatticeField::X().
Referenced by init(), load_clover_quda_(), and main().
void loadGaugeQuda | ( | void * | h_gauge, |
QudaGaugeParam * | param | ||
) |
Load the gauge field from the host.
h_gauge | Base pointer to host gauge field (regardless of dimensionality) |
param | Contains all metadata regarding host and device storage |
Definition at line 729 of file interface_quda.cpp.
References quda::GaugeField::checksum(), commDimPartitioned(), quda::GaugeFieldParam::compute_fat_link_max, quda::cudaGaugeField::copy(), quda::GaugeFieldParam::create, createExtendedGauge(), QudaGaugeParam_s::cuda_prec, QudaGaugeParam_s::cuda_prec_precondition, QudaGaugeParam_s::cuda_prec_refinement_sloppy, QudaGaugeParam_s::cuda_prec_sloppy, errorQuda, quda::cudaGaugeField::exchangeGhost(), extendedGaugeResident, QudaGaugeParam_s::ga_pad, gauge_param, gaugeFatPrecise, gaugeFatPrecondition, gaugeFatRefinement, gaugeFatSloppy, gaugeLongPrecise, gaugeLongPrecondition, gaugeLongRefinement, gaugeLongSloppy, gaugePrecise, gaugePrecondition, gaugeRefinement, gaugeSloppy, gaugeSmeared, getVerbosity(), quda::LatticeFieldParam::ghostExchange, in, initialized, invalidate_clover, QudaGaugeParam_s::location, quda::GaugeFieldParam::order, quda::GaugeField::Order(), QudaGaugeParam_s::overlap, quda::LatticeFieldParam::pad, printfQuda, printQudaGaugeParam(), profileGauge, QUDA_ASQTAD_FAT_LINKS, QUDA_ASQTAD_LONG_LINKS, QUDA_BQCD_GAUGE_ORDER, QUDA_CPU_FIELD_LOCATION, QUDA_DEBUG_VERBOSE, QUDA_GHOST_EXCHANGE_NO, QUDA_GHOST_EXCHANGE_PAD, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_SMEARED_LINKS, QUDA_VERBOSE, QUDA_WILSON_LINKS, R, quda::LatticeField::R(), quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, quda::GaugeField::Reconstruct(), QudaGaugeParam_s::reconstruct_precondition, QudaGaugeParam_s::reconstruct_refinement_sloppy, QudaGaugeParam_s::reconstruct_sloppy, quda::GaugeFieldParam::setPrecision(), QudaGaugeParam_s::type, and QudaGaugeParam_s::use_resident_gauge.
Referenced by computeStaggeredPlaquetteQDPOrder(), eigensolve_test(), init(), invert_test(), load_gauge_quda_(), main(), plaq_test(), and SU3test().
void loadSloppyCloverQuda | ( | const QudaPrecision | prec[] | ) |
Referenced by checkClover(), loadCloverQuda(), and saveGaugeQuda().
void loadSloppyCloverQuda | ( | const QudaPrecision * | prec | ) |
Definition at line 1180 of file interface_quda.cpp.
References cloverPrecise, cloverSloppy, quda::cudaCloverField::copy(), quda::CloverFieldParam::direct, freeSloppyCloverQuda(), quda::CloverFieldParam::inverse, quda::LatticeFieldParam::Precision(), quda::LatticeField::Precision(), quda::CloverFieldParam::setPrecision(), and quda::CloverField::V().
void loadSloppyGaugeQuda | ( | const QudaPrecision * | prec, |
const QudaReconstructType * | recon | ||
) |
Definition at line 1292 of file interface_quda.cpp.
References quda::cudaGaugeField::copy(), errorQuda, gauge_param, gaugeFatPrecise, gaugeFatSloppy, gaugeLongPrecise, gaugeLongSloppy, gaugePrecise, gaugeSloppy, quda::LatticeFieldParam::Precision(), quda::LatticeField::Precision(), quda::GaugeFieldParam::reconstruct, quda::GaugeField::Reconstruct(), and quda::GaugeFieldParam::setPrecision().
Referenced by checkGauge().
void mat_dag_mat_quda_ | ( | void * | h_out, |
void * | h_in, | ||
QudaInvertParam * | inv_param | ||
) |
Apply M^{}M, possibly even/odd preconditioned.
h_out | Result spinor field |
h_in | Input spinor field |
param | Contains all metadata regarding host and device storage |
Definition at line 5161 of file interface_quda.cpp.
References MatDagMatQuda().
void mat_quda_ | ( | void * | h_out, |
void * | h_in, | ||
QudaInvertParam * | inv_param | ||
) |
Apply the full Dslash matrix, possibly even/odd preconditioned.
h_out | Result spinor field |
h_in | Input spinor field |
param | Contains all metadata regarding host and device storage |
Definition at line 5159 of file interface_quda.cpp.
References MatQuda().
void MatDagMatQuda | ( | void * | h_out, |
void * | h_in, | ||
QudaInvertParam * | inv_param | ||
) |
Apply M^{}M, possibly even/odd preconditioned.
h_out | Result spinor field |
h_in | Input spinor field |
param | Contains all metadata regarding host and device storage |
Definition at line 2158 of file interface_quda.cpp.
References quda::blas::ax(), quda::ColorSpinorParam::create, quda::Dirac::create(), quda::ColorSpinorField::Create(), dirac, QudaInvertParam_s::dslash_type, errorQuda, gaugeLongPrecise, getVerbosity(), in, QudaInvertParam_s::input_location, kappa, QudaInvertParam_s::kappa, QudaInvertParam_s::mass_normalization, quda::Dirac::MdagM(), quda::blas::norm2(), out, QudaInvertParam_s::output_location, popVerbosity(), quda::pow(), printfQuda, printQudaInvertParam(), pushVerbosity(), QUDA_ASQTAD_DSLASH, QUDA_ASYMMETRIC_MASS_NORMALIZATION, QUDA_CLOVER_WILSON_DSLASH, QUDA_DEBUG_VERBOSE, QUDA_MASS_NORMALIZATION, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_NULL_FIELD_CREATE, QUDA_TWISTED_CLOVER_DSLASH, quda::setDiracParam(), QudaInvertParam_s::solution_type, and QudaInvertParam_s::verbosity.
Referenced by dslashCUDA(), and mat_dag_mat_quda_().
void MatQuda | ( | void * | h_out, |
void * | h_in, | ||
QudaInvertParam * | inv_param | ||
) |
Apply the full Dslash matrix, possibly even/odd preconditioned.
h_out | Result spinor field |
h_in | Input spinor field |
param | Contains all metadata regarding host and device storage |
Definition at line 2088 of file interface_quda.cpp.
References quda::blas::ax(), quda::ColorSpinorParam::create, quda::Dirac::create(), quda::ColorSpinorField::Create(), dirac, QudaInvertParam_s::dslash_type, errorQuda, gaugeLongPrecise, getVerbosity(), in, QudaInvertParam_s::input_location, kappa, QudaInvertParam_s::kappa, quda::Dirac::M(), QudaInvertParam_s::mass_normalization, quda::blas::norm2(), out, QudaInvertParam_s::output_location, popVerbosity(), printfQuda, printQudaInvertParam(), pushVerbosity(), QUDA_ASQTAD_DSLASH, QUDA_ASYMMETRIC_MASS_NORMALIZATION, QUDA_CLOVER_WILSON_DSLASH, QUDA_DEBUG_VERBOSE, QUDA_MASS_NORMALIZATION, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_NULL_FIELD_CREATE, QUDA_TWISTED_CLOVER_DSLASH, quda::setDiracParam(), QudaInvertParam_s::solution_type, and QudaInvertParam_s::verbosity.
Referenced by dslashCUDA(), and mat_quda_().
double momActionQuda | ( | void * | momentum, |
QudaGaugeParam * | param | ||
) |
Evaluate the momentum contribution to the Hybrid Monte Carlo action.
momentum | The momentum field |
param | The parameters of the external fields and the computation settings |
Definition at line 5084 of file interface_quda.cpp.
References checkCudaError, quda::computeMomAction(), cpuMom, quda::GaugeFieldParam::create, cudaMom, errorQuda, gParam, quda::cudaGaugeField::loadCPUField(), QudaGaugeParam_s::make_resident_mom, momResident, quda::GaugeFieldParam::order, profileMomAction, QUDA_ASQTAD_MOM_LINKS, QUDA_FLOAT2_GAUGE_ORDER, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_10, QUDA_RECONSTRUCT_NO, QUDA_TIFR_GAUGE_ORDER, QUDA_TIFR_PADDED_GAUGE_ORDER, quda::GaugeFieldParam::reconstruct, and QudaGaugeParam_s::use_resident_mom.
Referenced by kinetic_quda_().
void new_quda_gauge_param_ | ( | QudaGaugeParam * | param | ) |
Initializes the QudaGaugeParam with default entries.
The | QudaGaugeParam to be initialized |
Definition at line 5204 of file interface_quda.cpp.
References newQudaGaugeParam().
void new_quda_invert_param_ | ( | QudaInvertParam * | param | ) |
Initializes the QudaInvertParam with default entries.
The | QudaInvertParam to be initialized |
Definition at line 5207 of file interface_quda.cpp.
References newQudaInvertParam().
void* newDeflationQuda | ( | QudaEigParam * | param | ) |
Create deflation solver resources.
Definition at line 2809 of file interface_quda.cpp.
References quda::deflated_solver::defl, quda::deflated_solver::deflated_solver(), quda::flushProfile(), openMagma(), profileInvert, quda::QUDA_PROFILE_TOTAL, and quda::saveProfile().
Referenced by main().
void* newMultigridQuda | ( | QudaMultigridParam * | param | ) |
Setup the multigrid solver, according to the parameters set in param. It is assumed that the gauge field has already been loaded via loadGaugeQuda().
param | Contains all metadata regarding host and device storage and solver parameters |
Definition at line 2624 of file interface_quda.cpp.
References QudaMultigridParam_s::invert_param, quda::multigrid_solver::mg, quda::multigrid_solver::multigrid_solver(), popVerbosity(), profileInvert, profilerStart(), profilerStop(), pushVerbosity(), quda::QUDA_PROFILE_TOTAL, quda::saveTuneCache(), and QudaInvertParam_s::verbosity.
Referenced by main().
void openMagma | ( | ) |
Open/Close MAGMA library
Definition at line 95 of file interface_quda.cpp.
References InitMagma, OpenMagma(), and printfQuda.
Referenced by newDeflationQuda().
|
inlinestatic |
Definition at line 5217 of file interface_quda.cpp.
Referenced by createGaugeForcePaths().
void performAPEnStep | ( | unsigned int | nSteps, |
double | alpha | ||
) |
Performs APE smearing on gaugePrecise and stores it in gaugeSmeared
nSteps | Number of steps to apply. |
alpha | Alpha coefficient for APE smearing. |
Definition at line 5528 of file interface_quda.cpp.
References quda::APEStep(), createExtendedGauge(), errorQuda, quda::cudaGaugeField::exchangeExtendedGhost(), gaugeSmeared, getVerbosity(), gParam, quda::plaquette(), printfQuda, profileAPE, quda::QUDA_PROFILE_TOTAL, QUDA_SUMMARIZE, R, and redundant_comms.
Referenced by SU3test().
void performOvrImpSTOUTnStep | ( | unsigned int | nSteps, |
double | rho, | ||
double | epsilon | ||
) |
Performs Over Imroved STOUT smearing on gaugePrecise and stores it in gaugeSmeared
nSteps | Number of steps to apply. |
rho | Rho coefficient for STOUT smearing. |
epsilon | Epsilon coefficient for Over Improved STOUT smearing. |
Definition at line 5598 of file interface_quda.cpp.
References createExtendedGauge(), errorQuda, quda::cudaGaugeField::exchangeExtendedGhost(), gaugeSmeared, getVerbosity(), gParam, quda::OvrImpSTOUTStep(), quda::plaquette(), printfQuda, profileOvrImpSTOUT, profileSTOUT, quda::QUDA_PROFILE_TOTAL, QUDA_SUMMARIZE, R, and redundant_comms.
Referenced by SU3test().
void performSTOUTnStep | ( | unsigned int | nSteps, |
double | rho | ||
) |
Performs STOUT smearing on gaugePrecise and stores it in gaugeSmeared
nSteps | Number of steps to apply. |
rho | Rho coefficient for STOUT smearing. |
Definition at line 5563 of file interface_quda.cpp.
References createExtendedGauge(), errorQuda, quda::cudaGaugeField::exchangeExtendedGhost(), gaugeSmeared, getVerbosity(), gParam, quda::plaquette(), printfQuda, profileSTOUT, quda::QUDA_PROFILE_TOTAL, QUDA_SUMMARIZE, R, redundant_comms, and quda::STOUTStep().
Referenced by SU3test().
void performWuppertalnStep | ( | void * | h_out, |
void * | h_in, | ||
QudaInvertParam * | param, | ||
unsigned int | nSteps, | ||
double | alpha | ||
) |
Performs Wuppertal smearing on a given spinor using the gauge field gaugeSmeared, if it exist, or gaugePrecise if no smeared field is present.
h_out | Result spinor field |
h_in | Input spinor field |
param | Contains all metadata regarding host and device storage and operator which will be applied to the spinor |
nSteps | Number of steps to apply. |
alpha | Alpha coefficient for Wuppertal smearing. |
Definition at line 5457 of file interface_quda.cpp.
References quda::copyExtendedGauge(), quda::GaugeFieldParam::create, quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), errorQuda, quda::cudaGaugeField::exchangeGhost(), gaugePrecise, getVerbosity(), gParam, in, QudaInvertParam_s::input_location, quda::ColorSpinorParam::location, quda::norm(), quda::blas::norm2(), out, QudaInvertParam_s::output_location, parity, popVerbosity(), printfQuda, printQudaInvertParam(), profileWuppertal, pushVerbosity(), QUDA_CUDA_FIELD_LOCATION, QUDA_DEBUG_VERBOSE, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_TOTAL, QUDA_VERBOSE, quda::ColorSpinorParam::v, QudaInvertParam_s::verbosity, quda::wuppertalStep(), and quda::LatticeField::X().
void plaq_quda_ | ( | double | plaq[3] | ) |
Computes | the total, spatial and temporal plaquette averages of the loaded gauge configuration. |
Array | for storing the averages (total, spatial, temporal) |
Definition at line 5415 of file interface_quda.cpp.
References plaqQuda().
void plaqQuda | ( | double | plaq[3] | ) |
Computes the total, spatial and temporal plaquette averages of the loaded gauge configuration.
Array | for storing the averages (total, spatial, temporal) |
Definition at line 5419 of file interface_quda.cpp.
References createExtendedGauge(), errorQuda, extendedGaugeResident, quda::plaquette(), profilePlaq, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_TOTAL, and R.
Referenced by computeStaggeredPlaquetteQDPOrder(), main(), plaq_quda_(), plaq_test(), and SU3test().
|
static |
Definition at line 252 of file interface_quda.cpp.
References do_not_profile_quda, enable_profiler, quda::cublas::init(), printfQuda, and warningQuda.
Referenced by dumpMultigridQuda(), invertMultiShiftQuda(), invertQuda(), newMultigridQuda(), and updateMultigridQuda().
|
static |
Definition at line 305 of file interface_quda.cpp.
References do_not_profile_quda, enable_profiler, printfQuda, and quda::printLaunchTimer().
Referenced by dumpMultigridQuda(), invertMultiShiftQuda(), invertQuda(), newMultigridQuda(), and updateMultigridQuda().
void projectSU3Quda | ( | void * | gauge_h, |
double | tol, | ||
QudaGaugeParam * | param | ||
) |
Project the input field on the SU(3) group. If the target tolerance is not met, this routine will give a runtime error.
gauge_h | The gauge field to be updated |
tol | The tolerance to which we iterate |
param | The parameters of the gauge field |
Definition at line 4971 of file interface_quda.cpp.
References cpuGauge, quda::GaugeFieldParam::create, cudaGauge, errorQuda, QudaGaugeParam_s::gauge_offset, gaugePrecise, gParam, quda::cudaGaugeField::loadCPUField(), QudaGaugeParam_s::make_resident_gauge, num_failures_d, num_failures_h, quda::GaugeFieldParam::order, profileProject, quda::projectSU3(), QUDA_FLOAT2_GAUGE_ORDER, QUDA_GENERAL_LINKS, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, QudaGaugeParam_s::return_result_gauge, quda::cudaGaugeField::saveCPUField(), quda::GaugeFieldParam::site_offset, quda::GaugeFieldParam::site_size, QudaGaugeParam_s::site_size, and QudaGaugeParam_s::use_resident_gauge.
double qChargeDensityQuda | ( | void * | qDensity | ) |
Calculates the topological charge from gaugeSmeared, if it exist, or from gaugePrecise if no smeared fields are present.
[out] | qDensity | array holding Q charge density |
Definition at line 5880 of file interface_quda.cpp.
References quda::computeFmunu(), quda::computeQChargeDensity(), createExtendedGauge(), device_free, device_malloc, extendedGaugeResident, gaugeSmeared, quda::LatticeField::Precision(), profileQCharge, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FULL_SITE_SUBSET, QUDA_GHOST_EXCHANGE_NO, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_NO, QUDA_TENSOR_GEOMETRY, qudaMemcpy, R, quda::LatticeFieldParam::siteSubset, quda::size, quda::LatticeField::Volume(), and quda::LatticeField::X().
Referenced by SU3test().
double qChargeQuda | ( | ) |
Calculates the topological charge from gaugeSmeared, if it exist, or from gaugePrecise if no smeared fields are present.
Definition at line 5846 of file interface_quda.cpp.
References quda::computeFmunu(), quda::computeQCharge(), createExtendedGauge(), extendedGaugeResident, gaugeSmeared, quda::LatticeField::Precision(), profileQCharge, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FULL_SITE_SUBSET, QUDA_GHOST_EXCHANGE_NO, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_NO, QUDA_TENSOR_GEOMETRY, R, quda::LatticeFieldParam::siteSubset, and quda::LatticeField::X().
Referenced by main(), and SU3test().
void register_pinned_quda_ | ( | void * | ptr, |
size_t * | bytes | ||
) |
Pinned a pre-existing memory allocation.
[in] | ptr | Pointer to buffer to be pinned |
[in] | size | Size of allocation |
Definition at line 5194 of file interface_quda.cpp.
References checkCudaError.
void remove_staggered_phase_quda_ | ( | ) |
Remove the staggered phase factors to the resident gauge field.
Definition at line 5338 of file interface_quda.cpp.
References errorQuda, getVerbosity(), printfQuda, QUDA_VERBOSE, qudaDeviceSynchronize, and quda::GaugeField::removeStaggeredPhase().
void saveGaugeFieldQuda | ( | void * | outGauge, |
void * | inGauge, | ||
QudaGaugeParam * | param | ||
) |
Copy the QUDA gauge (matrix) field on the device to the CPU
outGauge | Pointer to the host gauge field |
inGauge | Pointer to the device gauge field (QUDA device field) |
param | The parameters of the host and device fields |
Definition at line 4252 of file interface_quda.cpp.
References cpuGauge, cudaGauge, quda::GaugeFieldParam::geometry, quda::GaugeField::Geometry(), gParam, QUDA_GENERAL_LINKS, and quda::cudaGaugeField::saveCPUField().
Referenced by main().
void saveGaugeQuda | ( | void * | h_gauge, |
QudaGaugeParam * | param | ||
) |
Save the gauge field to the host.
h_gauge | Base pointer to host gauge field (regardless of dimensionality) |
param | Contains all metadata regarding host and device storage |
Definition at line 936 of file interface_quda.cpp.
References quda::copyExtendedGauge(), cpuGauge, quda::GaugeFieldParam::create, QudaGaugeParam_s::cuda_prec, cudaGauge, errorQuda, freeSloppyCloverQuda(), QudaGaugeParam_s::ga_pad, gauge_param, gaugeFatPrecise, gaugeLongPrecise, gaugePrecise, quda::LatticeFieldParam::ghostExchange, initialized, loadSloppyCloverQuda(), QudaGaugeParam_s::location, quda::LatticeFieldParam::pad, prec, profileGauge, QUDA_ASQTAD_FAT_LINKS, QUDA_ASQTAD_LONG_LINKS, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, QUDA_GHOST_EXCHANGE_PAD, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_TOTAL, QUDA_SMEARED_LINKS, QUDA_WILSON_LINKS, quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, quda::cudaGaugeField::saveCPUField(), quda::GaugeFieldParam::setPrecision(), and QudaGaugeParam_s::type.
Referenced by SU3test().
void set_kernel_pack_t_ | ( | int * | pack | ) |
fTemporary function exposed for TIFR benchmarking
Exposed due to poor derived MPI datatype performance with GPUDirect RDMA
Definition at line 5380 of file interface_quda.cpp.
References quda::setKernelPackT().
void setMPICommHandleQuda | ( | void * | mycomm | ) |
Definition at line 368 of file interface_quda.cpp.
void setVerbosityQuda | ( | QudaVerbosity | verbosity, |
const char | prefix[], | ||
FILE * | outfile | ||
) |
Set parameters related to status reporting.
In typical usage, this function will be called once (or not at all) just before the call to initQuda(), but it's valid to call it any number of times at any point during execution. Prior to the first time it's called, the parameters take default values as indicated below.
verbosity | Default verbosity, ranging from QUDA_SILENT to QUDA_DEBUG_VERBOSE. Within a solver, this parameter is overridden by the "verbosity" member of QudaInvertParam. The default value is QUDA_SUMMARIZE. |
prefix | String to prepend to all messages from QUDA. This defaults to the empty string (""), but you may wish to specify something like "QUDA: " to distinguish QUDA's output from that of your application. |
outfile | File pointer (such as stdout, stderr, or a handle returned by fopen()) where messages should be printed. The default is stdout. |
Definition at line 323 of file interface_quda.cpp.
References setOutputFile(), setOutputPrefix(), and setVerbosity().
Referenced by gauge_force_test(), and init().
void staggeredPhaseQuda | ( | void * | gauge_h, |
QudaGaugeParam * | param | ||
) |
Apply the staggered phase factors to the gauge field. If the imaginary chemical potential is non-zero then the phase factor exp(imu/T) will be applied to the links in the temporal direction.
gauge_h | The gauge field |
param | The parameters of the gauge field |
Definition at line 5029 of file interface_quda.cpp.
References quda::GaugeField::applyStaggeredPhase(), cpuGauge, quda::GaugeFieldParam::create, cudaGauge, errorQuda, gaugePrecise, gParam, quda::cudaGaugeField::loadCPUField(), QudaGaugeParam_s::make_resident_gauge, num_failures_h, quda::GaugeFieldParam::order, profilePhase, QUDA_FLOAT2_GAUGE_ORDER, QUDA_GENERAL_LINKS, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, quda::GaugeField::removeStaggeredPhase(), QudaGaugeParam_s::return_result_gauge, quda::cudaGaugeField::saveCPUField(), quda::GaugeField::StaggeredPhaseApplied(), and QudaGaugeParam_s::use_resident_gauge.
void unregister_pinned_quda_ | ( | void * | ptr | ) |
Pinned a pre-existing memory allocation.
[in] | ptr | Pointer to buffer to be unpinned |
Definition at line 5199 of file interface_quda.cpp.
References checkCudaError.
void update_gauge_field_quda_ | ( | void * | gauge, |
void * | momentum, | ||
double * | dt, | ||
bool * | conj_mom, | ||
bool * | exact, | ||
QudaGaugeParam * | param | ||
) |
Evolve the gauge field by step size dt, using the momentum field I.e., Evalulate U(t+dt) = e(dt pi) U(t)
gauge | The gauge field to be updated |
momentum | The momentum field |
dt | The integration step size step |
conj_mom | Whether to conjugate the momentum matrix |
exact | Whether to use an exact exponential or Taylor expand |
param | The parameters of the external fields and the computation settings |
Definition at line 5211 of file interface_quda.cpp.
References updateGaugeFieldQuda().
void updateGaugeFieldQuda | ( | void * | gauge, |
void * | momentum, | ||
double | dt, | ||
int | conj_mom, | ||
int | exact, | ||
QudaGaugeParam * | param | ||
) |
Evolve the gauge field by step size dt, using the momentum field I.e., Evalulate U(t+dt) = e(dt pi) U(t)
gauge | The gauge field to be updated |
momentum | The momentum field |
dt | The integration step size step |
conj_mom | Whether to conjugate the momentum matrix |
exact | Whether to use an exact exponential or Taylor expand |
param | The parameters of the external fields and the computation settings |
Definition at line 4869 of file interface_quda.cpp.
References checkCudaError, cpuGauge, cpuMom, quda::GaugeFieldParam::create, cudaMom, errorQuda, QudaGaugeParam_s::gauge_offset, gaugePrecise, quda::LatticeFieldParam::ghostExchange, gParam, quda::GaugeFieldParam::link_type, quda::cudaGaugeField::loadCPUField(), QudaGaugeParam_s::make_resident_gauge, QudaGaugeParam_s::make_resident_mom, QudaGaugeParam_s::mom_offset, momResident, quda::GaugeFieldParam::order, quda::LatticeFieldParam::pad, profileGaugeUpdate, QUDA_ASQTAD_MOM_LINKS, QUDA_FLOAT2_GAUGE_ORDER, QUDA_GHOST_EXCHANGE_NO, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_10, QUDA_RECONSTRUCT_NO, QUDA_SU3_LINKS, QUDA_TIFR_GAUGE_ORDER, QUDA_TIFR_PADDED_GAUGE_ORDER, quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, QudaGaugeParam_s::return_result_gauge, quda::GaugeFieldParam::site_offset, quda::GaugeFieldParam::site_size, QudaGaugeParam_s::site_size, quda::updateGaugeField(), QudaGaugeParam_s::use_resident_gauge, and QudaGaugeParam_s::use_resident_mom.
Referenced by update_gauge_field_quda_().
void updateMultigridQuda | ( | void * | mg_instance, |
QudaMultigridParam * | param | ||
) |
Updates the multigrid preconditioner for the new gauge / clover field.
mg_instance | Pointer to instance of multigrid_solver |
param | Contains all metadata regarding host and device storage and solver parameters |
Definition at line 2645 of file interface_quda.cpp.
References checkGauge(), quda::Dirac::create(), getVerbosity(), QudaMultigridParam_s::invert_param, quda::multigrid_solver::mg, param, popVerbosity(), printfQuda, profileInvert, profilerStart(), profilerStop(), pushVerbosity(), QUDA_DIRECT_PC_SOLVE, QUDA_NORMOP_PC_SOLVE, quda::QUDA_PROFILE_PREAMBLE, quda::QUDA_PROFILE_TOTAL, QUDA_SUMMARIZE, quda::MG::reset(), quda::saveTuneCache(), quda::setDiracPreParam(), quda::setDiracSloppyParam(), setOutputPrefix(), QudaMultigridParam_s::smoother_solve_type, QudaInvertParam_s::solve_type, and QudaInvertParam_s::verbosity.
Referenced by main().
void updateR | ( | ) |
update the radius for halos.
This should only be needed for automated testing when different partitioning is applied within a single run.
Definition at line 674 of file interface_quda.cpp.
References commDimPartitioned(), R, and redundant_comms.
Referenced by quda::CG::blocksolve(), quda::CG::operator()(), quda::PreconCG::operator()(), quda::BiCGstab::operator()(), quda::MultiShiftCG::operator()(), quda::reliable(), quda::CACG::reliable(), StaggeredDslashTest::SetUp(), and DslashTest::SetUp().
cudaCloverField* cloverPrecise = nullptr |
Definition at line 137 of file interface_quda.cpp.
Referenced by freeCloverQuda(), loadCloverQuda(), loadSloppyCloverQuda(), and quda::setDiracParam().
cudaCloverField* cloverPrecondition = nullptr |
Definition at line 139 of file interface_quda.cpp.
Referenced by freeSloppyCloverQuda(), and quda::setDiracPreParam().
cudaCloverField* cloverRefinement = nullptr |
Definition at line 140 of file interface_quda.cpp.
Referenced by freeSloppyCloverQuda(), and quda::setDiracRefineParam().
cudaCloverField* cloverSloppy = nullptr |
Definition at line 138 of file interface_quda.cpp.
Referenced by freeSloppyCloverQuda(), loadSloppyCloverQuda(), and quda::setDiracSloppyParam().
|
static |
Definition at line 399 of file interface_quda.cpp.
Referenced by endQuda(), initCommsGridQuda(), initQuda(), initQudaDevice(), and initQudaMemory().
cudaDeviceProp deviceProp |
Definition at line 156 of file interface_quda.cpp.
Referenced by quda::CalculateY< from_coarse, Float, fineSpin, fineColor, coarseSpin, coarseColor, Arg >::advanceAux(), quda::ShiftColorSpinorField< Output, Input >::advanceBlockDim(), quda::TunableVectorY::advanceBlockDim(), quda::TunableVectorYZ::advanceBlockDim(), quda::blas::MultiReduceCuda< NXZ, doubleN, ReduceType, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Reducer >::advanceGridDim(), quda::Tunable::advanceSharedBytes(), quda::Tunable::blockMin(), quda::Tunable::blockStep(), quda::Tunable::checkLaunchParam(), quda::cudaColorSpinorField::create(), quda::cudaCloverField::cudaCloverField(), initQudaDevice(), quda::blas::initReduce(), quda::ShiftColorSpinorField< Output, Input >::initTuneParam(), quda::Tunable::initTuneParam(), quda::Dslash< Float >::launch(), quda::Pack< Float, nColor, spin_project >::launch(), quda::Tunable::maxBlockSize(), quda::blas::MultiReduceCuda< NXZ, doubleN, ReduceType, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Reducer >::maxBlockSize(), quda::TunableLocalParity::maxBlockSize(), quda::Tunable::maxBlocksPerSM(), quda::Tunable::maxDynamicSharedBytesPerBlock(), quda::Tunable::maxGridSize(), quda::Tunable::maxSharedBytesPerBlock(), quda::blas::multiReduceLaunch(), quda::blas::reduceLaunch(), quda::Tunable::resetBlockDim(), and quda::cudaGaugeField::zeroPad().
|
static |
Definition at line 250 of file interface_quda.cpp.
Referenced by profilerStart(), and profilerStop().
|
static |
Definition at line 249 of file interface_quda.cpp.
Referenced by profilerStart(), and profilerStop().
cudaGaugeField* extendedGaugeResident = nullptr |
Definition at line 143 of file interface_quda.cpp.
Referenced by computeCloverForceQuda(), computeGaugeForceQuda(), copyExtendedResidentGaugeQuda(), createCloverQuda(), freeGaugeQuda(), loadGaugeQuda(), main(), plaqQuda(), qChargeDensityQuda(), and qChargeQuda().
cudaGaugeField* gaugeExtended = nullptr |
Definition at line 121 of file interface_quda.cpp.
Referenced by freeGaugeQuda(), and quda::setDiracPreParam().
cudaGaugeField* gaugeFatExtended = nullptr |
Definition at line 127 of file interface_quda.cpp.
Referenced by quda::setDiracPreParam().
cudaGaugeField* gaugeFatPrecise = nullptr |
Definition at line 123 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), saveGaugeQuda(), and quda::setDiracParam().
cudaGaugeField* gaugeFatPrecondition = nullptr |
Definition at line 125 of file interface_quda.cpp.
Referenced by freeSloppyGaugeQuda(), loadGaugeQuda(), and quda::setDiracPreParam().
cudaGaugeField* gaugeFatRefinement = nullptr |
Definition at line 126 of file interface_quda.cpp.
Referenced by freeSloppyGaugeQuda(), loadGaugeQuda(), and quda::setDiracRefineParam().
cudaGaugeField* gaugeFatSloppy = nullptr |
Definition at line 124 of file interface_quda.cpp.
Referenced by freeSloppyGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), and quda::setDiracSloppyParam().
|
static |
Referenced by computeGaugeFixingFFTQuda().
|
static |
Profiler for toal time spend between init and end.
Referenced by computeGaugeFixingOVRQuda().
cudaGaugeField* gaugeLongExtended = nullptr |
Definition at line 129 of file interface_quda.cpp.
Referenced by freeGaugeQuda(), and quda::setDiracPreParam().
cudaGaugeField* gaugeLongPrecise = nullptr |
Definition at line 130 of file interface_quda.cpp.
Referenced by dslashQuda(), dslashQuda_4dpc(), dslashQuda_mdwf(), freeGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), MatDagMatQuda(), MatQuda(), saveGaugeQuda(), and quda::setDiracParam().
cudaGaugeField* gaugeLongPrecondition = nullptr |
Definition at line 132 of file interface_quda.cpp.
Referenced by freeSloppyGaugeQuda(), loadGaugeQuda(), and quda::setDiracPreParam().
cudaGaugeField* gaugeLongRefinement = nullptr |
Definition at line 133 of file interface_quda.cpp.
Referenced by freeSloppyGaugeQuda(), loadGaugeQuda(), and quda::setDiracRefineParam().
cudaGaugeField* gaugeLongSloppy = nullptr |
Definition at line 131 of file interface_quda.cpp.
Referenced by freeSloppyGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), and quda::setDiracSloppyParam().
cudaGaugeField* gaugePrecise = nullptr |
Definition at line 117 of file interface_quda.cpp.
Referenced by checkGauge(), computeGaugeFixingFFTQuda(), computeGaugeFixingOVRQuda(), computeGaugeForceQuda(), freeGaugeQuda(), gaussGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), performWuppertalnStep(), projectSU3Quda(), saveGaugeQuda(), quda::setDiracParam(), staggeredPhaseQuda(), and updateGaugeFieldQuda().
cudaGaugeField* gaugePrecondition = nullptr |
Definition at line 119 of file interface_quda.cpp.
Referenced by freeSloppyGaugeQuda(), loadGaugeQuda(), and quda::setDiracPreParam().
cudaGaugeField* gaugeRefinement = nullptr |
Definition at line 120 of file interface_quda.cpp.
Referenced by freeSloppyGaugeQuda(), loadGaugeQuda(), and quda::setDiracRefineParam().
cudaGaugeField* gaugeSloppy = nullptr |
Definition at line 118 of file interface_quda.cpp.
Referenced by freeSloppyGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), and quda::setDiracSloppyParam().
cudaGaugeField* gaugeSmeared = nullptr |
Definition at line 135 of file interface_quda.cpp.
Referenced by freeGaugeQuda(), loadGaugeQuda(), performAPEnStep(), performOvrImpSTOUTnStep(), performSTOUTnStep(), qChargeDensityQuda(), and qChargeQuda().
char* gitversion |
Definition at line 4 of file version.cpp.
Referenced by initQudaDevice().
|
static |
Profiler for initQuda.
Definition at line 159 of file interface_quda.cpp.
Referenced by cloverQuda(), comm_init(), eigensolveQuda(), endQuda(), exchange_llfat_init(), freeCloverQuda(), freeGaugeQuda(), freeSloppyCloverQuda(), freeSloppyGaugeQuda(), initQudaDevice(), invertMultiShiftQuda(), invertMultiSrcQuda(), invertQuda(), loadCloverQuda(), loadGaugeQuda(), and saveGaugeQuda().
|
static |
Definition at line 93 of file interface_quda.cpp.
Referenced by closeMagma(), and openMagma().
|
static |
Definition at line 727 of file interface_quda.cpp.
Referenced by loadCloverQuda(), and loadGaugeQuda().
cudaGaugeField* momResident = nullptr |
Definition at line 142 of file interface_quda.cpp.
Referenced by computeGaugeForceQuda(), computeHISQForceQuda(), computeStaggeredForceQuda(), endQuda(), momActionQuda(), and updateGaugeFieldQuda().
|
static |
Definition at line 154 of file interface_quda.cpp.
Referenced by computeHISQForceQuda(), computeKSLinkQuda(), endQuda(), initQudaMemory(), projectSU3Quda(), and unitarize_link_test().
|
static |
Definition at line 153 of file interface_quda.cpp.
Referenced by computeHISQForceQuda(), computeKSLinkQuda(), endQuda(), initQudaMemory(), projectSU3Quda(), staggeredPhaseQuda(), and unitarize_link_test().
|
static |
Profiler for STOUTQuda.
Referenced by endQuda(), and performAPEnStep().
|
static |
Profiler for dslashQuda.
Referenced by createCloverQuda(), endQuda(), and loadCloverQuda().
|
static |
Profiler for computeStaggeredForceQuda.
Referenced by computeCloverForceQuda(), and endQuda().
|
static |
Profiler for covariant derivative.
Referenced by contractQuda(), and endQuda().
|
static |
Profiler for momentum action.
Referenced by endQuda().
|
static |
Profiler for invertQuda.
Referenced by dslashQuda(), and endQuda().
|
static |
Profiler for computeFatLinkQuda.
Referenced by eigensolveQuda(), and endQuda().
|
static |
Profiler for GaugeFixing.
Referenced by endQuda().
|
static |
Profiler for computeCloverForceQuda.
Referenced by endQuda().
|
static |
Profiler for computeGaugeForceQuda.
Referenced by computeKSLinkQuda(), and endQuda().
|
static |
Profile for loadCloverQuda.
Referenced by endQuda(), loadGaugeQuda(), and saveGaugeQuda().
|
static |
Profiler for updateGaugeFieldQuda.
Referenced by computeGaugeForceQuda(), and endQuda().
|
static |
Profiler for createExtendedGaugeField.
Referenced by endQuda(), and updateGaugeFieldQuda().
|
static |
Profiler for plaqQuda.
Referenced by gaussGaugeQuda().
|
static |
Profiler for plaqQuda.
Referenced by computeHISQForceQuda(), and endQuda().
|
static |
Profile for loadGaugeQuda / saveGaugeQuda.
Referenced by endQuda(), initQudaDevice(), and initQudaMemory().
|
static |
Referenced by endQuda(), and initQudaDevice().
|
static |
Profiler for invertMultiShiftQuda.
Referenced by dumpMultigridQuda(), endQuda(), invertMultiSrcQuda(), invertQuda(), newDeflationQuda(), newMultigridQuda(), and updateMultigridQuda().
|
static |
Profiler for endQuda.
Referenced by endQuda(), and momActionQuda().
|
static |
Profiler for eigensolveQuda.
Referenced by endQuda(), and invertMultiShiftQuda().
|
static |
Profiler for projectSU3Quda.
Referenced by performOvrImpSTOUTnStep().
|
static |
Profiler for contractions.
Referenced by endQuda(), and staggeredPhaseQuda().
|
static |
Profiler for wuppertalQuda.
Referenced by copyExtendedResidentGaugeQuda(), endQuda(), and plaqQuda().
|
static |
Profiler for staggeredPhaseQuda.
Referenced by endQuda(), and projectSU3Quda().
|
static |
Profiler for APEQuda.
Referenced by endQuda(), qChargeDensityQuda(), and qChargeQuda().
|
static |
Profiler for computeHISQForceQuda.
Referenced by computeStaggeredForceQuda(), and endQuda().
|
static |
Profiler for OvrImpSTOUTQuda.
Referenced by endQuda(), performOvrImpSTOUTnStep(), and performSTOUTnStep().
|
static |
Profiler for gaussQuda.
Referenced by performWuppertalnStep().
|
static |
Definition at line 474 of file interface_quda.cpp.
|
static |
Definition at line 84 of file interface_quda.cpp.
Referenced by computeCloverForceQuda(), computeGaugeFixingOVRQuda(), computeGaugeForceQuda(), computeHISQForceQuda(), computeHISQLinksCPU(), computeKSLinkQuda(), copyExtendedResidentGaugeQuda(), quda::copyGaugeEx(), quda::copyInterior(), createCloverQuda(), quda::extractGhostEx(), gauge_force_test(), quda::cpuGaugeField::Gauge_p(), quda::GaugeGaussArg< Float, recon, group_ >::GaugeGaussArg(), quda::GaugePlaqArg< Gauge >::GaugePlaqArg(), gaussGaugeQuda(), genericReduce(), indexFromFaceIndexExtended(), indexFromFaceIndexExtendedStaggered(), initQudaMemory(), llfat_test(), loadGaugeQuda(), main(), quda::GaugeField::Nface(), quda::MPCG::operator()(), quda::CACG::operator()(), quda::CAGCR::operator()(), performAPEnStep(), performOvrImpSTOUTnStep(), performSTOUTnStep(), plaqQuda(), qChargeDensityQuda(), qChargeQuda(), GaugeAlgTest::SetUp(), quda::gauge::timeBoundary(), quda::gauge::Reconstruct< 12, Float, ghostExchange_ >::Unpack(), quda::gauge::Reconstruct< 8, Float, ghostExchange_ >::Unpack(), updateR(), and quda::variableInv().
|
static |
Definition at line 86 of file interface_quda.cpp.
Referenced by createCloverQuda(), createExtendedGauge(), gaussGaugeQuda(), initQudaMemory(), performAPEnStep(), performOvrImpSTOUTnStep(), performSTOUTnStep(), and updateR().
std::vector<cudaColorSpinorField*> solutionResident |
Definition at line 145 of file interface_quda.cpp.
cudaStream_t* streams |
Definition at line 157 of file interface_quda.cpp.
Referenced by quda::DomainWall4D< Float, nDim, nColor, Arg >::apply(), quda::ApplyClover(), quda::ApplyDslash5(), quda::ApplyGamma(), quda::ApplyTwistClover(), quda::ApplyTwistGamma(), quda::dslash::commsComplete(), quda::dslash::completeDslash(), quda::Dslash5Arg< Float, nColor >::Dslash5Arg(), quda::dslash::DslashPolicyTune< Dslash >::DslashPolicyTune(), endQuda(), quda::cudaGaugeField::exchangeExtendedGhost(), quda::exchangeExtendedGhost(), quda::cudaGaugeField::exchangeGhost(), quda::cudaColorSpinorField::exchangeGhost(), quda::blas::init(), initQudaMemory(), quda::cudaGaugeField::injectGhost(), quda::dslash::issueGather(), quda::dslash::issuePack(), quda::blas::mixed_reduce(), quda::dslash::DslashBasic< Dslash >::operator()(), quda::dslash::DslashFusedExterior< Dslash >::operator()(), quda::dslash::DslashGDR< Dslash >::operator()(), quda::dslash::DslashFusedGDR< Dslash >::operator()(), quda::dslash::DslashGDRRecv< Dslash >::operator()(), quda::dslash::DslashFusedGDRRecv< Dslash >::operator()(), quda::XSD::operator()(), quda::dslash::DslashZeroCopyPack< Dslash >::operator()(), quda::dslash::DslashFusedZeroCopyPack< Dslash >::operator()(), quda::dslash::DslashZeroCopyPackGDRRecv< Dslash >::operator()(), quda::dslash::DslashFusedZeroCopyPackGDRRecv< Dslash >::operator()(), quda::dslash::DslashZeroCopy< Dslash >::operator()(), quda::dslash::DslashFusedZeroCopy< Dslash >::operator()(), quda::dslash::DslashNC< Dslash >::operator()(), and quda::shiftColorSpinorField().