|
QUDA
v1.1.0
A library for QCD on GPUs
|
Accessor routine for CloverFields in native field order. More...
#include <clover_field_order.h>
Public Types | |
| using | Accessor = FloatNOrder< Float, length, N, add_rho, huge_alloc > |
| using | real = typename mapper< Float >::type |
| typedef VectorType< Float, N >::type | Vector |
| typedef AllocType< huge_alloc >::type | AllocInt |
| typedef float | norm_type |
Public Member Functions | |
| FloatNOrder (const CloverField &clover, bool is_inverse, Float *clover_=0, norm_type *norm_=0, bool override=false) | |
| host memory for backing up norm when tuning More... | |
| bool | Twisted () const |
| real | Mu2 () const |
| __device__ __host__ clover_wrapper< real, Accessor > | 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< real, Accessor > | 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 (real v[block], int x, int parity, int chirality) const |
| Load accessor for a single chiral block. More... | |
| __device__ __host__ void | save (const real v[block], int x, int parity, int chirality) |
| Store accessor for a single chiral block. More... | |
| __device__ __host__ void | load (real v[length], int x, int parity) const |
| Load accessor for the clover matrix. More... | |
| __device__ __host__ void | save (const real 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 |
| norm_type * | norm |
| const AllocInt | offset |
| const AllocInt | norm_offset |
| const int | volumeCB |
| const int | stride |
| const bool | twisted |
| const real | mu2 |
| const real | rho |
| 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 |
| add_rho | Whether to add the constant rho onto the diagonal. This is used to enable Hasenbusch mass preconditioning. |
| 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 524 of file clover_field_order.h.
| using quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::Accessor = FloatNOrder<Float, length, N, add_rho, huge_alloc> |
Definition at line 525 of file clover_field_order.h.
| typedef AllocType<huge_alloc>::type quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::AllocInt |
Definition at line 528 of file clover_field_order.h.
| typedef float quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::norm_type |
Definition at line 529 of file clover_field_order.h.
| using quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::real = typename mapper<Float>::type |
Definition at line 526 of file clover_field_order.h.
| typedef VectorType<Float, N>::type quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::Vector |
Definition at line 527 of file clover_field_order.h.
|
inline |
host memory for backing up norm when tuning
Definition at line 548 of file clover_field_order.h.
|
inline |
Definition at line 719 of file clover_field_order.h.
|
inline |
Restore the field from the host after tuning.
Definition at line 707 of file clover_field_order.h.
|
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 610 of file clover_field_order.h.
|
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 674 of file clover_field_order.h.
|
inline |
Definition at line 570 of file clover_field_order.h.
|
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 582 of file clover_field_order.h.
|
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 597 of file clover_field_order.h.
|
inline |
Backup the field to the host when tuning.
Definition at line 694 of file clover_field_order.h.
|
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 634 of file clover_field_order.h.
|
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 686 of file clover_field_order.h.
|
inline |
Definition at line 569 of file clover_field_order.h.
| void* quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::backup_h |
Definition at line 545 of file clover_field_order.h.
| void* quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::backup_norm_h |
host memory for backing up the field when tuning
Definition at line 546 of file clover_field_order.h.
|
static |
Definition at line 531 of file clover_field_order.h.
| size_t quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::bytes |
Definition at line 543 of file clover_field_order.h.
| Float* quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::clover |
Definition at line 532 of file clover_field_order.h.
|
static |
Definition at line 530 of file clover_field_order.h.
| const real quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::mu2 |
Definition at line 540 of file clover_field_order.h.
| norm_type* quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::norm |
Definition at line 533 of file clover_field_order.h.
| size_t quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::norm_bytes |
Definition at line 544 of file clover_field_order.h.
| const AllocInt quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::norm_offset |
Definition at line 535 of file clover_field_order.h.
| const AllocInt quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::offset |
Definition at line 534 of file clover_field_order.h.
| const real quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::rho |
Definition at line 541 of file clover_field_order.h.
| const int quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::stride |
Definition at line 537 of file clover_field_order.h.
| const bool quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::twisted |
Definition at line 539 of file clover_field_order.h.
| const int quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::volumeCB |
Definition at line 536 of file clover_field_order.h.