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.