CUTLASS
CUDA Templates for Linear Algebra Subroutines and Solvers
Public Types | Public Member Functions | List of all members
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: