QUDA  0.9.0
Public Member Functions | Static Public Member Functions | Static Public Attributes | 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:
Inheritance graph
[legend]
Collaboration diagram for quda::LatticeField:
Collaboration graph
[legend]

Public Member Functions

 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)
 
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 intX () const
 
int Volume () const
 
int VolumeCB () const
 
const intSurfaceCB () const
 
int SurfaceCB (const int i) const
 
int Stride () const
 
int Pad () const
 
const intR () const
 
QudaGhostExchange GhostExchange () const
 
QudaPrecision Precision () const
 
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
 
virtual void backup () const
 Backs up the LatticeField. More...
 
virtual void restore ()
 Restores the cpuGaugeField. More...
 
- Public Member Functions inherited from quda::Object
 Object ()
 
virtual ~Object ()
 

Static Public Member Functions

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

static int bufferIndex = 0
 
static bool ghost_field_reset = false
 

Protected Member Functions

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]
 
int r [QUDA_MAX_DIM]
 
QudaPrecision precision
 
QudaSiteSubset siteSubset
 
QudaGhostExchange ghostExchange
 
int nDimComms
 
size_t ghost_bytes
 
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_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_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]
 
QudaMemoryType mem_type
 
char * backup_h
 
char * backup_norm_h
 
bool backed_up
 

Static Protected Attributes

static void * ghost_send_buffer_d [2] = {nullptr, nullptr}
 
static void * ghost_recv_buffer_d [2] = {nullptr, nullptr}
 
static void * ghost_pinned_buffer_h [2] = {nullptr, nullptr}
 
static void * ghost_pinned_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 122 of file lattice_field.h.

Constructor & Destructor Documentation

◆ LatticeField() [1/2]

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

Constructor for creating a LatticeField from a LatticeFieldParam

Parameters
paramContains the metadata for creating the LatticeField

Definition at line 53 of file lattice_field.cpp.

◆ LatticeField() [2/2]

quda::LatticeField::LatticeField ( const LatticeField field)

Constructor for creating a LatticeField from another LatticeField

Parameters
fieldInstance of LatticeField from which we are inheriting metadata

Definition at line 94 of file lattice_field.cpp.

◆ ~LatticeField()

quda::LatticeField::~LatticeField ( )
virtual

Destructor for LatticeField

Definition at line 126 of file lattice_field.cpp.

Member Function Documentation

◆ allocateGhostBuffer()

void quda::LatticeField::allocateGhostBuffer ( size_t  ghost_bytes) const

Allocate the static ghost buffers.

Parameters
[in]ghost_bytesSize of the ghost buffer to allocate

Definition at line 128 of file lattice_field.cpp.

References b, device_pinned_free, device_pinned_malloc, ghost_bytes, ghost_field_reset, ghost_pinned_buffer_h, ghost_pinned_buffer_hd, ghost_recv_buffer_d, ghost_send_buffer_d, ghostFaceBytes, host_free, initGhostFaceBuffer, and mapped_malloc.

Referenced by quda::cudaGaugeField::allocateGhostBuffer(), and quda::cudaColorSpinorField::allocateGhostBuffer().

Here is the caller graph for this function:

◆ backup()

virtual void quda::LatticeField::backup ( ) const
inlinevirtual

◆ checkField()

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

Check that the metadata of *this and a are compatible

Parameters
aThe LatticeField to which we are comparing

Definition at line 493 of file lattice_field.cpp.

References a, errorQuda, ghostExchange, fused_exterior_ndeg_tm_dslash_cuda_gen::i, nDim, QUDA_GHOST_EXCHANGE_EXTENDED, r, surface, surfaceCB, volume, volumeCB, and x.

Referenced by quda::GaugeField::checkField(), quda::cudaCloverField::copy(), and quda::cudaCloverField::saveCPUField().

Here is the caller graph for this function:

◆ commsQuery()

virtual int quda::LatticeField::commsQuery ( int  nFace,
int  dir,
int  dagger = 0,
cudaStream_t *  stream_p = NULL,
bool  gdr_send = false,
bool  gdr_recv = true 
)
inlinevirtual

Reimplemented in quda::cudaColorSpinorField.

Definition at line 514 of file lattice_field.h.

References errorQuda.

◆ commsStart()

