QUDA  0.9.0
Classes | Namespaces | Macros | Functions | Variables
reduce_quda.cu File Reference
#include <blas_quda.h>
#include <tune_quda.h>
#include <float_vector.h>
#include <color_spinor_field_order.h>
#include <cub_helper.cuh>
#include <algorithm>
#include <texture.h>
#include <reduce_core.cuh>
#include <reduce_core.h>
#include <reduce_mixed_core.h>
Include dependency graph for reduce_quda.cu:

Go to the source code of this file.

Classes

struct  ScalarType< typename >
 
struct  ScalarType< double >
 
struct  ScalarType< double2 >
 
struct  ScalarType< double3 >
 
struct  ScalarType< double4 >
 
struct  Vec2Type< typename >
 
struct  Vec2Type< double >
 
struct  quda::blas::ReduceFunctor< ReduceType, Float2, FloatN >
 
struct  quda::blas::Norm1< ReduceType, Float2, FloatN >
 
struct  quda::blas::Norm2< ReduceType, Float2, FloatN >
 
struct  quda::blas::Dot< NXZ, ReduceType, Float2, FloatN >
 
struct  quda::blas::DotNormA< ReduceType, Float2, FloatN >
 
struct  quda::blas::axpyNorm2< ReduceType, Float2, FloatN >
 
struct  quda::blas::AxpyReDot< ReduceType, Float2, FloatN >
 
struct  quda::blas::xmyNorm2< ReduceType, Float2, FloatN >
 
struct  quda::blas::caxpyNorm2< ReduceType, Float2, FloatN >
 
struct  quda::blas::caxpyxmaznormx< ReduceType, Float2, FloatN >
 
struct  quda::blas::cabxpyaxnorm< ReduceType, Float2, FloatN >
 
struct  quda::blas::Cdot< NXZ, ReduceType, Float2, FloatN >
 
struct  quda::blas::xpaycdotzy< ReduceType, Float2, FloatN >
 
struct  quda::blas::caxpydotzy< ReduceType, Float2, FloatN >
 
struct  quda::blas::CdotNormA< ReduceType, Float2, FloatN >
 
struct  quda::blas::CdotNormB< ReduceType, Float2, FloatN >
 
struct  quda::blas::caxpbypzYmbwcDotProductUYNormY_< ReduceType, Float2, FloatN >
 
struct  quda::blas::axpyCGNorm2< ReduceType, Float2, FloatN >
 
struct  quda::blas::HeavyQuarkResidualNorm_< ReduceType, Float2, FloatN >
 
struct  quda::blas::xpyHeavyQuarkResidualNorm_< ReduceType, Float2, FloatN >
 
struct  quda::blas::tripleCGReduction_< ReduceType, Float2, FloatN >
 

Namespaces

 quda
 
 quda::blas
 
 quda::blas::reduce
 

Macros

#define QudaSumFloat   double
 
#define QudaSumFloat2   double2
 
#define QudaSumFloat3   double3
 
#define QudaSumFloat4   double4
 

Functions

void checkSpinor (const ColorSpinorField &a, const ColorSpinorField &b)
 
void checkLength (const ColorSpinorField &a, ColorSpinorField &b)
 
cudaStream_t * quda::blas::getStream ()
 
void * quda::blas::getDeviceReduceBuffer ()
 
void * quda::blas::getMappedHostReduceBuffer ()
 
void * quda::blas::getHostReduceBuffer ()
 
cudaEvent_t * quda::blas::getReduceEvent ()
 
void quda::blas::initReduce ()
 
void quda::blas::endReduce ()
 
template<typename ReduceType >
__device__ __host__ ReduceType quda::blas::norm1_ (const double2 &a)
 
template<typename ReduceType >
__device__ __host__ ReduceType quda::blas::norm1_ (const float2 &a)
 
template<typename ReduceType >
__device__ __host__ ReduceType quda::blas::norm1_ (const float4 &a)
 
double quda::blas::norm1 (const ColorSpinorField &b)
 
template<typename ReduceType >
__device__ __host__ void quda::blas::norm2_ (ReduceType &sum, const double2 &a)
 
template<typename ReduceType >
__device__ __host__ void quda::blas::norm2_ (ReduceType &sum, const float2 &a)
 
template<typename ReduceType >
__device__ __host__ void quda::blas::norm2_ (ReduceType &sum, const float4 &a)
 
double quda::blas::norm2 (const ColorSpinorField &a)
 
template<typename ReduceType >
__device__ __host__ void quda::blas::dot_ (ReduceType &sum, const double2 &a, const double2 &b)
 
template<typename ReduceType >
__device__ __host__ void quda::blas::dot_ (ReduceType &sum, const float2 &a, const float2 &b)
 
template<typename ReduceType >
__device__ __host__ void quda::blas::dot_ (ReduceType &sum, const float4 &a, const float4 &b)
 
double quda::blas::reDotProduct (ColorSpinorField &x, ColorSpinorField &y)
 
template<typename ReduceType , typename InputType >
__device__ __host__ ReduceType quda::blas::dotNormA_ (const InputType &a, const InputType &b)
 
double2 quda::blas::reDotProductNormA (ColorSpinorField &a, ColorSpinorField &b)
 
double quda::blas::axpyNorm (const double &a, ColorSpinorField &x, ColorSpinorField &y)
 
