QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
quda::cudaCloverField Class Reference

#include <clover_field.h>

Inheritance diagram for quda::cudaCloverField:
Inheritance graph
[legend]
Collaboration diagram for quda::cudaCloverField:
Collaboration graph
[legend]

Public Member Functions

 cudaCloverField (const CloverFieldParam &param)
 
virtual ~cudaCloverField ()
 
void copy (const CloverField &src, bool inverse=true)
 Copy into this CloverField from the generic CloverField src. More...
 
void loadCPUField (const cpuCloverField &cpu)
 
void saveCPUField (cpuCloverField &cpu) const
 
- Public Member Functions inherited from quda::CloverField
 CloverField (const CloverFieldParam &param)
 
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
 
int Ncolor () const
 
int Nspin () const
 
double Csw () 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 () const
 Compute the L1 norm of the field. More...
 
double norm2 () const
 Compute the L2 norm squared of the field. More...
 
double abs_max () const
 Compute the absolute maximum of the field (Linfinity norm) More...
 
double abs_min () const
 Compute the absolute minimum of the field. More...
 
- Public Member Functions inherited from quda::LatticeField
 LatticeField (const LatticeFieldParam &param)
 
 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
 
int Volume () const
 
int VolumeCB () const
 
const int * SurfaceCB () const
 
int SurfaceCB (const int i) const
 
int 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)
 
virtual void gather (int nFace, int dagger, int dir, cudaStream_t *stream_p=NULL)
 
virtual void commsStart (int nFace, int dir, int dagger=0, cudaStream_t *stream_p=NULL, bool gdr_send=false, bool gdr_recv=true)
 
virtual int commsQuery (int nFace, int dir, int dagger=0, cudaStream_t *stream_p=NULL, bool gdr_send=false, bool gdr_recv=true)
 
virtual void commsWait (int nFace, int dir, int dagger=0, cudaStream_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...
 
- Public Member Functions inherited from quda::Object
 Object ()
 
virtual ~Object ()
 

Private Member Functions

void compute (const cudaGaugeField &gauge)
 

Private Attributes

void * even
 
void * odd
 
void * evenNorm
 
void * oddNorm
 
void * evenInv
 
void * oddInv
 
void * evenInvNorm
 
void * oddInvNorm
 

Friends

class DiracClover
 
class DiracCloverPC
 
struct FullClover
 

Additional Inherited Members

- 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)
 
- 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 ()
 
- Protected Attributes inherited from quda::CloverField
size_t bytes
 
size_t norm_bytes
 
size_t length
 
size_t real_length
 
int nColor
 
int nSpin
 
void * clover
 
void * norm
 
void * cloverInv
 
void * invNorm
 
double csw
 
bool twisted
 
double mu2
 
double rho
 
QudaCloverFieldOrder order
 
QudaFieldCreate create
 
double trlog [2]
 
- Protected Attributes inherited from quda::LatticeField
int volume
 
int volumeCB
 
int stride
 
int pad
 
size_t total_bytes
 
int nDim
 
int x [QUDA_MAX_DIM]
 
int surface [QUDA_MAX_DIM]
 
int surfaceCB [QUDA_MAX_DIM]
 
int r [QUDA_MAX_DIM]
 
QudaPrecision precision
 
QudaPrecision ghost_precision
 
bool ghost_precision_reset
 
double scale
 
QudaSiteSubset siteSubset
 
QudaGhostExchange ghostExchange
 
int nDimComms
 
size_t ghost_bytes
 
size_t ghost_bytes_old
 
size_t ghost_face_bytes [QUDA_MAX_DIM]
 
int ghostOffset [QUDA_MAX_DIM][2]
 
int ghostNormOffset [QUDA_MAX_DIM][2]
 
void * my_face_h [2]
 
void * my_face_hd [2]
 
void * my_face_d [2]
 
void * my_face_dim_dir_h [2][QUDA_MAX_DIM][2]
 
void * my_face_dim_dir_hd [2][QUDA_MAX_DIM][2]
 
void * my_face_dim_dir_d [2][QUDA_MAX_DIM][2]
 
void * from_face_h [2]
 
void * from_face_hd [2]
 
void * from_face_d [2]
 
void * from_face_dim_dir_h [2][QUDA_MAX_DIM][2]
 
void * from_face_dim_dir_hd [2][QUDA_MAX_DIM][2]
 
void * from_face_dim_dir_d [2][QUDA_MAX_DIM][2]
 
