Structure to compute the matrix product targeting CUDA cores and SIMT math instructions.
|
using | Shape = Shape_ |
| Shape of warp-level matrix operation (concept: GemmShape) More...
|
|
using | ElementA = ElementA_ |
| Data type of multiplicand A. More...
|
|
using | LayoutA = LayoutA_ |
| Layout of multiplicand A. More...
|
|
using | ElementB = ElementB_ |
| Data type of multiplicand B. More...
|
|
using | LayoutB = LayoutB_ |
| Layout of multiplicand B. More...
|
|
using | ElementC = ElementC_ |
| Data type of accumulator matrix C. More...
|
|
using | LayoutC = LayoutC_ |
| Layout of accumulator matrix C. More...
|
|
using | Policy = Policy_ |
| Shape of the warp in units of thread (concept: MmaLanePolicySimt) More...
|
|
using | OperatorClass = arch::OpClassSimt |
| Indicates class of matrix operator. More...
|
|
using | ThreadLayoutA = typename platform::conditional< platform::is_same< layout::ColumnMajorInterleaved< 4 >, LayoutA >::value, layout::ColumnMajor, typename platform::conditional< platform::is_same< layout::RowMajorInterleaved< 4 >, LayoutA >::value, layout::RowMajor, LayoutA >::type >::type |
|
using | ThreadLayoutB = typename platform::conditional< platform::is_same< layout::ColumnMajorInterleaved< 4 >, LayoutB >::value, layout::ColumnMajor, typename platform::conditional< platform::is_same< layout::RowMajorInterleaved< 4 >, LayoutB >::value, layout::RowMajor, LayoutB >::type >::type |
|
using | dp4a_type = typename platform::conditional< use_dp4a, int8_t, bool >::type |
|
using | ThreadMma = thread::Mma< GemmShape< Shape::kM/Policy::WarpShape::kRow, Shape::kN/Policy::WarpShape::kColumn, Policy::LaneMmaShape::kK >, ElementA, ThreadLayoutA, ElementB, ThreadLayoutB, ElementC, LayoutC, arch::OpMultiplyAdd, dp4a_type > |
| Thread-level matrix multiply accumulate operator. More...
|
|
using | IteratorA = MmaSimtTileIterator< MatrixShape< Shape::kM, Policy::LaneMmaShape::kK >, Operand::kA, ElementA, LayoutA, Policy, PartitionsK, Shape::kK > |
| Iterates over the A operand in memory. More...
|
|
using | FragmentA = typename IteratorA::Fragment |
| Storage for A tile. More...
|
|
using | IteratorB = MmaSimtTileIterator< MatrixShape< Policy::LaneMmaShape::kK, Shape::kN >, Operand::kB, ElementB, LayoutB, Policy, PartitionsK, Shape::kK > |
| Iterates over the B operand in memory. More...
|
|
using | FragmentB = typename IteratorB::Fragment |
| Storage for B tile. More...
|
|
using | IteratorC = MmaSimtTileIterator< MatrixShape< Shape::kM, Shape::kN >, Operand::kC, ElementC, LayoutC, Policy > |
| Iterates over the C operand in memory. More...
|
|
using | FragmentC = typename ThreadMma::FragmentC |
| Storage for C tile. More...
|
|
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
template<typename Shape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementC_ , typename LayoutC_ , typename Policy_ , int PartitionsK = 1, typename Enable = bool>
CUTLASS_DEVICE void cutlass::gemm::warp::MmaSimt< Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Policy_, PartitionsK, Enable >::operator() |
( |
FragmentC & |
d, |
|
|
FragmentA const & |
a, |
|
|
FragmentB const & |
b, |
|
|
FragmentC const & |
c, |
|
|
int |
group_idx = 0 |
|
) |
| const |
|
inline |