cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type > Struct Template Reference

Computes matrix product when C is row-major.

`#include <mma_sm60.h>`

## Public Types

using | Shape = Shape_
using | ElementA = half_t
using | LayoutA = LayoutA_
using | ElementB = half_t
using | LayoutB = LayoutB_
using | ElementC = half_t
using | LayoutC = layout::RowMajor
using | Operator = arch::OpMultiplyAdd
using | TransposeMma = Mma< GemmShapeTranspose< Shape >, half_t, typename layout::LayoutTranspose< LayoutB >::type, half_t, typename layout::LayoutTranspose< LayoutA >::type, half_t, layout::ColumnMajor, arch::OpMultiplyAdd, bool >
using | FragmentA = Array< ElementA, Shape::kMK >
using | FragmentB = Array< ElementB, Shape::kKN >
using | FragmentC = Array< ElementC, Shape::kMN >

## Public Member Functions

CUTLASS_HOST_DEVICE void | operator() (FragmentC &D, FragmentA const &A, FragmentB const &B, FragmentC const &C)

## Member Typedef Documentation

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::ElementA = half_t

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::ElementB = half_t

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::ElementC = half_t

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::FragmentA = Array<ElementA, Shape::kMK>

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::FragmentB = Array<ElementB, Shape::kKN>

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::FragmentC = Array<ElementC, Shape::kMN>

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::LayoutA = LayoutA_

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::LayoutB = LayoutB_

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::LayoutC = layout::RowMajor

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::Operator = arch::OpMultiplyAdd

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::Shape = Shape_

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

using cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::TransposeMma = Mma< GemmShapeTranspose<Shape>, half_t, typename layout::LayoutTranspose<LayoutB>::type, half_t, typename layout::LayoutTranspose<LayoutA>::type, half_t, layout::ColumnMajor, arch::OpMultiplyAdd, bool>

## Member Function Documentation

template<typename Shape_ , typename LayoutA_ , typename LayoutB_ >

CUTLASS_HOST_DEVICE void cutlass::gemm::thread::Mma< Shape_, half_t, LayoutA_, half_t, LayoutB_, half_t, layout::RowMajor, arch::OpMultiplyAdd, typename platform::enable_if< detail::EnableMma_Crow_SM60< LayoutA_, LayoutB_ >::value >::type >::operator() | ( | FragmentC & | D,
|  | FragmentA const & | A,
|  | FragmentB const & | B,
|  | FragmentC const & | C
| ) |  |

inline

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

- gemm/thread/mma_sm60.h