QUDA
1.0.0
|
Public Types | |
typedef scalar< ReduceType >::type | real |
Public Member Functions | |
HeavyQuarkResidualNorm_ (const Float2 &a, const Float2 &b) | |
__device__ __host__ void | pre () |
pre-computation routine called before the "M-loop" More... | |
__device__ __host__ void | operator() (ReduceType &sum, FloatN &x, FloatN &y, FloatN &z, FloatN &w, FloatN &v) |
where the reduction is usually computed and any auxiliary operations More... | |
__device__ __host__ void | post (ReduceType &sum) |
sum the solution and residual norms, and compute the heavy-quark norm More... | |
Static Public Member Functions | |
static int | streams () |
static int | flops () |
total number of input and output streams More... | |
Public Attributes | |
Float2 | a |
Float2 | b |
ReduceType | aux |
This kernel returns (x, x) and (r,r) and also returns the so-called heavy quark norm as used by MILC: 1 / N * (r, r)_i / (x, x)_i, where i is site index and N is the number of sites. When this kernel is launched, we must enforce that the parameter M in the launcher corresponds to the number of FloatN fields used to represent the spinor, e.g., M=6 for Wilson and M=3 for staggered. This is only the case for half-precision kernels by default. To enable this, the siteUnroll template parameter must be set true when reduceCuda is instantiated.
Definition at line 471 of file reduce_core.cuh.
typedef scalar<ReduceType>::type quda::blas::HeavyQuarkResidualNorm_< ReduceType, Float2, FloatN >::real |
Definition at line 472 of file reduce_core.cuh.
|
inline |
Definition at line 476 of file reduce_core.cuh.
|
inlinestatic |
total number of input and output streams
Definition at line 499 of file reduce_core.cuh.
|
inlinevirtual |
where the reduction is usually computed and any auxiliary operations
Implements quda::blas::ReduceFunctor< ReduceType, Float2, FloatN >.
Definition at line 484 of file reduce_core.cuh.
|
inlinevirtual |
sum the solution and residual norms, and compute the heavy-quark norm
Reimplemented from quda::blas::ReduceFunctor< ReduceType, Float2, FloatN >.
Definition at line 491 of file reduce_core.cuh.
|
inlinevirtual |
pre-computation routine called before the "M-loop"
Reimplemented from quda::blas::ReduceFunctor< ReduceType, Float2, FloatN >.
Definition at line 478 of file reduce_core.cuh.
|
inlinestatic |
Definition at line 498 of file reduce_core.cuh.
Float2 quda::blas::HeavyQuarkResidualNorm_< ReduceType, Float2, FloatN >::a |
Definition at line 473 of file reduce_core.cuh.
ReduceType quda::blas::HeavyQuarkResidualNorm_< ReduceType, Float2, FloatN >::aux |
Definition at line 475 of file reduce_core.cuh.
Float2 quda::blas::HeavyQuarkResidualNorm_< ReduceType, Float2, FloatN >::b |
Definition at line 474 of file reduce_core.cuh.