QUDA  v0.7.0
A library for QCD on GPUs
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Macros | Functions
reduce_quda.cu File Reference
#include <blas_quda.h>
#include <tune_quda.h>
#include <float_vector.h>
#include <double_single.h>
#include <texture.h>
#include <reduce_core.h>
#include <reduce_mixed_core.h>

Go to the source code of this file.

Classes

struct  quda::ReduceFunctor< ReduceType, Float2, FloatN >
 
struct  quda::Norm2< ReduceType, Float2, FloatN >
 
struct  quda::Dot< ReduceType, Float2, FloatN >
 
struct  quda::DotNormA< ReduceType, Float2, FloatN >
 
struct  quda::axpyNorm2< ReduceType, Float2, FloatN >
 
struct  quda::xmyNorm2< ReduceType, Float2, FloatN >
 
struct  quda::caxpyNorm2< ReduceType, Float2, FloatN >
 
struct  quda::caxpyxmaznormx< ReduceType, Float2, FloatN >
 
struct  quda::cabxpyaxnorm< ReduceType, Float2, FloatN >
 
struct  quda::Cdot< ReduceType, Float2, FloatN >
 
struct  quda::xpaycdotzy< ReduceType, Float2, FloatN >
 
struct  quda::caxpydotzy< ReduceType, Float2, FloatN >
 
struct  quda::CdotNormA< ReduceType, Float2, FloatN >
 
struct  quda::CdotNormB< ReduceType, Float2, FloatN >
 
struct  quda::caxpbypzYmbwcDotProductUYNormY< ReduceType, Float2, FloatN >
 
struct  quda::axpyCGNorm2< ReduceType, Float2, FloatN >
 
struct  quda::tripleCGReduction< ReduceType, Float2, FloatN >
 

Namespaces

 quda
 
 quda::reduce
 

Macros

#define QudaSumFloat   doublesingle
 
#define QudaSumFloat2   doublesingle2
 
#define QudaSumFloat3   doublesingle3
 
#define REDUCE_MAX_BLOCKS   65536
 
#define checkSpinor(a, b)
 
#define checkLength(a, b)
 

Functions

cudaStream_t * quda::getBlasStream ()
 
void quda::initReduce ()
 
void quda::endReduce ()
 
__device__ double quda::norm2_ (const double2 &a)
 
__device__ float quda::norm2_ (const float2 &a)
 
__device__ float quda::norm2_ (const float4 &a)
 
double quda::normCuda (const cudaColorSpinorField &b)
 
__device__ double quda::dot_ (const double2 &a, const double2 &b)
 
__device__ float quda::dot_ (const float2 &a, const float2 &b)
 
__device__ float quda::dot_ (const float4 &a, const float4 &b)
 
double quda::reDotProductCuda (cudaColorSpinorField &a, cudaColorSpinorField &b)
 
void quda::reDotProductCuda (double *result, std::vector< cudaColorSpinorField * > &a, std::vector< cudaColorSpinorField * > &b)
 
__device__ double2 quda::dotNormA_ (const double2 &a, const double2 &b)
 
__device__ double2 quda::dotNormA_ (const float2 &a, const float2 &b)
 
__device__ double2 quda::dotNormA_ (const float4 &a, const float4 &b)
 
double2 quda::reDotProductNormACuda (cudaColorSpinorField &a, cudaColorSpinorField &b)
 
double quda::axpyNormCuda (const double &a, cudaColorSpinorField &x, cudaColorSpinorField &y)
 
double quda::xmyNormCuda (cudaColorSpinorField &a, cudaColorSpinorField &b)
 
__device__ void quda::Caxpy_ (const float2 &a, const float4 &x, float4 &y)
 
__device__ void quda::Caxpy_ (const float2 &a, const float2 &x, float2 &y)
 
__device__ void quda::Caxpy_ (const double2 &a, const double2 &x, double2 &y)
 
double quda::caxpyNormCuda (const Complex &a, cudaColorSpinorField &x, cudaColorSpinorField &y)
 
double quda::caxpyXmazNormXCuda (const Complex &a, cudaColorSpinorField &x, cudaColorSpinorField &y, cudaColorSpinorField &z)
 
double quda::cabxpyAxNormCuda (const double &a, const Complex &b, cudaColorSpinorField &x, cudaColorSpinorField &y)
 