virtual void quda::LatticeField::commsStart ( int  nFace,
int  dir,
int  dagger = 0,
cudaStream_t *  stream_p = NULL,
bool  gdr_send = false,
bool  gdr_recv = true 
)
inlinevirtual

Reimplemented in quda::cudaColorSpinorField.

Definition at line 511 of file lattice_field.h.

References errorQuda.

◆ commsWait()

virtual void quda::LatticeField::commsWait ( int  nFace,
int  dir,
int  dagger = 0,
cudaStream_t *  stream_p = NULL,
bool  gdr_send = false,
bool  gdr_recv = true 
)
inlinevirtual

Reimplemented in quda::cudaColorSpinorField.

Definition at line 517 of file lattice_field.h.

References errorQuda.

◆ createComms()

void quda::LatticeField::createComms ( bool  no_comms_fill = false)

◆ createIPCComms()

void quda::LatticeField::createIPCComms ( )

◆ destroyComms()

void quda::LatticeField::destroyComms ( )

◆ destroyIPCComms()

void quda::LatticeField::destroyIPCComms ( )
static

Destroy the statically allocated inter-process communication handlers

Definition at line 429 of file lattice_field.cpp.

References b, checkCudaError, comm_dim(), comm_free(), comm_peer2peer_enabled(), dim, ghost_remote_send_buffer_d, initIPCComms, ipcCopyEvent, mh_recv_p2p_back, mh_recv_p2p_fwd, mh_send_p2p_back, and mh_send_p2p_fwd.

Referenced by quda::cudaGaugeField::createComms(), quda::cudaColorSpinorField::createComms(), and freeGhostBuffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ freeGhostBuffer()

void quda::LatticeField::freeGhostBuffer ( void  )
static

Free statically allocated ghost buffers.

Definition at line 167 of file lattice_field.cpp.

References b, destroyIPCComms(), device_pinned_free, ghost_pinned_buffer_h, ghost_pinned_buffer_hd, ghost_recv_buffer_d, ghost_send_buffer_d, host_free, and initGhostFaceBuffer.

Referenced by endQuda().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gather()

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

Reimplemented in quda::cudaColorSpinorField.

Definition at line 508 of file lattice_field.h.

References errorQuda.

◆ GBytes()

size_t quda::LatticeField::GBytes ( ) const
inline
Returns
The total storage allocated

Definition at line 488 of file lattice_field.h.

References total_bytes.

Referenced by loadCloverQuda(), and loadGaugeQuda().

Here is the caller graph for this function:

◆ getIPCCopyEvent()

const cudaEvent_t & quda::LatticeField::getIPCCopyEvent ( int  dir,
int  dim 
) const

Handle to local copy event used for peer-to-peer synchronization

Definition at line 473 of file lattice_field.cpp.

References bufferIndex, dim, and ipcCopyEvent.

◆ getIPCRemoteCopyEvent()

const cudaEvent_t & quda::LatticeField::getIPCRemoteCopyEvent ( int  dir,
int  dim 
) const

Handle to remote copy event used for peer-to-peer synchronization

Definition at line 477 of file lattice_field.cpp.

References bufferIndex, dim, and ipcRemoteCopyEvent.

◆ GhostExchange()

QudaGhostExchange quda::LatticeField::GhostExchange ( ) const
inline
Returns
Type of ghost exchange

Definition at line 457 of file lattice_field.h.

References ghostExchange.

Referenced by quda::cudaGaugeField::copy(), quda::copyGenericGauge(), and quda::cudaGaugeField::saveCPUField().

Here is the caller graph for this function:

◆ ipcCopyComplete()

bool quda::LatticeField::ipcCopyComplete ( int  dir,
int  dim 
)
inline

Helper function to determine if local-to-remote (send) peer-to-peer copy is complete

Definition at line 463 of file lattice_field.cpp.

References bufferIndex, dim, and ipcCopyEvent.

◆ ipcRemoteCopyComplete()

bool quda::LatticeField::ipcRemoteCopyComplete ( int  dir,
int  dim 
)
inline

Helper function to determine if local-to-remote (receive) peer-to-peer copy is complete

Definition at line 468 of file lattice_field.cpp.

References bufferIndex, dim, and ipcRemoteCopyEvent.

◆ Location()

QudaFieldLocation quda::LatticeField::Location ( ) const
Returns
The location of the field

Definition at line 522 of file lattice_field.cpp.

References errorQuda, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, and QUDA_INVALID_FIELD_LOCATION.

Referenced by quda::CalculateY< from_coarse, Float, fineSpin, fineColor, coarseSpin, coarseColor, Arg >::advanceTuneParam(), quda::CalculateYhat< Float, n, Arg >::advanceTuneParam(), quda::GaussSpinor< FloatIn, Ns, Nc, InOrder >::apply(), quda::GenericPackGhostLauncher< Float, Ns, Ms, Nc, Mc, Arg >::apply(), quda::WuppertalSmearing< Float, Ns, Nc, Arg >::apply(), quda::Laplace< Float, nDim, nColor, Arg >::apply(), quda::Gamma< ValueType, basis, dir >::apply(), quda::TwistGamma< Float, nColor, Arg >::apply(), quda::Clover< Float, nSpin, nColor, Arg >::apply(), quda::TwistClover< Float, nSpin, nColor, Arg >::apply(), quda::GaugeOvrImpSTOUT< Float, GaugeOr, GaugeDs >::apply(), quda::CalculateY< from_coarse, Float, fineSpin, fineColor, coarseSpin, coarseColor, Arg >::apply(), quda::CalculateYhat< Float, n, Arg >::apply(), quda::calculateY(), quda::blas::copy(), quda::ColorSpinorField::CreateCoarse(), quda::ColorSpinorField::CreateFine(), quda::GaugeField::exchange(), quda::ColorSpinorField::exchange(), quda::ColorSpinorField::fill(), quda::gauge::FloatNOrder< Float, length, N, reconLenParam, stag_phase, huge_alloc >::FloatNOrder(), quda::gaugeForce(), quda::CalculateY< from_coarse, Float, fineSpin, fineColor, coarseSpin, coarseColor, Arg >::tuneKey(), quda::CalculateYhat< Float, n, Arg >::tuneKey(), and quda::updateGaugeField().

Here is the caller graph for this function:

◆ MemType()

virtual QudaMemoryType quda::LatticeField::MemType ( ) const
inlinevirtual
Returns
Mem type

Definition at line 472 of file lattice_field.h.

References mem_type.

◆ Ndim()

int quda::LatticeField::Ndim ( ) const
inline
Returns
The dimension of the lattice

Definition at line 410 of file lattice_field.h.

References nDim.

Referenced by quda::copyGaugeEx().

Here is the caller graph for this function:

◆ Nvec()

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

Definition at line 546 of file lattice_field.cpp.

References errorQuda, quda::ColorSpinorField::FieldOrder(), quda::CloverField::Order(), and quda::GaugeField::Order().

Referenced by quda::ColorSpinorField::CreateCoarse(), quda::ColorSpinorField::CreateFine(), quda::cudaColorSpinorField::sendGhost(), and quda::cudaColorSpinorField::sendStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Pad()

int quda::LatticeField::Pad ( ) const
inline
Returns
The field padding

Definition at line 447 of file lattice_field.h.

References pad.

◆ Precision()

QudaPrecision quda::LatticeField::Precision ( ) const
inline
Returns
The field precision

Definition at line 462 of file lattice_field.h.

References precision.

