CUTLASS: cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ > Struct Template Reference

| CUTLASS CUDA Templates for Linear Algebra Subroutines and Solvers

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | List of all members
cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ > Struct Template Reference

`#include <default_gemv.h>`

## Public Types
using | ThreadBlockShape = ThreadBlockShape_
| Shape of Threadblock-level matrix operation (concept: GemmShape) More...
using | ThreadShape = ThreadShape_
| 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 | ElementAccumulator = ElementAccumulator_
| Data type of accumulators. More...
using | LayoutAccumulator = LayoutCD_
| Data type of accumulators (same as C/D) More...
using | ElementCD = ElementCD_
| Data type of input/output matrix C/D. More...
using | LayoutCD = LayoutCD_
| Layout of input/output matrix C/D. More...
using | Core = typename cutlass::gemm::threadblock::DefaultGemvCore< ThreadBlockShape, ThreadShape, ElementA, LayoutA, ElementB, LayoutB, ElementAccumulator, LayoutAccumulator >
using | ThreadBlockGemv = cutlass::gemm::threadblock::Gemv< Core >
using | IteratorA = typename ThreadBlockGemv::IteratorA
using | IteratorB = typename ThreadBlockGemv::IteratorB
using | IteratorPolicyCD = typename platform::conditional< platform::is_same< LayoutCD, layout::RowMajor >::value, cutlass::transform::PitchLinearTilePolicyStripminedThreadContiguous< layout::PitchLinearShape< ThreadBlockShape::kN, ThreadBlockShape::kM >, Core::kThreadsPerN, ThreadShape::kN >, cutlass::transform::PitchLinearTilePolicyStripminedThreadStrided< layout::PitchLinearShape< ThreadBlockShape::kM, ThreadBlockShape::kN >, Core::kThreadsPerN, ThreadShape::kM >>::type
| Policy for the iterator that reads/writes C/D. More...
using | IteratorCD = cutlass::transform::threadblock::PredicatedTileIterator< cutlass::MatrixShape< ThreadBlockShape::kM, ThreadBlockShape::kN >, ElementCD, LayoutCD, 0, IteratorPolicyCD >
| Iterator that reads/writes C/D. More...
using | FragmentCD = typename IteratorCD::Fragment
| Fragment storage for C/D. More...
using | ThreadBlockSwizzle = cutlass::gemm::threadblock::GemvBatchedStridedThreadblockDefaultSwizzle

## Member Typedef Documentation

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::Core = typename cutlass::gemm::threadblock::DefaultGemvCore< ThreadBlockShape, ThreadShape, ElementA, LayoutA, ElementB, LayoutB, ElementAccumulator, LayoutAccumulator>

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::ElementA = ElementA_

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::ElementAccumulator = ElementAccumulator_

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::ElementB = ElementB_

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::ElementCD = ElementCD_

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::FragmentCD = typename IteratorCD::Fragment

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::IteratorA = typename ThreadBlockGemv::IteratorA

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::IteratorB = typename ThreadBlockGemv::IteratorB

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::IteratorCD = cutlass::transform::threadblock::PredicatedTileIterator< cutlass::MatrixShape<ThreadBlockShape::kM, ThreadBlockShape::kN>, ElementCD, LayoutCD, 0, IteratorPolicyCD>

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::IteratorPolicyCD = typename platform::conditional< platform::is_same<LayoutCD, layout::RowMajor>::value, cutlass::transform::PitchLinearTilePolicyStripminedThreadContiguous< layout::PitchLinearShape<ThreadBlockShape::kN, ThreadBlockShape::kM>, Core::kThreadsPerN, ThreadShape::kN>, cutlass::transform::PitchLinearTilePolicyStripminedThreadStrided< layout::PitchLinearShape<ThreadBlockShape::kM, ThreadBlockShape::kN>, Core::kThreadsPerN, ThreadShape::kM>>::type

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::LayoutA = LayoutA_

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::LayoutAccumulator = LayoutCD_

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::LayoutB = LayoutB_

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::LayoutCD = LayoutCD_

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::ThreadBlockGemv = cutlass::gemm::threadblock::Gemv<Core>

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::ThreadBlockShape = ThreadBlockShape_

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::ThreadBlockSwizzle = cutlass::gemm::threadblock::GemvBatchedStridedThreadblockDefaultSwizzle

template<typename ThreadBlockShape_ , typename ThreadShape_ , typename ElementA_ , typename LayoutA_ , typename ElementB_ , typename LayoutB_ , typename ElementCD_ , typename LayoutCD_ , typename ElementAccumulator_ = ElementCD_>

using cutlass::gemm::kernel::DefaultGemv< ThreadBlockShape_, ThreadShape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementCD_, LayoutCD_, ElementAccumulator_ >::ThreadShape = ThreadShape_

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

- default_gemv.h