QUDA
v1.1.0
A library for QCD on GPUs
|
#include <color_spinor_field.h>
Public Member Functions | |
cudaColorSpinorField (const cudaColorSpinorField &) | |
cudaColorSpinorField (const ColorSpinorField &, const ColorSpinorParam &) | |
cudaColorSpinorField (const ColorSpinorField &) | |
cudaColorSpinorField (const ColorSpinorParam &) | |
virtual | ~cudaColorSpinorField () |
ColorSpinorField & | operator= (const ColorSpinorField &) |
cudaColorSpinorField & | operator= (const cudaColorSpinorField &) |
cudaColorSpinorField & | operator= (const cpuColorSpinorField &) |
void | copy (const cudaColorSpinorField &) |
virtual void | copy_to_buffer (void *buffer) const |
Copy all contents of the field to a host buffer. More... | |
virtual void | copy_from_buffer (void *buffer) |
Copy all contents of the field from a host buffer to this field. More... | |
void | switchBufferPinned () |
void | createComms (int nFace, bool spin_project=true) |
Create the communication handlers and buffers. More... | |
void | allocateGhostBuffer (int nFace, bool spin_project=true) const |
Allocate the ghost buffers. More... | |
void | packGhost (const int nFace, const QudaParity parity, const int dim, const QudaDirection dir, const int dagger, qudaStream_t *stream, MemoryLocation location[2 *QUDA_MAX_DIM], MemoryLocation location_label, bool spin_project, double a=0, double b=0, double c=0, int shmem=0) |
Packs the cudaColorSpinorField's ghost zone. More... | |
void | packGhostExtended (const int nFace, const int R[], const QudaParity parity, const int dim, const QudaDirection dir, const int dagger, qudaStream_t *stream, bool zero_copy=false) |
void | sendGhost (void *ghost_spinor, const int nFace, const int dim, const QudaDirection dir, const int dagger, qudaStream_t *stream) |
void | unpackGhost (const void *ghost_spinor, const int nFace, const int dim, const QudaDirection dir, const int dagger, qudaStream_t *stream) |
void | unpackGhostExtended (const void *ghost_spinor, const int nFace, const QudaParity parity, const int dim, const QudaDirection dir, const int dagger, qudaStream_t *stream, bool zero_copy) |
void | streamInit (qudaStream_t *stream_p) |
void | pack (int nFace, int parity, int dagger, int stream_idx, MemoryLocation location[], MemoryLocation location_label, bool spin_project=true, double a=0, double b=0, double c=0, int shmem=0) |
void | packExtended (const int nFace, const int R[], const int parity, const int dagger, const int dim, qudaStream_t *stream_p, const bool zeroCopyPack=false) |
void | gather (int nFace, int dagger, int dir, qudaStream_t *stream_p=NULL) |
void | recvStart (int nFace, int dir, int dagger=0, qudaStream_t *stream_p=nullptr, bool gdr=false) |
Initiate halo communication receive. More... | |
void | sendStart (int nFace, int d, int dagger=0, qudaStream_t *stream_p=nullptr, bool gdr=false, bool remote_write=false) |
Initiate halo communication sending. More... | |
void | commsStart (int nFace, int d, int dagger=0, qudaStream_t *stream_p=nullptr, bool gdr_send=false, bool gdr_recv=false) |
Initiate halo communication. More... | |
int | commsQuery (int nFace, int d, int dagger=0, qudaStream_t *stream_p=nullptr, bool gdr_send=false, bool gdr_recv=false) |
Non-blocking query if the halo communication has completed. More... | |
void | commsWait (int nFace, int d, int dagger=0, qudaStream_t *stream_p=nullptr, bool gdr_send=false, bool gdr_recv=false) |
Wait on halo communication to complete. More... | |
void | scatter (int nFace, int dagger, int dir, qudaStream_t *stream_p) |
void | scatter (int nFace, int dagger, int dir) |
void | scatterExtended (int nFace, int parity, int dagger, int dir) |
const void * | Ghost2 () const |
void | exchangeGhost (QudaParity parity, int nFace, int dagger, const MemoryLocation *pack_destination=nullptr, const MemoryLocation *halo_location=nullptr, bool gdr_send=false, bool gdr_recv=false, QudaPrecision ghost_precision=QUDA_INVALID_PRECISION) const |
This is a unified ghost exchange function for doing a complete halo exchange regardless of the type of field. All dimensions are exchanged and no spin projection is done in the case of Wilson fermions. More... | |
cudaColorSpinorField & | Component (const int idx) const |
for composite fields: More... | |
CompositeColorSpinorField & | Components () const |
void | CopySubset (cudaColorSpinorField &dst, const int range, const int first_element=0) const |
void | zero () |
void | Source (const QudaSourceType sourceType, const int st=0, const int s=0, const int c=0) |
void | PrintVector (unsigned int x) const |
void | backup () const |
Backs up the cudaColorSpinorField. More... | |
void | restore () const |
Restores the cudaColorSpinorField. More... | |
void | prefetch (QudaFieldLocation mem_space, qudaStream_t stream=0) const |
If managed memory and prefetch is enabled, prefetch the spinor, the norm field (as appropriate), to the CPU or the GPU. More... | |
Public Member Functions inherited from quda::ColorSpinorField | |
ColorSpinorField (const ColorSpinorField &) | |
ColorSpinorField (const ColorSpinorParam &) | |
virtual | ~ColorSpinorField () |
int | Ncolor () const |
int | Nspin () const |
int | Nvec () const |
QudaTwistFlavorType | TwistFlavor () const |
int | Ndim () const |
const int * | X () const |
int | X (int d) const |
size_t | RealLength () const |
size_t | Length () const |
size_t | Stride () const |
size_t | Volume () const |
size_t | VolumeCB () const |
int | Pad () const |
size_t | Bytes () const |
size_t | NormBytes () const |
size_t | TotalBytes () const |
size_t | GhostBytes () const |
size_t | GhostFaceBytes (int i) const |
size_t | GhostNormBytes () const |
void | PrintDims () const |
void * | V () |
const void * | V () const |
void * | Norm () |
const void * | Norm () const |
virtual int | full_dim (int d) const |
void | exchange (void **ghost, void **sendbuf, int nFace=1) const |
bool | isNative () const |
bool | IsComposite () const |
bool | IsComponent () const |
int | CompositeDim () const |
int | ComponentId () const |
int | ComponentVolume () const |
int | ComponentVolumeCB () const |
int | ComponentStride () const |
size_t | ComponentLength () const |
size_t | ComponentRealLength () const |
size_t | ComponentBytes () const |
size_t | ComponentNormBytes () const |
QudaPCType | PCType () const |
QudaParity | SuggestedParity () const |
void | setSuggestedParity (QudaParity suggested_parity) |
QudaSiteSubset | SiteSubset () const |
QudaSiteOrder | SiteOrder () const |
QudaFieldOrder | FieldOrder () const |
QudaGammaBasis | GammaBasis () const |
const int * | GhostFace () const |
const int * | GhostFaceCB () const |
size_t | GhostOffset (const int dim, const int dir) const |
void * | Ghost (const int i) |
const void * | Ghost (const int i) const |
void * | GhostNorm (const int i) |
const void * | GhostNorm (const int i) const |
void *const * | Ghost () const |
const DslashConstant & | getDslashConstant () const |
Get the dslash_constant structure from this field. More... | |
const ColorSpinorField & | Even () const |
const ColorSpinorField & | Odd () const |
ColorSpinorField & | Even () |
ColorSpinorField & | Odd () |
ColorSpinorField & | Component (const int idx) const |
ColorSpinorField & | Component (const int idx) |
CompositeColorSpinorField & | Components () |
void | PrintVector (unsigned int x_cb, unsigned int parity) const |
Thin wrapper around PrintVector that takes in a checkerboard index and a parity instead of a full index. More... | |
void | LatticeIndex (int *y, int i) const |
void | OffsetIndex (int &i, int *y) const |
ColorSpinorField * | CreateAlias (const ColorSpinorParam ¶m) |
Create a field that aliases this field's storage. The alias field can use a different precision than this field, though it cannot be greater. This functionality is useful for the case where we have multiple temporaries in different precisions, but do not need them simultaneously. Use this functionality with caution. More... | |
ColorSpinorField * | CreateCoarse (const int *geoBlockSize, int spinBlockSize, int Nvec, QudaPrecision precision=QUDA_INVALID_PRECISION, QudaFieldLocation location=QUDA_INVALID_FIELD_LOCATION, QudaMemoryType mem_Type=QUDA_MEMORY_INVALID) |
Create a coarse color-spinor field, using this field to set the meta data. More... | |
ColorSpinorField * | CreateFine (const int *geoblockSize, int spinBlockSize, int Nvec, QudaPrecision precision=QUDA_INVALID_PRECISION, QudaFieldLocation location=QUDA_INVALID_FIELD_LOCATION, QudaMemoryType mem_type=QUDA_MEMORY_INVALID) |
Create a fine color-spinor field, using this field to set the meta data. More... | |
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 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... | |
const char * | VolString () const |
const char * | AuxString () const |
Public Member Functions inherited from quda::Object | |
Object () | |
virtual | ~Object () |
Friends | |
class | cpuColorSpinorField |
std::ostream & | operator<< (std::ostream &out, const cudaColorSpinorField &) |
Definition at line 682 of file color_spinor_field.h.
quda::cudaColorSpinorField::cudaColorSpinorField | ( | const cudaColorSpinorField & | src | ) |
Definition at line 38 of file cuda_color_spinor_field.cpp.
quda::cudaColorSpinorField::cudaColorSpinorField | ( | const ColorSpinorField & | src, |
const ColorSpinorParam & | param | ||
) |
Definition at line 48 of file cuda_color_spinor_field.cpp.
quda::cudaColorSpinorField::cudaColorSpinorField | ( | const ColorSpinorField & | src | ) |
Definition at line 97 of file cuda_color_spinor_field.cpp.
quda::cudaColorSpinorField::cudaColorSpinorField | ( | const ColorSpinorParam & | param | ) |
Definition at line 16 of file cuda_color_spinor_field.cpp.
|
virtual |
Definition at line 142 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::allocateGhostBuffer | ( | int | nFace, |
bool | spin_project = true |
||
) | const |
Allocate the ghost buffers.
[in] | nFace | Depth of each halo |
[in] | spin_project | Whether the halos are spin projected (Wilson-type fermions only) |
Definition at line 498 of file cuda_color_spinor_field.cpp.
|
virtual |
Backs up the cudaColorSpinorField.
Reimplemented from quda::LatticeField.
Definition at line 297 of file cuda_color_spinor_field.cpp.
|
virtual |
Non-blocking query if the halo communication has completed.
[in] | Depth | of face exchange |
[in] | d | d=[2*dim+dir], where dim is dimension and dir is the scatter-centric direction (0=backwards,1=forwards) |
[in] | dagger | Whether this exchange is for the conjugate operator |
[in] | stream | CUDA stream to be used (unused) |
[in] | gdr_send | Whether we are using GDR on the send side |
[in] | gdr_recv | Whether we are using GDR on the receive side |
Reimplemented from quda::LatticeField.
Definition at line 872 of file cuda_color_spinor_field.cpp.
|
virtual |
Initiate halo communication.
[in] | Depth | of face exchange |
[in] | d | d=[2*dim+dir], where dim is dimension and dir is the scatter-centric direction (0=backwards,1=forwards) |
[in] | dagger | Whether this exchange is for the conjugate operator |
[in] | stream | CUDA stream to be used (unused) |
[in] | gdr_send | Whether we are using GDR on the send side |
[in] | gdr_recv | Whether we are using GDR on the receive side |
Reimplemented from quda::LatticeField.
Definition at line 860 of file cuda_color_spinor_field.cpp.
|
virtual |
Wait on halo communication to complete.
[in] | Depth | of face exchange |
[in] | d | d=[2*dim+dir], where dim is dimension and dir is the scatter-centric direction (0=backwards,1=forwards) |
[in] | dagger | Whether this exchange is for the conjugate operator |
[in] | stream | CUDA stream to be used (unused) |
[in] | gdr_send | Whether we are using GDR on the send side |
[in] | gdr_recv | Whether we are using GDR on the receive side |
Reimplemented from quda::LatticeField.
Definition at line 941 of file cuda_color_spinor_field.cpp.
cudaColorSpinorField & quda::cudaColorSpinorField::Component | ( | const int | idx | ) | const |
for composite fields:
Definition at line 1209 of file cuda_color_spinor_field.cpp.
CompositeColorSpinorField& quda::cudaColorSpinorField::Components | ( | ) | const |
void quda::cudaColorSpinorField::copy | ( | const cudaColorSpinorField & | src | ) |
Definition at line 385 of file cuda_color_spinor_field.cpp.
|
virtual |
Copy all contents of the field from a host buffer to this field.
[in] | the | host buffer to copy from. |
Implements quda::LatticeField.
Definition at line 1309 of file cuda_color_spinor_field.cpp.
|
virtual |
Copy all contents of the field to a host buffer.
[in] | the | host buffer to copy to. |
Implements quda::LatticeField.
Definition at line 1301 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::CopySubset | ( | cudaColorSpinorField & | dst, |
const int | range, | ||
const int | first_element = 0 |
||
) | const |
Definition at line 1224 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::createComms | ( | int | nFace, |
bool | spin_project = true |
||
) |
Create the communication handlers and buffers.
[in] | nFace | Depth of each halo |
[in] | spin_project | Whether the halos are spin projected (Wilson-type fermions only) |
Definition at line 646 of file cuda_color_spinor_field.cpp.
|
virtual |
This is a unified ghost exchange function for doing a complete halo exchange regardless of the type of field. All dimensions are exchanged and no spin projection is done in the case of Wilson fermions.
[in] | parity | Field parity |
[in] | nFace | Depth of halo exchange |
[in] | dagger | Is this for a dagger operator (only relevant for spin projected Wilson) |
[in] | pack_destination | Destination of the packing buffer |
[in] | halo_location | Destination of the halo reading buffer |
[in] | gdr_send | Are we using GDR for sending |
[in] | gdr_recv | Are we using GDR for receiving |
[in] | ghost_precision | The precision used for the ghost exchange |
Implements quda::ColorSpinorField.
Definition at line 1037 of file cuda_color_spinor_field.cpp.
|
virtual |
Reimplemented from quda::LatticeField.
Definition at line 705 of file cuda_color_spinor_field.cpp.
|
inlinevirtual |
Reimplemented from quda::ColorSpinorField.
Definition at line 918 of file color_spinor_field.h.
|
virtual |
Reimplemented from quda::ColorSpinorField.
Definition at line 106 of file cuda_color_spinor_field.cpp.
cudaColorSpinorField & quda::cudaColorSpinorField::operator= | ( | const cpuColorSpinorField & | src | ) |
Definition at line 131 of file cuda_color_spinor_field.cpp.
cudaColorSpinorField & quda::cudaColorSpinorField::operator= | ( | const cudaColorSpinorField & | src | ) |
Definition at line 117 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::pack | ( | int | nFace, |
int | parity, | ||
int | dagger, | ||
int | stream_idx, | ||
MemoryLocation | location[], | ||
MemoryLocation | location_label, | ||
bool | spin_project = true , |
||
double | a = 0 , |
||
double | b = 0 , |
||
double | c = 0 , |
||
int | shmem = 0 |
||
) |
Pack the field halos in preparation for halo exchange, e.g., for Dslash
[in] | nFace | Depth of faces |
[in] | parity | Field parity |
[in] | dagger | Whether this exchange is for the conjugate operator |
[in] | stream | CUDA stream index to be used for packing kernel |
[in] | location | Array of field locations where each halo will be sent (Host, Device or Remote) |
[in] | location_label | Consistent label used for labeling the packing tunekey since location can be difference for each process |
[in] | spin_project | Whether we are spin projecting when face packing |
[in] | a | Used for twisted mass (scale factor) |
[in] | b | Used for twisted mass (chiral twist factor) |
[in] | c | Used for twisted mass (flavor twist factor) |
Definition at line 683 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::packExtended | ( | const int | nFace, |
const int | R[], | ||
const int | parity, | ||
const int | dagger, | ||
const int | dim, | ||
qudaStream_t * | stream_p, | ||
const bool | zeroCopyPack = false |
||
) |
Definition at line 695 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::packGhost | ( | const int | nFace, |
const QudaParity | parity, | ||
const int | dim, | ||
const QudaDirection | dir, | ||
const int | dagger, | ||
qudaStream_t * | stream, | ||
MemoryLocation | location[2 *QUDA_MAX_DIM], | ||
MemoryLocation | location_label, | ||
bool | spin_project, | ||
double | a = 0 , |
||
double | b = 0 , |
||
double | c = 0 , |
||
int | shmem = 0 |
||
) |
Packs the cudaColorSpinorField's ghost zone.
[in] | nFace | How many faces to pack (depth) |
[in] | parity | Parity of the field |
[in] | dim | Labels space-time dimensions |
[in] | dir | Pack data to send in forward of backward directions, or both |
[in] | dagger | Whether the operator is the Hermitian conjugate or not |
[in] | stream | Which stream to use for the kernel |
[out] | buffer | Optional parameter where the ghost should be stored (default is to use cudaColorSpinorField::ghostFaceBuffer) |
[in] | location | Are we packing directly into local device memory, zero-copy memory or remote memory |
[in] | location_label | Consistent label used for labeling the packing tunekey since location can be difference for each process |
[in] | spin_project | Whether we are spin projecting when face packing |
[in] | a | Twisted mass parameter (scale factor, default=0) |
[in] | b | Twisted mass parameter (flavor twist factor, default=0) |
[in] | c | Twisted mass parameter (chiral twist factor, default=0) |
Definition at line 505 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::packGhostExtended | ( | const int | nFace, |
const int | R[], | ||
const QudaParity | parity, | ||
const int | dim, | ||
const QudaDirection | dir, | ||
const int | dagger, | ||
qudaStream_t * | stream, | ||
bool | zero_copy = false |
||
) |
Definition at line 629 of file cuda_color_spinor_field.cpp.
|
virtual |
If managed memory and prefetch is enabled, prefetch the spinor, the norm field (as appropriate), to the CPU or the GPU.
[in] | mem_space | Memory space we are prefetching to |
[in] | stream | Which stream to run the prefetch in (default 0) |
Reimplemented from quda::LatticeField.
Definition at line 320 of file cuda_color_spinor_field.cpp.
|
virtual |
Implements quda::ColorSpinorField.
Definition at line 1299 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::recvStart | ( | int | nFace, |
int | dir, | ||
int | dagger = 0 , |
||
qudaStream_t * | stream_p = nullptr , |
||
bool | gdr = false |
||
) |
Initiate halo communication receive.
[in] | Depth | of face exchange |
[in] | d | d=[2*dim+dir], where dim is dimension and dir is the scatter-centric direction (0=backwards,1=forwards) |
[in] | dagger | Whether this exchange is for the conjugate operator |
[in] | stream | CUDA stream to be used (unused) |
[in] | gdr | Whether we are using GDR on the receive side |
Definition at line 725 of file cuda_color_spinor_field.cpp.
|
virtual |
Restores the cudaColorSpinorField.
Reimplemented from quda::LatticeField.
Definition at line 308 of file cuda_color_spinor_field.cpp.
|
virtual |
Reimplemented from quda::LatticeField.
Definition at line 1015 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::scatter | ( | int | nFace, |
int | dagger, | ||
int | dir, | ||
qudaStream_t * | stream_p | ||
) |
Definition at line 1002 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::scatterExtended | ( | int | nFace, |
int | parity, | ||
int | dagger, | ||
int | dir | ||
) |
Definition at line 1028 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::sendGhost | ( | void * | ghost_spinor, |
const int | nFace, | ||
const int | dim, | ||
const QudaDirection | dir, | ||
const int | dagger, | ||
qudaStream_t * | stream | ||
) |
Initiate the gpu to cpu send of the ghost zone (halo)
ghost_spinor | Where to send the ghost zone |
nFace | Number of face to send |
dim | The lattice dimension we are sending |
dir | The direction (QUDA_BACKWARDS or QUDA_FORWARDS) |
dagger | Whether the operator is daggerer or not |
stream | The array of streams to use |
Definition at line 550 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::sendStart | ( | int | nFace, |
int | d, | ||
int | dagger = 0 , |
||
qudaStream_t * | stream_p = nullptr , |
||
bool | gdr = false , |
||
bool | remote_write = false |
||
) |
Initiate halo communication sending.
[in] | nFace | Depth of face exchange |
[in] | d | d=[2*dim+dir], where dim is dimension and dir is the scatter-centric direction (0=backwards,1=forwards) |
[in] | dagger | Whether this exchange is for the conjugate operator |
[in] | stream | CUDA stream that we will post the p2p event synchronization to (if nullptr then stream+d will be used |
[in] | gdr | Whether we are using GDR on the send side |
[in] | remote_write | Whether we are writing direct to remote memory (or using copy engines) |
Definition at line 757 of file cuda_color_spinor_field.cpp.
|
virtual |
Implements quda::ColorSpinorField.
Definition at line 1282 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::streamInit | ( | qudaStream_t * | stream_p | ) |
Definition at line 681 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::switchBufferPinned | ( | ) |
void quda::cudaColorSpinorField::unpackGhost | ( | const void * | ghost_spinor, |
const int | nFace, | ||
const int | dim, | ||
const QudaDirection | dir, | ||
const int | dagger, | ||
qudaStream_t * | stream | ||
) |
Initiate the cpu to gpu send of the ghost zone (halo)
ghost_spinor | Source of the ghost zone |
nFace | Number of face to send |
dim | The lattice dimension we are sending |
dir | The direction (QUDA_BACKWARDS or QUDA_FORWARDS) |
dagger | Whether the operator is daggerer or not |
stream | The array of streams to use |
Definition at line 618 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::unpackGhostExtended | ( | const void * | ghost_spinor, |
const int | nFace, | ||
const QudaParity | parity, | ||
const int | dim, | ||
const QudaDirection | dir, | ||
const int | dagger, | ||
qudaStream_t * | stream, | ||
bool | zero_copy | ||
) |
Initiate the cpu to gpu copy of the extended border region
ghost_spinor | Source of the ghost zone |
parity | Parity of the field |
nFace | Number of face to send |
dim | The lattice dimension we are sending |
dir | The direction (QUDA_BACKWARDS or QUDA_FORWARDS) |
dagger | Whether the operator is daggered or not |
stream | The array of streams to use |
zero_copy | Whether we are unpacking from zero_copy memory |
Definition at line 637 of file cuda_color_spinor_field.cpp.
void quda::cudaColorSpinorField::zero | ( | ) |
Definition at line 332 of file cuda_color_spinor_field.cpp.
|
friend |
Definition at line 684 of file color_spinor_field.h.
|
friend |
Definition at line 1199 of file cuda_color_spinor_field.cpp.