double quda::blas::axpyReDot (const double &a, ColorSpinorField &x, ColorSpinorField &y)
 
double quda::blas::xmyNorm (ColorSpinorField &x, ColorSpinorField &y)
 
__device__ __host__ void quda::blas::Caxpy_ (const double2 &a, const double2 &x, double2 &y)
 
__device__ __host__ void quda::blas::Caxpy_ (const float2 &a, const float2 &x, float2 &y)
 
__device__ __host__ void quda::blas::Caxpy_ (const float2 &a, const float4 &x, float4 &y)
 
double quda::blas::caxpyNorm (const Complex &a, ColorSpinorField &x, ColorSpinorField &y)
 
double quda::blas::caxpyXmazNormX (const Complex &a, ColorSpinorField &x, ColorSpinorField &y, ColorSpinorField &z)
 
double quda::blas::cabxpyAxNorm (const double &a, const Complex &b, ColorSpinorField &x, ColorSpinorField &y)
 
template<typename ReduceType >
__device__ __host__ void quda::blas::cdot_ (ReduceType &sum, const double2 &a, const double2 &b)
 
template<typename ReduceType >
__device__ __host__ void quda::blas::cdot_ (ReduceType &sum, const float2 &a, const float2 &b)
 
template<typename ReduceType >
__device__ __host__ void quda::blas::cdot_ (ReduceType &sum, const float4 &a, const float4 &b)
 
Complex quda::blas::cDotProduct (ColorSpinorField &, ColorSpinorField &)
 
Complex quda::blas::xpaycDotzy (ColorSpinorField &x, const double &a, ColorSpinorField &y, ColorSpinorField &z)
 
Complex quda::blas::caxpyDotzy (const Complex &a, ColorSpinorField &x, ColorSpinorField &y, ColorSpinorField &z)
 
template<typename ReduceType , typename InputType >
__device__ __host__ void quda::blas::cdotNormA_ (ReduceType &sum, const InputType &a, const InputType &b)
 
double3 quda::blas::cDotProductNormA (ColorSpinorField &a, ColorSpinorField &b)
 
template<typename ReduceType , typename InputType >
__device__ __host__ void quda::blas::cdotNormB_ (ReduceType &sum, const InputType &a, const InputType &b)
 
double3 quda::blas::cDotProductNormB (ColorSpinorField &a, ColorSpinorField &b)
 
double3 quda::blas::caxpbypzYmbwcDotProductUYNormY (const Complex &a, ColorSpinorField &x, const Complex &b, ColorSpinorField &y, ColorSpinorField &z, ColorSpinorField &w, ColorSpinorField &u)
 
Complex quda::blas::axpyCGNorm (const double &a, ColorSpinorField &x, ColorSpinorField &y)
 
double3 quda::blas::HeavyQuarkResidualNorm (ColorSpinorField &x, ColorSpinorField &r)
 
double3 quda::blas::xpyHeavyQuarkResidualNorm (ColorSpinorField &x, ColorSpinorField &y, ColorSpinorField &r)
 
double3 quda::blas::tripleCGReduction (ColorSpinorField &x, ColorSpinorField &y, ColorSpinorField &z)
 

Variables

struct {
   const char *   vol_str
 
   const char *   aux_str
 
   char   aux_tmp [quda::TuneKey::aux_n]
 
blasStrings
 
static QudaSumFloatd_reduce =0
 
static QudaSumFloath_reduce =0
 
static QudaSumFloathd_reduce =0
 
static cudaEvent_t reduceEnd
 

Macro Definition Documentation

◆ QudaSumFloat

#define QudaSumFloat   double

Definition at line 33 of file reduce_quda.cu.

Referenced by quda::blas::initReduce().

◆ QudaSumFloat2

#define QudaSumFloat2   double2

Definition at line 34 of file reduce_quda.cu.

◆ QudaSumFloat3

#define QudaSumFloat3   double3

Definition at line 35 of file reduce_quda.cu.

◆ QudaSumFloat4

#define QudaSumFloat4   double4

Definition at line 36 of file reduce_quda.cu.

Function Documentation

◆ checkLength()

void checkLength ( const ColorSpinorField a,
ColorSpinorField b 
)

Definition at line 49 of file reduce_quda.cu.

References a, b, and errorQuda.

Referenced by blasCuda(), and reduceCuda().

Here is the caller graph for this function:

◆ checkSpinor()

void checkSpinor ( const ColorSpinorField a,
const ColorSpinorField b 
)

Definition at line 40 of file reduce_quda.cu.

References a, b, and errorQuda.

Referenced by multiReduceCuda().

Here is the caller graph for this function:

Variable Documentation

◆ aux_str

const char* aux_str

Definition at line 58 of file reduce_quda.cu.

◆ aux_tmp

char aux_tmp[quda::TuneKey::aux_n]

Definition at line 59 of file reduce_quda.cu.

◆ blasStrings

struct { ... } blasStrings

◆ d_reduce

QudaSumFloat* d_reduce =0
static

◆ h_reduce

QudaSumFloat* h_reduce =0
static

◆ hd_reduce

QudaSumFloat* hd_reduce =0
static

◆ reduceEnd

cudaEvent_t reduceEnd
static

◆ vol_str

const char* vol_str

Definition at line 57 of file reduce_quda.cu.