QUDA  v0.7.0
A library for QCD on GPUs
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
quda::LatticeField Class Reference

#include <lattice_field.h>

+ Inheritance diagram for quda::LatticeField:

Public Member Functions

 LatticeField (const LatticeFieldParam &param)
 
virtual ~LatticeField ()
 
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
 
int Nvec () const
 
QudaPrecision Precision () const
 
QudaFieldLocation Location () const
 
size_t GBytes () const
 
void checkField (const LatticeField &)
 
virtual void pack (int nFace, int parity, int dagger, cudaStream_t *stream_p, bool zeroCopyPack, double a=0, double b=0)
 
virtual void gather (int nFace, int dagger, int dir, cudaStream_t *stream_p=NULL)
 
virtual void commsStart (int nFace, int dir, int dagger=0)
 
virtual int commsQuery (int nFace, int dir, int dagger=0)
 
virtual void scatter (int nFace, int dagger, int dir)
 
const char * VolString () const
 

Static Public Member Functions

static void freeBuffer (int index=0)
 

Protected Member Functions

void resizeBufferPinned (size_t bytes, const int index=0) const
 
void resizeBufferDevice (size_t bytes) const
 
virtual void setTuningString ()
 

Protected Attributes

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]
 
QudaPrecision precision
 
QudaSiteSubset siteSubset
 
int nDimComms
 
void * my_face [2]
 
void * my_fwd_face [2][QUDA_MAX_DIM]
 
void * my_back_face [2][QUDA_MAX_DIM]
 
void * from_face [2]
 
void * from_back_face [2][QUDA_MAX_DIM]
 
void * from_fwd_face [2][QUDA_MAX_DIM]
 
MsgHandle *** mh_recv_fwd [2]
 
MsgHandle *** mh_recv_back [2]
 
MsgHandle *** mh_send_fwd [2]
 
MsgHandle *** mh_send_back [2]
 
char vol_string [TuneKey::volume_n]
 

Static Protected Attributes

static void * bufferPinned [2] = {NULL}
 
static bool bufferPinnedInit [2] = {false}
 
static size_t bufferPinnedBytes [2] = {0}
 
static size_t bufferPinnedResizeCount = 0
 
static void * bufferDevice = NULL
 
static bool bufferDeviceInit = false
 
static size_t bufferDeviceBytes = 0
 

Detailed Description

Definition at line 64 of file lattice_field.h.

Constructor & Destructor Documentation

quda::LatticeField::LatticeField ( const LatticeFieldParam param)

set the vol_string for use in tuning

Definition at line 21 of file lattice_field.cpp.

quda::LatticeField::~LatticeField ( )
virtual

Definition at line 49 of file lattice_field.cpp.

Member Function Documentation

void quda::LatticeField::checkField ( const LatticeField a)

Definition at line 65 of file lattice_field.cpp.

virtual int quda::LatticeField::commsQuery ( int  nFace,
int  dir,
int  dagger = 0 
)
inlinevirtual

Reimplemented in quda::cudaColorSpinorField.

Definition at line 192 of file lattice_field.h.

virtual void quda::LatticeField::commsStart ( int  nFace,
int  dir,
int  dagger = 0 
)
inlinevirtual

Reimplemented in quda::cudaColorSpinorField.

Definition at line 189 of file lattice_field.h.

void quda::LatticeField::freeBuffer ( int  index = 0)
static

Free the pinned-memory buffer

Definition at line 129 of file lattice_field.cpp.

virtual void quda::LatticeField::gather ( int  nFace,
int  dagger,
int  dir,
cudaStream_t *  stream_p = NULL 
)
inlinevirtual

Reimplemented in quda::cudaColorSpinorField.

Definition at line 186 of file lattice_field.h.

size_t quda::LatticeField::GBytes ( ) const
inline

Definition at line 178 of file lattice_field.h.

QudaFieldLocation quda::LatticeField::Location ( ) const

Definition at line 76 of file lattice_field.cpp.

int quda::LatticeField::Ndim ( ) const
inline

Definition at line 161 of file lattice_field.h.

int quda::LatticeField::Nvec ( ) const
Returns
The vector storage length used for native fields , 2 for Float2, 4 for Float4

Definition at line 90 of file lattice_field.cpp.

virtual void quda::LatticeField::pack ( int  nFace,
int  parity,
int  dagger,
cudaStream_t *  stream_p,
bool  zeroCopyPack,
double  a = 0,
double  b = 0 
)
inlinevirtual

Reimplemented in quda::cudaColorSpinorField.

Definition at line 182 of file lattice_field.h.

int quda::LatticeField::Pad ( ) const
inline

Definition at line 168 of file lattice_field.h.

QudaPrecision quda::LatticeField::Precision ( ) const
inline

Definition at line 176 of file lattice_field.h.

void quda::LatticeField::resizeBufferDevice ( size_t  bytes) const
protected

Resize the device-memory buffer

Definition at line 120 of file lattice_field.cpp.

void quda::LatticeField::resizeBufferPinned ( size_t  bytes,
const int  index = 0 
) const
protected

Resize the pinned-memory buffer

Definition at line 109 of file lattice_field.cpp.

virtual void quda::LatticeField::scatter ( int  nFace,
int  dagger,
int  dir 
)
inlinevirtual

Reimplemented in quda::cudaColorSpinorField.

