Cutlass CUDA Templates for Linear Algebra Subroutines and Solvers

Classes | Public Types | Public Member Functions | Public Attributes | List of all members
cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ > Struct Template Reference

Functor to compute linear combination of fragments.

`#include <linear_scaling.h>`

Inheritance diagram for cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >:

## Classes
struct | Params
| The parameters. More...

## Public Types
typedef Scalar_ | Scalar
typedef FragmentMultiplyAdd_::ScalarAccum | ScalarAccum
typedef FragmentMultiplyAdd_ | FragmentMultiplyAdd

## Public Member Functions
CUTLASS_DEVICE | LinearScaling ()
| Ctor. More...
CUTLASS_DEVICE | LinearScaling (Params const &_params)
| Ctor. More...
CUTLASS_DEVICE bool | source_required () const
template<typename FragmentA_ , typename FragmentB_ >
CUTLASS_DEVICE void | evaluate (FragmentA_ const &accum, FragmentB_ &output)
| Evaluate the functor. More...
template<typename ScalarAccum , typename ScalarOutput , int size>
CUTLASS_DEVICE void | evaluate (ScalarAccum const *accum, ScalarOutput *output)
| Evaluate the functor, without using fragment in the API. More...
template<typename FragmentA_ , typename FragmentB_ >
CUTLASS_DEVICE void | evaluate (FragmentA_ const &accum, FragmentB_ const &old, FragmentB_ &output)
| Evaluate the functor. More...
template<typename ScalarAccum , typename ScalarOutput , int size>
CUTLASS_DEVICE void | evaluate (ScalarAccum const *accum, ScalarOutput const *old, ScalarOutput *output)
| Evaluate the functor, without using fragment in the API. More...

## Public Attributes
Params | params

## Member Typedef Documentation

## ◆ FragmentMultiplyAdd

template<typename Scalar_, typename FragmentMultiplyAdd_ = FragmentMultiplyAdd<Scalar_, Scalar_>>

typedef FragmentMultiplyAdd_ cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::FragmentMultiplyAdd

## ◆ Scalar

template<typename Scalar_, typename FragmentMultiplyAdd_ = FragmentMultiplyAdd<Scalar_, Scalar_>>

typedef Scalar_ cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::Scalar

## ◆ ScalarAccum

template<typename Scalar_, typename FragmentMultiplyAdd_ = FragmentMultiplyAdd<Scalar_, Scalar_>>

typedef FragmentMultiplyAdd_::ScalarAccum cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::ScalarAccum

## Constructor & Destructor Documentation

## ◆ LinearScaling() [1/2]

template<typename Scalar_, typename FragmentMultiplyAdd_ = FragmentMultiplyAdd<Scalar_, Scalar_>>

CUTLASS_DEVICE cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::LinearScaling | ( |  | ) |
| inline

## ◆ LinearScaling() [2/2]

template<typename Scalar_, typename FragmentMultiplyAdd_ = FragmentMultiplyAdd<Scalar_, Scalar_>>

CUTLASS_DEVICE cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::LinearScaling | ( | Params const & | _params | ) |
| inline

## Member Function Documentation

## ◆ evaluate() [1/4]

template<typename Scalar_, typename FragmentMultiplyAdd_ = FragmentMultiplyAdd<Scalar_, Scalar_>>
template<typename FragmentA_ , typename FragmentB_ >

CUTLASS_DEVICE void cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::evaluate | ( | FragmentA_ const & | accum,
|  | FragmentB_ & | output
| ) |  |
| inline

## ◆ evaluate() [2/4]

template<typename Scalar_, typename FragmentMultiplyAdd_ = FragmentMultiplyAdd<Scalar_, Scalar_>>
template<typename ScalarAccum , typename ScalarOutput , int size>

CUTLASS_DEVICE void cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::evaluate | ( | ScalarAccum const * | accum,
|  | ScalarOutput * | output
| ) |  |
| inline

## ◆ evaluate() [3/4]

template<typename Scalar_, typename FragmentMultiplyAdd_ = FragmentMultiplyAdd<Scalar_, Scalar_>>
template<typename FragmentA_ , typename FragmentB_ >

CUTLASS_DEVICE void cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::evaluate | ( | FragmentA_ const & | accum,
|  | FragmentB_ const & | old,
|  | FragmentB_ & | output
| ) |  |
| inline

## ◆ evaluate() [4/4]

template<typename Scalar_, typename FragmentMultiplyAdd_ = FragmentMultiplyAdd<Scalar_, Scalar_>>
template<typename ScalarAccum , typename ScalarOutput , int size>

CUTLASS_DEVICE void cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::evaluate | ( | ScalarAccum const * | accum,
|  | ScalarOutput const * | old,
|  | ScalarOutput * | output
| ) |  |
| inline

## ◆ source_required()

template<typename Scalar_, typename FragmentMultiplyAdd_ = FragmentMultiplyAdd<Scalar_, Scalar_>>

CUTLASS_DEVICE bool cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::source_required | ( |  | ) | const
| inline

Method to determine whether the source accumulator matrix C is ever needed. This method may always safely return true, though better performance is possible if the source accumulator matrix is never loaded unnecessarily.

## Member Data Documentation

## ◆ params

template<typename Scalar_, typename FragmentMultiplyAdd_ = FragmentMultiplyAdd<Scalar_, Scalar_>>

Params cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::params

The documentation for this struct was generated from the following file:

- linear_scaling.h