Referenced by quda::APEStep(), quda::ApplyCovDev(), quda::applyGaugePhase(), quda::applyU(), quda::GenericPackGhostLauncher< Float, Ns, Ms, Nc, Mc, Arg >::bytes(), quda::calculateY(), quda::canReuseResidentGauge(), checkClover(), checkGauge(), quda::cloverDerivative(), quda::CoarseCoarseOp(), quda::CoarseOp(), quda::cudaCloverField::compute(), quda::computeCloverForce(), computeCloverForceQuda(), quda::computeCloverSigmaOprod(), quda::computeFmunu(), quda::computeMomAction(), quda::computeQCharge(), quda::computeStaggeredOprod(), quda::blas::copy_ns::copy(), quda::copyExtendedColorSpinor(), quda::copyGenericColorSpinor(), quda::copyGenericGauge(), quda::copyGenericGaugeDoubleOut(), quda::copyGenericGaugeHalfOut(), quda::copyGenericGaugeMG(), quda::copyGenericGaugeSingleOut(), createCloverQuda(), createExtendedGauge(), quda::extractExtendedGaugeGhost(), quda::extractGaugeGhost(), quda::extractGaugeGhostMG(), quda::gaugefixingFFT(), quda::gaugefixingOVR(), quda::gaugeForce(), quda::gaugeGauss(), quda::getLinkDeterminant(), quda::getLinkTrace(), quda::InitGaugeField(), quda::DiracCoarse::initializeCoarse(), loadSloppyCloverQuda(), loadSloppyGaugeQuda(), quda::Monte(), quda::Deflation::operator()(), quda::BiCGstab::operator()(), quda::BiCGstabL::operator()(), quda::MultiShiftCG::operator()(), quda::DslashCoarseLaunch::operator()(), quda::OvrImpSTOUTStep(), quda::PGaugeExchange(), qChargeCuda(), quda::IncEigCG::RestartVT(), quda::cudaGaugeField::saveCPUField(), quda::shiftColorSpinorField(), quda::CG::solve(), quda::STOUTStep(), quda::unitarizeLinks(), quda::updateGaugeField(), and quda::updateMomentum().

◆ R()

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

◆ read()

void quda::LatticeField::read ( char *  filename)
virtual

Read in the field specified by filenemae

Parameters
filenameThe name of the file to read

Definition at line 538 of file lattice_field.cpp.

References errorQuda.

◆ restore()

virtual void quda::LatticeField::restore ( )
inlinevirtual

◆ scatter()

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

Reimplemented in quda::cudaColorSpinorField.

Definition at line 520 of file lattice_field.h.

References errorQuda.

◆ setTuningString()

void quda::LatticeField::setTuningString ( )
protectedvirtual

Sets the vol_string for use in tuning

Reimplemented in quda::ColorSpinorField.

Definition at line 481 of file lattice_field.cpp.

References d, errorQuda, nDim, snprintf(), strcpy(), vol_string, quda::TuneKey::volume_n, and x.

Here is the call graph for this function:

◆ SiteSubset()

virtual QudaSiteSubset quda::LatticeField::SiteSubset ( ) const
inlinevirtual
Returns
Field subset type

Reimplemented in quda::ColorSpinorField.

Definition at line 467 of file lattice_field.h.

References siteSubset.

◆ Stride()

int quda::LatticeField::Stride ( ) const
inline
Returns
The single-parity stride of the field

Definition at line 442 of file lattice_field.h.

References stride.

◆ SurfaceCB() [1/2]

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

◆ SurfaceCB() [2/2]

int quda::LatticeField::SurfaceCB ( const int  i) const
inline
Parameters
iThe dimension of the requested surface
Returns
The single-parity surface of dimension i

Definition at line 437 of file lattice_field.h.

References fused_exterior_ndeg_tm_dslash_cuda_gen::i, and surfaceCB.

◆ VolString()

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

Return the volume string used by the autotuner

Definition at line 524 of file lattice_field.h.

References vol_string.

Referenced by quda::CopySpinor< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder >::tuneKey(), quda::GaussSpinor< FloatIn, Ns, Nc, InOrder >::tuneKey(), quda::CopyGaugeEx< FloatOut, FloatIn, length, OutOrder, InOrder >::tuneKey(), quda::GenericPackGhostLauncher< Float, Ns, Ms, Nc, Mc, Arg >::tuneKey(), quda::KSForceComplete< Float, Oprod, Gauge, Mom >::tuneKey(), quda::WuppertalSmearing< Float, Ns, Nc, Arg >::tuneKey(), quda::CopyColorSpinor< FloatOut, FloatIn, Ns, Nc, Arg >::tuneKey(), quda::Laplace< Float, nDim, nColor, Arg >::tuneKey(), quda::ExtractGhost< Float, length, nDim, Order >::tuneKey(), quda::CopyGauge< FloatOut, FloatIn, length, OutOrder, InOrder, isGhost >::tuneKey(), quda::ExtractGhostEx< Float, length, nDim, dim, Order >::tuneKey(), quda::Gamma< ValueType, basis, dir >::tuneKey(), quda::CopySpinorEx< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder, Basis, extend >::tuneKey(), quda::KSLongLinkForce< Float, Result, Oprod, Gauge >::tuneKey(), quda::TwistGamma< Float, nColor, Arg >::tuneKey(), quda::Clover< Float, nSpin, nColor, Arg >::tuneKey(), quda::TwistClover< Float, nSpin, nColor, Arg >::tuneKey(), quda::GaugeOvrImpSTOUT< Float, GaugeOr, GaugeDs >::tuneKey(), quda::CalculateY< from_coarse, Float, fineSpin, fineColor, coarseSpin, coarseColor, Arg >::tuneKey(), and quda::CalculateYhat< Float, n, Arg >::tuneKey().

