QUDA
v0.7.0
A library for QCD on GPUs
|
#include <complex>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <short.h>
#include <wilson_dslash_reference.h>
#include <test_util.h>
#include <face_quda.h>
#include <dslash_quda.h>
#include "misc.h"
Go to the source code of this file.
Macros | |
#define | XUP 0 |
#define | YUP 1 |
#define | ZUP 2 |
#define | TUP 3 |
Functions | |
void | initComms (int argc, char **argv, const int *commDims) |
void | finalizeComms () |
void | initRand () |
void | setDims (int *X) |
void | dw_setDims (int *X, const int L5) |
void | setSpinorSiteSize (int n) |
void | printSpinorElement (void *spinor, int X, QudaPrecision precision) |
void | printGaugeElement (void *gauge, int X, QudaPrecision precision) |
int | getOddBit (int Y) |
template<typename Float > | |
void | complexAddTo (Float *a, Float *b) |
template<typename Float > | |
void | complexProduct (Float *a, Float *b, Float *c) |
template<typename Float > | |
void | complexConjugateProduct (Float *a, Float *b, Float *c) |
template<typename Float > | |
void | complexDotProduct (Float *a, Float *b, Float *c) |
template<typename Float > | |
void | accumulateComplexProduct (Float *a, Float *b, Float *c, Float sign) |
template<typename Float > | |
void | accumulateComplexDotProduct (Float *a, Float *b, Float *c) |
template<typename Float > | |
void | accumulateConjugateProduct (Float *a, Float *b, Float *c, int sign) |
template<typename Float > | |
void | su3Construct12 (Float *mat) |
template<typename Float > | |
void | su3Construct8 (Float *mat) |
void | su3_construct (void *mat, QudaReconstructType reconstruct, QudaPrecision precision) |
void | su3_reconstruct (void *mat, int dir, int ga_idx, QudaReconstructType reconstruct, QudaPrecision precision, QudaGaugeParam *param) |
int | compare_floats (void *a, void *b, int len, double epsilon, QudaPrecision precision) |
int | fullLatticeIndex (int dim[4], int index, int oddBit) |
int | fullLatticeIndex (int i, int oddBit) |
int | neighborIndex (int i, int oddBit, int dx4, int dx3, int dx2, int dx1) |
int | neighborIndex (int dim[4], int index, int oddBit, int dx[4]) |
int | neighborIndex_mg (int i, int oddBit, int dx4, int dx3, int dx2, int dx1) |
int | neighborIndexFullLattice (int i, int dx4, int dx3, int dx2, int dx1) |
int | neighborIndexFullLattice (int dim[4], int index, int dx[4]) |
int | neighborIndexFullLattice_mg (int i, int dx4, int dx3, int dx2, int dx1) |
int | fullLatticeIndex_4d (int i, int oddBit) |
int | fullLatticeIndex_5d (int i, int oddBit) |
int | fullLatticeIndex_5d_4dpc (int i, int oddBit) |
int | x4_from_full_index (int i) |
template<typename Float > | |
void | applyGaugeFieldScaling_long (Float **gauge, int Vh, QudaGaugeParam *param) |
template<typename Float > | |
void | constructUnitaryGaugeField (Float **res) |
void | construct_gauge_field (void **gauge, int type, QudaPrecision precision, QudaGaugeParam *param) |
void | construct_fat_long_gauge_field (void **fatlink, void **longlink, int type, QudaPrecision precision, QudaGaugeParam *param, QudaDslashType dslash_type) |
void | construct_clover_field (void *clover, double norm, double diag, QudaPrecision precision) |
void | check_gauge (void **oldG, void **newG, double epsilon, QudaPrecision precision) |
void | createSiteLinkCPU (void **link, QudaPrecision precision, int phase) |
template<typename Float > | |
int | compareLink (Float **linkA, Float **linkB, int len) |
int | strong_check_link (void **linkA, const char *msgA, void **linkB, const char *msgB, int len, QudaPrecision prec) |
void | createMomCPU (void *mom, QudaPrecision precision) |
void | createHwCPU (void *hw, QudaPrecision precision) |
template<typename Float > | |
int | compare_mom (Float *momA, Float *momB, int len) |
int | strong_check_mom (void *momA, void *momB, int len, QudaPrecision prec) |
int | dimPartitioned (int dim) |
void | __attribute__ ((weak)) usage_extra(char **argv) |
void | usage (char **argv) |
int | process_command_line_option (int argc, char **argv, int *idx) |
void | stopwatchStart () |
double | stopwatchReadSeconds () |
#define TUP 3 |
Definition at line 25 of file test_util.cpp.
#define XUP 0 |
Definition at line 22 of file test_util.cpp.
#define YUP 1 |
Definition at line 23 of file test_util.cpp.
#define ZUP 2 |
Definition at line 24 of file test_util.cpp.
void __attribute__ | ( | (weak) | ) |
Definition at line 1582 of file test_util.cpp.
|
inline |
Definition at line 231 of file test_util.cpp.
|
inline |
Definition at line 224 of file test_util.cpp.
|
inline |
Definition at line 237 of file test_util.cpp.
void applyGaugeFieldScaling_long | ( | Float ** | gauge, |
int | Vh, | ||
QudaGaugeParam * | param | ||
) |
Definition at line 723 of file test_util.cpp.
void check_gauge | ( | void ** | oldG, |
void ** | newG, | ||
double | epsilon, | ||
QudaPrecision | precision | ||
) |
Definition at line 1156 of file test_util.cpp.
int compare_floats | ( | void * | a, |
void * | b, | ||
int | len, | ||
double | epsilon, | ||
QudaPrecision | precision | ||
) |
Definition at line 395 of file test_util.cpp.
int compare_mom | ( | Float * | momA, |
Float * | momB, | ||
int | len | ||
) |
Definition at line 1454 of file test_util.cpp.
int compareLink | ( | Float ** | linkA, |
Float ** | linkB, | ||
int | len | ||
) |
Definition at line 1296 of file test_util.cpp.
|
inline |
Definition at line 196 of file test_util.cpp.
|
inline |
Definition at line 210 of file test_util.cpp.
|
inline |
Definition at line 217 of file test_util.cpp.
|
inline |
Definition at line 203 of file test_util.cpp.
void construct_clover_field | ( | void * | clover, |
double | norm, | ||
double | diag, | ||
QudaPrecision | precision | ||
) |
Definition at line 1103 of file test_util.cpp.
void construct_fat_long_gauge_field | ( | void ** | fatlink, |
void ** | longlink, | ||
int | type, | ||
QudaPrecision | precision, | ||
QudaGaugeParam * | param, | ||
QudaDslashType | dslash_type | ||
) |
Definition at line 1018 of file test_util.cpp.
void construct_gauge_field | ( | void ** | gauge, |
int | type, | ||
QudaPrecision | precision, | ||
QudaGaugeParam * | param | ||
) |
Definition at line 1003 of file test_util.cpp.
void constructUnitaryGaugeField | ( | Float ** | res | ) |
Definition at line 944 of file test_util.cpp.
void createHwCPU | ( | void * | hw, |
QudaPrecision | precision | ||
) |
Definition at line 1429 of file test_util.cpp.
void createMomCPU | ( | void * | mom, |
QudaPrecision | precision | ||
) |
Definition at line 1391 of file test_util.cpp.
void createSiteLinkCPU | ( | void ** | link, |
QudaPrecision | precision, | ||
int | phase | ||
) |
Definition at line 1166 of file test_util.cpp.
int dimPartitioned | ( | int | dim | ) |
Definition at line 1577 of file test_util.cpp.
void dw_setDims | ( | int * | X, |
const int | L5 | ||
) |
Definition at line 125 of file test_util.cpp.
void finalizeComms | ( | ) |
Definition at line 65 of file test_util.cpp.
int fullLatticeIndex | ( | int | dim[4], |
int | index, | ||
int | oddBit | ||
) |
Definition at line 400 of file test_util.cpp.
int fullLatticeIndex | ( | int | i, |
int | oddBit | ||
) |
Definition at line 413 of file test_util.cpp.
int fullLatticeIndex_4d | ( | int | i, |
int | oddBit | ||
) |
Definition at line 616 of file test_util.cpp.
int fullLatticeIndex_5d | ( | int | i, |
int | oddBit | ||
) |
Definition at line 650 of file test_util.cpp.
int fullLatticeIndex_5d_4dpc | ( | int | i, |
int | oddBit | ||
) |
Definition at line 655 of file test_util.cpp.
int getOddBit | ( | int | Y | ) |
Definition at line 186 of file test_util.cpp.
void initComms | ( | int | argc, |
char ** | argv, | ||
const int * | commDims | ||
) |
Definition at line 48 of file test_util.cpp.
void initRand | ( | ) |
Definition at line 75 of file test_util.cpp.
int neighborIndex | ( | int | i, |
int | oddBit, | ||
int | dx4, | ||
int | dx3, | ||
int | dx2, | ||
int | dx1 | ||
) |
Definition at line 450 of file test_util.cpp.
int neighborIndex | ( | int | dim[4], |
int | index, | ||
int | oddBit, | ||
int | dx[4] | ||
) |
Definition at line 468 of file test_util.cpp.
int neighborIndex_mg | ( | int | i, |
int | oddBit, | ||
int | dx4, | ||
int | dx3, | ||
int | dx2, | ||
int | dx1 | ||
) |
Definition at line 485 of file test_util.cpp.
int neighborIndexFullLattice | ( | int | i, |
int | dx4, | ||
int | dx3, | ||
int | dx2, | ||
int | dx1 | ||
) |
Definition at line 521 of file test_util.cpp.
int neighborIndexFullLattice | ( | int | dim[4], |
int | index, | ||
int | dx[4] | ||
) |
Definition at line 544 of file test_util.cpp.
int neighborIndexFullLattice_mg | ( | int | i, |
int | dx4, | ||
int | dx3, | ||
int | dx2, | ||
int | dx1 | ||
) |
Definition at line 569 of file test_util.cpp.
void printGaugeElement | ( | void * | gauge, |
int | X, | ||
QudaPrecision | precision | ||
) |
Definition at line 170 of file test_util.cpp.
void printSpinorElement | ( | void * | spinor, |
int | X, | ||
QudaPrecision | precision | ||
) |
Definition at line 162 of file test_util.cpp.
int process_command_line_option | ( | int | argc, |
char ** | argv, | ||
int * | idx | ||
) |
Definition at line 1635 of file test_util.cpp.
void setDims | ( | int * | X | ) |
Definition at line 88 of file test_util.cpp.
void setSpinorSiteSize | ( | int | n | ) |
Definition at line 150 of file test_util.cpp.
double stopwatchReadSeconds | ( | ) |
Definition at line 2059 of file test_util.cpp.
void stopwatchStart | ( | ) |
Definition at line 2055 of file test_util.cpp.
int strong_check_link | ( | void ** | linkA, |
const char * | msgA, | ||
void ** | linkB, | ||
const char * | msgB, | ||
int | len, | ||
QudaPrecision | prec | ||
) |
Definition at line 1365 of file test_util.cpp.
int strong_check_mom | ( | void * | momA, |
void * | momB, | ||
int | len, | ||
QudaPrecision | prec | ||
) |
Definition at line 1502 of file test_util.cpp.
void su3_construct | ( | void * | mat, |
QudaReconstructType | reconstruct, | ||
QudaPrecision | precision | ||
) |
Definition at line 261 of file test_util.cpp.
void su3_reconstruct | ( | void * | mat, |
int | dir, | ||
int | ga_idx, | ||
QudaReconstructType | reconstruct, | ||
QudaPrecision | precision, | ||
QudaGaugeParam * | param | ||
) |
Definition at line 351 of file test_util.cpp.
|
inline |
Definition at line 243 of file test_util.cpp.
|
inline |
Definition at line 255 of file test_util.cpp.
void usage | ( | char ** | argv | ) |
Definition at line 1584 of file test_util.cpp.
int x4_from_full_index | ( | int | i | ) |
Definition at line 661 of file test_util.cpp.
QudaDagType dagger = QUDA_DAG_NO |
Definition at line 1558 of file test_util.cpp.
int device = 0 |
Definition at line 1546 of file test_util.cpp.
QudaDslashType dslash_type = QUDA_WILSON_DSLASH |
Definition at line 1560 of file test_util.cpp.
int E[4] |
Definition at line 37 of file test_util.cpp.
int E1 |
Definition at line 36 of file test_util.cpp.
int E1h |
Definition at line 36 of file test_util.cpp.
int E2 |
Definition at line 36 of file test_util.cpp.
int E3 |
Definition at line 36 of file test_util.cpp.
int E4 |
Definition at line 36 of file test_util.cpp.
int faceVolume[4] |
Definition at line 33 of file test_util.cpp.
float fat_link_max |
int gridsize_from_cmdline[4] = {1,1,1,1} |
Definition at line 1559 of file test_util.cpp.
QudaInverterType inv_type |
Definition at line 1565 of file test_util.cpp.
bool kernel_pack_t = false |
Definition at line 1571 of file test_util.cpp.
char latfile[256] = "" |
Definition at line 1561 of file test_util.cpp.
QudaReconstructType link_recon = QUDA_RECONSTRUCT_NO |
Definition at line 1549 of file test_util.cpp.
QudaReconstructType link_recon_sloppy = QUDA_RECONSTRUCT_INVALID |
Definition at line 1550 of file test_util.cpp.
int Ls |
Definition at line 40 of file test_util.cpp.
int Lsdim = 16 |
Definition at line 1557 of file test_util.cpp.
double mass = 0.1 |
Definition at line 1569 of file test_util.cpp.
QudaMatPCType matpc_type = QUDA_MATPC_EVEN_EVEN |
Definition at line 1573 of file test_util.cpp.
int multishift = 0 |
Definition at line 1567 of file test_util.cpp.
int mySpinorSiteSize |
Definition at line 44 of file test_util.cpp.
int niter = 10 |
Definition at line 1563 of file test_util.cpp.
QudaMassNormalization normalization = QUDA_KAPPA_NORMALIZATION |
Definition at line 1572 of file test_util.cpp.
Definition at line 1551 of file test_util.cpp.
QudaPrecision prec_sloppy = QUDA_INVALID_PRECISION |
Definition at line 1552 of file test_util.cpp.
QudaInverterType precon_type = QUDA_INVALID_INVERTER |
Definition at line 1566 of file test_util.cpp.
int tdim = 24 |
Definition at line 1556 of file test_util.cpp.
int test_type = 0 |
Definition at line 1564 of file test_util.cpp.
bool tune = true |
Definition at line 1562 of file test_util.cpp.
QudaTwistFlavorType twist_flavor = QUDA_TWIST_MINUS |
Definition at line 1570 of file test_util.cpp.
int V |
Definition at line 29 of file test_util.cpp.
int V5 |
Definition at line 41 of file test_util.cpp.
int V5h |
Definition at line 42 of file test_util.cpp.
int V_ex |
Definition at line 38 of file test_util.cpp.
bool verify_results = true |
Definition at line 1568 of file test_util.cpp.
int Vh |
Definition at line 30 of file test_util.cpp.
int Vh_ex |
Definition at line 38 of file test_util.cpp.
int Vs_t |
Definition at line 31 of file test_util.cpp.
int Vs_x |
Definition at line 31 of file test_util.cpp.
int Vs_y |
Definition at line 31 of file test_util.cpp.
int Vs_z |
Definition at line 31 of file test_util.cpp.
int Vsh_t |
Definition at line 32 of file test_util.cpp.
int Vsh_x |
Definition at line 32 of file test_util.cpp.
int Vsh_y |
Definition at line 32 of file test_util.cpp.
int Vsh_z |
Definition at line 32 of file test_util.cpp.
int xdim = 24 |
Definition at line 1553 of file test_util.cpp.
int ydim = 24 |
Definition at line 1554 of file test_util.cpp.
int Z[4] |
Definition at line 28 of file test_util.cpp.
int zdim = 24 |
Definition at line 1555 of file test_util.cpp.