MsgHandlemh_recv_fwd [2][QUDA_MAX_DIM]
 
MsgHandlemh_recv_back [2][QUDA_MAX_DIM]
 
MsgHandlemh_send_fwd [2][QUDA_MAX_DIM]
 
MsgHandlemh_send_back [2][QUDA_MAX_DIM]
 
MsgHandlemh_recv_rdma_fwd [2][QUDA_MAX_DIM]
 
MsgHandlemh_recv_rdma_back [2][QUDA_MAX_DIM]
 
MsgHandlemh_send_rdma_fwd [2][QUDA_MAX_DIM]
 
MsgHandlemh_send_rdma_back [2][QUDA_MAX_DIM]
 
bool initComms
 
char vol_string [TuneKey::volume_n]
 
char aux_string [TuneKey::aux_n]
 
QudaMemoryType mem_type
 
char * backup_h
 
char * backup_norm_h
 
bool backed_up
 
- 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 MsgHandlemh_send_p2p_fwd [2][QUDA_MAX_DIM] { }
 
static MsgHandlemh_send_p2p_back [2][QUDA_MAX_DIM] { }
 
static MsgHandlemh_recv_p2p_fwd [2][QUDA_MAX_DIM] { }
 
static MsgHandlemh_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
 

Detailed Description

Definition at line 168 of file clover_field.h.

Constructor & Destructor Documentation

◆ cudaCloverField()

quda::cudaCloverField::cudaCloverField ( const CloverFieldParam param)

◆ ~cudaCloverField()

quda::cudaCloverField::~cudaCloverField ( )
virtual

Member Function Documentation

◆ compute()

void quda::cudaCloverField::compute ( const cudaGaugeField gauge)
private

Computes Fmunu given the gauge field U

Definition at line 379 of file clover_field.cpp.

References quda::computeClover(), errorQuda, quda::LatticeField::precision, quda::LatticeField::Precision(), and QUDA_CUDA_FIELD_LOCATION.

Here is the call graph for this function:

◆ copy()

void quda::cudaCloverField::copy ( const CloverField src,
bool  inverse = true 
)

◆ loadCPUField()

void quda::cudaCloverField::loadCPUField ( const cpuCloverField cpu)

Copy into this CloverField from the cpuCloverField cpu

Parameters
cpuThe cpu clover field from which we want to copy

Definition at line 340 of file clover_field.cpp.

References copy().

Here is the call graph for this function:

◆ saveCPUField()

void quda::cudaCloverField::saveCPUField ( cpuCloverField cpu) const

Friends And Related Function Documentation

◆ DiracClover

friend class DiracClover
friend

Definition at line 238 of file clover_field.h.

◆ DiracCloverPC

friend class DiracCloverPC
friend

Definition at line 239 of file clover_field.h.

◆ FullClover

friend struct FullClover
friend

Definition at line 240 of file clover_field.h.

Member Data Documentation

◆ even

void* quda::cudaCloverField::even
private

Definition at line 171 of file clover_field.h.

Referenced by cudaCloverField(), and quda::FullClover::FullClover().

◆ evenInv

void* quda::cudaCloverField::evenInv
private

Definition at line 174 of file clover_field.h.

Referenced by cudaCloverField(), and quda::FullClover::FullClover().

◆ evenInvNorm

void* quda::cudaCloverField::evenInvNorm
private

Definition at line 175 of file clover_field.h.

Referenced by cudaCloverField(), and quda::FullClover::FullClover().

◆ evenNorm

void* quda::cudaCloverField::evenNorm
private

Definition at line 172 of file clover_field.h.

Referenced by cudaCloverField(), and quda::FullClover::FullClover().

◆ odd

void * quda::cudaCloverField::odd
private

Definition at line 171 of file clover_field.h.

Referenced by cudaCloverField(), and quda::FullClover::FullClover().

◆ oddInv

void * quda::cudaCloverField::oddInv
private

Definition at line 174 of file clover_field.h.

Referenced by cudaCloverField(), and quda::FullClover::FullClover().

◆ oddInvNorm

void * quda::cudaCloverField::oddInvNorm
private

Definition at line 175 of file clover_field.h.

Referenced by cudaCloverField(), and quda::FullClover::FullClover().

◆ oddNorm

void * quda::cudaCloverField::oddNorm
private

Definition at line 172 of file clover_field.h.

Referenced by cudaCloverField(), and quda::FullClover::FullClover().


The documentation for this class was generated from the following files: