13 errorQuda(
"CPU fields do not support half precision");
16 errorQuda(
"CPU fields do not support non-zero padding");
22 errorQuda(
"10-reconstruction only supported with MILC gauge order");
44 for (
int d=0;
d<siteDim;
d++) {
61 errorQuda(
"MILC site gauge order only supported for reference fields");
111 for (
int d=0;
d<siteDim;
d++) {
139 errorQuda(
"Cannot request exchange of forward links on non-coarse geometry");
172 errorQuda(
"link_direction = %d not supported", link_direction);
260 if (
this == &
src)
return;
267 errorQuda(
"fat_link_max has not been computed");
276 if (!
src.isNative())
errorQuda(
"Only native order is supported");
280 src.Bytes(), cudaMemcpyDeviceToHost);
319 const_cast<void*>(static_cast<const cpuGaugeField&>(
src).
Gauge_p()));
336 errorQuda(
"Setting gauge pointer is only allowed when create=" 337 "QUDA_REFERENCE_FIELD_CREATE type\n");
346 char **buffer =
new char*[
geometry];
351 backup_h =
reinterpret_cast<char*
>(buffer);
364 char **buffer =
reinterpret_cast<char**
>(
backup_h);
#define qudaMemcpy(dst, src, count, kind)
QudaFieldLocation reorder_location()
Return whether data is reordered on the CPU or GPU. This can set at QUDA initialization using the env...
void extractGaugeGhost(const GaugeField &u, void **ghost, bool extract=true, int offset=0)
void setGauge(void **_gauge)
double maxGauge(const GaugeField &u)
#define pool_pinned_free(ptr)
void copyGenericGauge(GaugeField &out, const GaugeField &in, QudaFieldLocation location, void *Out=0, void *In=0, void **ghostOut=0, void **ghostIn=0, int type=0)
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...
void free_gauge_buffer(void *buffer, QudaGaugeFieldOrder order, QudaFieldGeometry geometry)
enum QudaLinkDirection_s QudaLinkDirection
void free_ghost_buffer(void **buffer, QudaGaugeFieldOrder order, QudaFieldGeometry geometry)
QudaReconstructType reconstruct
QudaFieldGeometry geometry
void comm_free(MsgHandle *mh)
void checkField(const LatticeField &) const
#define comm_declare_send_relative(buffer, dim, dir, nbytes)
#define comm_declare_receive_relative(buffer, dim, dir, nbytes)
MsgHandle * mh_recv_back[2][QUDA_MAX_DIM]
void copy(const GaugeField &src)
void extractExtendedGaugeGhost(const GaugeField &u, int dim, const int *R, void **ghost, bool extract)
void comm_start(MsgHandle *mh)
QudaGhostExchange ghostExchange
void exchange(void **recv, void **send, QudaDirection dir) const
Exchange the buffers across all dimensions in a given direction.
void * create_gauge_buffer(size_t bytes, QudaGaugeFieldOrder order, QudaFieldGeometry geometry)
void restore()
Restores the cpuGaugeField.
const void ** Ghost() const
enum QudaGaugeFieldOrder_s QudaGaugeFieldOrder
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 f...
void * memcpy(void *__dst, const void *__src, size_t __n)
#define safe_malloc(size)
MsgHandle * mh_send_fwd[2][QUDA_MAX_DIM]
cpuGaugeField(const GaugeFieldParam ¶m)
Constructor for cpuGaugeField from a GaugeFieldParam.
void * memset(void *__b, int __c, size_t __len)
int surface[QUDA_MAX_DIM]
#define pool_pinned_malloc(size)
void backup() const
Backs up the cpuGaugeField.
void exchangeGhost(QudaLinkDirection link_direction=QUDA_LINK_BACKWARDS)
Exchange the ghost and store store in the padded region.
void ** create_ghost_buffer(size_t bytes[], QudaGaugeFieldOrder order, QudaFieldGeometry geometry)
enum QudaFieldGeometry_s QudaFieldGeometry
#define QUDA_MAX_DIM
Maximum number of dimensions supported by QUDA. In practice, no routines make use of more than 5...
MsgHandle * mh_recv_fwd[2][QUDA_MAX_DIM]
void comm_wait(MsgHandle *mh)
QudaGaugeFieldOrder order
static __inline__ size_t size_t d
void * ghost[2 *QUDA_MAX_DIM]
MsgHandle * mh_send_back[2][QUDA_MAX_DIM]
void copyExtendedGauge(GaugeField &out, const GaugeField &in, QudaFieldLocation location, void *Out=0, void *In=0)
int comm_dim_partitioned(int dim)