Here is the caller graph for this function:

◆ Volume()

int quda::LatticeField::Volume ( ) const
inline
Returns
The full-field volume

Definition at line 420 of file lattice_field.h.

References volume.

Referenced by quda::calculateY(), quda::Dirac::checkParitySpinor(), gaussGaugeQuda(), hisq_force_init(), hisq_force_test(), and TEST().

Here is the caller graph for this function:

◆ VolumeCB()

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

◆ write()

void quda::LatticeField::write ( char *  filename)
virtual

Write the field in the file specified by filename

Parameters
filenameThe name of the file to write

Definition at line 542 of file lattice_field.cpp.

References errorQuda.

◆ X()

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

Member Data Documentation

◆ backed_up

bool quda::LatticeField::backed_up
mutableprotected

◆ backup_h

char* quda::LatticeField::backup_h
mutableprotected

◆ backup_norm_h

char* quda::LatticeField::backup_norm_h
mutableprotected

◆ buffer_recv_p2p_back

int quda::LatticeField::buffer_recv_p2p_back { }
staticprotected

Buffer used by peer-to-peer message handler

Definition at line 297 of file lattice_field.h.

Referenced by createIPCComms().

◆ buffer_recv_p2p_fwd

int quda::LatticeField::buffer_recv_p2p_fwd { }
staticprotected

Buffer used by peer-to-peer message handler

Definition at line 291 of file lattice_field.h.

Referenced by createIPCComms().

◆ buffer_send_p2p_back

int quda::LatticeField::buffer_send_p2p_back { }
staticprotected

Buffer used by peer-to-peer message handler

Definition at line 294 of file lattice_field.h.

Referenced by createIPCComms().

◆ buffer_send_p2p_fwd

int quda::LatticeField::buffer_send_p2p_fwd { }
staticprotected

Buffer used by peer-to-peer message handler

Definition at line 288 of file lattice_field.h.

Referenced by createIPCComms().

◆ bufferIndex

int quda::LatticeField::bufferIndex = 0
static

◆ from_face_dim_dir_d

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

◆ from_face_dim_dir_h

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

◆ from_face_dim_dir_hd

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

Local pointers to the mapped from_face buffer

Definition at line 246 of file lattice_field.h.

Referenced by createComms(), and quda::cudaColorSpinorField::exchangeGhost().

◆ from_face_h

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

Memory buffer used for receiving all messages

Definition at line 238 of file lattice_field.h.

Referenced by createComms(), and quda::cudaColorSpinorField::exchangeGhost().

◆ from_face_hd

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

Mapped version of from_face_h

Definition at line 240 of file lattice_field.h.

Referenced by createComms().

◆ ghost_bytes

size_t quda::LatticeField::ghost_bytes
mutableprotected

◆ ghost_face_bytes

size_t quda::LatticeField::ghost_face_bytes[QUDA_MAX_DIM]
mutableprotected

◆ ghost_field_reset

bool quda::LatticeField::ghost_field_reset = false
static

Bool which is triggered if the ghost field is reset

Definition at line 405 of file lattice_field.h.

Referenced by allocateGhostBuffer(), quda::cudaGaugeField::createComms(), quda::cudaColorSpinorField::createComms(), and createIPCComms().

◆ ghost_pinned_buffer_h

void * quda::LatticeField::ghost_pinned_buffer_h = {nullptr, nullptr}
staticprotected

Double buffered static pinned send/recv buffers

Definition at line 181 of file lattice_field.h.

Referenced by allocateGhostBuffer(), quda::cudaGaugeField::createComms(), createComms(), quda::cudaColorSpinorField::createComms(), and freeGhostBuffer().

◆ ghost_pinned_buffer_hd

