CUTLASS 2.0 (#62)

CUTLASS 2.0

Substantially refactored for

- Better performance, particularly for native Turing Tensor Cores
- Robust and durable templates spanning the design space
- Encapsulated functionality embodying modern C++11 programming techniques
- Optimized containers and data types for efficient, generic, portable device code

Updates to:
- Quick start guide
- Documentation
- Utilities
- CUTLASS Profiler

Native Turing Tensor Cores
- Efficient GEMM kernels targeting Turing Tensor Cores
- Mixed-precision floating point, 8-bit integer, 4-bit integer, and binarized operands

Coverage of existing CUTLASS functionality:
- GEMM kernels targeting CUDA and Tensor Cores in NVIDIA GPUs
- Volta Tensor Cores through native mma.sync and through WMMA API
- Optimizations such as parallel reductions, threadblock rasterization, and intra-threadblock reductions
- Batched GEMM operations
- Complex-valued GEMMs

Note: this commit and all that follow require a host compiler supporting C++11 or greater.
This commit is contained in:
Andrew Kerr
2019-11-19 16:55:34 -08:00
committed by GitHub
parent b5cab177a9
commit fb335f6a5f
5434 changed files with 599799 additions and 250176 deletions
+42 -47
View File
@@ -1,51 +1,46 @@
var searchData=
[
['gemm',['Gemm',['../structcutlass_1_1gemm_1_1Gemm.html',1,'cutlass::gemm']]],
['gemmconfig',['GemmConfig',['../structcutlass_1_1gemm_1_1GemmConfig.html',1,'cutlass::gemm']]],
['gemmconfig_3c_20double_2c_20double_2c_20double_2c_20double_2c_20outputtile_5f_2c_20threadmultiplyadd_3c_20threadgemmshape_5f_2c_20shape_3c_201_2c_204_2c_208_20_3e_2c_20double_2c_20double_2c_20double_20_3e_2c_20kscalarsperldga_5f_2c_20kscalarsperldga_5f_2c_202_2c_20kscalarsperldgb_5f_2c_20kscalarsperldgb_5f_2c_202_2c_201_2c_202_2c_201_2c_202_2c_20false_2c_20false_2c_20false_20_3e',['GemmConfig< double, double, double, double, OutputTile_, ThreadMultiplyAdd< ThreadGemmShape_, Shape< 1, 4, 8 >, double, double, double >, kScalarsPerLdgA_, kScalarsPerLdgA_, 2, kScalarsPerLdgB_, kScalarsPerLdgB_, 2, 1, 2, 1, 2, false, false, false >',['../structcutlass_1_1gemm_1_1GemmConfig.html',1,'cutlass::gemm']]],
['gemmconfig_3c_20float_2c_20float_2c_20float_2c_20float_2c_20outputtile_5f_2c_20threadmultiplyadd_3c_20threadgemmshape_5f_2c_20shape_3c_201_2c_204_2c_208_20_3e_2c_20float_2c_20float_2c_20float_20_3e_2c_20kscalarsperldga_5f_2c_20kscalarsperldga_5f_2c_204_2c_20kscalarsperldgb_5f_2c_20kscalarsperldgb_5f_2c_204_2c_201_2c_204_2c_201_2c_202_2c_20false_2c_20true_2c_20klaunchbounds_20_3e',['GemmConfig< float, float, float, float, OutputTile_, ThreadMultiplyAdd< ThreadGemmShape_, Shape< 1, 4, 8 >, float, float, float >, kScalarsPerLdgA_, kScalarsPerLdgA_, 4, kScalarsPerLdgB_, kScalarsPerLdgB_, 4, 1, 4, 1, 2, false, true, kLaunchBounds >',['../structcutlass_1_1gemm_1_1GemmConfig.html',1,'cutlass::gemm']]],
['gemmconfig_3c_20half_2c_20half_2c_20half_2c_20half_2c_20outputtile_5f_2c_20threadmultiplyadd_3c_20threadgemmshape_5f_2c_20shape_3c_201_2c_204_2c_208_20_3e_2c_20half_2c_20half_2c_20half_20_3e_2c_20kscalarsperldga_5f_2c_20kscalarsperldga_5f_2c_208_2c_20kscalarsperldgb_5f_2c_20kscalarsperldgb_5f_2c_208_2c_202_2c_208_2c_202_2c_202_2c_20false_2c_20true_2c_20false_20_3e',['GemmConfig< half, half, half, half, OutputTile_, ThreadMultiplyAdd< ThreadGemmShape_, Shape< 1, 4, 8 >, half, half, half >, kScalarsPerLdgA_, kScalarsPerLdgA_, 8, kScalarsPerLdgB_, kScalarsPerLdgB_, 8, 2, 8, 2, 2, false, true, false >',['../structcutlass_1_1gemm_1_1GemmConfig.html',1,'cutlass::gemm']]],
['gemmconfig_3c_20int8_5ft_2c_20int8_5ft_2c_20int8_5ft_2c_20int8_5ft_2c_20outputtile_5f_2c_20threadmultiplyadd_3c_20threadgemmshape_5f_2c_20shape_3c_201_2c_204_2c_208_20_3e_2c_20int8_5ft_2c_20int8_5ft_2c_20int_20_3e_2c_204_2c_204_2c_2016_2c_204_2c_204_2c_2016_2c_204_2c_204_2c_204_2c_202_2c_20false_2c_20true_2c_20false_20_3e',['GemmConfig< int8_t, int8_t, int8_t, int8_t, OutputTile_, ThreadMultiplyAdd< ThreadGemmShape_, Shape< 1, 4, 8 >, int8_t, int8_t, int >, 4, 4, 16, 4, 4, 16, 4, 4, 4, 2, false, true, false >',['../structcutlass_1_1gemm_1_1GemmConfig.html',1,'cutlass::gemm']]],
['gemmconfig_3c_20int8_5ft_2c_20int8_5ft_2c_20scalard_5f_2c_20scalard_5f_2c_20outputtile_5f_2c_20threadmultiplyadd_3c_20threadgemmshape_5f_2c_20shape_3c_201_2c_204_2c_208_20_3e_2c_20int8_5ft_2c_20int8_5ft_2c_20int_20_3e_2c_204_2c_204_2c_2016_2c_204_2c_204_2c_2016_2c_201_2c_204_2c_201_2c_202_2c_20false_2c_20false_2c_20false_20_3e',['GemmConfig< int8_t, int8_t, ScalarD_, ScalarD_, OutputTile_, ThreadMultiplyAdd< ThreadGemmShape_, Shape< 1, 4, 8 >, int8_t, int8_t, int >, 4, 4, 16, 4, 4, 16, 1, 4, 1, 2, false, false, false >',['../structcutlass_1_1gemm_1_1GemmConfig.html',1,'cutlass::gemm']]],
['gemmconfig_3c_20scalara_5f_2c_20scalarb_5f_2c_20scalarc_5f_2c_20scalard_5f_2c_20outputtile_5f_2c_20threadmultiplyadd_3c_20threadgemmshape_5f_2c_20shape_3c_201_2c_204_2c_208_20_3e_2c_20scalara_5f_2c_20scalarb_5f_2c_20float_20_3e_2c_20kscalarsperldga_5f_2c_20kscalarsperldga_5f_2c_204_2c_20kscalarsperldgb_5f_2c_20kscalarsperldgb_5f_2c_204_2c_201_2c_204_2c_201_2c_202_20_3e',['GemmConfig< ScalarA_, ScalarB_, ScalarC_, ScalarD_, OutputTile_, ThreadMultiplyAdd< ThreadGemmShape_, Shape< 1, 4, 8 >, ScalarA_, ScalarB_, float >, kScalarsPerLdgA_, kScalarsPerLdgA_, 4, kScalarsPerLdgB_, kScalarsPerLdgB_, 4, 1, 4, 1, 2 >',['../structcutlass_1_1gemm_1_1GemmConfig.html',1,'cutlass::gemm']]],
['gemm',['Gemm',['../classcutlass_1_1gemm_1_1device_1_1Gemm.html',1,'cutlass::gemm::device']]],
['gemm',['Gemm',['../structcutlass_1_1gemm_1_1kernel_1_1Gemm.html',1,'cutlass::gemm::kernel']]],
['gemm',['Gemm',['../structcutlass_1_1reference_1_1device_1_1thread_1_1Gemm.html',1,'cutlass::reference::device::thread']]],
['gemm',['Gemm',['../structcutlass_1_1reference_1_1host_1_1Gemm.html',1,'cutlass::reference::host']]],
['gemm',['Gemm',['../structcutlass_1_1reference_1_1device_1_1Gemm.html',1,'cutlass::reference::device']]],
['gemm_3c_20elementa_2c_20layouta_2c_20elementb_2c_20layoutb_2c_20elementc_2c_20layoutc_2c_20scalartype_2c_20accumulatortype_2c_20arch_3a_3aopmultiplyadd_20_3e',['Gemm< ElementA, LayoutA, ElementB, LayoutB, ElementC, LayoutC, ScalarType, AccumulatorType, arch::OpMultiplyAdd >',['../structcutlass_1_1reference_1_1device_1_1Gemm_3_01ElementA_00_01LayoutA_00_01ElementB_00_01Layout4e016ab7cfc644acd7cb4ae770339773.html',1,'cutlass::reference::device']]],
['gemm_3c_20elementa_2c_20layouta_2c_20elementb_2c_20layoutb_2c_20elementc_2c_20layoutc_2c_20scalartype_2c_20accumulatortype_2c_20arch_3a_3aopmultiplyaddsaturate_20_3e',['Gemm< ElementA, LayoutA, ElementB, LayoutB, ElementC, LayoutC, ScalarType, AccumulatorType, arch::OpMultiplyAddSaturate >',['../structcutlass_1_1reference_1_1device_1_1Gemm_3_01ElementA_00_01LayoutA_00_01ElementB_00_01Layout30b72addd464a2ca4a26785cbfd77a8e.html',1,'cutlass::reference::device']]],
['gemm_3c_20elementa_2c_20layouta_2c_20elementb_2c_20layoutb_2c_20elementc_2c_20layoutc_2c_20scalartype_2c_20accumulatortype_2c_20arch_3a_3aopxorpopc_20_3e',['Gemm< ElementA, LayoutA, ElementB, LayoutB, ElementC, LayoutC, ScalarType, AccumulatorType, arch::OpXorPopc >',['../structcutlass_1_1reference_1_1device_1_1Gemm_3_01ElementA_00_01LayoutA_00_01ElementB_00_01Layout660562b232f408218828ca5915b7e73a.html',1,'cutlass::reference::device']]],
['gemm_3c_20elementa_2c_20layouta_2c_20elementb_2c_20layoutb_2c_20elementc_2c_20layoutc_2c_20scalartype_2c_20computetype_2c_20arch_3a_3aopmultiplyadd_20_3e',['Gemm< ElementA, LayoutA, ElementB, LayoutB, ElementC, LayoutC, ScalarType, ComputeType, arch::OpMultiplyAdd >',['../structcutlass_1_1reference_1_1host_1_1Gemm_3_01ElementA_00_01LayoutA_00_01ElementB_00_01LayoutB_193dd3a37f00deff1e5dcd7c310afb1f.html',1,'cutlass::reference::host']]],
['gemm_3c_20elementa_2c_20layouta_2c_20elementb_2c_20layoutb_2c_20elementc_2c_20layoutc_2c_20scalartype_2c_20computetype_2c_20arch_3a_3aopmultiplyaddsaturate_20_3e',['Gemm< ElementA, LayoutA, ElementB, LayoutB, ElementC, LayoutC, ScalarType, ComputeType, arch::OpMultiplyAddSaturate >',['../structcutlass_1_1reference_1_1host_1_1Gemm_3_01ElementA_00_01LayoutA_00_01ElementB_00_01LayoutB_55729eac7dbd6bf311ea36f680e83e93.html',1,'cutlass::reference::host']]],
['gemm_3c_20elementa_2c_20layouta_2c_20elementb_2c_20layoutb_2c_20elementc_2c_20layoutc_2c_20scalartype_2c_20computetype_2c_20arch_3a_3aopxorpopc_20_3e',['Gemm< ElementA, LayoutA, ElementB, LayoutB, ElementC, LayoutC, ScalarType, ComputeType, arch::OpXorPopc >',['../structcutlass_1_1reference_1_1host_1_1Gemm_3_01ElementA_00_01LayoutA_00_01ElementB_00_01LayoutB_4f3f32c4b336238abfd741e87bfced46.html',1,'cutlass::reference::host']]],
['gemm_3c_20elementa_5f_2c_20layouta_5f_2c_20elementb_5f_2c_20layoutb_5f_2c_20elementc_5f_2c_20layout_3a_3acolumnmajor_2c_20elementaccumulator_5f_2c_20operatorclass_5f_2c_20archtag_5f_2c_20threadblockshape_5f_2c_20warpshape_5f_2c_20instructionshape_5f_2c_20epilogueoutputop_5f_2c_20threadblockswizzle_5f_2c_20stages_2c_20alignmenta_2c_20alignmentb_2c_20splitkserial_2c_20operator_5f_2c_20isbetazero_20_3e',['Gemm< ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, layout::ColumnMajor, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero >',['../classcutlass_1_1gemm_1_1device_1_1Gemm_3_01ElementA___00_01LayoutA___00_01ElementB___00_01Layout4d0960ae6b1d1bf19e6239dbd002249c.html',1,'cutlass::gemm::device']]],
['gemm_3c_20elementb_2c_20typename_20layout_3a_3alayouttranspose_3c_20layoutb_20_3e_3a_3atype_2c_20elementa_2c_20typename_20layout_3a_3alayouttranspose_3c_20layouta_20_3e_3a_3atype_2c_20elementc_2c_20layout_3a_3arowmajor_2c_20elementaccumulator_2c_20operatorclass_2c_20archtag_2c_20threadblockshape_2c_20warpshape_2c_20instructionshape_2c_20epilogueoutputop_2c_20threadblockswizzle_2c_20stages_2c_20kalignmentb_2c_20kalignmenta_2c_20splitkserial_2c_20operator_2c_20kisbetazero_20_3e',['Gemm< ElementB, typename layout::LayoutTranspose< LayoutB >::type, ElementA, typename layout::LayoutTranspose< LayoutA >::type, ElementC, layout::RowMajor, ElementAccumulator, OperatorClass, ArchTag, ThreadblockShape, WarpShape, InstructionShape, EpilogueOutputOp, ThreadblockSwizzle, Stages, kAlignmentB, kAlignmentA, SplitKSerial, Operator, kIsBetaZero >',['../classcutlass_1_1gemm_1_1device_1_1Gemm.html',1,'cutlass::gemm::device']]],
['gemmarguments',['GemmArguments',['../structcutlass_1_1library_1_1GemmArguments.html',1,'cutlass::library']]],
['gemmarrayarguments',['GemmArrayArguments',['../structcutlass_1_1library_1_1GemmArrayArguments.html',1,'cutlass::library']]],
['gemmarrayconfiguration',['GemmArrayConfiguration',['../structcutlass_1_1library_1_1GemmArrayConfiguration.html',1,'cutlass::library']]],
['gemmbatched',['GemmBatched',['../classcutlass_1_1gemm_1_1device_1_1GemmBatched.html',1,'cutlass::gemm::device']]],
['gemmbatched',['GemmBatched',['../structcutlass_1_1gemm_1_1kernel_1_1GemmBatched.html',1,'cutlass::gemm::kernel']]],
['gemmbatched_3c_20elementa_5f_2c_20layouta_5f_2c_20elementb_5f_2c_20layoutb_5f_2c_20elementc_5f_2c_20layout_3a_3acolumnmajor_2c_20elementaccumulator_5f_2c_20operatorclass_5f_2c_20archtag_5f_2c_20threadblockshape_5f_2c_20warpshape_5f_2c_20instructionshape_5f_2c_20epilogueoutputop_5f_2c_20threadblockswizzle_5f_2c_20stages_2c_20alignmenta_2c_20alignmentb_2c_20operator_5f_20_3e',['GemmBatched< ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, layout::ColumnMajor, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, Operator_ >',['../classcutlass_1_1gemm_1_1device_1_1GemmBatched_3_01ElementA___00_01LayoutA___00_01ElementB___00_0c9bb6f4463ab6085e6008b5d5ad6abfd.html',1,'cutlass::gemm::device']]],
['gemmbatched_3c_20elementb_2c_20typename_20layout_3a_3alayouttranspose_3c_20layoutb_20_3e_3a_3atype_2c_20elementa_2c_20typename_20layout_3a_3alayouttranspose_3c_20layouta_20_3e_3a_3atype_2c_20elementc_2c_20layout_3a_3arowmajor_2c_20elementaccumulator_2c_20operatorclass_2c_20archtag_2c_20threadblockshape_2c_20warpshape_2c_20instructionshape_2c_20epilogueoutputop_2c_20threadblockswizzle_2c_20stages_2c_20kalignmentb_2c_20kalignmenta_20_3e',['GemmBatched< ElementB, typename layout::LayoutTranspose< LayoutB >::type, ElementA, typename layout::LayoutTranspose< LayoutA >::type, ElementC, layout::RowMajor, ElementAccumulator, OperatorClass, ArchTag, ThreadblockShape, WarpShape, InstructionShape, EpilogueOutputOp, ThreadblockSwizzle, Stages, kAlignmentB, kAlignmentA >',['../classcutlass_1_1gemm_1_1device_1_1GemmBatched.html',1,'cutlass::gemm::device']]],
['gemmbatchedconfiguration',['GemmBatchedConfiguration',['../structcutlass_1_1library_1_1GemmBatchedConfiguration.html',1,'cutlass::library']]],
['gemmbatchedidentitythreadblockswizzle',['GemmBatchedIdentityThreadblockSwizzle',['../structcutlass_1_1gemm_1_1threadblock_1_1GemmBatchedIdentityThreadblockSwizzle.html',1,'cutlass::gemm::threadblock']]],
['gemmcomplex',['GemmComplex',['../classcutlass_1_1gemm_1_1device_1_1GemmComplex.html',1,'cutlass::gemm::device']]],
['gemmcomplex_3c_20elementa_5f_2c_20layouta_5f_2c_20elementb_5f_2c_20layoutb_5f_2c_20elementc_5f_2c_20layout_3a_3acolumnmajor_2c_20elementaccumulator_5f_2c_20operatorclass_5f_2c_20archtag_5f_2c_20threadblockshape_5f_2c_20warpshape_5f_2c_20instructionshape_5f_2c_20epilogueoutputop_5f_2c_20threadblockswizzle_5f_2c_20stages_2c_20transforma_2c_20transformb_2c_20splitkserial_20_3e',['GemmComplex< ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, layout::ColumnMajor, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, TransformA, TransformB, SplitKSerial >',['../classcutlass_1_1gemm_1_1device_1_1GemmComplex_3_01ElementA___00_01LayoutA___00_01ElementB___00_07c56401b4df75709ae636675d9980a9a.html',1,'cutlass::gemm::device']]],
['gemmcomplex_3c_20elementb_2c_20typename_20layout_3a_3alayouttranspose_3c_20layoutb_20_3e_3a_3atype_2c_20elementa_2c_20typename_20layout_3a_3alayouttranspose_3c_20layouta_20_3e_3a_3atype_2c_20elementc_2c_20layout_3a_3arowmajor_2c_20elementaccumulator_2c_20operatorclass_2c_20archtag_2c_20threadblockshape_2c_20warpshape_2c_20instructionshape_2c_20epilogueoutputop_2c_20threadblockswizzle_2c_20stages_2c_20transforma_2c_20transformb_2c_20splitkserial_20_3e',['GemmComplex< ElementB, typename layout::LayoutTranspose< LayoutB >::type, ElementA, typename layout::LayoutTranspose< LayoutA >::type, ElementC, layout::RowMajor, ElementAccumulator, OperatorClass, ArchTag, ThreadblockShape, WarpShape, InstructionShape, EpilogueOutputOp, ThreadblockSwizzle, Stages, TransformA, TransformB, SplitKSerial >',['../classcutlass_1_1gemm_1_1device_1_1GemmComplex.html',1,'cutlass::gemm::device']]],
['gemmconfiguration',['GemmConfiguration',['../structcutlass_1_1library_1_1GemmConfiguration.html',1,'cutlass::library']]],
['gemmcoord',['GemmCoord',['../structcutlass_1_1gemm_1_1GemmCoord.html',1,'cutlass::gemm']]],
['gemmdesc',['GemmDesc',['../structcutlass_1_1gemm_1_1GemmDesc.html',1,'cutlass::gemm']]],
['gemmepilogue',['GemmEpilogue',['../structcutlass_1_1gemm_1_1GemmEpilogue.html',1,'cutlass::gemm']]],
['gemmepiloguetraits',['GemmEpilogueTraits',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html',1,'cutlass::gemm']]],
['gemmepiloguetraits_3c_20gemmconfig_5f_3a_3aoutputtile_2c_20gemmconfig_5f_3a_3aaccumulators_2c_20helper_5f_3a_3agloballoaditeratorc_2c_20helper_5f_3a_3aglobaltransformerc_2c_20helper_5f_3a_3aglobaltransformerd_2c_20helper_5f_3a_3aglobalstoreiteratord_2c_20helper_5f_3a_3asharedstoreiteratord_2c_20helper_5f_3a_3asharedstoretransformerd_2c_20helper_5f_3a_3asharedloadstreamd_2c_20helper_5f_3a_3aiterations_2c_20helper_5f_3a_3adelta_2c_20epiloguefunctor_5f_2c_20index_5f_20_3e',['GemmEpilogueTraits< GemmConfig_::OutputTile, GemmConfig_::Accumulators, Helper_::GlobalLoadIteratorC, Helper_::GlobalTransformerC, Helper_::GlobalTransformerD, Helper_::GlobalStoreIteratorD, Helper_::SharedStoreIteratorD, Helper_::SharedStoreTransformerD, Helper_::SharedLoadStreamD, Helper_::Iterations, Helper_::Delta, EpilogueFunctor_, Index_ >',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html',1,'cutlass::gemm']]],
['gemmepiloguetraits_3c_20igemmconfig_5f_3a_3aoutputtile_2c_20igemmconfig_5f_3a_3aaccumulators_2c_20helper_5f_3a_3agloballoaditeratorc_2c_20helper_5f_3a_3aglobaltransformerc_2c_20helper_5f_3a_3aglobaltransformerd_2c_20helper_5f_3a_3aglobalstoreiteratord_2c_20helper_5f_3a_3asharedstoreiteratord_2c_20helper_5f_3a_3asharedstoretransformerd_2c_20helper_5f_3a_3asharedloadstreamd_2c_20helper_5f_3a_3aiterations_2c_20helper_5f_3a_3adelta_2c_20epiloguefunctor_5f_2c_20index_5f_20_3e',['GemmEpilogueTraits< IgemmConfig_::OutputTile, IgemmConfig_::Accumulators, Helper_::GlobalLoadIteratorC, Helper_::GlobalTransformerC, Helper_::GlobalTransformerD, Helper_::GlobalStoreIteratorD, Helper_::SharedStoreIteratorD, Helper_::SharedStoreTransformerD, Helper_::SharedLoadStreamD, Helper_::Iterations, Helper_::Delta, EpilogueFunctor_, Index_ >',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html',1,'cutlass::gemm']]],
['gemmepiloguetraitshelper',['GemmEpilogueTraitsHelper',['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html',1,'cutlass::gemm']]],
['gemmepiloguetraitshelper_3c_20igemmconfig_5f_2c_20epiloguefunctor_5f_2c_20index_5f_20_3e',['GemmEpilogueTraitsHelper< IgemmConfig_, EpilogueFunctor_, Index_ >',['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html',1,'cutlass::gemm']]],
['gemmglobaliteratorab',['GemmGlobalIteratorAb',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html',1,'cutlass::gemm']]],
['gemmglobaliteratorcd',['GemmGlobalIteratorCd',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html',1,'cutlass::gemm']]],
['gemmglobaltilecdtraits',['GemmGlobalTileCdTraits',['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html',1,'cutlass::gemm']]],
['gemmglobaltiletraits',['GemmGlobalTileTraits',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html',1,'cutlass::gemm']]],
['gemmglobaltiletraits_3c_20gemmoperand_3a_3akc_2c_20matrixlayout_3a_3akcolumnmajor_2c_20scalar_5f_2c_20tile_5f_2c_20threads_5f_2c_20kaccesssize_5f_20_3e',['GemmGlobalTileTraits< GemmOperand::kC, MatrixLayout::kColumnMajor, Scalar_, Tile_, Threads_, kAccessSize_ >',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html',1,'cutlass::gemm']]],
['gemmmultiplicandtraits',['GemmMultiplicandTraits',['../structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html',1,'cutlass::gemm']]],
['gemmoperand',['GemmOperand',['../structcutlass_1_1GemmOperand.html',1,'cutlass']]],
['gemmoperandtraitsab',['GemmOperandTraitsAb',['../structcutlass_1_1gemm_1_1GemmOperandTraitsAb.html',1,'cutlass::gemm']]],
['gemmsharedloadtileatraits',['GemmSharedLoadTileATraits',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html',1,'cutlass::gemm']]],
['gemmsharedloadtilebtraits',['GemmSharedLoadTileBTraits',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html',1,'cutlass::gemm']]],
['gemmsharedloadtiledtraits',['GemmSharedLoadTileDTraits',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html',1,'cutlass::gemm']]],
['gemmsharedstoretileabtraits',['GemmSharedStoreTileAbTraits',['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html',1,'cutlass::gemm']]],
['gemmsharedstoretiledtraits',['GemmSharedStoreTileDTraits',['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html',1,'cutlass::gemm']]],
['gemmsharedstorewithskewtileabtraits',['GemmSharedStoreWithSkewTileAbTraits',['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html',1,'cutlass::gemm']]],
['gemmtiletraitshelpera',['GemmTileTraitsHelperA',['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA.html',1,'cutlass::gemm']]],
['gemmtiletraitshelpera_3c_20klayout_5f_2c_20gemmconfig_5f_20_3e',['GemmTileTraitsHelperA< kLayout_, GemmConfig_ >',['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA.html',1,'cutlass::gemm']]],
['gemmtiletraitshelpera_3c_20matrixlayout_3a_3akcolumnmajor_2c_20gemmconfig_5f_20_3e',['GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >',['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html',1,'cutlass::gemm']]],
['gemmtiletraitshelpera_3c_20matrixlayout_3a_3akrowmajor_2c_20gemmconfig_5f_20_3e',['GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >',['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html',1,'cutlass::gemm']]],
['gemmtiletraitshelperb',['GemmTileTraitsHelperB',['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB.html',1,'cutlass::gemm']]],
['gemmtiletraitshelperb_3c_20klayout_5f_2c_20gemmconfig_5f_20_3e',['GemmTileTraitsHelperB< kLayout_, GemmConfig_ >',['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB.html',1,'cutlass::gemm']]],
['gemmtiletraitshelperb_3c_20matrixlayout_3a_3akcolumnmajor_2c_20gemmconfig_5f_20_3e',['GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >',['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html',1,'cutlass::gemm']]],
['gemmtiletraitshelperb_3c_20matrixlayout_3a_3akrowmajor_2c_20gemmconfig_5f_20_3e',['GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >',['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html',1,'cutlass::gemm']]],
['gemmtraits',['GemmTraits',['../structcutlass_1_1gemm_1_1GemmTraits.html',1,'cutlass::gemm']]],
['gemmtraits_3c_20gemmconfig_5f_2c_20helper_5f_3a_3agloballoadstreama_2c_20helper_5f_3a_3agloballoadstreamb_2c_20helper_5f_3a_3asharedloadstreama_2c_20helper_5f_3a_3asharedloadstreamb_2c_20epilogue_5f_2c_20identityblockswizzle_2c_20index_5f_2c_20clearaccumulators_3c_20gemmconfig_5f_3a_3aaccumulators_3a_3aelement_20_3e_20_3e',['GemmTraits< GemmConfig_, Helper_::GlobalLoadStreamA, Helper_::GlobalLoadStreamB, Helper_::SharedLoadStreamA, Helper_::SharedLoadStreamB, Epilogue_, IdentityBlockSwizzle, Index_, ClearAccumulators< GemmConfig_::Accumulators::Element > >',['../structcutlass_1_1gemm_1_1GemmTraits.html',1,'cutlass::gemm']]],
['gemmtraits_3c_20gemmconfig_5f_2c_20simplifiedgemmtraitshelper_3c_20gemmtiletraitshelpera_3c_20klayouta_5f_2c_20gemmconfig_5f_20_3e_2c_20gemmtiletraitshelperb_3c_20klayoutb_5f_2c_20gemmconfig_5f_20_3e_2c_20index_5f_20_3e_20_3a_3agloballoadstreama_2c_20simplifiedgemmtraitshelper_3c_20gemmtiletraitshelpera_3c_20klayouta_5f_2c_20gemmconfig_5f_20_3e_2c_20gemmtiletraitshelperb_3c_20klayoutb_5f_2c_20gemmconfig_5f_20_3e_2c_20index_5f_20_3e_20_3a_3agloballoadstreamb_2c_20simplifiedgemmtraitshelper_3c_20gemmtiletraitshelpera_3c_20klayouta_5f_2c_20gemmconfig_5f_20_3e_2c_20gemmtiletraitshelperb_3c_20klayoutb_5f_2c_20gemmconfig_5f_20_3e_2c_20index_5f_20_3e_20_3a_3asharedloadstreama_2c_20simplifiedgemmtraitshelper_3c_20gemmtiletraitshelpera_3c_20klayouta_5f_2c_20gemmconfig_5f_20_3e_2c_20gemmtiletraitshelperb_3c_20klayoutb_5f_2c_20gemmconfig_5f_20_3e_2c_20index_5f_20_3e_20_3a_3asharedloadstreamb_2c_20gemmepilogue_3c_20gemmepiloguetraits_5f_20_3e_2c_20identityblockswizzle_2c_20index_5f_2c_20clearaccumulators_3c_20gemmconfig_5f_3a_3aaccumulators_3a_3aelement_20_3e_20_3e',['GemmTraits< GemmConfig_, SimplifiedGemmTraitsHelper< GemmTileTraitsHelperA< kLayoutA_, GemmConfig_ >, GemmTileTraitsHelperB< kLayoutB_, GemmConfig_ >, Index_ > ::GlobalLoadStreamA, SimplifiedGemmTraitsHelper< GemmTileTraitsHelperA< kLayoutA_, GemmConfig_ >, GemmTileTraitsHelperB< kLayoutB_, GemmConfig_ >, Index_ > ::GlobalLoadStreamB, SimplifiedGemmTraitsHelper< GemmTileTraitsHelperA< kLayoutA_, GemmConfig_ >, GemmTileTraitsHelperB< kLayoutB_, GemmConfig_ >, Index_ > ::SharedLoadStreamA, SimplifiedGemmTraitsHelper< GemmTileTraitsHelperA< kLayoutA_, GemmConfig_ >, GemmTileTraitsHelperB< kLayoutB_, GemmConfig_ >, Index_ > ::SharedLoadStreamB, GemmEpilogue< GemmEpilogueTraits_ >, IdentityBlockSwizzle, Index_, ClearAccumulators< GemmConfig_::Accumulators::Element > >',['../structcutlass_1_1gemm_1_1GemmTraits.html',1,'cutlass::gemm']]],
['gemmtraits_3c_20helper_5f_3a_3agemmconfig_2c_20helper_5f_3a_3agloballoadstreama_2c_20helper_5f_3a_3agloballoadstreamb_2c_20helper_5f_3a_3asharedloadstreama_2c_20helper_5f_3a_3asharedloadstreamb_2c_20helper_5f_3a_3aepilogue_2c_20identityblockswizzle_2c_20index_5f_2c_20helper_5f_3a_3aclearaccumulators_20_3e',['GemmTraits< Helper_::GemmConfig, Helper_::GlobalLoadStreamA, Helper_::GlobalLoadStreamB, Helper_::SharedLoadStreamA, Helper_::SharedLoadStreamB, Helper_::Epilogue, IdentityBlockSwizzle, Index_, Helper_::ClearAccumulators >',['../structcutlass_1_1gemm_1_1GemmTraits.html',1,'cutlass::gemm']]],
['getextent',['GetExtent',['../structcutlass_1_1gemm_1_1GetExtent.html',1,'cutlass::gemm']]],
['getextent_3c_20gemmoperand_3a_3aka_2c_20tile_5f_20_3e',['GetExtent< GemmOperand::kA, Tile_ >',['../structcutlass_1_1gemm_1_1GetExtent_3_01GemmOperand_1_1kA_00_01Tile___01_4.html',1,'cutlass::gemm']]],
['getextent_3c_20gemmoperand_3a_3akb_2c_20tile_5f_20_3e',['GetExtent< GemmOperand::kB, Tile_ >',['../structcutlass_1_1gemm_1_1GetExtent_3_01GemmOperand_1_1kB_00_01Tile___01_4.html',1,'cutlass::gemm']]],
['globalloadstream',['GlobalLoadStream',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html',1,'cutlass::gemm']]],
['globalloadstreampair',['GlobalLoadStreamPair',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html',1,'cutlass::gemm']]],
['greater',['greater',['../structcutlass_1_1platform_1_1greater.html',1,'cutlass::platform']]]
['gemmdescription',['GemmDescription',['../structcutlass_1_1library_1_1GemmDescription.html',1,'cutlass::library']]],
['gemmhorizontalthreadblockswizzle',['GemmHorizontalThreadblockSwizzle',['../structcutlass_1_1gemm_1_1threadblock_1_1GemmHorizontalThreadblockSwizzle.html',1,'cutlass::gemm::threadblock']]],
['gemmidentitythreadblockswizzle',['GemmIdentityThreadblockSwizzle',['../structcutlass_1_1gemm_1_1threadblock_1_1GemmIdentityThreadblockSwizzle.html',1,'cutlass::gemm::threadblock']]],
['gemmplanarcomplexbatchedconfiguration',['GemmPlanarComplexBatchedConfiguration',['../structcutlass_1_1library_1_1GemmPlanarComplexBatchedConfiguration.html',1,'cutlass::library']]],
['gemmplanarcomplexconfiguration',['GemmPlanarComplexConfiguration',['../structcutlass_1_1library_1_1GemmPlanarComplexConfiguration.html',1,'cutlass::library']]],
['gemmshape',['GemmShape',['../structcutlass_1_1gemm_1_1GemmShape.html',1,'cutlass::gemm']]],
['gemmsplitkhorizontalthreadblockswizzle',['GemmSplitKHorizontalThreadblockSwizzle',['../structcutlass_1_1gemm_1_1threadblock_1_1GemmSplitKHorizontalThreadblockSwizzle.html',1,'cutlass::gemm::threadblock']]],
['gemmsplitkidentitythreadblockswizzle',['GemmSplitKIdentityThreadblockSwizzle',['../structcutlass_1_1gemm_1_1threadblock_1_1GemmSplitKIdentityThreadblockSwizzle.html',1,'cutlass::gemm::threadblock']]],
['gemmsplitkparallel',['GemmSplitKParallel',['../classcutlass_1_1gemm_1_1device_1_1GemmSplitKParallel.html',1,'cutlass::gemm::device']]],
['gemmsplitkparallel',['GemmSplitKParallel',['../structcutlass_1_1gemm_1_1kernel_1_1GemmSplitKParallel.html',1,'cutlass::gemm::kernel']]],
['gemmsplitkparallel_3c_20elementa_5f_2c_20layouta_5f_2c_20elementb_5f_2c_20layoutb_5f_2c_20elementc_5f_2c_20layout_3a_3acolumnmajor_2c_20elementaccumulator_5f_2c_20operatorclass_5f_2c_20archtag_5f_2c_20threadblockshape_5f_2c_20warpshape_5f_2c_20instructionshape_5f_2c_20epilogueoutputop_5f_2c_20convertscaledop_5f_2c_20reductionop_5f_2c_20threadblockswizzle_5f_2c_20stages_2c_20kalignmenta_2c_20kalignmentb_2c_20operator_5f_20_3e',['GemmSplitKParallel< ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, layout::ColumnMajor, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ConvertScaledOp_, ReductionOp_, ThreadblockSwizzle_, Stages, kAlignmentA, kAlignmentB, Operator_ >',['../classcutlass_1_1gemm_1_1device_1_1GemmSplitKParallel_3_01ElementA___00_01LayoutA___00_01ElementBbe7c1f7154ad5b5bf9d4d28301e2b457.html',1,'cutlass::gemm::device']]],
['gemmsplitkparallel_3c_20elementb_2c_20typename_20layout_3a_3alayouttranspose_3c_20layoutb_20_3e_3a_3atype_2c_20elementa_2c_20typename_20layout_3a_3alayouttranspose_3c_20layouta_20_3e_3a_3atype_2c_20elementc_2c_20layout_3a_3arowmajor_2c_20elementaccumulator_2c_20operatorclass_2c_20archtag_2c_20threadblockshape_2c_20warpshape_2c_20instructionshape_2c_20epilogueoutputop_2c_20convertscaledop_2c_20reductionop_2c_20threadblockswizzle_2c_20stages_2c_20kalignmenta_2c_20kalignmentb_2c_20operator_20_3e',['GemmSplitKParallel< ElementB, typename layout::LayoutTranspose< LayoutB >::type, ElementA, typename layout::LayoutTranspose< LayoutA >::type, ElementC, layout::RowMajor, ElementAccumulator, OperatorClass, ArchTag, ThreadblockShape, WarpShape, InstructionShape, EpilogueOutputOp, ConvertScaledOp, ReductionOp, ThreadblockSwizzle, Stages, kAlignmentA, kAlignmentB, Operator >',['../classcutlass_1_1gemm_1_1device_1_1GemmSplitKParallel.html',1,'cutlass::gemm::device']]],
['gemv',['Gemv',['../classcutlass_1_1gemm_1_1threadblock_1_1Gemv.html',1,'cutlass::gemm::threadblock']]],
['gemvbatchedstridedepiloguescaling',['GemvBatchedStridedEpilogueScaling',['../structcutlass_1_1gemm_1_1kernel_1_1detail_1_1GemvBatchedStridedEpilogueScaling.html',1,'cutlass::gemm::kernel::detail']]],
['gemvbatchedstridedthreadblockdefaultswizzle',['GemvBatchedStridedThreadblockDefaultSwizzle',['../structcutlass_1_1gemm_1_1threadblock_1_1GemvBatchedStridedThreadblockDefaultSwizzle.html',1,'cutlass::gemm::threadblock']]],
['generalmatrix',['GeneralMatrix',['../structcutlass_1_1layout_1_1GeneralMatrix.html',1,'cutlass::layout']]]
];