QUDA
1.0.0
|
#include <gauge_field.h>
Public Member Functions | |
cudaGaugeField (const GaugeFieldParam &) | |
virtual | ~cudaGaugeField () |
void | exchangeGhost (QudaLinkDirection link_direction=QUDA_LINK_BACKWARDS) |
Exchange the ghost and store store in the padded region. More... | |
void | injectGhost (QudaLinkDirection link_direction=QUDA_LINK_BACKWARDS) |
The opposite of exchangeGhost: take the ghost zone on x, send to node x-1, and inject back into the field. More... | |
void | createComms (const int *R, bool no_comms_fill, bool bidir=true) |
Create the communication handlers and buffers. More... | |
void | allocateGhostBuffer (const int *R, bool no_comms_fill, bool bidir=true) const |
Allocate the ghost buffers. More... | |
void | recvStart (int dim, int dir) |
Start the receive communicators. More... | |
void | sendStart (int dim, int dir, cudaStream_t *stream_p=nullptr) |
Start the sending communicators. More... | |
void | commsComplete (int dim, int dir) |
Wait for communication to complete. More... | |
void | exchangeExtendedGhost (const int *R, bool no_comms_fill=false) |
This does routine will populate the border / halo region of a gauge field that has been created using copyExtendedGauge. More... | |
void | exchangeExtendedGhost (const int *R, TimeProfile &profile, bool no_comms_fill=false) |
This does routine will populate the border / halo region of a gauge field that has been created using copyExtendedGauge. Overloaded variant that will start and stop a comms profile. More... | |
void | copy (const GaugeField &src) |
void | loadCPUField (const cpuGaugeField &cpu) |
Download into this field from a CPU field. More... | |
void | loadCPUField (const cpuGaugeField &cpu, TimeProfile &profile) |
Download into this field from a CPU field. Overloaded variant that includes profiling. More... | |
void | saveCPUField (cpuGaugeField &cpu) const |
Upload from this field into a CPU field. More... | |
void | saveCPUField (cpuGaugeField &cpu, TimeProfile &profile) const |
Upload from this field into a CPU field. Overloaded variant that includes profiling. More... | |
void * | Gauge_p () |
void * | Even_p () |
void * | Odd_p () |
const void * | Gauge_p () const |
const void * | Even_p () const |
const void * | Odd_p () const |
void | setGauge (void *_gauge) |
void | zero () |
void | backup () const |
Backs up the cudaGaugeField to CPU memory. More... | |
void | restore () const |
Restores the cudaGaugeField to CUDA memory. More... | |
![]() | |
GaugeField (const GaugeFieldParam ¶m) | |
virtual | ~GaugeField () |
size_t | Length () const |
int | Ncolor () const |
QudaReconstructType | Reconstruct () const |
QudaGaugeFieldOrder | Order () const |
double | Anisotropy () const |
double | Tadpole () const |
QudaTboundary | TBoundary () const |
QudaLinkType | LinkType () const |
QudaGaugeFixed | GaugeFixed () const |
QudaGaugeFieldOrder | FieldOrder () const |
QudaFieldGeometry | Geometry () const |
QudaStaggeredPhase | StaggeredPhase () const |
bool | StaggeredPhaseApplied () const |
void | applyStaggeredPhase (QudaStaggeredPhase phase=QUDA_STAGGERED_PHASE_INVALID) |
void | removeStaggeredPhase () |
double | iMu () const |
const double & | LinkMax () const |
int | Nface () const |
void | checkField (const LatticeField &) const |
bool | isNative () const |
size_t | Bytes () const |
size_t | PhaseBytes () const |
size_t | PhaseOffset () const |
const void ** | Ghost () const |
void ** | Ghost () |
size_t | SiteOffset () const |
size_t | SiteSize () const |
double | norm1 (int dim=-1) const |
Compute the L1 norm of the field. More... | |
double | norm2 (int dim=-1) const |
Compute the L2 norm squared of the field. More... | |
double | abs_max (int dim=-1) const |
Compute the absolute maximum of the field (Linfinity norm) More... | |
double | abs_min (int dim=-1) const |
Compute the absolute minimum of the field. More... | |
uint64_t | checksum (bool mini=false) const |
![]() | |
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 |
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 |
![]() | |
Object () | |
virtual | ~Object () |
Private Member Functions | |
void | zeroPad () |
Initialize the padded region to 0. More... | |
Private Attributes | |
void * | gauge |
void * | gauge_h |
void * | even |
void * | odd |
Definition at line 404 of file gauge_field.h.
quda::cudaGaugeField::cudaGaugeField | ( | const GaugeFieldParam & | param | ) |
Definition at line 8 of file cuda_gauge_field.cpp.
References quda::GaugeField::bytes, quda::GaugeField::create, errorQuda, even, exchangeGhost(), quda::GaugeFieldParam::gauge, gauge, gauge_h, quda::GaugeField::geometry, quda::GaugeField::ghost, quda::LatticeField::ghostExchange, quda::GaugeField::isNative(), quda::GaugeField::link_type, mapped_malloc, quda::LatticeField::mem_type, quda::LatticeField::nDim, quda::GaugeField::nFace, quda::GaugeField::nInternal, odd, quda::GaugeField::order, quda::LatticeField::pad, quda::GaugeField::phase_offset, pool_device_malloc, quda::LatticeField::precision, QUDA_ASQTAD_MOM_LINKS, QUDA_BQCD_GAUGE_ORDER, QUDA_COARSE_GEOMETRY, QUDA_CPS_WILSON_GAUGE_ORDER, QUDA_GHOST_EXCHANGE_PAD, QUDA_LINK_BACKWARDS, QUDA_LINK_BIDIRECTIONAL, QUDA_MEMORY_DEVICE, QUDA_MEMORY_MAPPED, QUDA_NULL_FIELD_CREATE, QUDA_QDP_GAUGE_ORDER, QUDA_QDPJIT_GAUGE_ORDER, QUDA_RECONSTRUCT_13, QUDA_RECONSTRUCT_9, QUDA_REFERENCE_FIELD_CREATE, QUDA_TIFR_GAUGE_ORDER, QUDA_TIFR_PADDED_GAUGE_ORDER, QUDA_VECTOR_GEOMETRY, QUDA_ZERO_FIELD_CREATE, quda::GaugeField::reconstruct, quda::LatticeField::surface, quda::LatticeField::surfaceCB, and zeroPad().
|
virtual |
Definition at line 184 of file cuda_gauge_field.cpp.
References quda::GaugeField::create, quda::LatticeField::destroyComms(), errorQuda, gauge, gauge_h, quda::GaugeField::geometry, quda::GaugeField::ghost, host_free, quda::GaugeField::isNative(), quda::LatticeField::mem_type, quda::LatticeField::nDim, pool_device_free, QUDA_COARSE_GEOMETRY, QUDA_MEMORY_DEVICE, QUDA_MEMORY_MAPPED, and QUDA_REFERENCE_FIELD_CREATE.
void quda::cudaGaugeField::allocateGhostBuffer | ( | const int * | R, |
bool | no_comms_fill, | ||
bool | bidir = true |
||
) | const |
Allocate the ghost buffers.
[in] | R | The thickness of the extended region in each dimension |
[in] | no_comms_fill | Do local exchange to fill out the extended |
[in] | bidir | Is this a bi-directional exchange - if not then we alias the fowards and backwards offsetss region in non-partitioned dimensions |
Definition at line 381 of file cuda_gauge_field.cpp.
References quda::LatticeField::allocateGhostBuffer(), quda::GaugeField::createGhostZone(), and quda::LatticeField::ghost_bytes.
Referenced by createComms().
|
virtual |
Backs up the cudaGaugeField to CPU memory.
Reimplemented from quda::LatticeField.
Definition at line 826 of file cuda_gauge_field.cpp.
References quda::LatticeField::backed_up, quda::LatticeField::backup_h, quda::GaugeField::bytes, checkCudaError, errorQuda, and gauge.
void quda::cudaGaugeField::commsComplete | ( | int | dim, |
int | dir | ||
) |
Wait for communication to complete.
[in] | dim | The communication dimension |
[in] | dir | The communication direction (0=backwards, 1=forwards) |
Definition at line 467 of file cuda_gauge_field.cpp.
References quda::LatticeField::bufferIndex, comm_dim_partitioned(), comm_gdr_enabled(), comm_peer2peer_enabled(), comm_wait(), quda::LatticeField::ipcCopyEvent, quda::LatticeField::ipcRemoteCopyEvent, quda::LatticeField::mh_recv_back, quda::LatticeField::mh_recv_fwd, quda::LatticeField::mh_recv_p2p_back, quda::LatticeField::mh_recv_p2p_fwd, quda::LatticeField::mh_recv_rdma_back, quda::LatticeField::mh_recv_rdma_fwd, quda::LatticeField::mh_send_back, quda::LatticeField::mh_send_fwd, quda::LatticeField::mh_send_p2p_back, quda::LatticeField::mh_send_p2p_fwd, quda::LatticeField::mh_send_rdma_back, quda::LatticeField::mh_send_rdma_fwd, and quda::qudaEventSynchronize().
Referenced by exchangeExtendedGhost(), exchangeGhost(), and injectGhost().
|
virtual |
Generic gauge field copy
[in] | src | Source from which we are copying |
Implements quda::GaugeField.
Definition at line 630 of file cuda_gauge_field.cpp.
References quda::GaugeField::bytes, quda::GaugeField::Bytes(), checkCudaError, quda::GaugeField::checkField(), quda::copyExtendedGauge(), quda::copyGenericGauge(), quda::create_gauge_buffer(), quda::create_ghost_buffer(), errorQuda, exchangeGhost(), quda::GaugeField::fat_link_max, quda::free_gauge_buffer(), quda::free_ghost_buffer(), gauge, quda::GaugeField::Gauge_p(), quda::GaugeField::geometry, quda::GaugeField::Geometry(), quda::GaugeField::Ghost(), quda::LatticeField::ghost_bytes, quda::LatticeField::ghostExchange, quda::LatticeField::GhostExchange(), quda::GaugeField::link_type, quda::GaugeField::LinkMax(), quda::GaugeField::nColor, quda::GaugeField::nFace, quda::GaugeField::Order(), pool_pinned_free, pool_pinned_malloc, quda::LatticeField::precision, quda::LatticeField::Precision(), QUDA_ASQTAD_FAT_LINKS, QUDA_BQCD_GAUGE_ORDER, QUDA_COARSE_GEOMETRY, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, QUDA_GHOST_EXCHANGE_EXTENDED, QUDA_GHOST_EXCHANGE_NO, QUDA_GHOST_EXCHANGE_PAD, QUDA_HALF_PRECISION, QUDA_LINK_BACKWARDS, QUDA_LINK_BIDIRECTIONAL, QUDA_MILC_SITE_GAUGE_ORDER, QUDA_QDP_GAUGE_ORDER, QUDA_QUARTER_PRECISION, QUDA_RECONSTRUCT_NO, QUDA_TIFR_PADDED_GAUGE_ORDER, QUDA_VECTOR_GEOMETRY, qudaDeviceSynchronize, qudaMemcpy, quda::GaugeField::Reconstruct(), quda::reorder_location(), quda::GaugeField::StaggeredPhase(), quda::GaugeField::staggeredPhaseApplied, quda::GaugeField::StaggeredPhaseApplied(), quda::GaugeField::staggeredPhaseType, and quda::LatticeField::surface.
Referenced by computeHISQForceQuda(), initFields(), quda::DiracCoarse::initializeLazy(), loadCPUField(), loadGaugeQuda(), and loadSloppyGaugeQuda().
void quda::cudaGaugeField::createComms | ( | const int * | R, |
bool | no_comms_fill, | ||
bool | bidir = true |
||
) |
Create the communication handlers and buffers.
[in] | R | The thickness of the extended region in each dimension |
[in] | no_comms_fill | Do local exchange to fill out the extended region in non-partitioned dimensions |
[in] | bidir | Whether to allocate communication buffers to allow for simultaneous bi-directional exchange. If false, then the forwards and backwards buffers will alias (saving memory). |
Definition at line 387 of file cuda_gauge_field.cpp.
References allocateGhostBuffer(), quda::LatticeField::createComms(), quda::LatticeField::createIPCComms(), quda::LatticeField::destroyIPCComms(), quda::LatticeField::from_face_h, quda::LatticeField::ghost_bytes, quda::LatticeField::ghost_bytes_old, quda::LatticeField::ghost_field_reset, quda::LatticeField::ghost_pinned_recv_buffer_h, quda::LatticeField::ghost_pinned_send_buffer_h, quda::LatticeField::initComms, and quda::LatticeField::my_face_h.
Referenced by exchangeExtendedGhost(), exchangeGhost(), and injectGhost().
|
inlinevirtual |
Reimplemented from quda::GaugeField.
Definition at line 547 of file gauge_field.h.
|
inlinevirtual |
Reimplemented from quda::GaugeField.
Definition at line 551 of file gauge_field.h.
|
virtual |
This does routine will populate the border / halo region of a gauge field that has been created using copyExtendedGauge.
R | The thickness of the extended region in each dimension |
no_comms_fill | Do local exchange to fill out the extended region in non-partitioned dimensions |
Implements quda::GaugeField.
Definition at line 510 of file cuda_gauge_field.cpp.
References quda::LatticeField::bufferIndex, comm_dim_partitioned(), comm_gdr_enabled(), comm_peer2peer_enabled(), commsComplete(), createComms(), quda::extractExtendedGaugeGhost(), quda::LatticeField::from_face_dim_dir_d, quda::LatticeField::from_face_dim_dir_h, quda::LatticeField::ghost_face_bytes, quda::LatticeField::ghost_recv_buffer_d, quda::LatticeField::ghost_send_buffer_d, quda::LatticeField::my_face_dim_dir_d, quda::LatticeField::my_face_dim_dir_h, quda::LatticeField::nDim, QUDA_MAX_DIM, qudaDeviceSynchronize, qudaMemcpy, recvStart(), sendStart(), and streams.
Referenced by computeHISQForceQuda(), exchangeExtendedGhost(), gaussGaugeQuda(), hisq_force_test(), performAPEnStep(), performOvrImpSTOUTnStep(), and performSTOUTnStep().
|
virtual |
This does routine will populate the border / halo region of a gauge field that has been created using copyExtendedGauge. Overloaded variant that will start and stop a comms profile.
R | The thickness of the extended region in each dimension |
profile | TimeProfile intance which will record the time taken |
no_comms_fill | Do local exchange to fill out the extended region in non-partitioned dimensions |
Implements quda::GaugeField.
Definition at line 576 of file cuda_gauge_field.cpp.
References exchangeExtendedGhost(), and quda::QUDA_PROFILE_COMMS.
|
virtual |
Exchange the ghost and store store in the padded region.
[in] | link_direction | Which links are we exchanging: this flag only applies to bi-directional coarse-link fields |
Implements quda::GaugeField.
Definition at line 216 of file cuda_gauge_field.cpp.
References quda::LatticeField::bufferIndex, comm_dim_partitioned(), comm_gdr_enabled(), comm_peer2peer_enabled(), commsComplete(), quda::copyGenericGauge(), createComms(), errorQuda, quda::extractGaugeGhost(), quda::LatticeField::from_face_dim_dir_d, quda::LatticeField::from_face_dim_dir_h, quda::GaugeField::geometry, quda::GaugeField::ghost, quda::LatticeField::ghost_face_bytes, quda::LatticeField::ghost_recv_buffer_d, quda::LatticeField::ghost_send_buffer_d, quda::LatticeField::ghostExchange, quda::GaugeField::isNative(), quda::LatticeField::my_face_dim_dir_d, quda::LatticeField::my_face_dim_dir_h, quda::LatticeField::nDim, quda::GaugeField::nFace, QUDA_COARSE_GEOMETRY, QUDA_CUDA_FIELD_LOCATION, QUDA_GHOST_EXCHANGE_PAD, QUDA_LINK_BACKWARDS, QUDA_LINK_BIDIRECTIONAL, QUDA_LINK_FORWARDS, QUDA_MAX_DIM, QUDA_VECTOR_GEOMETRY, qudaDeviceSynchronize, qudaMemcpy, quda::qudaStreamSynchronize(), quda::LatticeField::R(), recvStart(), sendStart(), and streams.
Referenced by quda::GaugeField::applyStaggeredPhase(), copy(), cudaGaugeField(), loadGaugeQuda(), performWuppertalnStep(), and quda::GaugeField::removeStaggeredPhase().
|
inlinevirtual |
Reimplemented from quda::GaugeField.
Definition at line 546 of file gauge_field.h.
References quda::GaugeFieldParam::gauge.
Referenced by computeHISQForceQuda(), and main().
|
inlinevirtual |
Reimplemented from quda::GaugeField.
Definition at line 550 of file gauge_field.h.
References quda::GaugeFieldParam::gauge.
|
virtual |
The opposite of exchangeGhost: take the ghost zone on x, send to node x-1, and inject back into the field.
[in] | link_direction | Which links are we injecting: this flag only applies to bi-directional coarse-link fields |
Implements quda::GaugeField.
Definition at line 300 of file cuda_gauge_field.cpp.
References quda::LatticeField::bufferIndex, comm_dim_partitioned(), comm_gdr_enabled(), comm_peer2peer_enabled(), commsComplete(), quda::copyGenericGauge(), createComms(), errorQuda, quda::extractGaugeGhost(), quda::LatticeField::from_face_dim_dir_d, quda::LatticeField::from_face_dim_dir_h, quda::GaugeField::geometry, quda::GaugeField::ghost, quda::LatticeField::ghost_face_bytes, quda::LatticeField::ghost_recv_buffer_d, quda::LatticeField::ghost_send_buffer_d, quda::LatticeField::ghostExchange, quda::GaugeField::isNative(), quda::LatticeField::my_face_dim_dir_d, quda::LatticeField::my_face_dim_dir_h, quda::LatticeField::nDim, quda::GaugeField::nFace, QUDA_COARSE_GEOMETRY, QUDA_CUDA_FIELD_LOCATION, QUDA_GHOST_EXCHANGE_PAD, QUDA_LINK_BACKWARDS, QUDA_LINK_BIDIRECTIONAL, QUDA_LINK_FORWARDS, QUDA_MAX_DIM, QUDA_VECTOR_GEOMETRY, qudaDeviceSynchronize, qudaMemcpy, quda::qudaStreamSynchronize(), quda::LatticeField::R(), recvStart(), sendStart(), and streams.
void quda::cudaGaugeField::loadCPUField | ( | const cpuGaugeField & | cpu | ) |
Download into this field from a CPU field.
[in] | cpu | The CPU field source |
Definition at line 737 of file cuda_gauge_field.cpp.
References checkCudaError, copy(), and qudaDeviceSynchronize.
Referenced by computeGaugeForceQuda(), computeHISQForceQuda(), computeKSLinkQuda(), computeStaggeredForceQuda(), createGaugeFieldQuda(), hisq_force_init(), hisq_force_test(), loadCPUField(), momActionQuda(), packTest(), projectSU3Quda(), staggeredPhaseQuda(), unitarize_link_test(), and updateGaugeFieldQuda().
void quda::cudaGaugeField::loadCPUField | ( | const cpuGaugeField & | cpu, |
TimeProfile & | profile | ||
) |
Download into this field from a CPU field. Overloaded variant that includes profiling.
[in] | cpu | The CPU field source |
[in] | profile | Time profile to record the transfer |
Definition at line 743 of file cuda_gauge_field.cpp.
References loadCPUField(), and quda::QUDA_PROFILE_H2D.
|
inlinevirtual |
Reimplemented from quda::GaugeField.
Definition at line 548 of file gauge_field.h.
|
inlinevirtual |
Reimplemented from quda::GaugeField.
Definition at line 552 of file gauge_field.h.
References quda::zero().
void quda::cudaGaugeField::recvStart | ( | int | dim, |
int | dir | ||
) |
Start the receive communicators.
[in] | dim | The communication dimension |
[in] | dir | The communication direction (0=backwards, 1=forwards) |
Definition at line 403 of file cuda_gauge_field.cpp.
References quda::LatticeField::bufferIndex, comm_dim_partitioned(), comm_gdr_enabled(), comm_peer2peer_enabled(), comm_start(), quda::LatticeField::mh_recv_back, quda::LatticeField::mh_recv_fwd, quda::LatticeField::mh_recv_p2p_back, quda::LatticeField::mh_recv_p2p_fwd, quda::LatticeField::mh_recv_rdma_back, and quda::LatticeField::mh_recv_rdma_fwd.
Referenced by exchangeExtendedGhost(), exchangeGhost(), and injectGhost().
|
virtual |
Restores the cudaGaugeField to CUDA memory.
Reimplemented from quda::LatticeField.
Definition at line 834 of file cuda_gauge_field.cpp.
References quda::LatticeField::backed_up, quda::LatticeField::backup_h, quda::GaugeField::bytes, checkCudaError, errorQuda, and gauge.
void quda::cudaGaugeField::saveCPUField | ( | cpuGaugeField & | cpu | ) | const |
Upload from this field into a CPU field.
[out] | cpu | The CPU field source |
Definition at line 749 of file cuda_gauge_field.cpp.
References quda::GaugeField::bytes, quda::GaugeField::Bytes(), checkCudaError, quda::GaugeField::checkField(), quda::copyExtendedGauge(), quda::copyGenericGauge(), quda::create_gauge_buffer(), quda::create_ghost_buffer(), errorQuda, quda::free_gauge_buffer(), quda::free_ghost_buffer(), gauge, quda::cpuGaugeField::gauge, quda::cpuGaugeField::Gauge_p(), quda::GaugeField::geometry, quda::GaugeField::Geometry(), quda::GaugeField::Ghost(), quda::LatticeField::ghost_bytes, quda::LatticeField::GhostExchange(), quda::GaugeField::nColor, quda::GaugeField::nFace, quda::GaugeField::Order(), pool_pinned_free, pool_pinned_malloc, quda::LatticeField::Precision(), QUDA_BQCD_GAUGE_ORDER, QUDA_COARSE_GEOMETRY, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, QUDA_GHOST_EXCHANGE_EXTENDED, QUDA_GHOST_EXCHANGE_NO, QUDA_GHOST_EXCHANGE_PAD, QUDA_MILC_SITE_GAUGE_ORDER, QUDA_QDP_GAUGE_ORDER, QUDA_RECONSTRUCT_NO, QUDA_TIFR_PADDED_GAUGE_ORDER, qudaDeviceSynchronize, qudaMemcpy, quda::GaugeField::Reconstruct(), quda::reorder_location(), quda::GaugeField::staggeredPhaseApplied, quda::GaugeField::staggeredPhaseType, and quda::LatticeField::surface.
Referenced by quda::CoarseOp(), computeCloverForceQuda(), computeGaugeForceQuda(), computeHISQForceQuda(), computeKSLinkQuda(), computeStaggeredForceQuda(), hisq_force_test(), packTest(), projectSU3Quda(), saveCPUField(), saveGaugeFieldQuda(), saveGaugeQuda(), staggeredPhaseQuda(), and TEST().
void quda::cudaGaugeField::saveCPUField | ( | cpuGaugeField & | cpu, |
TimeProfile & | profile | ||
) | const |
Upload from this field into a CPU field. Overloaded variant that includes profiling.
[out] | cpu | The CPU field source |
[in] | profile | Time profile to record the transfer |
Definition at line 820 of file cuda_gauge_field.cpp.
References quda::QUDA_PROFILE_D2H, and saveCPUField().
void quda::cudaGaugeField::sendStart | ( | int | dim, |
int | dir, | ||
cudaStream_t * | stream_p = nullptr |
||
) |
Start the sending communicators.
[in] | dim | The communication dimension |
[in] | dir | The communication direction (0=backwards, 1=forwards) |
[in] | stream_p | Pointer to CUDA stream to post the communication in (if 0, then use null stream) |
Definition at line 428 of file cuda_gauge_field.cpp.
References quda::LatticeField::bufferIndex, comm_dim_partitioned(), comm_gdr_enabled(), comm_peer2peer_enabled(), comm_start(), quda::LatticeField::ghost_face_bytes, quda::LatticeField::ghost_remote_send_buffer_d, quda::LatticeField::ghostOffset, quda::LatticeField::ipcCopyEvent, quda::LatticeField::mh_send_back, quda::LatticeField::mh_send_fwd, quda::LatticeField::mh_send_p2p_back, quda::LatticeField::mh_send_p2p_fwd, quda::LatticeField::mh_send_rdma_back, quda::LatticeField::mh_send_rdma_fwd, quda::LatticeField::my_face_dim_dir_d, quda::LatticeField::precision, and quda::qudaEventRecord().
Referenced by exchangeExtendedGhost(), exchangeGhost(), and injectGhost().
void quda::cudaGaugeField::setGauge | ( | void * | _gauge | ) |
Definition at line 582 of file cuda_gauge_field.cpp.
References quda::GaugeField::create, errorQuda, gauge, and QUDA_REFERENCE_FIELD_CREATE.
|
virtual |
Set all field elements to zero
Implements quda::GaugeField.
Definition at line 843 of file cuda_gauge_field.cpp.
References quda::GaugeField::bytes, and gauge.
Referenced by computeGaugeForceQuda().
|
private |
Initialize the padded region to 0.
Definition at line 90 of file cuda_gauge_field.cpp.
References quda::GaugeField::bytes, checkCudaError, deviceProp, errorQuda, even, quda::GaugeField::geometry, quda::is_aligned(), quda::GaugeField::isNative(), memset(), quda::GaugeField::nColor, odd, quda::GaugeField::order, quda::GaugeField::phase_bytes, quda::LatticeField::precision, QUDA_COARSE_GEOMETRY, QUDA_DOUBLE_PRECISION, QUDA_HALF_PRECISION, QUDA_QUARTER_PRECISION, QUDA_RECONSTRUCT_13, QUDA_RECONSTRUCT_9, QUDA_RECONSTRUCT_NO, QUDA_SINGLE_PRECISION, quda::GaugeField::reconstruct, quda::LatticeField::stride, and quda::LatticeField::volumeCB.
Referenced by cudaGaugeField().
|
private |
Definition at line 409 of file gauge_field.h.
Referenced by cudaGaugeField(), and zeroPad().
|
private |
Definition at line 407 of file gauge_field.h.
Referenced by backup(), copy(), cudaGaugeField(), restore(), saveCPUField(), setGauge(), zero(), and ~cudaGaugeField().
|
private |
Definition at line 408 of file gauge_field.h.
Referenced by cudaGaugeField(), and ~cudaGaugeField().
|
private |
Definition at line 410 of file gauge_field.h.
Referenced by cudaGaugeField(), and zeroPad().