|
QUDA
0.9.0
|
Accessor routine for CloverFields in native field order. More...
#include <clover_field_order.h>
Public Types | |
| typedef mapper< Float >::type | RegType |
| typedef VectorType< Float, N >::type | Vector |
| typedef AllocType< huge_alloc >::type | AllocInt |
Public Member Functions | |
| FloatNOrder (const CloverField &clover, bool is_inverse, Float *clover_=0, float *norm_=0, bool override=false) | |
| host memory for backing up norm when tuning More... | |
| bool | Twisted () const |
| Float | Mu2 () const |
| __device__ __host__ clover_wrapper< RegType, FloatNOrder< Float, length, N > > | operator() (int x_cb, int parity, int chirality) |
| This accessor routine returns a clover_wrapper to this object, allowing us to overload various operators for manipulating at the site level interms of matrix operations. More... | |
| __device__ __host__ const clover_wrapper< RegType, FloatNOrder< Float, length, N > > | operator() (int x_cb, int parity, int chirality) const |
| This accessor routine returns a const colorspinor_wrapper to this object, allowing us to overload various operators for manipulating at the site level interms of matrix operations. More... | |
| __device__ __host__ void | load (RegType v[block], int x, int parity, int chirality) const |
| Load accessor for a single chiral block. More... | |
| __device__ __host__ void | save (const RegType v[block], int x, int parity, int chirality) |
| Store accessor for a single chiral block. More... | |
| __device__ __host__ void | load (RegType v[length], int x, int parity) const |
| Load accessor for the clover matrix. More... | |
| __device__ __host__ void | save (const RegType v[length], int x, int parity) |
| Store accessor for the clover matrix. More... | |
| void | save () |
| Backup the field to the host when tuning. More... | |
| void | load () |
| Restore the field from the host after tuning. More... | |
| size_t | Bytes () const |
Public Attributes | |
| Float * | clover |
| float * | norm |
| const AllocInt | offset |
| const AllocInt | norm_offset |
| const int | volumeCB |
| const int | stride |
| const bool | twisted |
| const Float | mu2 |
| size_t | bytes |
| size_t | norm_bytes |
| void * | backup_h |
| void * | backup_norm_h |
| host memory for backing up the field when tuning More... | |
Static Public Attributes | |
| static const int | M =length/(N*2) |
| static const int | block =length/2 |
Accessor routine for CloverFields in native field order.
| Float | Underlying storage data type of the field |
| length | Total number of elements per packed clover matrix (e.g., 72) |
| N | Number of real numbers per short vector |
| huge_alloc | Template parameter that enables 64-bit pointer arithmetic for huge allocations (e.g., packed set of vectors). Default is to use 32-bit pointer arithmetic. |
Definition at line 367 of file clover_field_order.h.
| typedef AllocType<huge_alloc>::type quda::clover::FloatNOrder< Float, length, N, huge_alloc >::AllocInt |
Definition at line 370 of file clover_field_order.h.
| typedef mapper<Float>::type quda::clover::FloatNOrder< Float, length, N, huge_alloc >::RegType |
Definition at line 368 of file clover_field_order.h.
| typedef VectorType<Float,N>::type quda::clover::FloatNOrder< Float, length, N, huge_alloc >::Vector |
Definition at line 369 of file clover_field_order.h.
|
inline |
host memory for backing up norm when tuning
Definition at line 394 of file clover_field_order.h.
References quda::clover::FloatNOrder< Float, length, N, huge_alloc >::clover, errorQuda, QUDA_CUDA_FIELD_LOCATION, QUDA_HALF_PRECISION, and tex.
|
inline |
Definition at line 581 of file clover_field_order.h.
References quda::clover::FloatNOrder< Float, length, N, huge_alloc >::bytes, float, and length.
|
inline |
Load accessor for a single chiral block.
| [out] | v | Vector of loaded elements |
| [in] | x | Checkerboarded site index |
| [in] | parity | Field parity |
| [in] | chirality | Chiral block index |
Definition at line 463 of file clover_field_order.h.
References quda::clover::FloatNOrder< Float, length, N, huge_alloc >::block, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::clover, fused_exterior_ndeg_tm_dslash_cuda_gen::i, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::M, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::norm, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::norm_offset, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::offset, parity, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::stride, tex, and x.
|
inline |
Load accessor for the clover matrix.
| [out] | v | Vector of loaded elements |
| [in] | x | Checkerboarded site index |
| [in] | parity | Field parity |
| [in] | chirality | Chiral block index |
Definition at line 535 of file clover_field_order.h.
References quda::clover::FloatNOrder< Float, length, N, huge_alloc >::load(), parity, and x.

|
inline |
Restore the field from the host after tuning.
Definition at line 569 of file clover_field_order.h.
References quda::clover::FloatNOrder< Float, length, N, huge_alloc >::backup_h, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::backup_norm_h, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::bytes, checkCudaError, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::clover, host_free, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::norm, and quda::clover::FloatNOrder< Float, length, N, huge_alloc >::norm_bytes.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::load().