__device__ double2 quda::cdot_ (const double2 &a, const double2 &b)
 
__device__ double2 quda::cdot_ (const float2 &a, const float2 &b)
 
__device__ double2 quda::cdot_ (const float4 &a, const float4 &b)
 
Complex quda::cDotProductCuda (cudaColorSpinorField &, cudaColorSpinorField &)
 
void quda::cDotProductCuda (Complex *result, std::vector< cudaColorSpinorField * > &a, std::vector< cudaColorSpinorField * > &b)
 
Complex quda::xpaycDotzyCuda (cudaColorSpinorField &x, const double &a, cudaColorSpinorField &y, cudaColorSpinorField &z)
 
Complex quda::caxpyDotzyCuda (const Complex &a, cudaColorSpinorField &x, cudaColorSpinorField &y, cudaColorSpinorField &z)
 
__device__ double3 quda::cdotNormA_ (const double2 &a, const double2 &b)
 
__device__ double3 quda::cdotNormA_ (const float2 &a, const float2 &b)
 
__device__ double3 quda::cdotNormA_ (const float4 &a, const float4 &b)
 
double3 quda::cDotProductNormACuda (cudaColorSpinorField &a, cudaColorSpinorField &b)
 
__device__ double3 quda::cdotNormB_ (const double2 &a, const double2 &b)
 
__device__ double3 quda::cdotNormB_ (const float2 &a, const float2 &b)
 
__device__ double3 quda::cdotNormB_ (const float4 &a, const float4 &b)
 
double3 quda::cDotProductNormBCuda (cudaColorSpinorField &a, cudaColorSpinorField &b)
 
double3 quda::caxpbypzYmbwcDotProductUYNormYCuda (const Complex &a, cudaColorSpinorField &x, const Complex &b, cudaColorSpinorField &y, cudaColorSpinorField &z, cudaColorSpinorField &w, cudaColorSpinorField &u)
 
Complex quda::axpyCGNormCuda (const double &a, cudaColorSpinorField &x, cudaColorSpinorField &y)
 
double3 quda::HeavyQuarkResidualNormCuda (cudaColorSpinorField &x, cudaColorSpinorField &r)
 
double3 quda::xpyHeavyQuarkResidualNormCuda (cudaColorSpinorField &x, cudaColorSpinorField &y, cudaColorSpinorField &r)
 
double3 quda::tripleCGReductionCuda (cudaColorSpinorField &x, cudaColorSpinorField &y, cudaColorSpinorField &z)
 

Macro Definition Documentation

#define checkLength (   a,
 
)
Value:
{ \
if (a.Length() != b.Length()) \
errorQuda("lengths do not match: %d %d", a.Length(), b.Length()); \
if (a.Stride() != b.Stride()) \
errorQuda("strides do not match: %d %d", a.Stride(), b.Stride()); \
}
#define errorQuda(...)
Definition: util_quda.h:73
if(x2 >=X2) return

Definition at line 28 of file reduce_quda.cu.

#define checkSpinor (   a,
 
)
Value:
{ \
if (a.Precision() != b.Precision()) \
errorQuda("precisions do not match: %d %d", a.Precision(), b.Precision()); \
if (a.Length() != b.Length()) \
errorQuda("lengths do not match: %d %d", a.Length(), b.Length()); \
if (a.Stride() != b.Stride()) \
errorQuda("strides do not match: %d %d", a.Stride(), b.Stride()); \
}
#define errorQuda(...)
Definition: util_quda.h:73
if(x2 >=X2) return

Definition at line 18 of file reduce_quda.cu.

#define QudaSumFloat   doublesingle

Definition at line 10 of file reduce_quda.cu.

#define QudaSumFloat2   doublesingle2

Definition at line 11 of file reduce_quda.cu.

#define QudaSumFloat3   doublesingle3

Definition at line 12 of file reduce_quda.cu.

#define REDUCE_MAX_BLOCKS   65536

Definition at line 16 of file reduce_quda.cu.

Variable Documentation

const char* aux_str

Definition at line 38 of file reduce_quda.cu.

char aux_tmp[quda::TuneKey::aux_n]

Definition at line 39 of file reduce_quda.cu.

const char* vol_str

Definition at line 37 of file reduce_quda.cu.