Definition at line 195 of file lattice_field.h.

void quda::LatticeField::setTuningString ( )
protectedvirtual

used as a label in the autotuner

Reimplemented in quda::ColorSpinorField.

Definition at line 53 of file lattice_field.cpp.

int quda::LatticeField::Stride ( ) const
inline

Definition at line 167 of file lattice_field.h.

const int* quda::LatticeField::SurfaceCB ( ) const
inline

Definition at line 165 of file lattice_field.h.

int quda::LatticeField::SurfaceCB ( const int  i) const
inline

Definition at line 166 of file lattice_field.h.

const char* quda::LatticeField::VolString ( ) const
inline

Return the volume string used by the autotuner

Definition at line 199 of file lattice_field.h.

int quda::LatticeField::Volume ( ) const
inline

Definition at line 163 of file lattice_field.h.

int quda::LatticeField::VolumeCB ( ) const
inline

Definition at line 164 of file lattice_field.h.

const int* quda::LatticeField::X ( ) const
inline

Definition at line 162 of file lattice_field.h.

Member Data Documentation

void * quda::LatticeField::bufferDevice = NULL
staticprotected

Device-memory buffer that is used by all derived classes

Definition at line 105 of file lattice_field.h.

size_t quda::LatticeField::bufferDeviceBytes = 0
staticprotected

The size in bytes of device-memory buffer

Definition at line 111 of file lattice_field.h.

bool quda::LatticeField::bufferDeviceInit = false
staticprotected

Whether the device-memory buffer has already been initialized or not

Definition at line 108 of file lattice_field.h.

void * quda::LatticeField::bufferPinned = {NULL}
staticprotected

Pinned-memory buffer that is used by all derived classes

Definition at line 90 of file lattice_field.h.

size_t quda::LatticeField::bufferPinnedBytes = {0}
staticprotected

The size in bytes of pinned-memory buffer

Definition at line 96 of file lattice_field.h.

bool quda::LatticeField::bufferPinnedInit = {false}
staticprotected

Whether the pinned-memory buffer has already been initialized or not

Definition at line 93 of file lattice_field.h.

size_t quda::LatticeField::bufferPinnedResizeCount = 0
staticprotected

Keep track of resizes to the pinned memory buffers

Definition at line 102 of file lattice_field.h.

void* quda::LatticeField::from_back_face[2][QUDA_MAX_DIM]
protected

Definition at line 136 of file lattice_field.h.

void* quda::LatticeField::from_face[2]
protected

Memory buffer used for sending all messages (regardless of Nface)

Definition at line 135 of file lattice_field.h.

void* quda::LatticeField::from_fwd_face[2][QUDA_MAX_DIM]
protected

Definition at line 137 of file lattice_field.h.

MsgHandle*** quda::LatticeField::mh_recv_back[2]
protected

Message handles for receiving from backwards

Definition at line 143 of file lattice_field.h.

MsgHandle*** quda::LatticeField::mh_recv_fwd[2]
protected

Message handles for receiving from forwards

Definition at line 140 of file lattice_field.h.

MsgHandle*** quda::LatticeField::mh_send_back[2]
protected

Message handles for sending backwards

Definition at line 149 of file lattice_field.h.

MsgHandle*** quda::LatticeField::mh_send_fwd[2]
protected

Message handles for sending forwards

Definition at line 146 of file lattice_field.h.

void* quda::LatticeField::my_back_face[2][QUDA_MAX_DIM]
protected

Definition at line 132 of file lattice_field.h.

void* quda::LatticeField::my_face[2]
protected

Memory buffer used for sending all messages (regardless of Nface)

Definition at line 130 of file lattice_field.h.

void* quda::LatticeField::my_fwd_face[2][QUDA_MAX_DIM]
protected

Definition at line 131 of file lattice_field.h.

int quda::LatticeField::nDim
protected

The number field dimensions

Definition at line 75 of file lattice_field.h.

int quda::LatticeField::nDimComms
protected

The number of dimensions we partition for communication

Definition at line 121 of file lattice_field.h.

int quda::LatticeField::pad
protected

Definition at line 70 of file lattice_field.h.

QudaPrecision quda::LatticeField::precision
protected

The precision of the field

Definition at line 84 of file lattice_field.h.

QudaSiteSubset quda::LatticeField::siteSubset
protected

Whether the field is full or single parity

Definition at line 87 of file lattice_field.h.

int quda::LatticeField::stride
protected

Definition at line 69 of file lattice_field.h.

int quda::LatticeField::surface[QUDA_MAX_DIM]
protected

Definition at line 80 of file lattice_field.h.

int quda::LatticeField::surfaceCB[QUDA_MAX_DIM]
protected

Definition at line 81 of file lattice_field.h.

size_t quda::LatticeField::total_bytes
protected

Definition at line 72 of file lattice_field.h.

char quda::LatticeField::vol_string[TuneKey::volume_n]
protected

Definition at line 151 of file lattice_field.h.

int quda::LatticeField::volume
protected

Definition at line 67 of file lattice_field.h.

int quda::LatticeField::volumeCB
protected

Definition at line 68 of file lattice_field.h.

int quda::LatticeField::x[QUDA_MAX_DIM]
protected

Array storing the length of dimension

Definition at line 78 of file lattice_field.h.


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