|
QUDA
0.9.0
|
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>#include <sys/time.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 <ritz_quda.h>#include <dslash_quda.h>#include <invert_quda.h>#include <lanczos_quda.h>#include <color_spinor_field.h>#include <eig_variables.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 <multigrid.h>#include <deflation.h>#include <cuda.h>#include <gauge_update_quda.h>#include "check_params.h"#include <gauge_tools.h>#include <contractQuda.h>#include <momentum.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 2 |
| #define | STR_(x) #x |
| #define | STR(x) STR_(x) |
| #define | REFINE_INCREASING_MASS |
Functions | |
| void | openMagma () |
| void | closeMagma () |
| std::vector< std::vector< std::pair< ColorSpinorField *, ColorSpinorField * > > > | chronoResident (QUDA_MAX_CHRONO) |
| void | quda::printLaunchTimer () |
| void | setVerbosityQuda (QudaVerbosity verbosity, const char prefix[], FILE *outfile) |
| static int | lex_rank_from_coords (const int *coords, void *fdata) |
| 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 (QudaPrecision prec_sloppy, QudaPrecision prec_precondition) |
| void | freeSloppyCloverQuda () |
| void | loadCloverQuda (void *h_clover, void *h_clovinv, QudaInvertParam *inv_param) |
| void | freeGaugeQuda (void) |
| void | freeSloppyGaugeQuda (void) |
| void | loadSloppyGaugeQuda (QudaPrecision prec_sloppy, QudaPrecision prec_precondition) |
| 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::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::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 | lanczosQuda (int k0, int m, void *hp_Apsi, void *hp_r, void *hp_V, void *hp_alpha, void *hp_beta, 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 * | 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, long long *flops, 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 (long seed) |
| void | plaq_quda_ (double plaq[3]) |
| void | plaqQuda (double plq[3]) |
| 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 | contract (const cudaColorSpinorField x, const cudaColorSpinorField y, void *ctrn, const QudaContractType cType) |
| void | contract (const cudaColorSpinorField x, const cudaColorSpinorField y, void *ctrn, const QudaContractType cType, const int tC) |
| double | qChargeCuda () |
Variables | |
| static int | R [4] = {0, 0, 0, 0} |
| static bool | redundant_comms = false |
| static bool | InitMagma = false |
| cudaGaugeField * | gaugePrecise = NULL |
| cudaGaugeField * | gaugeSloppy = NULL |
| cudaGaugeField * | gaugePrecondition = NULL |
| cudaGaugeField * | gaugeExtended = NULL |
| cudaGaugeField *& | gaugeFatPrecise = gaugePrecise |
| cudaGaugeField *& | gaugeFatSloppy = gaugeSloppy |
| cudaGaugeField *& | gaugeFatPrecondition = gaugePrecondition |
| cudaGaugeField *& | gaugeFatExtended = gaugeExtended |
| cudaGaugeField * | gaugeLongExtended = NULL |
| cudaGaugeField * | gaugeLongPrecise = NULL |
| cudaGaugeField * | gaugeLongSloppy = NULL |
| cudaGaugeField * | gaugeLongPrecondition = NULL |
| cudaGaugeField * | gaugeSmeared = NULL |
| cudaCloverField * | cloverPrecise = NULL |
| cudaCloverField * | cloverSloppy = NULL |
| cudaCloverField * | cloverPrecondition = NULL |
| cudaGaugeField * | momResident = NULL |
| cudaGaugeField * | extendedGaugeResident = NULL |
| std::vector< cudaColorSpinorField * > | solutionResident |
| static int * | num_failures_h = NULL |
| static int * | num_failures_d = NULL |
| 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 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 contractions. More... | |
| static TimeProfile | profileCovDev ("covDevQuda") |
| Profiler for contractions. 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 | 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 66 of file interface_quda.cpp.
| #define INIT_PARAM |
Definition at line 61 of file interface_quda.cpp.
| #define MAX_GPU_NUM_PER_NODE 16 |
Definition at line 58 of file interface_quda.cpp.
| #define PRINT_PARAM |
Definition at line 71 of file interface_quda.cpp.
| #define QUDA_MAX_CHRONO 2 |
Definition at line 144 of file interface_quda.cpp.
Referenced by endQuda(), flushChronoQuda(), and invertQuda().
| #define REFINE_INCREASING_MASS |
| #define spinorSiteSize 24 |
Definition at line 56 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(), invertMultiShiftQuda(), invertMultiSrcQuda(), invertQuda(), main(), mdw_dslash_4_pre(), mdw_dslash_5(), mdw_mat(), mdw_matpc(), packTest(), tm_mat(), tm_matpc(), tm_ndeg_mat(), tm_ndeg_matpc(), tmc_dslash(), tmc_mat(), tmc_matpc(), twistCloverGamma5(), wil_mat(), and wil_matpc().
Definition at line 355 of file interface_quda.cpp.
Definition at line 354 of file interface_quda.cpp.
Definition at line 54 of file interface_quda.cpp.
| void apply_staggered_phase_quda_ | ( | ) |
Apply the staggered phase factors to the resident gauge field.
Definition at line 4901 of file interface_quda.cpp.
References quda::GaugeField::applyStaggeredPhase(), errorQuda, gaugePrecise, getVerbosity(), printfQuda, and QUDA_VERBOSE.

| void checkClover | ( | QudaInvertParam * | param | ) |
Definition at line 2002 of file interface_quda.cpp.
References cloverPrecise, cloverPrecondition, cloverSloppy, QudaGaugeParam_s::cuda_prec, QudaGaugeParam_s::cuda_prec_precondition, QudaGaugeParam_s::cuda_prec_sloppy, errorQuda, freeSloppyCloverQuda(), loadSloppyCloverQuda(), param, quda::LatticeField::Precision(), QUDA_CLOVER_WILSON_DSLASH, and QUDA_TWISTED_CLOVER_DSLASH.
Referenced by checkGauge().


| quda::cudaGaugeField* checkGauge | ( | QudaInvertParam * | param | ) |
Definition at line 2023 of file interface_quda.cpp.
References checkClover(), QudaGaugeParam_s::cuda_prec, QudaGaugeParam_s::cuda_prec_precondition, QudaGaugeParam_s::cuda_prec_sloppy, cudaGauge, errorQuda, freeSloppyGaugeQuda(), gaugeExtended, gaugeFatExtended, gaugeFatPrecise, gaugeFatPrecondition, gaugeFatSloppy, gaugeLongExtended, gaugeLongPrecise, gaugeLongPrecondition, gaugeLongSloppy, gaugePrecise, gaugePrecondition, gaugeSloppy, loadSloppyGaugeQuda(), QudaGaugeParam_s::overlap, param, quda::LatticeField::Precision(), and QUDA_ASQTAD_DSLASH.
Referenced by quda::deflated_solver::deflated_solver(), invertMultiShiftQuda(), invertMultiSrcQuda(), invertQuda(), lanczosQuda(), quda::multigrid_solver::multigrid_solver(), and updateMultigridQuda().


| std::vector< std::vector< std::pair<ColorSpinorField*,ColorSpinorField*> > > chronoResident | ( | QUDA_MAX_CHRONO | ) |
| void closeMagma | ( | ) |
Definition at line 103 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 4730 of file interface_quda.cpp.
References cloverQuda(), inv_param, and parity.

| void cloverQuda | ( | void * | h_out, |
| void * | h_in, | ||
| QudaInvertParam * | inv_param, | ||
| QudaParity | parity, | ||
| int | inverse | ||
| ) |
Definition at line 2074 of file interface_quda.cpp.
References quda::GaugeField::Anisotropy(), quda::blas::ax(), cloverPrecise, quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), dirac, QudaInvertParam_s::dirac_order, QudaInvertParam_s::dslash_type, errorQuda, gaugePrecise, getVerbosity(), in, initialized, QudaInvertParam_s::input_location, inv_param, quda::blas::norm2(), out, QudaInvertParam_s::output_location, parity, 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 4943 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 4840 of file interface_quda.cpp.
References dw_dslash_4D_cuda_gen::coeff(), computeGaugeForceQuda(), createGaugeForcePaths(), errorQuda, host_free, fused_exterior_ndeg_tm_dslash_cuda_gen::i, param, 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 4896 of file interface_quda.cpp.
References computeStaggeredForceQuda(), delta, gauge_param, inv_param, and x.

| 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 4254 of file interface_quda.cpp.
References checkCudaError, quda::cloverDerivative(), cloverPrecise, dw_dslash_4D_cuda_gen::coeff(), 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::GaugeCovDev::Dslash(), errorQuda, extendedGaugeResident, quda::ColorSpinorParam::fieldOrder, for(), quda::gamma5(), quda::ColorSpinorParam::gammaBasis, QudaGaugeParam_s::gauge_order, gauge_param, gaugePrecise, quda::GaugeFieldParam::geometry, fused_exterior_ndeg_tm_dslash_cuda_gen::i, int, inv_param, quda::GaugeFieldParam::link_type, quda::ColorSpinorParam::location, quda::GaugeCovDev::M(), quda::ColorSpinorParam::nColor, quda::LatticeFieldParam::nDim, quda::ColorSpinorParam::nSpin, quda::GaugeFieldParam::order, p, quda::LatticeFieldParam::pad, param, quda::LatticeFieldParam::precision, quda::LatticeField::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, QudaGaugeParam_s::reconstruct, quda::GaugeField::Reconstruct(), quda::cudaGaugeField::saveCPUField(), quda::setDiracParam(), shift, quda::ColorSpinorParam::siteOrder, quda::LatticeFieldParam::siteSubset, solutionResident, QudaInvertParam_s::solve_type, tmp, quda::DiracParam::tmp1, quda::updateMomentum(), QudaInvertParam_s::use_resident_solution, quda::ColorSpinorParam::v, quda::LatticeFieldParam::x, and 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 5287 of file interface_quda.cpp.
References checkCudaError, cpuGauge, quda::GaugeFieldParam::create, GaugeFixFFTQuda, quda::gaugefixingFFT(), gaugePrecise, gParam, quda::TimeProfile::Last(), quda::GaugeFieldParam::link_type, quda::cudaGaugeField::loadCPUField(), QudaGaugeParam_s::make_resident_gauge, quda::GaugeFieldParam::order, param, 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, quda::cudaGaugeField::saveCPUField(), 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 5202 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, quda::cudaGaugeField::loadCPUField(), QudaGaugeParam_s::make_resident_gauge, quda::GaugeFieldParam::order, param, 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, quda::cudaGaugeField::saveCPUField(), 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 3663 of file interface_quda.cpp.
References checkCudaError, cpuMom, quda::GaugeFieldParam::create, createExtendedGauge(), QudaGaugeParam_s::cuda_prec, cudaGauge, cudaMom, errorQuda, extendedGaugeResident, 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, quda::LatticeFieldParam::precision, 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, qudaGaugeParam, R, quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, QudaGaugeParam_s::return_result_mom, quda::cudaGaugeField::saveCPUField(), quda::GaugeFieldParam::site_offset, quda::GaugeFieldParam::site_size, QudaGaugeParam_s::site_size, 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, |
| long long * | flops, | ||
| 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.
| momentum | The momentum contribution from the quark action. |
| 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 4004 of file interface_quda.cpp.
References quda::ax(), quda::GaugeField::Bytes(), dw_dslash_4D_cuda_gen::coeff(), comm_dim_partitioned(), quda::computeStaggeredOprod(), quda::cudaGaugeField::copy(), quda::copyExtendedGauge(), cpuMom, cpuULink, quda::GaugeFieldParam::create, quda::ColorSpinorParam::create, cudaGauge, cudaMom, e, errorQuda, quda::cudaGaugeField::exchangeExtendedGhost(), quda::ColorSpinorParam::fieldOrder, quda::blas::flops, quda::cudaGaugeField::Gauge_p(), gParam, quda::fermion_force::hisqCompleteForce(), quda::fermion_force::hisqLongLinkForce(), quda::fermion_force::hisqStaplesForce(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, quda::cudaGaugeField::loadCPUField(), 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, R, QudaGaugeParam_s::reconstruct, quda::cudaGaugeField::saveCPUField(), quda::fermion_force::setUnitarizeForceConstants(), quda::ColorSpinorParam::siteOrder, quda::LatticeFieldParam::siteSubset, unitarize_eps, quda::fermion_force::unitarizeForce(), quda::updateMomentum(), 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 3562 of file interface_quda.cpp.
References cpuFatLink, quda::GaugeFieldParam::create, createExtendedGauge(), QudaGaugeParam_s::cuda_prec, cudaFatLink, e, errorQuda, fatlink, quda::fatLongKSLink(), quda::GaugeFieldParam::gauge, quda::LatticeFieldParam::ghostExchange, gParam, quda::GaugeFieldParam::link_type, quda::cudaGaugeField::loadCPUField(), longlink, num_failures_d, num_failures_h, param, 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 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 3855 of file interface_quda.cpp.
References quda::applyU(), checkCudaError, dw_dslash_4D_cuda_gen::coeff(), quda::computeStaggeredOprod(), cpuForce, cpuMom, quda::GaugeFieldParam::create, quda::ColorSpinorParam::create, quda::Dirac::create(), quda::ColorSpinorField::Create(), cudaForce, cudaMom, delta, dirac, quda::GaugeCovDev::Dslash(), errorQuda, quda::ColorSpinorParam::fieldOrder, quda::ColorSpinorParam::gammaBasis, quda::GaugeFieldParam::gauge, gauge_param, gaugePrecise, gParam, fused_exterior_ndeg_tm_dslash_cuda_gen::i, int, inv_param, 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::GaugeFieldParam::order, quda::LatticeFieldParam::pad, quda::LatticeFieldParam::precision, profileStaggeredForce, QUDA_ASQTAD_MOM_LINKS, QUDA_CUDA_FIELD_LOCATION, QUDA_DEGRAND_ROSSI_GAMMA_BASIS, 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, quda::qudaDeviceSynchronize(), quda::GaugeFieldParam::reconstruct, QudaGaugeParam_s::reconstruct, QudaInvertParam_s::residue, QudaGaugeParam_s::return_result_mom, quda::cudaGaugeField::saveCPUField(), quda::setDiracParam(), quda::ColorSpinorParam::siteOrder, quda::LatticeFieldParam::siteSubset, solutionResident, quda::GaugeFieldParam::t_boundary, quda::updateMomentum(), QudaGaugeParam_s::use_resident_gauge, QudaGaugeParam_s::use_resident_mom, QudaInvertParam_s::use_resident_solution, quda::LatticeFieldParam::x, X, and x.
Referenced by compute_staggered_force_quda_().


| void contract | ( | const cudaColorSpinorField | x, |
| const cudaColorSpinorField | y, | ||
| void * | ctrn, | ||
| const QudaContractType | cType | ||
| ) |
Compute a volume or time-slice contraction of two spinors.
| x | Spinor to contract. This is conjugated before contraction. |
| y | Spinor to contract. |
| ctrn | Contraction output. The size must be Volume*16 |
| cType | Contraction type, allows for volume or time-slice contractions. |
| tC | Time-slice to contract in case the contraction is in a single time-slice. |
Definition at line 5369 of file interface_quda.cpp.
References quda::contractCuda(), errorQuda, profileContract, QUDA_DOUBLE_PRECISION, QUDA_EVEN_PARITY, QUDA_ODD_PARITY, QUDA_SINGLE_PRECISION, x, and y.
Referenced by quda::contractCuda().


| void contract | ( | const cudaColorSpinorField | x, |
| const cudaColorSpinorField | y, | ||
| void * | ctrn, | ||
| const QudaContractType | cType, | ||
| const int | tC | ||
| ) |
Definition at line 5382 of file interface_quda.cpp.
References quda::contractCuda(), errorQuda, profileContract, QUDA_DOUBLE_PRECISION, QUDA_EVEN_PARITY, QUDA_ODD_PARITY, QUDA_SINGLE_PRECISION, x, and y.

| 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 3780 of file interface_quda.cpp.
References QudaInvertParam_s::clover_coeff, cloverPrecise, commDimPartitioned(), quda::computeClover(), quda::computeFmunu(), createExtendedGauge(), d, errorQuda, extendedGaugeResident, gaugePrecise, 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 566 of file interface_quda.cpp.
References quda::copyExtendedGauge(), quda::GaugeFieldParam::create, d, in, 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, R, quda::LatticeField::r, redundant_comms, quda::ColorSpinorField::siteSubset, quda::ColorSpinorField::X(), and y.
Referenced by computeCloverForceQuda(), computeGaugeFixingOVRQuda(), computeGaugeForceQuda(), computeKSLinkQuda(), createCloverQuda(), loadGaugeQuda(), performAPEnStep(), performOvrImpSTOUTnStep(), performSTOUTnStep(), plaqQuda(), and qChargeCuda().


| 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 3813 of file interface_quda.cpp.
References cpuGauge, quda::GaugeFieldParam::create, cudaGauge, errorQuda, quda::GaugeFieldParam::geometry, gParam, quda::cudaGaugeField::loadCPUField(), quda::GaugeFieldParam::order, param, QUDA_FLOAT2_GAUGE_ORDER, QUDA_GENERAL_LINKS, QUDA_SCALAR_GEOMETRY, QUDA_VECTOR_GEOMETRY, and QUDA_ZERO_FIELD_CREATE.

Definition at line 4792 of file interface_quda.cpp.
References fused_exterior_ndeg_tm_dslash_cuda_gen::i, index(), and opp().
Referenced by compute_gauge_force_quda_().


| void destroyDeflationQuda | ( | void * | df_instance | ) |
Free resources allocated by the deflated solver
Definition at line 2514 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 3849 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 |
Definition at line 2377 of file interface_quda.cpp.
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 4728 of file interface_quda.cpp.
References dslashQuda(), inv_param, and parity.

| 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 1616 of file interface_quda.cpp.
References quda::GaugeField::Anisotropy(), quda::blas::ax(), cloverPrecise, quda::ColorSpinorParam::create, quda::Dirac::create(), quda::ColorSpinorField::Create(), QudaInvertParam_s::dagger, dirac, QudaInvertParam_s::dirac_order, quda::GaugeCovDev::Dslash(), QudaInvertParam_s::dslash_type, errorQuda, gaugePrecise, getVerbosity(), in, QudaInvertParam_s::input_location, inv_param, QudaInvertParam_s::mass, QudaInvertParam_s::mass_normalization, quda::blas::norm2(), out, QudaInvertParam_s::output_location, parity, popVerbosity(), printfQuda, printQudaInvertParam(), profileDslash, pushVerbosity(), QUDA_ASQTAD_DSLASH, QUDA_CLOVER_WILSON_DSLASH, QUDA_CPS_WILSON_DIRAC_ORDER, QUDA_DEBUG_VERBOSE, QUDA_DOMAIN_WALL_4D_DSLASH, QUDA_DOMAIN_WALL_DSLASH, QUDA_EVEN_PARITY, QUDA_KAPPA_NORMALIZATION, QUDA_MOBIUS_DWF_DSLASH, 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(), quda::setKernelPackT(), tmp1, QudaInvertParam_s::verbosity, and quda::LatticeField::X().
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 1708 of file interface_quda.cpp.
References quda::GaugeField::Anisotropy(), quda::blas::ax(), quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), dirac, QudaInvertParam_s::dirac_order, QudaInvertParam_s::dslash_type, errorQuda, gaugePrecise, getVerbosity(), in, QudaInvertParam_s::input_location, inv_param, QudaInvertParam_s::kappa, quda::blas::norm2(), out, QudaInvertParam_s::output_location, parity, popVerbosity(), printfQuda, printQudaInvertParam(), pushVerbosity(), QUDA_CPS_WILSON_DIRAC_ORDER, QUDA_DEBUG_VERBOSE, QUDA_DOMAIN_WALL_4D_DSLASH, QUDA_EVEN_PARITY, QUDA_NULL_FIELD_CREATE, QUDA_ODD_PARITY, quda::setDiracParam(), quda::setKernelPackT(), test_type, QudaInvertParam_s::verbosity, and quda::LatticeField::X().
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 1779 of file interface_quda.cpp.
References quda::GaugeField::Anisotropy(), quda::blas::ax(), quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), dirac, QudaInvertParam_s::dirac_order, QudaInvertParam_s::dslash_type, errorQuda, gaugePrecise, getVerbosity(), in, QudaInvertParam_s::input_location, inv_param, quda::blas::norm2(), out, QudaInvertParam_s::output_location, parity, popVerbosity(), printfQuda, printQudaInvertParam(), pushVerbosity(), QUDA_CPS_WILSON_DIRAC_ORDER, QUDA_DEBUG_VERBOSE, QUDA_EVEN_PARITY, QUDA_MOBIUS_DWF_DSLASH, QUDA_NULL_FIELD_CREATE, QUDA_ODD_PARITY, quda::setDiracParam(), quda::setKernelPackT(), test_type, QudaInvertParam_s::verbosity, and quda::LatticeField::X().
Referenced by dslashCUDA().


