Back to Cutlass

CUTLASS: cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ > Struct Template Reference

docs/structcutlass_1_1gemm_1_1thread_1_1MmaGeneric.html

4.4.213.2 KB
Original Source

| | CUTLASS

CUDA Templates for Linear Algebra Subroutines and Solvers |

Public Types | Public Member Functions | List of all members

cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ > Struct Template Reference

Gemplate that handles all packed matrix layouts.

#include <mma_sm50.h>

|

Public Types

| | using | Shape = Shape_ | | | Size of the Gemm problem - concept: gemm::GemmShape<> More...
| | | | using | ElementA = ElementA_ | | | Data type of operand A. More...
| | | | using | LayoutA = LayoutA_ | | | Layout of A matrix (concept: layout::MapFunc) More...
| | | | using | ElementB = ElementB_ | | | Data type of operand B. More...
| | | | using | LayoutB = LayoutB_ | | | Layout of B matrix (concept: layout::MapFunc) More...
| | | | using | ElementC = ElementC_ | | | Element type of operand C. More...
| | | | using | LayoutC = LayoutC_ | | | Layout of C matrix (concept: layout::MapFunc) More...
| | | | using | Operator = Operator_ | | | Underlying mathematical operator. More...
| | | | using | FragmentA = Array< ElementA, Shape::kMK > | | | A operand storage. More...
| | | | using | FragmentB = Array< ElementB, Shape::kKN > | | | B operand storage. More...
| | | | using | FragmentC = Array< ElementC, Shape::kMN > | | | C operand storage. More...
| | | | using | MmaOp = arch::Mma< gemm::GemmShape< 1, 1, 1 >, 1, ElementA, LayoutA, ElementB, LayoutB, ElementC, LayoutC, Operator > | | | Instruction. More...
| | |

|

Public Member Functions

| | CUTLASS_HOST_DEVICE void | operator() (FragmentC &D, FragmentA const &A, FragmentB const &B, FragmentC const &C) | | | Computes a matrix product D = A * B + C. More...
| | |

Member Typedef Documentation

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::ElementA = ElementA_ |

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::ElementB = ElementB_ |

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::ElementC = ElementC_ |

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::FragmentA = Array<ElementA, Shape::kMK> |

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::FragmentB = Array<ElementB, Shape::kKN> |

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::FragmentC = Array<ElementC, Shape::kMN> |

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::LayoutA = LayoutA_ |

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::LayoutB = LayoutB_ |

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::LayoutC = LayoutC_ |

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::MmaOp = arch::Mma< gemm::GemmShape<1,1,1>, 1, ElementA, LayoutA, ElementB, LayoutB, ElementC, LayoutC, Operator> |

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::Operator = Operator_ |

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

| using cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::Shape = Shape_ |

Member Function Documentation

template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Operator_ >

|

| CUTLASS_HOST_DEVICE void cutlass::gemm::thread::MmaGeneric< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Operator_ >::operator() | ( | FragmentC & | D, | | | | FragmentA const & | A, | | | | FragmentB const & | B, | | | | FragmentC const & | C | | | ) | | |

| inline |


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


Generated by 1.8.11