void * quda::LatticeField::ghost_pinned_buffer_hd = {nullptr, nullptr}
staticprotected

Mapped version of ghost_pinned

Definition at line 186 of file lattice_field.h.

Referenced by allocateGhostBuffer(), createComms(), freeGhostBuffer(), and quda::cudaColorSpinorField::Ghost2().

◆ ghost_recv_buffer_d

void * quda::LatticeField::ghost_recv_buffer_d = {nullptr, nullptr}
staticprotected

◆ ghost_remote_send_buffer_d

void * quda::LatticeField::ghost_remote_send_buffer_d
staticprotected

◆ ghost_send_buffer_d

void * quda::LatticeField::ghost_send_buffer_d = {nullptr, nullptr}
staticprotected

◆ ghostExchange

QudaGhostExchange quda::LatticeField::ghostExchange
protected

◆ ghostFaceBytes

size_t quda::LatticeField::ghostFaceBytes = 0
staticprotected

The current size of the static ghost allocation

Definition at line 196 of file lattice_field.h.

Referenced by allocateGhostBuffer().

◆ ghostNormOffset

int quda::LatticeField::ghostNormOffset[QUDA_MAX_DIM][2]
mutableprotected

Real-number (in floats) offsets to each ghost zone for norm field

Definition at line 221 of file lattice_field.h.

Referenced by quda::cudaColorSpinorField::createComms(), quda::ColorSpinorField::createGhostZone(), quda::ColorSpinorField::GhostNormOffset(), and quda::cudaColorSpinorField::sendStart().

◆ ghostOffset

int quda::LatticeField::ghostOffset[QUDA_MAX_DIM][2]
mutableprotected

◆ initComms

bool quda::LatticeField::initComms
protected

Whether we have initialized communication for this field

Definition at line 306 of file lattice_field.h.

Referenced by quda::cudaGaugeField::createComms(), createComms(), quda::cudaColorSpinorField::createComms(), createIPCComms(), and destroyComms().

◆ initGhostFaceBuffer

bool quda::LatticeField::initGhostFaceBuffer = false
staticprotected

Whether the ghost buffers have been initialized

Definition at line 201 of file lattice_field.h.

Referenced by allocateGhostBuffer(), and freeGhostBuffer().

◆ initIPCComms

bool quda::LatticeField::initIPCComms = false
staticprotected

Whether we have initialized peer-to-peer communication

Definition at line 309 of file lattice_field.h.

Referenced by createIPCComms(), and destroyIPCComms().

◆ ipcCopyEvent

cudaEvent_t quda::LatticeField::ipcCopyEvent
staticprotected

◆ ipcRemoteCopyEvent

cudaEvent_t quda::LatticeField::ipcRemoteCopyEvent
staticprotected

◆ mem_type

QudaMemoryType quda::LatticeField::mem_type
protected

The type of allocation we are going to do for this field

Definition at line 318 of file lattice_field.h.

Referenced by quda::cudaColorSpinorField::create(), quda::cudaColorSpinorField::destroy(), and MemType().

◆ mh_recv_back

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

◆ mh_recv_fwd

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

◆ mh_recv_p2p_back

MsgHandle * quda::LatticeField::mh_recv_p2p_back { }
staticprotected

◆ mh_recv_p2p_fwd

MsgHandle * quda::LatticeField::mh_recv_p2p_fwd { }
staticprotected

◆ mh_recv_rdma_back

MsgHandle* quda::LatticeField::mh_recv_rdma_back[2][QUDA_MAX_DIM]
protected

◆ mh_recv_rdma_fwd

MsgHandle* quda::LatticeField::mh_recv_rdma_fwd[2][QUDA_MAX_DIM]
protected

◆ mh_send_back

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

◆ mh_send_fwd

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

◆ mh_send_p2p_back

MsgHandle * quda::LatticeField::mh_send_p2p_back { }
staticprotected

◆ mh_send_p2p_fwd

MsgHandle * quda::LatticeField::mh_send_p2p_fwd { }
staticprotected

◆ mh_send_rdma_back

MsgHandle* quda::LatticeField::mh_send_rdma_back[2][QUDA_MAX_DIM]
protected

◆ mh_send_rdma_fwd

MsgHandle* quda::LatticeField::mh_send_rdma_fwd[2][QUDA_MAX_DIM]
protected