| void end_quda_ | ( | void | ) |
Finalize the library.
Definition at line 4721 of file interface_quda.cpp.
References endQuda().

| void endQuda | ( | void | ) |
Finalize the library.
Definition at line 1290 of file interface_quda.cpp.
References quda::assertAllMemFree(), comm_finalize(), comms_initialized, quda::destroyDslashEvents(), quda::blas::end(), quda::pool::flush_device(), quda::pool::flush_pinned(), flushChronoQuda(), freeCloverQuda(), freeGaugeQuda(), quda::LatticeField::freeGhostBuffer(), quda::cpuColorSpinorField::freeGhostBuffer(), getenv(), getVerbosity(), host_free, fused_exterior_ndeg_tm_dslash_cuda_gen::i, 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, 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(), solutionResident, strcmp(), and streams.
Referenced by end(), end_quda_(), gauge_force_test(), hisq_force_end(), llfat_test(), main(), 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 4765 of file interface_quda.cpp.
References flushChronoQuda(), and index().

| void flushChronoQuda | ( | int | index | ) |
Flush the chronological history for the given index.
| [in] | index | Index for which we are flushing |
Definition at line 1276 of file interface_quda.cpp.
References chronoResident(), errorQuda, fused_exterior_ndeg_tm_dslash_cuda_gen::i, 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 4727 of file interface_quda.cpp.
References freeCloverQuda().

| void free_gauge_quda_ | ( | void | ) |
Free QUDA's internal copy of the gauge field.
Definition at line 4723 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 4724 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 1268 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 1090 of file interface_quda.cpp.
References errorQuda, extendedGaugeResident, gaugeExtended, gaugeFatExtended, gaugeFatPrecise, gaugeFatPrecondition, gaugeFatSloppy, gaugeLongExtended, gaugeLongPrecise, gaugeLongPrecondition, gaugeLongSloppy, gaugePrecise, gaugePrecondition, gaugeSloppy, gaugeSmeared, and initialized.
Referenced by end(), endQuda(), free_gauge_quda_(), main(), and SU3test().

