QUDA  0.9.0
Classes | Namespaces | Macros | Functions | Variables
multi_blas_quda.cu File Reference
#include <stdlib.h>
#include <stdio.h>
#include <cstring>
#include <typeinfo>
#include <tune_quda.h>
#include <quda_internal.h>
#include <float_vector.h>
#include <blas_quda.h>
#include <color_spinor_field.h>
#include <color_spinor_field_order.h>
#include <texture.h>
#include <multi_blas_core.cuh>
#include <multi_blas_core.h>
#include <multi_blas_mixed_core.h>
Include dependency graph for multi_blas_quda.cu:

Go to the source code of this file.

Classes

struct  quda::blas::write< writeX, writeY, writeZ, writeW >
 
struct  quda::blas::MultiBlasFunctor< NXZ, Float2, FloatN >
 
struct  quda::blas::multicaxpy_< NXZ, Float2, FloatN >
 
struct  quda::blas::multicaxpyz_< NXZ, Float2, FloatN >
 
struct  quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >
 
struct  quda::blas::multi_caxpyBxpz_< NXZ, Float2, FloatN >
 

Namespaces

 quda
 
 quda::blas
 
 quda::blas::multi
 

Macros

#define checkSpinor(a, b)
 
#define checkLength(a, b)
 
#define BLAS_SPINOR
 

Functions

cudaStream_t * quda::blas::getStream ()
 
__device__ __host__ void quda::blas::_caxpy (const float2 &a, const float4 &x, float4 &y)
 
__device__ __host__ void quda::blas::_caxpy (const float2 &a, const float2 &x, float2 &y)
 
__device__ __host__ void quda::blas::_caxpy (const double2 &a, const double2 &x, double2 &y)
 
void quda::blas::caxpy_recurse (const Complex *a_, std::vector< ColorSpinorField *> &x, std::vector< ColorSpinorField *> &y, int i_idx, int j_idx, int upper)
 
void quda::blas::caxpy (const Complex *a, std::vector< ColorSpinorField *> &x, std::vector< ColorSpinorField *> &y)
 Compute the block "caxpy" with over the set of ColorSpinorFields. E.g., it computes. More...
 
void quda::blas::caxpy_U (const Complex *a, std::vector< ColorSpinorField *> &x, std::vector< ColorSpinorField *> &y)
 Compute the block "caxpy_U" with over the set of ColorSpinorFields. E.g., it computes. More...
 
void quda::blas::caxpy_L (const Complex *a, std::vector< ColorSpinorField *> &x, std::vector< ColorSpinorField *> &y)
 Compute the block "caxpy_L" with over the set of ColorSpinorFields. E.g., it computes. More...
 
void quda::blas::caxpy (const Complex *a, ColorSpinorField &x, ColorSpinorField &y)
 This is a wrapper for calling the block "caxpy" with a composite ColorSpinorField. E.g., it computes. More...
 
void quda::blas::caxpy_U (const Complex *a, ColorSpinorField &x, ColorSpinorField &y)
 This is a wrapper for calling the block "caxpy_U" with a composite ColorSpinorField. E.g., it computes. More...
 
void quda::blas::caxpy_L (const Complex *a, ColorSpinorField &x, ColorSpinorField &y)
 This is a wrapper for calling the block "caxpy_U" with a composite ColorSpinorField. E.g., it computes. More...
 
void quda::blas::caxpyz_recurse (const Complex *a_, std::vector< ColorSpinorField *> &x, std::vector< ColorSpinorField *> &y, std::vector< ColorSpinorField *> &z, int i, int j, int pass, int upper)
 
void quda::blas::caxpyz (const Complex *a, std::vector< ColorSpinorField *> &x, std::vector< ColorSpinorField *> &y, std::vector< ColorSpinorField *> &z)
 Compute the block "caxpyz" with over the set of ColorSpinorFields. E.g., it computes. More...
 
void quda::blas::caxpyz_U (const Complex *a, std::vector< ColorSpinorField *> &x, std::vector< ColorSpinorField *> &y, std::vector< ColorSpinorField *> &z)
 Compute the block "caxpyz" with over the set of ColorSpinorFields. E.g., it computes. More...
 
void quda::blas::caxpyz_L (const Complex *a, std::vector< ColorSpinorField *> &x, std::vector< ColorSpinorField *> &y, std::vector< ColorSpinorField *> &z)
 Compute the block "caxpyz" with over the set of ColorSpinorFields. E.g., it computes. More...
 
void quda::blas::caxpyz (const Complex *a, ColorSpinorField &x, ColorSpinorField &y, ColorSpinorField &z)
 This is a wrapper for calling the block "caxpyz" with a composite ColorSpinorField. E.g., it computes. More...
 
void quda::blas::caxpyz_U (const Complex *a, ColorSpinorField &x, ColorSpinorField &y, ColorSpinorField &z)
 This is a wrapper for calling the block "caxpyz" with a composite ColorSpinorField. E.g., it computes. More...
 
void quda::blas::caxpyz_L (const Complex *a, ColorSpinorField &x, ColorSpinorField &y, ColorSpinorField &z)
 This is a wrapper for calling the block "caxpyz" with a composite ColorSpinorField. E.g., it computes. More...
 
void quda::blas::axpyBzpcx (const double *a, std::vector< ColorSpinorField *> &x, std::vector< ColorSpinorField *> &y, const double *b, ColorSpinorField &z, const double *c)
 Compute the vectorized "axpyBzpcx" with over the set of ColorSpinorFields, where the third vector, z, is constant over the batch. E.g., it computes. More...
 
void quda::blas::caxpyBxpz (const Complex *a_, std::vector< ColorSpinorField *> &x_, ColorSpinorField &y_, const Complex *b_, ColorSpinorField &z_)
 Compute the vectorized "caxpyBxpz" over the set of ColorSpinorFields, where the second and third vector, y and z, is constant over the batch. E.g., it computes. More...
 

Variables

struct {
   const char *   quda::blas::vol_str
 
   const char *   quda::blas::aux_str
 
   char   quda::blas::aux_tmp [TuneKey::aux_n]
 
quda::blas::blasStrings
 

Macro Definition Documentation

◆ BLAS_SPINOR

#define BLAS_SPINOR

Definition at line 36 of file multi_blas_quda.cu.

◆ checkLength

#define checkLength (   a,
  b 
)
Value:
{ \
if (a.Length() != b.Length()) \
errorQuda("lengths do not match: %lu %lu", 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:90
#define b
#define a

Definition at line 23 of file multi_blas_quda.cu.

◆ checkSpinor

#define checkSpinor (   a,
  b 
)
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: %lu %lu", 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:90
#define b
#define a

Definition at line 13 of file multi_blas_quda.cu.