|
inline |
Definition at line 423 of file clover_field_order.h.
References quda::clover::FloatNOrder< Float, length, N, huge_alloc >::mu2.
|
inline |
This accessor routine returns a clover_wrapper to this object, allowing us to overload various operators for manipulating at the site level interms of matrix operations.
| [in] | x_cb | Checkerboarded space-time index we are requesting |
| [in] | parity | Parity we are requesting |
| [in] | chirality | Chirality we are requesting |
Definition at line 436 of file clover_field_order.h.
References parity.
|
inline |
This accessor routine returns a const colorspinor_wrapper to this object, allowing us to overload various operators for manipulating at the site level interms of matrix operations.
| [in] | x_cb | Checkerboarded space-time index we are requesting |
| [in] | parity | Parity we are requesting |
| [in] | chirality | Chirality we are requesting |
Definition at line 451 of file clover_field_order.h.
References parity.
|
inline |
Store accessor for a single chiral block.
| [out] | v | Vector of elements to be stored |
| [in] | x | Checkerboarded site index |
| [in] | parity | Field parity |
| [in] | chirality | Chiral block index |
Definition at line 502 of file clover_field_order.h.
References quda::clover::FloatNOrder< Float, length, N, huge_alloc >::clover, fabs(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::M, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::norm, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::norm_offset, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::offset, parity, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::stride, quda::vector_store(), and x.

|
inline |
Store accessor for the clover matrix.
| [out] | v | Vector of elements to be stored |
| [in] | x | Checkerboarded site index |
| [in] | parity | Field parity |
| [in] | chirality | Chiral block index |
Definition at line 547 of file clover_field_order.h.
References parity, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::save(), and x.

|
inline |
Backup the field to the host when tuning.
Definition at line 555 of file clover_field_order.h.
References quda::clover::FloatNOrder< Float, length, N, huge_alloc >::backup_h, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::backup_norm_h, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::bytes, checkCudaError, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::clover, errorQuda, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::norm, quda::clover::FloatNOrder< Float, length, N, huge_alloc >::norm_bytes, and safe_malloc.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::save().

|
inline |
Definition at line 422 of file clover_field_order.h.
References quda::clover::FloatNOrder< Float, length, N, huge_alloc >::twisted.
| void* quda::clover::FloatNOrder< Float, length, N, huge_alloc >::backup_h |
Definition at line 391 of file clover_field_order.h.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::load(), and quda::clover::FloatNOrder< Float, length, N, huge_alloc >::save().
| void* quda::clover::FloatNOrder< Float, length, N, huge_alloc >::backup_norm_h |
host memory for backing up the field when tuning
Definition at line 392 of file clover_field_order.h.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::load(), and quda::clover::FloatNOrder< Float, length, N, huge_alloc >::save().
|
static |
Definition at line 372 of file clover_field_order.h.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::load().
| size_t quda::clover::FloatNOrder< Float, length, N, huge_alloc >::bytes |
| Float* quda::clover::FloatNOrder< Float, length, N, huge_alloc >::clover |
|
static |
Definition at line 371 of file clover_field_order.h.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::load(), and quda::clover::FloatNOrder< Float, length, N, huge_alloc >::save().
| const Float quda::clover::FloatNOrder< Float, length, N, huge_alloc >::mu2 |
Definition at line 387 of file clover_field_order.h.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::Mu2().
| float* quda::clover::FloatNOrder< Float, length, N, huge_alloc >::norm |
Definition at line 374 of file clover_field_order.h.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::load(), and quda::clover::FloatNOrder< Float, length, N, huge_alloc >::save().
| size_t quda::clover::FloatNOrder< Float, length, N, huge_alloc >::norm_bytes |
Definition at line 390 of file clover_field_order.h.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::load(), and quda::clover::FloatNOrder< Float, length, N, huge_alloc >::save().
| const AllocInt quda::clover::FloatNOrder< Float, length, N, huge_alloc >::norm_offset |
Definition at line 376 of file clover_field_order.h.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::load(), and quda::clover::FloatNOrder< Float, length, N, huge_alloc >::save().
| const AllocInt quda::clover::FloatNOrder< Float, length, N, huge_alloc >::offset |
Definition at line 375 of file clover_field_order.h.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::load(), and quda::clover::FloatNOrder< Float, length, N, huge_alloc >::save().
| const int quda::clover::FloatNOrder< Float, length, N, huge_alloc >::stride |
Definition at line 384 of file clover_field_order.h.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::load(), and quda::clover::FloatNOrder< Float, length, N, huge_alloc >::save().
| const bool quda::clover::FloatNOrder< Float, length, N, huge_alloc >::twisted |
Definition at line 386 of file clover_field_order.h.
Referenced by quda::clover::FloatNOrder< Float, length, N, huge_alloc >::Twisted().
| const int quda::clover::FloatNOrder< Float, length, N, huge_alloc >::volumeCB |
Definition at line 383 of file clover_field_order.h.
1.8.14