| void freeSloppyCloverQuda | ( | void | ) |
Definition at line 1259 of file interface_quda.cpp.
References cloverPrecise, cloverPrecondition, cloverSloppy, errorQuda, and initialized.
Referenced by checkClover(), freeCloverQuda(), loadCloverQuda(), and loadSloppyCloverQuda().

| void freeSloppyGaugeQuda | ( | void | ) |
Definition at line 1133 of file interface_quda.cpp.
References errorQuda, gaugeFatPrecise, gaugeFatPrecondition, gaugeFatSloppy, gaugeLongPrecise, gaugeLongPrecondition, gaugeLongSloppy, gaugePrecise, gaugePrecondition, gaugeSloppy, and initialized.
Referenced by checkGauge(), and free_sloppy_gauge_quda_().

| void gaussGaugeQuda | ( | long | seed | ) |
Generate Gaussian distributed gauge field
| seed | Seed |
Definition at line 4961 of file interface_quda.cpp.
References errorQuda, quda::exchangeExtendedGhost(), extendedGaugeResident, quda::gaugeGauss(), gaugePrecise, quda::RNG::Init(), profileGauss, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_INIT, quda::QUDA_PROFILE_TOTAL, R, redundant_comms, quda::RNG::Release(), quda::LatticeField::Volume(), and quda::LatticeField::X().

