Cutlass CUDA Templates for Linear Algebra Subroutines and Solvers

Public Types | Public Member Functions | List of all members
cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int > Struct Template Reference

Template performing matrix multiply-add operation within a thread.

`#include <igemm_multiply_add.h>`

## Public Types
typedef Shape< 4, 1, 1 > | InstructionShape
| The shape of the instruction. More...
typedef AccumulatorsPerThread_ | AccumulatorsPerThread
| The number of accumulators per thread. More...
typedef ThreadsPerWarp_ | ThreadsPerWarp
| The number of threads per warp. More...
typedef ShapeMul< AccumulatorsPerThread, ThreadsPerWarp >::Shape | AccumulatorsPerWarp
| The number of accumulators per warp. More...
typedef int8_t | ScalarA
| The type for A. More...
typedef Fragment< ScalarA, AccumulatorsPerThread::kW *4 > | FragmentA
| The fragment for A. More...
typedef int8_t | ScalarB
| The type for B. More...
typedef Fragment< ScalarB, AccumulatorsPerThread::kH *4 > | FragmentB
| The fragment for B. More...
typedef int | ScalarC
| The type for C and D. More...
typedef Fragment< ScalarC, AccumulatorsPerThread::kH *AccumulatorsPerThread::kW > | Accumulators
| The accumulators. More...

## Public Member Functions
CUTLASS_DEVICE | ThreadMultiplyAdd ()
| Ctor. More...
CUTLASS_DEVICE void | multiply_add (FragmentA const &a, FragmentB const &b, Accumulators const &c, Accumulators &d)
| Multiply : d = a*b + c. More...

## Member Typedef Documentation

## ◆ Accumulators

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

typedef Fragment<ScalarC, AccumulatorsPerThread::kH * AccumulatorsPerThread::kW> cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::Accumulators

## ◆ AccumulatorsPerThread

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

typedef AccumulatorsPerThread_ cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::AccumulatorsPerThread

## ◆ AccumulatorsPerWarp

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

typedef ShapeMul<AccumulatorsPerThread, ThreadsPerWarp>::Shape cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::AccumulatorsPerWarp

## ◆ FragmentA

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

typedef Fragment<ScalarA, AccumulatorsPerThread::kW * 4> cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::FragmentA

## ◆ FragmentB

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

typedef Fragment<ScalarB, AccumulatorsPerThread::kH * 4> cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::FragmentB

## ◆ InstructionShape

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

typedef Shape<4, 1, 1> cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::InstructionShape

## ◆ ScalarA

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

typedef int8_t cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarA

## ◆ ScalarB

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

typedef int8_t cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarB

## ◆ ScalarC

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

typedef int cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarC

## ◆ ThreadsPerWarp

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

typedef ThreadsPerWarp_ cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::ThreadsPerWarp

## Constructor & Destructor Documentation

## ◆ ThreadMultiplyAdd()

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

CUTLASS_DEVICE cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::ThreadMultiplyAdd | ( |  | ) |
| inline

## Member Function Documentation

## ◆ multiply_add()

template<typename AccumulatorsPerThread_ , typename ThreadsPerWarp_ >

CUTLASS_DEVICE void cutlass::gemm::ThreadMultiplyAdd< AccumulatorsPerThread_, ThreadsPerWarp_, int8_t, int8_t, int >::multiply_add | ( | FragmentA const & | a,
|  | FragmentB const & | b,
|  | Accumulators const & | c,
|  | Accumulators & | d
| ) |  |
| inline

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

- igemm_multiply_add.h