QUDA
v1.1.0
A library for QCD on GPUs
|
#include <clover_field.h>
Public Types | |
using | param_type = CloverFieldParam |
Public Member Functions | |
CloverField (const CloverFieldParam ¶m) | |
virtual | ~CloverField () |
void * | V (bool inverse=false) |
void * | Norm (bool inverse=false) |
const void * | V (bool inverse=false) const |
const void * | Norm (bool inverse=false) const |
bool | isNative () const |
double * | TrLog () const |
QudaCloverFieldOrder | Order () const |
size_t | Bytes () const |
size_t | NormBytes () const |
size_t | TotalBytes () const |
int | Ncolor () const |
int | Nspin () const |
double | Csw () const |
double | Coeff () const |
bool | Twisted () const |
double | Mu2 () const |
double | Rho () const |
void | setRho (double rho) |
Bakes in the rho factor into the clover field, (for real diagonal additive Hasenbusch), e.g., A + rho. More... | |
double | norm1 (bool inverse=false) const |
Compute the L1 norm of the field. More... | |
double | norm2 (bool inverse=false) const |
Compute the L2 norm squared of the field. More... | |
double | abs_max (bool inverse=false) const |
Compute the absolute maximum of the field (Linfinity norm) More... | |
double | abs_min (bool inverse=false) const |
Compute the absolute minimum of the field. More... | |
virtual int | full_dim (int d) const |
Public Member Functions inherited from quda::LatticeField | |
LatticeField (const LatticeFieldParam ¶m) | |
LatticeField (const LatticeField &field) | |
virtual | ~LatticeField () |
void | allocateGhostBuffer (size_t ghost_bytes) const |
Allocate the static ghost buffers. More... | |
void | createComms (bool no_comms_fill=false, bool bidir=true) |
void | destroyComms () |
void | createIPCComms () |
bool | ipcCopyComplete (int dir, int dim) |
bool | ipcRemoteCopyComplete (int dir, int dim) |
const cudaEvent_t & | getIPCCopyEvent (int dir, int dim) const |
const cudaEvent_t & | getIPCRemoteCopyEvent (int dir, int dim) const |
int | Ndim () const |
const int * | X () const |
size_t | Volume () const |
size_t | VolumeCB () const |
size_t | LocalVolume () const |
size_t | LocalVolumeCB () const |
const int * | SurfaceCB () const |
int | SurfaceCB (const int i) const |
size_t | Stride () const |
int | Pad () const |
const int * | R () const |
QudaGhostExchange | GhostExchange () const |
QudaPrecision | Precision () const |
QudaPrecision | GhostPrecision () const |
double | Scale () const |
void | Scale (double scale_) |
Set the scale factor for a fixed-point field. More... | |
virtual QudaSiteSubset | SiteSubset () const |
virtual QudaMemoryType | MemType () const |
int | Nvec () const |
QudaFieldLocation | Location () const |
size_t | GBytes () const |
void | checkField (const LatticeField &a) const |
virtual void | read (char *filename) |
virtual void | write (char *filename) |
void * | myFace_h (int dir, int dim) const |
Return pointer to the local pinned my_face buffer in a given direction and dimension. More... | |
void * | myFace_hd (int dir, int dim) const |
Return pointer to the local mapped my_face buffer in a given direction and dimension. More... | |
void * | myFace_d (int dir, int dim) const |
Return pointer to the device send buffer in a given direction and dimension. More... | |
void * | remoteFace_d (int dir, int dim) const |
Return base pointer to a remote device buffer for direct sending in a given direction and dimension. Since this is a base pointer, one still needs to take care of offsetting to the correct point for each direction/dimension. More... | |
void * | remoteFace_r () const |
Return base pointer to the ghost recv buffer. Since this is a base pointer, one still needs to take care of offsetting to the correct point for each direction/dimension. More... | |
virtual void | gather (int nFace, int dagger, int dir, qudaStream_t *stream_p=NULL) |
virtual void | commsStart (int nFace, int dir, int dagger=0, qudaStream_t *stream_p=NULL, bool gdr_send=false, bool gdr_recv=true) |
virtual int | commsQuery (int nFace, int dir, int dagger=0, qudaStream_t *stream_p=NULL, bool gdr_send=false, bool gdr_recv=true) |
virtual void | commsWait (int nFace, int dir, int dagger=0, qudaStream_t *stream_p=NULL, bool gdr_send=false, bool gdr_recv=true) |
virtual void | scatter (int nFace, int dagger, int dir) |
const char * | VolString () const |
const char * | AuxString () const |
virtual void | backup () const |
Backs up the LatticeField. More... | |
virtual void | restore () const |
Restores the LatticeField. More... | |
virtual void | prefetch (QudaFieldLocation mem_space, qudaStream_t stream=0) const |
If managed memory and prefetch is enabled, prefetch all relevant memory fields to the current device or to the CPU. More... | |
virtual void | copy_to_buffer (void *buffer) const =0 |
Copy all contents of the field to a host buffer. More... | |
virtual void | copy_from_buffer (void *buffer)=0 |
Copy all contents of the field from a host buffer to this field. More... | |
Public Member Functions inherited from quda::Object | |
Object () | |
virtual | ~Object () |
Static Public Member Functions | |
static CloverField * | Create (const CloverFieldParam ¶m) |
Static Public Member Functions inherited from quda::LatticeField | |
static void | freeGhostBuffer (void) |
Free statically allocated ghost buffers. More... | |
static void | destroyIPCComms () |
Static Public Member Functions inherited from quda::Object | |
static void * | operator new (std::size_t size) |
static void | operator delete (void *p) |
static void * | operator new[] (std::size_t size) |
static void | operator delete[] (void *p) |
Additional Inherited Members | |
Static Public Attributes inherited from quda::LatticeField | |
static int | bufferIndex = 0 |
static bool | ghost_field_reset = false |
Protected Member Functions inherited from quda::LatticeField | |
virtual void | setTuningString () |
void | precisionCheck () |
Static Protected Attributes inherited from quda::LatticeField | |
static void * | ghost_send_buffer_d [2] = {nullptr, nullptr} |
static void * | ghost_recv_buffer_d [2] = {nullptr, nullptr} |
static void * | ghost_pinned_send_buffer_h [2] = {nullptr, nullptr} |
static void * | ghost_pinned_recv_buffer_h [2] = {nullptr, nullptr} |
static void * | ghost_pinned_send_buffer_hd [2] = {nullptr, nullptr} |
static void * | ghost_pinned_recv_buffer_hd [2] = {nullptr, nullptr} |
static void * | ghost_remote_send_buffer_d [2][QUDA_MAX_DIM][2] |
static size_t | ghostFaceBytes = 0 |
static bool | initGhostFaceBuffer = false |
static MsgHandle * | mh_send_p2p_fwd [2][QUDA_MAX_DIM] { } |
static MsgHandle * | mh_send_p2p_back [2][QUDA_MAX_DIM] { } |
static MsgHandle * | mh_recv_p2p_fwd [2][QUDA_MAX_DIM] { } |
static MsgHandle * | mh_recv_p2p_back [2][QUDA_MAX_DIM] { } |
static int | buffer_send_p2p_fwd [2][QUDA_MAX_DIM] { } |
static int | buffer_recv_p2p_fwd [2][QUDA_MAX_DIM] { } |
static int | buffer_send_p2p_back [2][QUDA_MAX_DIM] { } |
static int | buffer_recv_p2p_back [2][QUDA_MAX_DIM] { } |
static cudaEvent_t | ipcCopyEvent [2][2][QUDA_MAX_DIM] |
static cudaEvent_t | ipcRemoteCopyEvent [2][2][QUDA_MAX_DIM] |
static bool | initIPCComms = false |
Definition at line 106 of file clover_field.h.
Define the parameter type for this field.
Definition at line 146 of file clover_field.h.
quda::CloverField::CloverField | ( | const CloverFieldParam & | param | ) |
Definition at line 39 of file clover_field.cpp.
|
virtual |
Definition at line 63 of file clover_field.cpp.
double quda::CloverField::abs_max | ( | bool | inverse = false | ) | const |
Compute the absolute maximum of the field (Linfinity norm)
double quda::CloverField::abs_min | ( | bool | inverse = false | ) | const |
Compute the absolute minimum of the field.
|
inline |
Definition at line 167 of file clover_field.h.
|
inline |
Definition at line 202 of file clover_field.h.
|
static |
Definition at line 65 of file clover_field.cpp.
|
inline |
Definition at line 197 of file clover_field.h.
|
inlinevirtual |
Implements quda::LatticeField.
Definition at line 250 of file clover_field.h.
|
inlinevirtual |
Implements quda::LatticeField.
Definition at line 152 of file clover_field.h.
|
inline |
Definition at line 212 of file clover_field.h.
|
inline |
Definition at line 187 of file clover_field.h.
|
inline |
Definition at line 139 of file clover_field.h.
|
inline |
Definition at line 141 of file clover_field.h.
double quda::CloverField::norm1 | ( | bool | inverse = false | ) | const |
Compute the L1 norm of the field.
double quda::CloverField::norm2 | ( | bool | inverse = false | ) | const |
Compute the L2 norm squared of the field.
|
inline |
Definition at line 172 of file clover_field.h.
|
inline |
Definition at line 192 of file clover_field.h.
|
inline |
Definition at line 162 of file clover_field.h.
|
inline |
Definition at line 218 of file clover_field.h.
void quda::CloverField::setRho | ( | double | rho | ) |
Bakes in the rho factor into the clover field, (for real diagonal additive Hasenbusch), e.g., A + rho.
Definition at line 80 of file clover_field.cpp.
|
inline |
Definition at line 177 of file clover_field.h.
|
inline |
Definition at line 157 of file clover_field.h.
|
inline |
Definition at line 207 of file clover_field.h.
|
inline |
Definition at line 138 of file clover_field.h.
|
inline |
Definition at line 140 of file clover_field.h.
|
protected |
Definition at line 109 of file clover_field.h.
|
protected |
Definition at line 116 of file clover_field.h.
|
protected |
Definition at line 118 of file clover_field.h.
|
protected |
Definition at line 122 of file clover_field.h.
|
protected |
Definition at line 128 of file clover_field.h.
|
protected |
Definition at line 121 of file clover_field.h.
|
protected |
Definition at line 119 of file clover_field.h.
|
protected |
Definition at line 111 of file clover_field.h.
|
protected |
Definition at line 124 of file clover_field.h.
|
protected |
Definition at line 113 of file clover_field.h.
|
protected |
Definition at line 117 of file clover_field.h.
|
protected |
Definition at line 110 of file clover_field.h.
|
protected |
Definition at line 114 of file clover_field.h.
|
protected |
Definition at line 127 of file clover_field.h.
|
protected |
Definition at line 112 of file clover_field.h.
|
protected |
Definition at line 125 of file clover_field.h.
|
mutableprotected |
Definition at line 130 of file clover_field.h.
|
protected |
Definition at line 123 of file clover_field.h.