| int getGaugePadding | ( | GaugeFieldParam & | param | ) |
Definition at line 3651 of file interface_quda.cpp.
References param.
|
static |
Definition at line 334 of file interface_quda.cpp.
References 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 4718 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 4719 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 4720 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 291 of file interface_quda.cpp.
References comm_init(), comms_initialized, LexMapData::dims, errorQuda, func, fused_exterior_ndeg_tm_dslash_cuda_gen::i, 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 546 of file interface_quda.cpp.
References comms_initialized, init_default_comms(), initQudaDevice(), and initQudaMemory().
Referenced by gauge_force_test(), hisq_force_init(), init(), init_quda_(), invert_test(), llfat_test(), main(), 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 365 of file interface_quda.cpp.
References atoi(), checkCudaErrorNoSync, comm_gpuid(), comms_initialized, deviceProp, errorQuda, getenv(), getVerbosity(), gitversion, fused_exterior_ndeg_tm_dslash_cuda_gen::i, initialized, 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(), strcmp(), 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 500 of file interface_quda.cpp.
References checkCudaError, commDimPartitioned(), comms_initialized, quda::createDslashEvents(), d, greatestPriority, fused_exterior_ndeg_tm_dslash_cuda_gen::i, 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 4744 of file interface_quda.cpp.
References QudaGaugeParam_s::cpu_prec, errorQuda, gaugePrecise, fused_exterior_ndeg_tm_dslash_cuda_gen::i, invertMultiShiftQuda(), quda::GaugeField::Ncolor(), param, QUDA_ASQTAD_DSLASH, QUDA_MAX_MULTI_SHIFT, QUDA_STAGGERED_DSLASH, QUDA_TIFR_PADDED_DIRAC_ORDER, X, 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 4736 of file interface_quda.cpp.
References fflush(), invertQuda(), param, 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.
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 3206 of file interface_quda.cpp.
References quda::blas::ax(), b, quda::blas::cDotProduct(), checkGauge(), quda::blas::copy(), quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), quda::createDirac(), QudaGaugeParam_s::cuda_prec, cudaGauge, d, dirac, double, errorQuda, gaugeFatPrecise, gaugePrecise, getVerbosity(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, initialized, quda::SolverParam::iter, quda::ColorSpinorParam::location, quda::massRescale(), quda::blas::norm2(), param, popVerbosity(), pow(), quda::LatticeFieldParam::precision, printfQuda, profileMulti, pushVerbosity(), QUDA_ASQTAD_DSLASH, QUDA_CG_INVERTER, QUDA_COPY_FIELD_CREATE, QUDA_DIRECT_PC_SOLVE, QUDA_DIRECT_SOLVE, QUDA_DOMAIN_WALL_4D_DSLASH, QUDA_DOMAIN_WALL_DSLASH, QUDA_HEAVY_QUARK_RESIDUAL, QUDA_MAT_SOLUTION, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_MAX_MULTI_SHIFT, QUDA_MOBIUS_DWF_DSLASH, 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, quda::saveTuneCache(), quda::setKernelPackT(), quda::Dirac::setMass(), quda::DiracMdagM::shift, solutionResident, spinorSiteSize, quda::sqrt(), tmp, quda::SolverParam::tol, tol_hq, quda::SolverParam::tol_hq, quda::SolverParam::true_res, quda::SolverParam::true_res_hq, quda::SolverParam::true_res_hq_offset, quda::SolverParam::true_res_offset, quda::unscaled_shifts, quda::SolverParam::updateInvertParam(), quda::SolverParam::use_init_guess, quda::ColorSpinorParam::v, quda::LatticeField::VolumeCB(), X, quda::LatticeField::X(), x, and z.
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 2848 of file interface_quda.cpp.
References quda::blas::ax(), b, checkGauge(), quda::ColorSpinorField::Component(), quda::ColorSpinorParam::composite_dim, quda::blas::copy(), quda::ColorSpinorParam::create, quda::Solver::create(), quda::ColorSpinorField::Create(), quda::createDirac(), QudaGaugeParam_s::cuda_prec, cudaGauge, d, dirac, double, errorQuda, getVerbosity(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, in, initialized, quda::ColorSpinorParam::is_component, quda::ColorSpinorParam::is_composite, quda::ColorSpinorParam::location, quda::massRescale(), quda::Dirac::Mdag(), quda::blas::norm2(), out, param, popVerbosity(), quda::GaugeCovDev::prepare(), printfQuda, printQudaInvertParam(), profileInvert, pushVerbosity(), QUDA_CG_INVERTER, QUDA_DEBUG_VERBOSE, QUDA_DIRECT_PC_SOLVE, QUDA_DIRECT_SOLVE, QUDA_DOMAIN_WALL_4D_DSLASH, QUDA_DOMAIN_WALL_DSLASH, QUDA_DOUBLE_PRECISION, QUDA_MAT_SOLUTION, QUDA_MATDAG_MAT_SOLUTION, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_MG_INVERTER, QUDA_MOBIUS_DWF_DSLASH, QUDA_NORMERR_PC_SOLVE, QUDA_NORMERR_SOLVE, QUDA_NORMOP_PC_SOLVE, QUDA_NULL_FIELD_CREATE, QUDA_PRESERVE_SOURCE_NO, 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::GaugeCovDev::reconstruct(), quda::saveTuneCache(), quda::setKernelPackT(), quda::solve(), spinorSiteSize, quda::sqrt(), tmp, quda::SolverParam::updateInvertParam(), quda::ColorSpinorParam::v, quda::LatticeField::VolumeCB(), X, quda::LatticeField::X(), and 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 2521 of file interface_quda.cpp.
References quda::blas::ax(), b, quda::blas::cDotProduct(), checkGauge(), chronoResident(), quda::blas::copy(), quda::ColorSpinorParam::create, quda::Solver::create(), quda::ColorSpinorField::Create(), quda::createDirac(), QudaGaugeParam_s::cuda_prec, cudaGauge, d, dirac, double, errorQuda, getVerbosity(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, in, initialized, quda::ColorSpinorParam::location, quda::massRescale(), quda::Dirac::Mdag(), quda::blas::norm2(), out, param, popVerbosity(), quda::LatticeFieldParam::precision, quda::GaugeCovDev::prepare(), printfQuda, printQudaInvertParam(), profileInvert, pushVerbosity(), QUDA_CG_INVERTER, QUDA_COPY_FIELD_CREATE, QUDA_DEBUG_VERBOSE, QUDA_DIRECT_PC_SOLVE, QUDA_DIRECT_SOLVE, QUDA_DOMAIN_WALL_4D_DSLASH, QUDA_DOMAIN_WALL_DSLASH, QUDA_DOUBLE_PRECISION, QUDA_MAT_SOLUTION, QUDA_MATDAG_MAT_SOLUTION, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_MAX_CHRONO, QUDA_MG_INVERTER, QUDA_MOBIUS_DWF_DSLASH, QUDA_NORMERR_PC_SOLVE, QUDA_NORMERR_SOLVE, QUDA_NORMOP_PC_SOLVE, QUDA_NULL_FIELD_CREATE, QUDA_PRESERVE_SOURCE_NO, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_EPILOGUE, quda::QUDA_PROFILE_FREE, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_TOTAL, QUDA_SOURCE_NORMALIZATION, QUDA_USE_INIT_GUESS_YES, QUDA_VERBOSE, quda::GaugeCovDev::reconstruct(), quda::saveTuneCache(), quda::setKernelPackT(), solutionResident, quda::solve(), spinorSiteSize, quda::sqrt(), tmp, tmp2, quda::SolverParam::updateInvertParam(), quda::ColorSpinorParam::v, quda::LatticeField::VolumeCB(), X, quda::LatticeField::X(), 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 4922 of file interface_quda.cpp.
References momActionQuda(), and param.

| void lanczosQuda | ( | int | k0, |
| int | m, | ||
| void * | hp_Apsi, | ||
| void * | hp_r, | ||
| void * | hp_V, | ||
| void * | hp_alpha, | ||
| void * | hp_beta, | ||
| QudaEigParam * | eig_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 2144 of file interface_quda.cpp.
References checkGauge(), quda::Eig_Solver::create(), quda::ColorSpinorParam::create, quda::Dirac::create(), cudaGauge, d, dirac, errorQuda, exit(), gaugePrecise, getVerbosity(), host_free, initialized, QudaEigParam_s::invert_param, mat(), quda::blas::norm2(), param, popVerbosity(), printfQuda, printQudaInvertParam(), profileInvert, pushVerbosity(), QUDA_COPY_FIELD_CREATE, QUDA_CPU_FIELD_LOCATION, QUDA_DEBUG_VERBOSE, QUDA_DOMAIN_WALL_4D_DSLASH, QUDA_DOMAIN_WALL_DSLASH, QUDA_MATPC_DAG_SOLUTION, QUDA_MATPCDAG_MATPC_SHIFT_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_MOBIUS_DWF_DSLASH, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_H2D, quda::QUDA_PROFILE_TOTAL, QUDA_VERBOSE, QudaEigParam_s::RitzMat_lanczos, safe_malloc, quda::saveTuneCache(), quda::setDiracParam(), quda::setKernelPackT(), quda::ColorSpinorParam::v, X, and quda::LatticeField::X().

For MPI, the default node mapping is lexicographical with t varying fastest.
Definition at line 267 of file interface_quda.cpp.
References LexMapData::dims, fused_exterior_ndeg_tm_dslash_cuda_gen::i, LexMapData::ndim, and 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 4725 of file interface_quda.cpp.
References inv_param, and 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 4722 of file interface_quda.cpp.
References loadGaugeQuda(), and param.

| 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 859 of file interface_quda.cpp.
References quda::GaugeField::Anisotropy(), quda::ColorSpinorField::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_sloppy, QudaInvertParam_s::clover_location, QudaInvertParam_s::clover_order, QudaInvertParam_s::clover_rho, QudaInvertParam_s::cloverGiB, 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(), gaugePrecise, quda::LatticeField::GBytes(), getVerbosity(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, in, initialized, inv_param, invalidate_clover, quda::CloverFieldParam::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(), quda::LatticeFieldParam::precision, printfQuda, printQudaInvertParam(), profileClover, pushVerbosity(), QUDA_CLOVER_WILSON_DSLASH, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_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, dslash_cuda_gen::twisted(), quda::CloverField::V(), quda::ColorSpinorField::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 602 of file interface_quda.cpp.
References commDimPartitioned(), quda::cudaGaugeField::copy(), createExtendedGauge(), QudaGaugeParam_s::cuda_prec, QudaGaugeParam_s::cuda_prec_precondition, QudaGaugeParam_s::cuda_prec_sloppy, errorQuda, quda::cudaGaugeField::exchangeGhost(), extendedGaugeResident, QudaGaugeParam_s::ga_pad, gauge_param, gaugeExtended, gaugeFatExtended, gaugeFatPrecise, gaugeFatPrecondition, gaugeFatSloppy, QudaGaugeParam_s::gaugeGiB, gaugeLongExtended, gaugeLongPrecise, gaugeLongPrecondition, gaugeLongSloppy, gaugePrecise, gaugePrecondition, gaugeSloppy, gaugeSmeared, quda::LatticeField::GBytes(), getVerbosity(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, in, initialized, invalidate_clover, QudaGaugeParam_s::location, QudaGaugeParam_s::overlap, param, printfQuda, printQudaGaugeParam(), profileGauge, QUDA_ASQTAD_FAT_LINKS, QUDA_ASQTAD_LONG_LINKS, QUDA_BQCD_GAUGE_ORDER, QUDA_CPU_FIELD_LOCATION, QUDA_DEBUG_VERBOSE, QUDA_DOUBLE_PRECISION, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FLOAT4_GAUGE_ORDER, 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_RECONSTRUCT_NO, QUDA_SMEARED_LINKS, QUDA_VERBOSE, QUDA_WILSON_LINKS, R, quda::LatticeField::R(), QudaGaugeParam_s::reconstruct, quda::GaugeField::Reconstruct(), QudaGaugeParam_s::reconstruct_precondition, QudaGaugeParam_s::reconstruct_sloppy, QudaGaugeParam_s::type, and QudaGaugeParam_s::use_resident_gauge.
Referenced by init(), invert_test(), load_gauge_quda_(), main(), and SU3test().


| void loadSloppyCloverQuda | ( | QudaPrecision | prec_sloppy, |
| QudaPrecision | prec_precondition | ||
| ) |
Definition at line 1051 of file interface_quda.cpp.
References cloverPrecise, cloverPrecondition, cloverSloppy, quda::cudaCloverField::copy(), quda::CloverFieldParam::direct, freeSloppyCloverQuda(), quda::CloverFieldParam::inverse, prec_precondition, prec_sloppy, quda::LatticeFieldParam::precision, quda::LatticeField::Precision(), quda::CloverFieldParam::setPrecision(), and quda::CloverField::V().
Referenced by checkClover(), and loadCloverQuda().


| void loadSloppyGaugeQuda | ( | QudaPrecision | prec_sloppy, |
| QudaPrecision | prec_precondition | ||
| ) |
Definition at line 1156 of file interface_quda.cpp.
References quda::cudaGaugeField::copy(), errorQuda, gauge_param, gaugeFatPrecise, gaugeFatPrecondition, gaugeFatSloppy, gaugeLongPrecise, gaugeLongPrecondition, gaugeLongSloppy, gaugePrecise, gaugePrecondition, gaugeSloppy, prec_precondition, prec_sloppy, quda::LatticeField::Precision(), QudaGaugeParam_s::reconstruct, quda::GaugeField::Reconstruct(), and warningQuda.
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 4734 of file interface_quda.cpp.
References inv_param, and 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 4732 of file interface_quda.cpp.
References inv_param, and 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 1923 of file interface_quda.cpp.
References quda::blas::ax(), cloverPrecise, quda::ColorSpinorParam::create, quda::Dirac::create(), quda::ColorSpinorField::Create(), dirac, QudaInvertParam_s::dslash_type, errorQuda, gaugePrecise, getVerbosity(), in, initialized, QudaInvertParam_s::input_location, inv_param, QudaInvertParam_s::kappa, kappa, QudaInvertParam_s::mass_normalization, quda::GaugeCovDev::MdagM(), quda::blas::norm2(), out, QudaInvertParam_s::output_location, popVerbosity(), pow(), printfQuda, printQudaInvertParam(), pushVerbosity(), QUDA_ASYMMETRIC_MASS_NORMALIZATION, QUDA_CLOVER_WILSON_DSLASH, QUDA_DEBUG_VERBOSE, QUDA_DOMAIN_WALL_4D_DSLASH, QUDA_DOMAIN_WALL_DSLASH, QUDA_MASS_NORMALIZATION, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_MOBIUS_DWF_DSLASH, QUDA_NULL_FIELD_CREATE, QUDA_TWISTED_CLOVER_DSLASH, quda::setDiracParam(), quda::setKernelPackT(), QudaInvertParam_s::solution_type, QudaInvertParam_s::verbosity, and quda::LatticeField::X().
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 1853 of file interface_quda.cpp.
References quda::blas::ax(), cloverPrecise, quda::ColorSpinorParam::create, quda::Dirac::create(), quda::ColorSpinorField::Create(), dirac, QudaInvertParam_s::dslash_type, errorQuda, gaugePrecise, getVerbosity(), in, QudaInvertParam_s::input_location, inv_param, QudaInvertParam_s::kappa, kappa, quda::GaugeCovDev::M(), QudaInvertParam_s::mass_normalization, quda::blas::norm2(), out, QudaInvertParam_s::output_location, popVerbosity(), printfQuda, printQudaInvertParam(), pushVerbosity(), QUDA_ASYMMETRIC_MASS_NORMALIZATION, QUDA_CLOVER_WILSON_DSLASH, QUDA_DEBUG_VERBOSE, QUDA_DOMAIN_WALL_4D_DSLASH, QUDA_DOMAIN_WALL_DSLASH, QUDA_MASS_NORMALIZATION, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_MOBIUS_DWF_DSLASH, QUDA_NULL_FIELD_CREATE, QUDA_TWISTED_CLOVER_DSLASH, quda::setDiracParam(), quda::setKernelPackT(), QudaInvertParam_s::solution_type, QudaInvertParam_s::verbosity, and quda::LatticeField::X().
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 4657 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, param, 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 4777 of file interface_quda.cpp.
References newQudaGaugeParam(), and param.

| void new_quda_invert_param_ | ( | QudaInvertParam * | param | ) |
Initializes the QudaInvertParam with default entries.
| The | QudaInvertParam to be initialized |
Definition at line 4780 of file interface_quda.cpp.
References newQudaInvertParam(), and param.

| void* newDeflationQuda | ( | QudaEigParam * | param | ) |
Create deflation solver resources.
Definition at line 2500 of file interface_quda.cpp.
References 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 2364 of file interface_quda.cpp.
References quda::flushProfile(), profileInvert, quda::QUDA_PROFILE_TOTAL, quda::saveProfile(), and quda::saveTuneCache().
Referenced by main().


| void openMagma | ( | ) |
Open/Close MAGMA library
Definition at line 92 of file interface_quda.cpp.
References InitMagma, OpenMagma(), and printfQuda.
Referenced by newDeflationQuda().


Definition at line 4790 of file interface_quda.cpp.
Referenced by createGaugeForcePaths().

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 5096 of file interface_quda.cpp.
References quda::APEStep(), quda::cudaGaugeField::copy(), createExtendedGauge(), errorQuda, quda::cudaGaugeField::exchangeExtendedGhost(), gaugePrecise, gaugeSmeared, getVerbosity(), gParam, fused_exterior_ndeg_tm_dslash_cuda_gen::i, quda::plaquette(), printfQuda, profileAPE, QUDA_CUDA_FIELD_LOCATION, quda::QUDA_PROFILE_TOTAL, QUDA_VERBOSE, R, and redundant_comms.
Referenced by SU3test().


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 5166 of file interface_quda.cpp.
References quda::cudaGaugeField::copy(), createExtendedGauge(), errorQuda, quda::cudaGaugeField::exchangeExtendedGhost(), gaugePrecise, gaugeSmeared, getVerbosity(), gParam, fused_exterior_ndeg_tm_dslash_cuda_gen::i, quda::OvrImpSTOUTStep(), quda::plaquette(), printfQuda, profileAPE, profileOvrImpSTOUT, QUDA_CUDA_FIELD_LOCATION, quda::QUDA_PROFILE_TOTAL, QUDA_VERBOSE, R, and redundant_comms.
Referenced by SU3test().


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 5131 of file interface_quda.cpp.
References quda::cudaGaugeField::copy(), createExtendedGauge(), errorQuda, quda::cudaGaugeField::exchangeExtendedGhost(), gaugePrecise, gaugeSmeared, getVerbosity(), gParam, fused_exterior_ndeg_tm_dslash_cuda_gen::i, quda::plaquette(), printfQuda, profileAPE, profileSTOUT, QUDA_CUDA_FIELD_LOCATION, quda::QUDA_PROFILE_TOTAL, QUDA_VERBOSE, 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 5023 of file interface_quda.cpp.
References quda::copyExtendedGauge(), quda::GaugeFieldParam::create, quda::ColorSpinorParam::create, quda::ColorSpinorField::Create(), errorQuda, quda::cudaGaugeField::exchangeGhost(), gaugePrecise, gaugeSmeared, getVerbosity(), gParam, fused_exterior_ndeg_tm_dslash_cuda_gen::i, in, QudaInvertParam_s::input_location, inv_param, 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 4998 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 5003 of file interface_quda.cpp.
References createExtendedGauge(), errorQuda, extendedGaugeResident, gaugePrecise, quda::plaquette(), profilePlaq, QUDA_CUDA_FIELD_LOCATION, quda::QUDA_PROFILE_COMPUTE, quda::QUDA_PROFILE_TOTAL, and R.
Referenced by plaq_quda_(), and SU3test().


| 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 4544 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, param, 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, tol, and QudaGaugeParam_s::use_resident_gauge.

| double qChargeCuda | ( | ) |
Calculates the topological charge from gaugeSmeared, if it exist, or from gaugePrecise if no smeared fields are present.
Definition at line 5395 of file interface_quda.cpp.
References quda::computeFmunu(), quda::computeQCharge(), createExtendedGauge(), extendedGaugeResident, gaugePrecise, gaugeSmeared, quda::LatticeField::Precision(), profileQCharge, 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_NO, QUDA_TENSOR_GEOMETRY, R, quda::LatticeFieldParam::siteSubset, and quda::LatticeField::X().
Referenced by 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 4767 of file interface_quda.cpp.
References quda::blas::bytes, checkCudaError, and ptr.
| void remove_staggered_phase_quda_ | ( | ) |
Remove the staggered phase factors to the resident gauge field.
Definition at line 4911 of file interface_quda.cpp.
References errorQuda, gaugePrecise, getVerbosity(), printfQuda, QUDA_VERBOSE, quda::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 3836 of file interface_quda.cpp.
References cpuGauge, cudaGauge, quda::GaugeFieldParam::geometry, quda::GaugeField::Geometry(), gParam, param, QUDA_GENERAL_LINKS, and quda::cudaGaugeField::saveCPUField().

| 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 804 of file interface_quda.cpp.
References quda::copyExtendedGauge(), cpuGauge, QudaGaugeParam_s::cuda_prec, cudaGauge, errorQuda, QudaGaugeParam_s::ga_pad, gauge_param, gaugeFatPrecise, gaugeLongPrecise, gaugePrecise, gaugeSmeared, initialized, QudaGaugeParam_s::location, param, profileGauge, QUDA_ASQTAD_FAT_LINKS, QUDA_ASQTAD_LONG_LINKS, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, QUDA_DOUBLE_PRECISION, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FLOAT4_GAUGE_ORDER, QUDA_GHOST_EXCHANGE_PAD, QUDA_NULL_FIELD_CREATE, quda::QUDA_PROFILE_D2H, quda::QUDA_PROFILE_TOTAL, QUDA_RECONSTRUCT_NO, QUDA_SMEARED_LINKS, QUDA_WILSON_LINKS, QudaGaugeParam_s::reconstruct, quda::cudaGaugeField::saveCPUField(), 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 4953 of file interface_quda.cpp.
References deg_tm_dslash_cuda_gen::pack, and quda::setKernelPackT().

| 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 251 of file interface_quda.cpp.
References setOutputFile(), setOutputPrefix(), setVerbosity(), and verbosity.
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 4602 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, param, 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 4772 of file interface_quda.cpp.
References checkCudaError, and ptr.
| 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 4784 of file interface_quda.cpp.
References param, and 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 4441 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, param, 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::cudaGaugeField::saveCPUField(), 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 |
Definition at line 2381 of file interface_quda.cpp.
References checkGauge(), quda::Dirac::create(), quda::MG::createSmoother(), quda::multigrid_solver::d, quda::MG::destroySmoother(), quda::multigrid_solver::dSmooth, quda::multigrid_solver::dSmoothSloppy, QudaMultigridParam_s::invert_param, quda::multigrid_solver::m, quda::MGParam::matResidual, quda::MGParam::matSmooth, quda::MGParam::matSmoothSloppy, quda::multigrid_solver::mg, quda::multigrid_solver::mgParam, quda::multigrid_solver::mSmooth, quda::multigrid_solver::mSmoothSloppy, param, QUDA_DIRECT_PC_SOLVE, QUDA_NORMOP_PC_SOLVE, quda::setDiracPreParam(), quda::setDiracSloppyParam(), QudaMultigridParam_s::smoother_solve_type, and quda::SolverParam::updateInvertParam().
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 541 of file interface_quda.cpp.
References commDimPartitioned(), d, R, and redundant_comms.
Referenced by quda::CG::operator()(), quda::PreconCG::operator()(), quda::BiCGstab::operator()(), quda::MultiShiftCG::operator()(), quda::reliable(), StaggeredDslashTest::SetUp(), and DslashTest::SetUp().


| cudaCloverField* cloverPrecise = NULL |
Definition at line 134 of file interface_quda.cpp.
Referenced by checkClover(), cloverQuda(), computeCloverForceQuda(), createCloverQuda(), dslashQuda(), freeCloverQuda(), freeSloppyCloverQuda(), loadCloverQuda(), loadSloppyCloverQuda(), MatDagMatQuda(), MatQuda(), and quda::setDiracParam().
| cudaCloverField* cloverPrecondition = NULL |
Definition at line 136 of file interface_quda.cpp.
Referenced by checkClover(), freeSloppyCloverQuda(), loadSloppyCloverQuda(), and quda::setDiracPreParam().
| cudaCloverField* cloverSloppy = NULL |
Definition at line 135 of file interface_quda.cpp.
Referenced by checkClover(), freeSloppyCloverQuda(), loadSloppyCloverQuda(), and quda::setDiracSloppyParam().
|
static |
Definition at line 289 of file interface_quda.cpp.
Referenced by endQuda(), initCommsGridQuda(), initQuda(), initQudaDevice(), and initQudaMemory().
| cudaDeviceProp deviceProp |
Definition at line 152 of file interface_quda.cpp.
Referenced by quda::Tunable::advanceBlockDim(), quda::ShiftColorSpinorField< Output, Input >::advanceBlockDim(), quda::TunableVectorY::advanceBlockDim(), quda::TunableVectorYZ::advanceBlockDim(), MultiReduceCuda< NXZ, doubleN, ReduceType, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Reducer >::advanceGridDim(), quda::Tunable::advanceSharedBytes(), quda::Tunable::blockMin(), quda::Tunable::blockStep(), quda::Tunable::checkLaunchParam(), initQudaDevice(), quda::blas::initReduce(), quda::ShiftColorSpinorField< Output, Input >::initTuneParam(), quda::Tunable::initTuneParam(), quda::Tunable::maxBlockSize(), quda::WuppertalSmearing< Float, Ns, Nc, Arg >::maxBlockSize(), quda::Laplace< Float, nDim, nColor, Arg >::maxBlockSize(), MultiReduceCuda< NXZ, doubleN, ReduceType, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Reducer >::maxBlockSize(), quda::TunableLocalParity::maxBlockSize(), quda::Tunable::maxBlocksPerSM(), quda::Tunable::maxGridSize(), multiReduceLaunch(), and reduceLaunch().
| cudaGaugeField* extendedGaugeResident = NULL |
Definition at line 139 of file interface_quda.cpp.
Referenced by computeCloverForceQuda(), computeGaugeForceQuda(), createCloverQuda(), freeGaugeQuda(), gaussGaugeQuda(), loadGaugeQuda(), plaqQuda(), and qChargeCuda().
| cudaGaugeField* gaugeExtended = NULL |
Definition at line 118 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), loadGaugeQuda(), and quda::setDiracPreParam().
| cudaGaugeField*& gaugeFatExtended = gaugeExtended |
Definition at line 124 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), loadGaugeQuda(), and quda::setDiracPreParam().
| cudaGaugeField*& gaugeFatPrecise = gaugePrecise |
Definition at line 121 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), freeSloppyGaugeQuda(), invertMultiShiftQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), saveGaugeQuda(), and quda::setDiracParam().
| cudaGaugeField*& gaugeFatPrecondition = gaugePrecondition |
Definition at line 123 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), freeSloppyGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), and quda::setDiracPreParam().
| cudaGaugeField*& gaugeFatSloppy = gaugeSloppy |
Definition at line 122 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), 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 = NULL |
Definition at line 127 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), loadGaugeQuda(), and quda::setDiracPreParam().
| cudaGaugeField* gaugeLongPrecise = NULL |
Definition at line 128 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), freeSloppyGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), saveGaugeQuda(), and quda::setDiracParam().
| cudaGaugeField* gaugeLongPrecondition = NULL |
Definition at line 130 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), freeSloppyGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), and quda::setDiracPreParam().
| cudaGaugeField* gaugeLongSloppy = NULL |
Definition at line 129 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), freeSloppyGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), and quda::setDiracSloppyParam().
| cudaGaugeField* gaugePrecise = NULL |
Definition at line 115 of file interface_quda.cpp.
Referenced by apply_staggered_phase_quda_(), quda::canReuseResidentGauge(), checkGauge(), cloverQuda(), computeCloverForceQuda(), computeGaugeFixingFFTQuda(), computeGaugeFixingOVRQuda(), computeGaugeForceQuda(), computeStaggeredForceQuda(), createCloverQuda(), dslashQuda(), dslashQuda_4dpc(), dslashQuda_mdwf(), freeGaugeQuda(), freeSloppyGaugeQuda(), gaussGaugeQuda(), invert_multishift_quda_(), invertMultiShiftQuda(), lanczosQuda(), loadCloverQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), MatDagMatQuda(), MatQuda(), performAPEnStep(), performOvrImpSTOUTnStep(), performSTOUTnStep(), performWuppertalnStep(), plaqQuda(), projectSU3Quda(), qChargeCuda(), remove_staggered_phase_quda_(), saveGaugeQuda(), quda::setDiracParam(), staggeredPhaseQuda(), and updateGaugeFieldQuda().
| cudaGaugeField* gaugePrecondition = NULL |
Definition at line 117 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), freeSloppyGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), and quda::setDiracPreParam().
| cudaGaugeField* gaugeSloppy = NULL |
Definition at line 116 of file interface_quda.cpp.
Referenced by checkGauge(), freeGaugeQuda(), freeSloppyGaugeQuda(), loadGaugeQuda(), loadSloppyGaugeQuda(), and quda::setDiracSloppyParam().
| cudaGaugeField* gaugeSmeared = NULL |
Definition at line 132 of file interface_quda.cpp.
Referenced by freeGaugeQuda(), loadGaugeQuda(), performAPEnStep(), performOvrImpSTOUTnStep(), performSTOUTnStep(), performWuppertalnStep(), qChargeCuda(), and saveGaugeQuda().
| char* gitversion |
Definition at line 4 of file version.cpp.
Referenced by initQudaDevice().
|
static |
Profiler for initQuda.
Definition at line 158 of file interface_quda.cpp.
Referenced by cloverQuda(), comm_init(), endQuda(), freeCloverQuda(), freeGaugeQuda(), freeSloppyCloverQuda(), freeSloppyGaugeQuda(), initQudaDevice(), invertMultiShiftQuda(), invertMultiSrcQuda(), invertQuda(), lanczosQuda(), loadCloverQuda(), loadGaugeQuda(), MatDagMatQuda(), and saveGaugeQuda().
|
static |
Definition at line 90 of file interface_quda.cpp.
Referenced by closeMagma(), and openMagma().
|
static |
Definition at line 600 of file interface_quda.cpp.
Referenced by loadCloverQuda(), and loadGaugeQuda().
| cudaGaugeField* momResident = NULL |
Definition at line 138 of file interface_quda.cpp.
Referenced by computeGaugeForceQuda(), computeHISQForceQuda(), computeStaggeredForceQuda(), endQuda(), momActionQuda(), and updateGaugeFieldQuda().
|
static |
Definition at line 150 of file interface_quda.cpp.
Referenced by computeHISQForceQuda(), computeKSLinkQuda(), endQuda(), initQudaMemory(), and projectSU3Quda().
|
static |
Definition at line 149 of file interface_quda.cpp.
Referenced by computeHISQForceQuda(), computeKSLinkQuda(), endQuda(), initQudaMemory(), projectSU3Quda(), and staggeredPhaseQuda().
|
static |
Profiler for STOUTQuda.
Referenced by endQuda(), performAPEnStep(), performOvrImpSTOUTnStep(), and performSTOUTnStep().
|
static |
Profiler for dslashQuda.
Referenced by createCloverQuda(), endQuda(), and loadCloverQuda().
|
static |
Profiler for computeStaggeredForceQuda.
Referenced by computeCloverForceQuda(), and endQuda().
|
static |
Profiler for contractions.
Referenced by contract(), and endQuda().
|
static |
Profiler for contractions.
Referenced by endQuda().
|
static |
Profiler for invertQuda.
Referenced by dslashQuda(), 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 endQuda(), invertMultiSrcQuda(), invertQuda(), lanczosQuda(), newDeflationQuda(), and newMultigridQuda().
|
static |
Profiler for endQuda.
Referenced by endQuda(), and momActionQuda().
|
static |
Profiler for computeFatLinkQuda.
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 endQuda(), and plaqQuda().
|
static |
Profiler for staggeredPhaseQuda.
Referenced by endQuda(), and projectSU3Quda().
|
static |
Profiler for APEQuda.
Referenced by endQuda(), and qChargeCuda().
|
static |
Profiler for computeHISQForceQuda.
Referenced by computeStaggeredForceQuda(), and endQuda().
|
static |
Profiler for OvrImpSTOUTQuda.
Referenced by endQuda(), and performSTOUTnStep().
|
static |
Profiler for gaussQuda.
Referenced by performWuppertalnStep().
|
static |
Definition at line 356 of file interface_quda.cpp.
|
static |
Definition at line 83 of file interface_quda.cpp.
Referenced by computeCloverForceQuda(), computeGaugeFixingOVRQuda(), computeGaugeForceQuda(), computeHISQForceQuda(), computeKSLinkQuda(), quda::copyGaugeEx(), quda::copyInterior(), createCloverQuda(), createExtendedGauge(), quda::exchangeExtendedGhost(), quda::extractExtendedGaugeGhost(), quda::extractGhostEx(), quda::ExtractGhostExArg< Order, nDim, dim >::ExtractGhostExArg(), gauge_force_test(), gaussGaugeQuda(), quda::getCoordsExtended(), indexFromFaceIndexExtended(), indexFromFaceIndexExtendedStaggered(), initQudaMemory(), llfat_test(), loadGaugeQuda(), quda::gauge::LegacyOrder< Float, length >::loadGhostEx(), main(), quda::gauge::milcStaggeredPhase(), quda::MPCG::operator()(), performAPEnStep(), performOvrImpSTOUTnStep(), performSTOUTnStep(), plaqQuda(), qChargeCuda(), quda::gauge::LegacyOrder< Float, length >::saveGhostEx(), GaugeAlgTest::SetUp(), quda::gauge::timeBoundary(), quda::gauge::Reconstruct< 12, Float >::Unpack(), quda::gauge::Reconstruct< 8, Float >::Unpack(), quda::gauge::Reconstruct< 9, Float >::Unpack(), and updateR().
|
static |
Definition at line 85 of file interface_quda.cpp.
Referenced by createCloverQuda(), createExtendedGauge(), gaussGaugeQuda(), initQudaMemory(), performAPEnStep(), performOvrImpSTOUTnStep(), performSTOUTnStep(), and updateR().
| std::vector<cudaColorSpinorField*> solutionResident |
Definition at line 141 of file interface_quda.cpp.
Referenced by computeCloverForceQuda(), computeStaggeredForceQuda(), endQuda(), invertMultiShiftQuda(), and invertQuda().
| cudaStream_t* streams |
Definition at line 153 of file interface_quda.cpp.
Referenced by quda::ApplyClover(), quda::ApplyGamma(), quda::ApplyTwistClover(), quda::ApplyTwistGamma(), anonymous_namespace{dslash_policy.cuh}::commsComplete(), anonymous_namespace{dslash_policy.cuh}::completeDslash(), quda::contractCuda(), anonymous_namespace{dslash_policy.cuh}::DslashPolicyTune::DslashPolicyTune(), endQuda(), quda::cudaGaugeField::exchangeExtendedGhost(), quda::exchangeExtendedGhost(), quda::cudaGaugeField::exchangeGhost(), quda::cudaColorSpinorField::exchangeGhost(), quda::blas::init(), initQudaMemory(), quda::cudaGaugeField::injectGhost(), anonymous_namespace{dslash_policy.cuh}::issueGather(), anonymous_namespace{dslash_policy.cuh}::issuePack(), anonymous_namespace{dslash_policy.cuh}::DslashBasic::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashPthreads::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedExterior::operator()(), quda::XSD::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashGDR::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDR::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopyPack::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPack::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopyPackGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPackGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopy::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopy::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashNC::operator()(), mixed::reduceCuda(), quda::shiftColorSpinorField(), and quda::cudaColorSpinorField::zero().
1.8.14