◆ my_face_dim_dir_d

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

◆ my_face_dim_dir_h

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

◆ my_face_dim_dir_hd

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

◆ my_face_h

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

Pinned memory buffer used for sending all messages

Definition at line 224 of file lattice_field.h.

Referenced by quda::cudaGaugeField::createComms(), createComms(), quda::cudaColorSpinorField::createComms(), and quda::cudaColorSpinorField::exchangeGhost().

◆ my_face_hd

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

Mapped version of my_face_h

Definition at line 226 of file lattice_field.h.

Referenced by createComms().

◆ nDim

int quda::LatticeField::nDim
protected

◆ nDimComms

int quda::LatticeField::nDimComms
protected

◆ pad

int quda::LatticeField::pad
protected

◆ precision

QudaPrecision quda::LatticeField::precision
protected

Precision of the field

Definition at line 149 of file lattice_field.h.

Referenced by quda::cpuColorSpinorField::allocateGhostBuffer(), quda::ColorSpinorField::ColorSpinorField(), quda::cudaCloverField::compute(), quda::cudaCloverField::copy(), quda::cudaGaugeField::copy(), quda::cpuGaugeField::copy(), quda::cudaColorSpinorField::CopySubset(), quda::cpuCloverField::cpuCloverField(), quda::cpuGaugeField::cpuGaugeField(), quda::ColorSpinorField::create(), quda::cudaColorSpinorField::create(), quda::cpuColorSpinorField::create(), createComms(), quda::cudaColorSpinorField::createComms(), quda::GaugeField::createGhostZone(), quda::ColorSpinorField::createGhostZone(), quda::cudaCloverField::cudaCloverField(), quda::cudaGaugeField::cudaGaugeField(), quda::cudaColorSpinorField::destroy(), quda::GaugeField::exchange(), quda::ColorSpinorField::exchange(), quda::cpuGaugeField::exchangeExtendedGhost(), quda::cpuGaugeField::exchangeGhost(), quda::ColorSpinorField::fill(), quda::GaugeField::GaugeField(), quda::cpuGaugeField::injectGhost(), quda::CloverField::isNative(), quda::GaugeField::isNative(), quda::ColorSpinorField::isNative(), quda::cudaColorSpinorField::packGhost(), Precision(), quda::ColorSpinorField::reset(), quda::cudaCloverField::saveCPUField(), quda::cudaColorSpinorField::sendGhost(), quda::cudaGaugeField::sendStart(), quda::cudaColorSpinorField::sendStart(), quda::ColorSpinorField::setTuningString(), quda::cudaColorSpinorField::unpackGhost(), quda::cudaColorSpinorField::zero(), and quda::cudaColorSpinorField::zeroPad().

◆ r

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

The extended lattice radius (if applicable)

Definition at line 146 of file lattice_field.h.

Referenced by checkField(), createExtendedGauge(), and R().

◆ siteSubset

QudaSiteSubset quda::LatticeField::siteSubset
protected

Whether the field is full or single parity

Definition at line 152 of file lattice_field.h.

Referenced by SiteSubset().

◆ stride

int quda::LatticeField::stride
protected

Definition at line 131 of file lattice_field.h.

Referenced by quda::GaugeField::GaugeField(), and Stride().

◆ surface

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

◆ surfaceCB

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

◆ total_bytes

size_t quda::LatticeField::total_bytes
protected

◆ vol_string

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

Used as a label in the autotuner

Definition at line 312 of file lattice_field.h.

Referenced by setTuningString(), quda::ColorSpinorField::setTuningString(), and VolString().

◆ volume

int quda::LatticeField::volume
protected

Lattice volume

Definition at line 126 of file lattice_field.h.

Referenced by checkField(), quda::cpuGaugeField::cpuGaugeField(), quda::GaugeField::GaugeField(), and Volume().

◆ volumeCB

int quda::LatticeField::volumeCB
protected

Checkerboarded volume

Definition at line 129 of file lattice_field.h.

Referenced by checkField(), and VolumeCB().

◆ x

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

Array storing the length of dimension

Definition at line 140 of file lattice_field.h.

Referenced by checkField(), quda::cpuGaugeField::cpuGaugeField(), setTuningString(), and X().


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