CUTLASS
CUDA Templates for Linear Algebra Subroutines and Solvers
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable > Class Template Reference

#include <mma_base.h>

Classes

class  SharedStorage
 Shared storage object needed by threadblock-scoped GEMM. More...
 

Public Types

using Shape = Shape_
 Policy describing tuning details. More...
 
using Policy = Policy_
 
using Operator = typename Policy::Operator
 Warp-level Mma. More...
 
using WarpGemm = typename Policy::Operator::Shape
 
using WarpCount = GemmShape< Shape::kM/WarpGemm::kM, Shape::kN/WarpGemm::kN, Shape::kK/WarpGemm::kK >
 Shape describing the number of warps filling the CTA. More...
 
using TensorRefA = TensorRef< typename Operator::ElementA, typename Operator::LayoutA >
 Tensor reference to the A operand. More...
 
using TensorRefB = TensorRef< typename Operator::ElementB, typename Operator::LayoutB >
 Tensor reference to the B operand. More...
 

Public Member Functions

CUTLASS_DEVICE MmaBase (SharedStorage &shared_storage, int thread_idx, int warp_idx, int lane_idx)
 Construct from tensor references. More...
 

Static Public Attributes

static int const kWarpGemmIterations
 Number of warp-level GEMM oeprations. More...
 
static int const kStages = Stages
 Number of stages. More...
 

Protected Attributes

Operator::IteratorA warp_tile_iterator_A_
 Iterator to load a warp-scoped tile of A operand from shared memory. More...
 
Operator::IteratorB warp_tile_iterator_B_
 Iterator to load a warp-scoped tile of B operand from shared memory. More...
 

Detailed Description

template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
class cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >

Structure to compute the matrix product targeting CUDA cores and SIMT math instructions.

Member Typedef Documentation

template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
using cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::Operator = typename Policy::Operator
template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
using cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::Policy = Policy_
template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
using cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::Shape = Shape_
template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
using cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::TensorRefA = TensorRef<typename Operator::ElementA, typename Operator::LayoutA>
template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
using cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::TensorRefB = TensorRef<typename Operator::ElementB, typename Operator::LayoutB>
template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
using cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::WarpCount = GemmShape<Shape::kM / WarpGemm::kM, Shape::kN / WarpGemm::kN, Shape::kK / WarpGemm::kK>
template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
using cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::WarpGemm = typename Policy::Operator::Shape

Shape describing the overall GEMM computed from shared memory by each warp.

Constructor & Destructor Documentation

template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
CUTLASS_DEVICE cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::MmaBase ( SharedStorage shared_storage,
int  thread_idx,
int  warp_idx,
int  lane_idx 
)
inline
Parameters
shared_storageShared storage needed for internal use by threadblock-scoped GEMM ID within the threadblock
thread_idxID of warp
warp_idxID of each thread within a warp

Member Data Documentation

template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
int const cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::kStages = Stages
static
template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
int const cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::kWarpGemmIterations
static
Initial value:
=
(WarpGemm::kK / Operator::Policy::MmaShape::kK)
template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
Operator::IteratorA cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::warp_tile_iterator_A_
protected
template<typename Shape_, typename Policy_, int Stages, typename Enable = bool>
Operator::IteratorB cutlass::gemm::threadblock::MmaBase< Shape_, Policy_, Stages, Enable >::warp_tile_iterator_B_
protected

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