QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Namespaces | Functions
multi_blas_quda.cu File Reference
#include <stdlib.h>
#include <stdio.h>
#include <cstring>
#include <typeinfo>
#include <tune_quda.h>
#include <blas_quda.h>
#include <color_spinor_field.h>
#include <jitify_helper.cuh>
#include <kernels/multi_blas_core.cuh>
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::detail::to_chars< digits >
 
struct  quda::blas::detail::explode< rem, digits >
 
struct  quda::blas::detail::explode< 0, digits... >
 
struct  quda::blas::num_to_string< num >
 
class  quda::blas::MultiBlas< NXZ, FloatN, M, SpinorX, SpinorY, SpinorZ, SpinorW, Functor, T >
 

Namespaces

 quda
 
 quda::blas
 
 quda::blas::detail
 

Functions

cudaStream_t * quda::blas::getStream ()
 
template<int NXZ, typename RegType , typename StoreType , typename yType , int M, template< int, typename, typename > class Functor, typename write , typename T >
void quda::blas::multiBlas (const coeff_array< T > &a, const coeff_array< T > &b, const coeff_array< T > &c, std::vector< ColorSpinorField *> &x, std::vector< ColorSpinorField *> &y, std::vector< ColorSpinorField *> &z, std::vector< ColorSpinorField *> &w, int length)
 
template<int NXZ, template< int MXZ, typename Float, typename FloatN > class Functor, typename write , typename T >
void quda::blas::multiBlas (const coeff_array< T > &a, const coeff_array< T > &b, const coeff_array< T > &c, CompositeColorSpinorField &x, CompositeColorSpinorField &y, CompositeColorSpinorField &z, CompositeColorSpinorField &w)
 
template<int NXZ, template< int MXZ, typename Float, typename FloatN > class Functor, typename write , typename T >
void quda::blas::mixedMultiBlas (const coeff_array< T > &a, const coeff_array< T > &b, const coeff_array< T > &c, CompositeColorSpinorField &x, CompositeColorSpinorField &y, CompositeColorSpinorField &z, CompositeColorSpinorField &w)
 
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...