From b2bc0d3b7946f2e732315df781362c7192655a73 Mon Sep 17 00:00:00 2001 From: Andrew Kerr Date: Fri, 26 Oct 2018 14:54:58 -0700 Subject: [PATCH] Updating Doxygen docs --- docs/annotated.html | 707 ++++++++-------- docs/batched__reduction_8h.html | 119 +++ docs/batched__reduction_8h_source.html | 104 +++ docs/batched__reduction__traits_8h.html | 115 +++ .../batched__reduction__traits_8h_source.html | 131 +++ ...dicateVector_1_1ConstIterator-members.html | 2 +- ...s_1_1PredicateVector_1_1ConstIterator.html | 2 +- ..._1PredicateVector_1_1Iterator-members.html | 2 +- ...utlass_1_1PredicateVector_1_1Iterator.html | 2 +- docs/classcutlass_1_1TensorRef-members.html | 2 +- docs/classcutlass_1_1TensorRef.html | 2 +- ...nsorRefArray_1_1ConstIterator-members.html | 8 +- ...ss_1_1TensorRefArray_1_1ConstIterator.html | 54 +- ...BatchStrided_1_1ConstIterator-members.html | 6 +- ...ensorRefBatchStrided_1_1ConstIterator.html | 42 +- ...Index___00_01LongIndex___01_4-members.html | 2 +- ...11_00_01Index___00_01LongIndex___01_4.html | 2 +- docs/classcutlass_1_1TensorView-members.html | 2 +- docs/classcutlass_1_1TensorView.html | 2 +- ...asscutlass_1_1ZipTileIterator-members.html | 49 +- docs/classcutlass_1_1ZipTileIterator.html | 45 +- ..._1_1detail_1_1ScalarOrPointer-members.html | 2 +- ...scutlass_1_1detail_1_1ScalarOrPointer.html | 2 +- ...earScalingDevicePtr_1_1Params-members.html | 2 +- ...m_1_1LinearScalingDevicePtr_1_1Params.html | 2 +- ...utlass_1_1platform_1_1complex-members.html | 2 +- docs/classcutlass_1_1platform_1_1complex.html | 2 +- ...ss_1_1platform_1_1unique__ptr-members.html | 2 +- ...asscutlass_1_1platform_1_1unique__ptr.html | 2 +- docs/classes.html | 183 ++--- docs/clear__accumulators_8h.html | 2 +- docs/clear__accumulators_8h_source.html | 2 +- docs/complex_8h.html | 2 +- docs/complex_8h_source.html | 2 +- docs/convert_8h.html | 2 +- docs/convert_8h_source.html | 2 +- docs/coord_8h.html | 18 +- docs/coord_8h_source.html | 11 +- docs/core__io_8h.html | 2 +- docs/core__io_8h_source.html | 2 +- docs/cutlass_8h.html | 61 +- docs/cutlass_8h_source.html | 11 +- docs/cutlass__math_8h.html | 2 +- docs/cutlass__math_8h_source.html | 2 +- docs/debug_8h.html | 2 +- docs/debug_8h_source.html | 2 +- docs/device__gemm_8h.html | 111 +++ docs/device__gemm_8h_source.html | 95 +++ docs/device__gemm__traits_8h.html | 113 +++ docs/device__gemm__traits_8h_source.html | 133 +++ docs/dgemm__traits_8h.html | 2 +- docs/dgemm__traits_8h_source.html | 10 +- .../dir_1417ee5ebebc309c36b7962f26a92c39.html | 4 +- .../dir_18d6a367a3982a494d65599933fc67a3.html | 11 +- .../dir_c5917a9a879e9a6c73eaf5237444ab84.html | 7 +- .../dir_f34d74b5ae2b711d395109410c5aafb1.html | 100 +++ docs/files.html | 145 ++-- docs/fp16__sgemm__multiply__add_8h.html | 2 +- .../fp16__sgemm__multiply__add_8h_source.html | 2 +- docs/fp16__sgemm__traits_8h.html | 2 +- docs/fp16__sgemm__traits_8h_source.html | 10 +- docs/fragment_8h.html | 2 +- docs/fragment_8h_source.html | 2 +- docs/fragment__multiply__add_8h.html | 2 +- docs/fragment__multiply__add_8h_source.html | 2 +- docs/functions.html | 23 +- docs/functions_0x7e.html | 2 +- docs/functions_b.html | 14 +- docs/functions_c.html | 9 +- docs/functions_d.html | 21 +- docs/functions_e.html | 2 +- docs/functions_enum.html | 3 +- docs/functions_eval.html | 8 +- docs/functions_f.html | 25 +- docs/functions_func.html | 24 +- docs/functions_func_0x7e.html | 2 +- docs/functions_func_b.html | 5 +- docs/functions_func_c.html | 4 +- docs/functions_func_d.html | 12 +- docs/functions_func_e.html | 2 +- docs/functions_func_f.html | 7 +- docs/functions_func_g.html | 20 +- docs/functions_func_h.html | 2 +- docs/functions_func_i.html | 29 +- docs/functions_func_k.html | 2 +- docs/functions_func_l.html | 20 +- docs/functions_func_m.html | 5 +- docs/functions_func_n.html | 2 +- docs/functions_func_o.html | 12 +- docs/functions_func_p.html | 14 +- docs/functions_func_r.html | 8 +- docs/functions_func_s.html | 5 +- docs/functions_func_t.html | 16 +- docs/functions_func_u.html | 2 +- docs/functions_func_v.html | 11 +- docs/functions_func_w.html | 2 +- docs/functions_func_z.html | 2 +- docs/functions_g.html | 24 +- docs/functions_h.html | 2 +- docs/functions_i.html | 39 +- docs/functions_k.html | 15 +- docs/functions_l.html | 31 +- docs/functions_m.html | 11 +- docs/functions_n.html | 2 +- docs/functions_o.html | 26 +- docs/functions_p.html | 35 +- docs/functions_r.html | 24 +- docs/functions_s.html | 39 +- docs/functions_t.html | 38 +- docs/functions_type.html | 2 +- docs/functions_type_b.html | 3 +- docs/functions_type_c.html | 3 +- docs/functions_type_d.html | 2 +- docs/functions_type_e.html | 2 +- docs/functions_type_f.html | 7 +- docs/functions_type_g.html | 5 +- docs/functions_type_i.html | 6 +- docs/functions_type_k.html | 4 +- docs/functions_type_l.html | 12 +- docs/functions_type_m.html | 2 +- docs/functions_type_n.html | 2 +- docs/functions_type_o.html | 3 +- docs/functions_type_p.html | 6 +- docs/functions_type_r.html | 86 ++ docs/functions_type_s.html | 19 +- docs/functions_type_t.html | 19 +- docs/functions_type_v.html | 2 +- docs/functions_type_w.html | 2 +- docs/functions_type_y.html | 2 +- docs/functions_u.html | 2 +- docs/functions_v.html | 5 +- docs/functions_vars.html | 3 +- docs/functions_vars_b.html | 8 +- docs/functions_vars_c.html | 2 +- docs/functions_vars_d.html | 11 +- docs/functions_vars_e.html | 2 +- docs/functions_vars_f.html | 9 +- docs/functions_vars_g.html | 5 +- docs/functions_vars_i.html | 6 +- docs/functions_vars_k.html | 6 +- docs/functions_vars_l.html | 11 +- docs/functions_vars_m.html | 8 +- docs/functions_vars_n.html | 2 +- docs/functions_vars_o.html | 5 +- docs/functions_vars_p.html | 11 +- docs/functions_vars_r.html | 11 +- docs/functions_vars_s.html | 7 +- docs/functions_vars_t.html | 5 +- docs/functions_vars_v.html | 2 +- docs/functions_vars_w.html | 89 ++ docs/functions_w.html | 8 +- docs/functions_y.html | 2 +- docs/functions_z.html | 2 +- docs/gemm_2threadblock__swizzle_8h.html | 126 +++ .../gemm_2threadblock__swizzle_8h_source.html | 127 +++ docs/gemm_8h.html | 2 +- docs/gemm_8h_source.html | 10 +- docs/gemm__config_8h.html | 2 +- docs/gemm__config_8h_source.html | 2 +- docs/gemm__coord_8h.html | 2 +- docs/gemm__coord_8h_source.html | 27 +- docs/gemm__desc_8h.html | 2 +- docs/gemm__desc_8h_source.html | 2 +- docs/gemm__epilogue_8h.html | 2 +- docs/gemm__epilogue_8h_source.html | 20 +- docs/gemm__epilogue__traits_8h.html | 2 +- docs/gemm__epilogue__traits_8h_source.html | 85 +- docs/gemm__global__stream_8h.html | 2 +- docs/gemm__global__stream_8h_source.html | 69 +- docs/gemm__global__tile_8h.html | 2 +- docs/gemm__global__tile_8h_source.html | 173 ++-- docs/gemm__operand_8h.html | 2 +- docs/gemm__operand_8h_source.html | 10 +- docs/gemm__shared__stream_8h.html | 2 +- docs/gemm__shared__stream_8h_source.html | 22 +- docs/gemm__shared__tile_8h.html | 2 +- docs/gemm__shared__tile_8h_source.html | 4 +- docs/gemm__stream__pair_8h.html | 4 +- docs/gemm__stream__pair_8h_source.html | 53 +- docs/gemm__traits_8h.html | 4 +- docs/gemm__traits_8h_source.html | 89 +- docs/globals.html | 11 +- docs/globals_defs.html | 11 +- docs/globals_func.html | 2 +- docs/group__IdentityBlockSwizzle.html | 2 +- docs/group__fragment__concept.html | 2 +- docs/group__fragment__iterator__concept.html | 2 +- docs/group__layout__concept.html | 2 +- docs/group__predicate__iterator__concept.html | 2 +- docs/group__predicate__tile__adapter.html | 2 +- docs/group__predicate__vector__concept.html | 2 +- .../group__tile__load__iterator__concept.html | 2 +- ...group__tile__store__iterator__concept.html | 2 +- docs/group__tile__traits__concept.html | 2 +- docs/hgemm__global__tile_8h.html | 2 +- docs/hgemm__global__tile_8h_source.html | 8 +- docs/hgemm__multiply__add_8h.html | 2 +- docs/hgemm__multiply__add_8h_source.html | 2 +- docs/hgemm__swizzle_8h.html | 2 +- docs/hgemm__swizzle_8h_source.html | 2 +- docs/hgemm__traits_8h.html | 2 +- docs/hgemm__traits_8h_source.html | 17 +- docs/hierarchy.html | 765 +++++++++--------- docs/igemm__epilogue_8h.html | 2 +- docs/igemm__epilogue_8h_source.html | 16 +- docs/igemm__global__tile_8h.html | 2 +- docs/igemm__global__tile_8h_source.html | 26 +- docs/igemm__multiply__add_8h.html | 2 +- docs/igemm__multiply__add_8h_source.html | 4 +- docs/igemm__swizzle_8h.html | 2 +- docs/igemm__swizzle_8h_source.html | 2 +- docs/igemm__traits_8h.html | 2 +- docs/igemm__traits_8h_source.html | 15 +- docs/index.html | 2 +- docs/iterator__access_8h.html | 2 +- docs/iterator__access_8h_source.html | 2 +- docs/kernel__launch_8h.html | 2 +- docs/kernel__launch_8h_source.html | 2 +- docs/linear__scaling_8h.html | 2 +- docs/linear__scaling_8h_source.html | 2 +- docs/linear__scaling__device__ptr_8h.html | 2 +- ...inear__scaling__device__ptr_8h_source.html | 2 +- docs/load__store_8h.html | 2 +- docs/load__store_8h_source.html | 2 +- docs/matrix__traits_8h.html | 19 +- docs/matrix__traits_8h_source.html | 13 +- docs/menudata.js | 9 +- docs/modules.html | 2 +- docs/namespacecutlass.html | 234 +++++- docs/namespacecutlass_1_1MatrixLayout.html | 140 ++++ docs/namespacecutlass_1_1detail.html | 2 +- docs/namespacecutlass_1_1gemm.html | 6 +- docs/namespacecutlass_1_1platform.html | 549 +++++++++---- docs/namespacecutlass_1_1reduction.html | 137 ++++ docs/namespacemembers.html | 44 +- docs/namespacemembers_enum.html | 84 ++ docs/namespacemembers_eval.html | 87 ++ docs/namespacemembers_func.html | 27 +- docs/namespacemembers_type.html | 2 +- docs/namespaces.html | 6 +- docs/numeric__types_8h.html | 2 +- docs/numeric__types_8h_source.html | 2 +- docs/pair_8h.html | 141 ++++ docs/pair_8h_source.html | 101 +++ docs/performance__tuning_8h.html | 160 ++++ docs/performance__tuning_8h_source.html | 87 ++ docs/platform_8h.html | 2 +- docs/platform_8h_source.html | 8 +- docs/predicate__vector_8h.html | 2 +- docs/predicate__vector_8h_source.html | 6 +- docs/reduction_2threadblock__swizzle_8h.html | 109 +++ ...ction_2threadblock__swizzle_8h_source.html | 97 +++ docs/reshape__tile_8h.html | 6 +- docs/reshape__tile_8h_source.html | 6 +- docs/scalar__or__pointer_8h.html | 2 +- docs/scalar__or__pointer_8h_source.html | 2 +- docs/search/all_0.js | 2 +- docs/search/all_1.js | 7 +- docs/search/all_10.js | 9 +- docs/search/all_11.js | 25 +- docs/search/all_12.js | 23 +- docs/search/all_14.js | 3 +- docs/search/all_15.js | 6 +- docs/search/all_2.js | 13 +- docs/search/all_3.js | 15 +- docs/search/all_4.js | 7 + docs/search/all_6.js | 7 +- docs/search/all_7.js | 18 +- docs/search/all_9.js | 14 +- docs/search/all_a.js | 16 +- docs/search/all_b.js | 7 +- docs/search/all_c.js | 7 +- docs/search/all_e.js | 22 +- docs/search/all_f.js | 13 +- docs/search/classes_1.js | 2 + docs/search/classes_10.js | 2 +- docs/search/classes_13.js | 4 +- docs/search/classes_3.js | 2 + docs/search/classes_b.js | 1 - docs/search/classes_d.js | 5 +- docs/search/classes_f.js | 3 +- docs/search/defines_1.js | 7 +- docs/search/enums_0.js | 2 +- docs/search/enumvalues_2.js | 4 +- docs/search/files_0.js | 9 +- docs/search/files_1.js | 9 +- docs/search/files_10.js | 9 +- docs/search/files_11.html | 30 + docs/search/files_11.js | 6 + docs/search/files_2.js | 8 +- docs/search/files_3.js | 17 +- docs/search/files_4.js | 18 +- docs/search/files_5.js | 10 +- docs/search/files_6.js | 7 +- docs/search/files_7.js | 4 +- docs/search/files_8.js | 4 +- docs/search/files_9.js | 2 +- docs/search/files_a.js | 3 +- docs/search/files_b.js | 5 +- docs/search/files_c.js | 5 +- docs/search/files_d.js | 13 +- docs/search/files_e.js | 10 +- docs/search/files_f.js | 7 +- docs/search/functions_0.js | 2 +- docs/search/functions_1.js | 5 +- docs/search/functions_10.js | 4 +- docs/search/functions_11.js | 2 +- docs/search/functions_12.js | 2 +- docs/search/functions_14.js | 3 +- docs/search/functions_2.js | 1 + docs/search/functions_3.js | 2 +- docs/search/functions_4.js | 2 + docs/search/functions_6.js | 3 +- docs/search/functions_7.js | 12 +- docs/search/functions_9.js | 8 +- docs/search/functions_b.js | 2 +- docs/search/functions_c.js | 4 +- docs/search/functions_e.js | 19 +- docs/search/functions_f.js | 5 +- docs/search/namespaces_0.js | 4 +- docs/search/searchdata.js | 6 +- docs/search/typedefs_1.js | 2 +- docs/search/typedefs_10.js | 31 +- docs/search/typedefs_11.js | 4 +- docs/search/typedefs_12.js | 2 +- docs/search/typedefs_13.html | 30 + docs/search/typedefs_13.js | 4 + docs/search/typedefs_2.js | 2 +- docs/search/typedefs_5.js | 3 +- docs/search/typedefs_6.js | 1 + docs/search/typedefs_7.js | 2 +- docs/search/typedefs_8.js | 2 +- docs/search/typedefs_9.js | 2 +- docs/search/typedefs_c.js | 2 +- docs/search/typedefs_d.js | 2 +- docs/search/typedefs_e.js | 35 +- docs/search/typedefs_f.js | 63 +- docs/search/variables_0.js | 2 +- docs/search/variables_1.js | 7 +- docs/search/variables_10.js | 1 + docs/search/variables_12.html | 30 + docs/search/variables_12.js | 5 + docs/search/variables_3.js | 3 + docs/search/variables_5.js | 5 +- docs/search/variables_6.js | 1 + docs/search/variables_7.js | 4 +- docs/search/variables_8.js | 8 +- docs/search/variables_9.js | 3 + docs/search/variables_a.js | 2 + docs/search/variables_c.js | 3 +- docs/search/variables_d.js | 6 +- docs/search/variables_e.js | 3 + docs/search/variables_f.js | 4 +- docs/sgemm__traits_8h.html | 2 +- docs/sgemm__traits_8h_source.html | 10 +- docs/shape_8h.html | 2 +- docs/shape_8h_source.html | 2 +- docs/structDebugType.html | 2 +- docs/structDebugValue.html | 2 +- docs/structcutlass_1_1AlignedStruct.html | 2 +- ...ass_1_1ComputeOffsetFromShape-members.html | 2 +- ...ructcutlass_1_1ComputeOffsetFromShape.html | 2 +- ...s_1_1ComputeOffsetFromStrides-members.html | 2 +- ...ctcutlass_1_1ComputeOffsetFromStrides.html | 2 +- ...omputeThreadOffsetFromStrides-members.html | 2 +- ...ass_1_1ComputeThreadOffsetFromStrides.html | 2 +- ...011_03ed682791cf043da79a7cc93228a8c85.html | 2 +- ...011_0e75281d7e02fa191f5d498e10e25dc1b.html | 2 +- ...01T__dd54c41f6edb97d3c208cb7c6fe4ab9b.html | 2 +- ...01T__f2e6d84a53db391977c787a65ed62aca.html | 2 +- ..._1_1ConstPredicateTileAdapter-members.html | 2 +- ...tcutlass_1_1ConstPredicateTileAdapter.html | 2 +- docs/structcutlass_1_1Convert.html | 2 +- ...3_01Ob568b5e19b6f78a5fa50d1f821f0bc2a.html | 2 +- ...3_01Ofca5985d18bcb54bc1f49355f3cee121.html | 2 +- docs/structcutlass_1_1Coord-members.html | 2 +- docs/structcutlass_1_1Coord.html | 2 +- docs/structcutlass_1_1Copy-members.html | 2 +- docs/structcutlass_1_1Copy.html | 2 +- docs/structcutlass_1_1DumpType.html | 2 +- docs/structcutlass_1_1Extent-members.html | 2 +- docs/structcutlass_1_1Extent.html | 2 +- ...or_3_01T_00_01Lanes_01_4_01_4-members.html | 2 +- ...3_01Vector_3_01T_00_01Lanes_01_4_01_4.html | 2 +- ..._00_01Lanes_01_4_01const_01_4-members.html | 2 +- ...or_3_01T_00_01Lanes_01_4_01const_01_4.html | 2 +- docs/structcutlass_1_1Fragment-members.html | 2 +- docs/structcutlass_1_1Fragment.html | 2 +- ...lass_1_1FragmentConstIterator-members.html | 2 +- ...tructcutlass_1_1FragmentConstIterator.html | 2 +- ...utlass_1_1FragmentElementType-members.html | 2 +- .../structcutlass_1_1FragmentElementType.html | 2 +- ...ctcutlass_1_1FragmentIterator-members.html | 2 +- docs/structcutlass_1_1FragmentIterator.html | 2 +- .../structcutlass_1_1GemmOperand-members.html | 2 +- docs/structcutlass_1_1GemmOperand.html | 2 +- docs/structcutlass_1_1Identity-members.html | 2 +- docs/structcutlass_1_1Identity.html | 2 +- ...lass_1_1IdentityTensorMapFunc-members.html | 2 +- ...tructcutlass_1_1IdentityTensorMapFunc.html | 2 +- ...uctcutlass_1_1IteratorAdvance-members.html | 2 +- docs/structcutlass_1_1IteratorAdvance.html | 2 +- ..._1_1KernelLaunchConfiguration-members.html | 2 +- ...tcutlass_1_1KernelLaunchConfiguration.html | 2 +- docs/structcutlass_1_1Load-members.html | 2 +- docs/structcutlass_1_1Load.html | 2 +- ...1_1kS1b28106546bd22002cd52e60197548ce.html | 2 +- ...1_1kS3de71ba9ef724a37fb1cf315da8bf9b5.html | 2 +- ...1_1kS840de374cd1e3ee3a4aa6a70a9fa83d1.html | 2 +- ...1_1kS91ff65dd36f118bca4542df6128d6d99.html | 2 +- ...1_1kS966cdf9ba449f056a92458bf87878053.html | 2 +- ...1_1kSc8e65d97c8f615e98ac2e03f0bcd236e.html | 2 +- ...1_1kSf1f63874ddc1302ed9e60e0478e1a8ad.html | 2 +- ...1_1kSf2952bcb62d20c76c595eac4c59f7239.html | 2 +- ...1_1kW847237836867f08e1121b00b7e44d8ae.html | 2 +- ...1_1kWe58d0048e24352beeec002fd483c53b2.html | 2 +- ..._01Fr16ad55dd7bca84e6a7fc608c26eee889.html | 2 +- ..._01Fra240d9c28383cd3945277ec3a927c538.html | 2 +- ...01Fra03475418f27732d726d18feb23feeed2.html | 2 +- ...01Fra934529165fa8fecdd392b5302d25ef26.html | 2 +- ..._01Fr23088b868c6eeec9377c46892553686f.html | 2 +- ..._01Frc8b0aa6ddd9b4317158c26574a6881de.html | 2 +- ...0_01d9e675253ca19588f1ae4bd898579523f.html | 2 +- ...00_01double_00_01kStride_00_0116_01_4.html | 2 +- .../structcutlass_1_1MatrixCoord-members.html | 2 +- docs/structcutlass_1_1MatrixCoord.html | 2 +- ..._1MatrixLayout_1_1ColumnMajor-members.html | 4 +- ...utlass_1_1MatrixLayout_1_1ColumnMajor.html | 4 +- ...out_1_1ColumnMajorBlockLinear-members.html | 4 +- ...atrixLayout_1_1ColumnMajorBlockLinear.html | 4 +- ...out_1_1ColumnMajorInterleaved-members.html | 4 +- ...atrixLayout_1_1ColumnMajorInterleaved.html | 4 +- ...rixLayout_1_1ContiguousLayout-members.html | 4 +- ...s_1_1MatrixLayout_1_1ContiguousLayout.html | 8 +- ...s_1_1MatrixLayout_1_1RowMajor-members.html | 4 +- ...ctcutlass_1_1MatrixLayout_1_1RowMajor.html | 4 +- ...Layout_1_1RowMajorBlockLinear-members.html | 4 +- ..._1MatrixLayout_1_1RowMajorBlockLinear.html | 4 +- ...Layout_1_1RowMajorInterleaved-members.html | 4 +- ..._1MatrixLayout_1_1RowMajorInterleaved.html | 4 +- ...uctcutlass_1_1MatrixTransform-members.html | 2 +- docs/structcutlass_1_1MatrixTransform.html | 2 +- docs/structcutlass_1_1Max-members.html | 2 +- docs/structcutlass_1_1Max.html | 2 +- .../structcutlass_1_1MemorySpace-members.html | 2 +- docs/structcutlass_1_1MemorySpace.html | 2 +- docs/structcutlass_1_1Min-members.html | 2 +- docs/structcutlass_1_1Min.html | 2 +- ...tlass_1_1PredicateTileAdapter-members.html | 2 +- ...structcutlass_1_1PredicateTileAdapter.html | 2 +- ...uctcutlass_1_1PredicateVector-members.html | 2 +- docs/structcutlass_1_1PredicateVector.html | 2 +- ...cateVector_1_1TrivialIterator-members.html | 2 +- ...1_1PredicateVector_1_1TrivialIterator.html | 2 +- ...s_1_1PredicatedTileLoadStream-members.html | 2 +- ...ctcutlass_1_1PredicatedTileLoadStream.html | 2 +- ..._1_1PredicatedTileStoreStream-members.html | 2 +- ...tcutlass_1_1PredicatedTileStoreStream.html | 2 +- ..._1RegularTilePredicateFunctor-members.html | 2 +- ...utlass_1_1RegularTilePredicateFunctor.html | 2 +- .../structcutlass_1_1ReshapeTile-members.html | 2 +- docs/structcutlass_1_1ReshapeTile.html | 2 +- ...1kAccessSize___00_01true_01_4-members.html | 2 +- ...e___00_01kAccessSize___00_01true_01_4.html | 2 +- docs/structcutlass_1_1ScalarIO-members.html | 2 +- docs/structcutlass_1_1ScalarIO.html | 2 +- docs/structcutlass_1_1Shape-members.html | 2 +- docs/structcutlass_1_1Shape.html | 2 +- docs/structcutlass_1_1ShapeAdd-members.html | 2 +- docs/structcutlass_1_1ShapeAdd.html | 2 +- docs/structcutlass_1_1ShapeCount-members.html | 2 +- docs/structcutlass_1_1ShapeCount.html | 2 +- docs/structcutlass_1_1ShapeDiv-members.html | 2 +- docs/structcutlass_1_1ShapeDiv.html | 2 +- ...uctcutlass_1_1ShapeDivCeiling-members.html | 2 +- docs/structcutlass_1_1ShapeDivCeiling.html | 2 +- docs/structcutlass_1_1ShapeMax-members.html | 2 +- docs/structcutlass_1_1ShapeMax.html | 2 +- docs/structcutlass_1_1ShapeMin-members.html | 2 +- docs/structcutlass_1_1ShapeMin.html | 2 +- docs/structcutlass_1_1ShapeMul-members.html | 2 +- docs/structcutlass_1_1ShapeMul.html | 2 +- docs/structcutlass_1_1ShapeScale-members.html | 2 +- docs/structcutlass_1_1ShapeScale.html | 2 +- ...structcutlass_1_1ShapeStrides-members.html | 2 +- docs/structcutlass_1_1ShapeStrides.html | 2 +- docs/structcutlass_1_1ShapeSub-members.html | 2 +- docs/structcutlass_1_1ShapeSub.html | 2 +- .../structcutlass_1_1StorageType-members.html | 2 +- docs/structcutlass_1_1StorageType.html | 2 +- ...ass_1_1StorageType_3_011_01_4-members.html | 2 +- ...ructcutlass_1_1StorageType_3_011_01_4.html | 2 +- ...ass_1_1StorageType_3_012_01_4-members.html | 2 +- ...ructcutlass_1_1StorageType_3_012_01_4.html | 2 +- ...ass_1_1StorageType_3_014_01_4-members.html | 2 +- ...ructcutlass_1_1StorageType_3_014_01_4.html | 2 +- docs/structcutlass_1_1Store-members.html | 2 +- docs/structcutlass_1_1Store.html | 2 +- ..._1_1k004b304998a534d76357f834068909f8.html | 2 +- ..._1_1k12f5c8a016a307e76de374322fc00a66.html | 2 +- ..._1_1k220d5790f803f10840e2a92fb9a51dac.html | 2 +- ..._1_1k28cc0b88a16efca73d258128312d2a7e.html | 2 +- ..._1_1k40d038d4bce377843c21a56ebf97d011.html | 2 +- ..._1_1k60eedca420c41e94fd40b41299967ef2.html | 2 +- ..._1_1k775a1d27affec5236489735ed4503c92.html | 2 +- ..._1_1k84da7dcd68ee74b8d2bdb67885b0ca56.html | 2 +- ..._1_1kd9a7e85f80a21c504388612a60462417.html | 2 +- ..._1_1ke6d73d34fa7b5254cf828804a19842e1.html | 2 +- ...00_013d38935f41bf709e067932b9e042255a.html | 2 +- ...00_0160391c6be5cb1d3f99e012a6a18e486d.html | 2 +- ...ructcutlass_1_1TensorRefArray-members.html | 8 +- docs/structcutlass_1_1TensorRefArray.html | 161 ++-- ...lass_1_1TensorRefBatchStrided-members.html | 6 +- ...tructcutlass_1_1TensorRefBatchStrided.html | 48 +- ...00_01LongIndex___01_4_1_1StrideVector.html | 2 +- ...ructcutlass_1_1TileAllocation-members.html | 24 +- docs/structcutlass_1_1TileAllocation.html | 100 ++- docs/structcutlass_1_1TileCoord-members.html | 2 +- docs/structcutlass_1_1TileCoord.html | 2 +- ...ctcutlass_1_1TileIteratorBase-members.html | 19 +- docs/structcutlass_1_1TileIteratorBase.html | 21 +- ...1_1TileIteratorBase_1_1Params-members.html | 14 +- ...cutlass_1_1TileIteratorBase_1_1Params.html | 76 +- ...ctcutlass_1_1TileLoadIterator-members.html | 43 +- docs/structcutlass_1_1TileLoadIterator.html | 36 +- ...1_1TileLoadIterator_1_1Params-members.html | 22 +- ...cutlass_1_1TileLoadIterator_1_1Params.html | 84 +- ...ructcutlass_1_1TileLoadStream-members.html | 2 +- docs/structcutlass_1_1TileLoadStream.html | 2 +- ...s_1_1TileLoadStream_1_1Params-members.html | 2 +- ...ctcutlass_1_1TileLoadStream_1_1Params.html | 2 +- ..._1_1TileLoadStream_1_1PredicateVector.html | 2 +- ...tcutlass_1_1TileStoreIterator-members.html | 51 +- docs/structcutlass_1_1TileStoreIterator.html | 36 +- ..._1TileStoreIterator_1_1Params-members.html | 20 +- ...utlass_1_1TileStoreIterator_1_1Params.html | 72 +- ...uctcutlass_1_1TileStoreStream-members.html | 2 +- docs/structcutlass_1_1TileStoreStream.html | 2 +- ..._1_1TileStoreStream_1_1Params-members.html | 2 +- ...tcutlass_1_1TileStoreStream_1_1Params.html | 2 +- ...1_1TileStoreStream_1_1PredicateVector.html | 2 +- docs/structcutlass_1_1TileTraits-members.html | 2 +- docs/structcutlass_1_1TileTraits.html | 2 +- ..._1_1TileTraitsContiguousMajor-members.html | 2 +- ...tcutlass_1_1TileTraitsContiguousMajor.html | 2 +- ...cutlass_1_1TileTraitsStandard-members.html | 2 +- docs/structcutlass_1_1TileTraitsStandard.html | 2 +- ...lass_1_1TileTraitsStrideMajor-members.html | 2 +- ...tructcutlass_1_1TileTraitsStrideMajor.html | 2 +- ...cutlass_1_1TileTraitsWarpRake-members.html | 2 +- docs/structcutlass_1_1TileTraitsWarpRake.html | 2 +- ...raitsWarpRake_1_1ThreadOffset-members.html | 2 +- ...1_1TileTraitsWarpRake_1_1ThreadOffset.html | 2 +- ...tcutlass_1_1TiledThreadOffset-members.html | 2 +- docs/structcutlass_1_1TiledThreadOffset.html | 2 +- ..._1TrivialPredicateTileAdapter-members.html | 2 +- ...utlass_1_1TrivialPredicateTileAdapter.html | 2 +- ...structcutlass_1_1VectorTraits-members.html | 2 +- docs/structcutlass_1_1VectorTraits.html | 2 +- ...or_3_01T_00_01Lanes_01_4_01_4-members.html | 2 +- ...3_01Vector_3_01T_00_01Lanes_01_4_01_4.html | 2 +- ..._00_01Lanes_01_4_01const_01_4-members.html | 2 +- ...or_3_01T_00_01Lanes_01_4_01const_01_4.html | 2 +- docs/structcutlass_1_1Vectorize-members.html | 2 +- docs/structcutlass_1_1Vectorize.html | 2 +- ..._0132_01_4_00_01kLanes___01_4-members.html | 2 +- ...n1__t_00_0132_01_4_00_01kLanes___01_4.html | 2 +- ...0_018_01_4_00_01kLanes___01_4-members.html | 2 +- ...nt4__t_00_018_01_4_00_01kLanes___01_4.html | 2 +- ...0_018_01_4_00_01kLanes___01_4-members.html | 2 +- ...nt4__t_00_018_01_4_00_01kLanes___01_4.html | 2 +- ...uctcutlass_1_1WmmaReshapeTile-members.html | 91 +++ docs/structcutlass_1_1WmmaReshapeTile.html | 118 +++ ...LdsPerAccess___00_01true_01_4-members.html | 91 +++ ...__00_01kLdsPerAccess___00_01true_01_4.html | 118 +++ docs/structcutlass_1_1ZipConvert-members.html | 2 +- docs/structcutlass_1_1ZipConvert.html | 2 +- .../structcutlass_1_1ZipFragment-members.html | 2 +- docs/structcutlass_1_1ZipFragment.html | 2 +- ...structcutlass_1_1ZipTensorRef-members.html | 2 +- docs/structcutlass_1_1ZipTensorRef.html | 2 +- ...tcutlass_1_1ZipTileAllocation-members.html | 2 +- docs/structcutlass_1_1ZipTileAllocation.html | 2 +- ..._1_1ZipTileIterator_1_1Params-members.html | 2 +- ...tcutlass_1_1ZipTileIterator_1_1Params.html | 2 +- docs/structcutlass_1_1bin1__t.html | 2 +- ...ructcutlass_1_1divide__assert-members.html | 2 +- docs/structcutlass_1_1divide__assert.html | 2 +- ..._1_1gemm_1_1ClearAccumulators-members.html | 2 +- ...tcutlass_1_1gemm_1_1ClearAccumulators.html | 2 +- ...1_1ClearAccumulators_1_1SharedStorage.html | 2 +- ...mm_1_1ColumnMajorBlockSwizzle-members.html | 6 +- ...ss_1_1gemm_1_1ColumnMajorBlockSwizzle.html | 76 +- ...cutlass_1_1gemm_1_1DeviceGemm-members.html | 94 +++ docs/structcutlass_1_1gemm_1_1DeviceGemm.html | 211 +++++ ...utlass_1_1gemm_1_1DgemmConfig-members.html | 2 +- .../structcutlass_1_1gemm_1_1DgemmConfig.html | 2 +- ...utlass_1_1gemm_1_1DgemmTraits-members.html | 2 +- .../structcutlass_1_1gemm_1_1DgemmTraits.html | 6 +- ...ss_1_1gemm_1_1Fp16SgemmConfig-members.html | 2 +- ...uctcutlass_1_1gemm_1_1Fp16SgemmConfig.html | 2 +- ...1gemm_1_1Fp16SgemmSgemmTraits-members.html | 2 +- ...tlass_1_1gemm_1_1Fp16SgemmSgemmTraits.html | 6 +- ..._1gemm_1_1FragmentMultiplyAdd-members.html | 2 +- ...utlass_1_1gemm_1_1FragmentMultiplyAdd.html | 2 +- ...half_00_01half_00_01true_01_4-members.html | 2 +- ...Add_3_01half_00_01half_00_01true_01_4.html | 2 +- ...structcutlass_1_1gemm_1_1Gemm-members.html | 2 +- docs/structcutlass_1_1gemm_1_1Gemm.html | 2 +- ...cutlass_1_1gemm_1_1GemmConfig-members.html | 2 +- docs/structcutlass_1_1gemm_1_1GemmConfig.html | 2 +- ...tcutlass_1_1gemm_1_1GemmCoord-members.html | 61 +- docs/structcutlass_1_1gemm_1_1GemmCoord.html | 30 +- ...ctcutlass_1_1gemm_1_1GemmDesc-members.html | 2 +- docs/structcutlass_1_1gemm_1_1GemmDesc.html | 2 +- ...tlass_1_1gemm_1_1GemmEpilogue-members.html | 2 +- ...structcutlass_1_1gemm_1_1GemmEpilogue.html | 2 +- ...1_1gemm_1_1GemmEpilogueTraits-members.html | 17 +- ...cutlass_1_1gemm_1_1GemmEpilogueTraits.html | 21 +- ...m_1_1GemmEpilogueTraitsHelper-members.html | 2 +- ...s_1_1gemm_1_1GemmEpilogueTraitsHelper.html | 2 +- ...1GemmEpilogueTraits_1_1Params-members.html | 4 +- ...1gemm_1_1GemmEpilogueTraits_1_1Params.html | 40 +- ...ilogueTraits_1_1SharedStorage-members.html | 2 +- ..._1GemmEpilogueTraits_1_1SharedStorage.html | 2 +- ...1gemm_1_1GemmGlobalIteratorAb-members.html | 72 +- ...tlass_1_1gemm_1_1GemmGlobalIteratorAb.html | 53 +- ...emmGlobalIteratorAb_1_1Params-members.html | 24 +- ...emm_1_1GemmGlobalIteratorAb_1_1Params.html | 68 +- ...1gemm_1_1GemmGlobalIteratorCd-members.html | 42 +- ...tlass_1_1gemm_1_1GemmGlobalIteratorCd.html | 95 +-- ...emmGlobalIteratorCd_1_1Params-members.html | 17 +- ...emm_1_1GemmGlobalIteratorCd_1_1Params.html | 92 ++- ...emm_1_1GemmGlobalTileCdTraits-members.html | 2 +- ...ass_1_1gemm_1_1GemmGlobalTileCdTraits.html | 8 +- ...lTileCdTraits_1_1ThreadOffset-members.html | 2 +- ...emmGlobalTileCdTraits_1_1ThreadOffset.html | 2 +- ...1gemm_1_1GemmGlobalTileTraits-members.html | 2 +- ...tlass_1_1gemm_1_1GemmGlobalTileTraits.html | 6 +- ...balTileTraits_1_1ThreadOffset-members.html | 2 +- ...1GemmGlobalTileTraits_1_1ThreadOffset.html | 2 +- ...emm_1_1GemmMultiplicandTraits-members.html | 2 +- ...ass_1_1gemm_1_1GemmMultiplicandTraits.html | 10 +- ..._1gemm_1_1GemmOperandTraitsAb-members.html | 2 +- ...utlass_1_1gemm_1_1GemmOperandTraitsAb.html | 4 +- ..._1_1GemmSharedLoadTileATraits-members.html | 2 +- ..._1_1gemm_1_1GemmSharedLoadTileATraits.html | 2 +- ...adTileATraits_1_1ThreadOffset-members.html | 2 +- ...SharedLoadTileATraits_1_1ThreadOffset.html | 2 +- ..._1_1GemmSharedLoadTileBTraits-members.html | 2 +- ..._1_1gemm_1_1GemmSharedLoadTileBTraits.html | 2 +- ...adTileBTraits_1_1ThreadOffset-members.html | 2 +- ...SharedLoadTileBTraits_1_1ThreadOffset.html | 2 +- ..._1_1GemmSharedLoadTileDTraits-members.html | 2 +- ..._1_1gemm_1_1GemmSharedLoadTileDTraits.html | 2 +- ...adTileDTraits_1_1ThreadOffset-members.html | 2 +- ...SharedLoadTileDTraits_1_1ThreadOffset.html | 2 +- ..._1GemmSharedStoreTileAbTraits-members.html | 2 +- ..._1gemm_1_1GemmSharedStoreTileAbTraits.html | 2 +- ...eTileAbTraits_1_1ThreadOffset-members.html | 2 +- ...aredStoreTileAbTraits_1_1ThreadOffset.html | 2 +- ...1_1GemmSharedStoreTileDTraits-members.html | 2 +- ...1_1gemm_1_1GemmSharedStoreTileDTraits.html | 2 +- ...reTileDTraits_1_1ThreadOffset-members.html | 2 +- ...haredStoreTileDTraits_1_1ThreadOffset.html | 2 +- ...aredStoreWithSkewTileAbTraits-members.html | 2 +- ..._1GemmSharedStoreWithSkewTileAbTraits.html | 2 +- ...wTileAbTraits_1_1ThreadOffset-members.html | 2 +- ...eWithSkewTileAbTraits_1_1ThreadOffset.html | 2 +- ...lass_1_1gemm_1_1GemmTileTraitsHelperA.html | 2 +- ...nMajor_00_01GemmConfig___01_4-members.html | 2 +- ..._1kColumnMajor_00_01GemmConfig___01_4.html | 18 +- ...wMajor_00_01GemmConfig___01_4-members.html | 2 +- ...t_1_1kRowMajor_00_01GemmConfig___01_4.html | 18 +- ...lass_1_1gemm_1_1GemmTileTraitsHelperB.html | 2 +- ...nMajor_00_01GemmConfig___01_4-members.html | 2 +- ..._1kColumnMajor_00_01GemmConfig___01_4.html | 18 +- ...wMajor_00_01GemmConfig___01_4-members.html | 2 +- ...t_1_1kRowMajor_00_01GemmConfig___01_4.html | 18 +- ...cutlass_1_1gemm_1_1GemmTraits-members.html | 2 +- docs/structcutlass_1_1gemm_1_1GemmTraits.html | 10 +- ...aits_1_1MainLoopSharedStorage-members.html | 2 +- ..._1GemmTraits_1_1MainLoopSharedStorage.html | 2 +- ...1gemm_1_1GemmTraits_1_1Params-members.html | 9 +- ...tlass_1_1gemm_1_1GemmTraits_1_1Params.html | 184 ++++- docs/structcutlass_1_1gemm_1_1GetExtent.html | 2 +- ...perand_1_1kA_00_01Tile___01_4-members.html | 2 +- ..._01GemmOperand_1_1kA_00_01Tile___01_4.html | 2 +- ...perand_1_1kB_00_01Tile___01_4-members.html | 2 +- ..._01GemmOperand_1_1kB_00_01Tile___01_4.html | 2 +- ...s_1_1gemm_1_1GlobalLoadStream-members.html | 32 +- ...ctcutlass_1_1gemm_1_1GlobalLoadStream.html | 74 +- ...1gemm_1_1GlobalLoadStreamPair-members.html | 31 +- ...tlass_1_1gemm_1_1GlobalLoadStreamPair.html | 44 +- ...lobalLoadStreamPair_1_1Params-members.html | 2 +- ...emm_1_1GlobalLoadStreamPair_1_1Params.html | 2 +- ...adStreamPair_1_1SharedStorage-members.html | 2 +- ...GlobalLoadStreamPair_1_1SharedStorage.html | 2 +- ...1_1GlobalLoadStream_1_1Params-members.html | 9 +- ...1_1gemm_1_1GlobalLoadStream_1_1Params.html | 90 ++- ..._1_1GlobalLoadStream_1_1SharedStorage.html | 2 +- ...utlass_1_1gemm_1_1HgemmConfig-members.html | 2 +- .../structcutlass_1_1gemm_1_1HgemmConfig.html | 2 +- ...gemmCrosswiseGlobalTileTraits-members.html | 2 +- ...emm_1_1HgemmCrosswiseGlobalTileTraits.html | 4 +- ...balTileTraits_1_1ThreadOffset-members.html | 2 +- ...swiseGlobalTileTraits_1_1ThreadOffset.html | 2 +- ...tlass_1_1gemm_1_1HgemmSwizzle-members.html | 2 +- ...structcutlass_1_1gemm_1_1HgemmSwizzle.html | 2 +- ...ass_1_1gemm_1_1HgemmTileTraitsHelperA.html | 2 +- ...wMajor_00_01GemmConfig___01_4-members.html | 2 +- ...t_1_1kRowMajor_00_01GemmConfig___01_4.html | 16 +- ...ass_1_1gemm_1_1HgemmTileTraitsHelperB.html | 2 +- ...nMajor_00_01GemmConfig___01_4-members.html | 2 +- ..._1kColumnMajor_00_01GemmConfig___01_4.html | 16 +- ...utlass_1_1gemm_1_1HgemmTraits-members.html | 2 +- .../structcutlass_1_1gemm_1_1HgemmTraits.html | 6 +- ..._1_1gemm_1_1HgemmTraitsHelper-members.html | 2 +- ...tcutlass_1_1gemm_1_1HgemmTraitsHelper.html | 2 +- ...tcutlass_1_1gemm_1_1HgemmTransformerA.html | 2 +- ...umnMajor_00_01Iterator___01_4-members.html | 2 +- ..._1_1kColumnMajor_00_01Iterator___01_4.html | 4 +- ...RowMajor_00_01Iterator___01_4-members.html | 2 +- ...out_1_1kRowMajor_00_01Iterator___01_4.html | 4 +- ...tcutlass_1_1gemm_1_1HgemmTransformerB.html | 2 +- ...umnMajor_00_01Iterator___01_4-members.html | 2 +- ..._1_1kColumnMajor_00_01Iterator___01_4.html | 4 +- ...RowMajor_00_01Iterator___01_4-members.html | 2 +- ...out_1_1kRowMajor_00_01Iterator___01_4.html | 4 +- ...1gemm_1_1IdentityBlockSwizzle-members.html | 8 +- ...tlass_1_1gemm_1_1IdentityBlockSwizzle.html | 73 +- ...utlass_1_1gemm_1_1IgemmConfig-members.html | 2 +- .../structcutlass_1_1gemm_1_1IgemmConfig.html | 2 +- ...t_00_01ThreadGemmShape___01_4-members.html | 2 +- ...01int8__t_00_01ThreadGemmShape___01_4.html | 2 +- ...lass_1_1gemm_1_1IgemmEpilogue-members.html | 2 +- ...tructcutlass_1_1gemm_1_1IgemmEpilogue.html | 2 +- ..._1gemm_1_1IgemmEpilogueScalar-members.html | 2 +- ...utlass_1_1gemm_1_1IgemmEpilogueScalar.html | 2 +- ...mmEpilogueScalar_3_01int_01_4-members.html | 2 +- ...m_1_1IgemmEpilogueScalar_3_01int_01_4.html | 2 +- ..._1gemm_1_1IgemmEpilogueTraits-members.html | 17 +- ...utlass_1_1gemm_1_1IgemmEpilogueTraits.html | 5 +- ..._1_1IgemmEpilogueTraitsHelper-members.html | 2 +- ..._1_1gemm_1_1IgemmEpilogueTraitsHelper.html | 2 +- ...ilogueTraits___00_01true_01_4-members.html | 2 +- ...01GemmEpilogueTraits___00_01true_01_4.html | 2 +- ..._1_1IgemmFloatToInt8Converter-members.html | 2 +- ..._1_1gemm_1_1IgemmFloatToInt8Converter.html | 2 +- ...gemm_1_1IgemmGlobalIteratorAb-members.html | 74 +- ...lass_1_1gemm_1_1IgemmGlobalIteratorAb.html | 81 +- ...1_1IgemmGlobalLoadTransformer-members.html | 2 +- ...1_1gemm_1_1IgemmGlobalLoadTransformer.html | 2 +- ...ements___01_4_00_01float_01_4-members.html | 2 +- ...00_01kElements___01_4_00_01float_01_4.html | 2 +- ..._1IgemmGlobalStoreTransformer-members.html | 2 +- ..._1gemm_1_1IgemmGlobalStoreTransformer.html | 2 +- ..._t_00_01kElements___01_4_01_4-members.html | 2 +- ..._01int8__t_00_01kElements___01_4_01_4.html | 2 +- ...gemm_1_1IgemmGlobalTileTraits-members.html | 2 +- ...lass_1_1gemm_1_1IgemmGlobalTileTraits.html | 4 +- ...balTileTraits_1_1ThreadOffset-members.html | 2 +- ...IgemmGlobalTileTraits_1_1ThreadOffset.html | 2 +- ..._1_1IgemmInt8ToFloatConverter-members.html | 2 +- ..._1_1gemm_1_1IgemmInt8ToFloatConverter.html | 2 +- ..._1IgemmSharedStoreTransformer-members.html | 2 +- ..._1gemm_1_1IgemmSharedStoreTransformer.html | 2 +- ...tlass_1_1gemm_1_1IgemmSwizzle-members.html | 2 +- ...structcutlass_1_1gemm_1_1IgemmSwizzle.html | 2 +- ...ass_1_1gemm_1_1IgemmTileTraitsHelperA.html | 2 +- ...emmConfig___00_01Index___01_4-members.html | 2 +- ...r_00_01GemmConfig___00_01Index___01_4.html | 20 +- ...emmConfig___00_01Index___01_4-members.html | 2 +- ...r_00_01GemmConfig___00_01Index___01_4.html | 22 +- ...ass_1_1gemm_1_1IgemmTileTraitsHelperB.html | 2 +- ...emmConfig___00_01Index___01_4-members.html | 2 +- ...r_00_01GemmConfig___00_01Index___01_4.html | 22 +- ...emmConfig___00_01Index___01_4-members.html | 2 +- ...r_00_01GemmConfig___00_01Index___01_4.html | 20 +- ...utlass_1_1gemm_1_1IgemmTraits-members.html | 2 +- .../structcutlass_1_1gemm_1_1IgemmTraits.html | 6 +- ..._1_1gemm_1_1IgemmTraitsHelper-members.html | 2 +- ...tcutlass_1_1gemm_1_1IgemmTraitsHelper.html | 2 +- ...tcutlass_1_1gemm_1_1IgemmTransformerA.html | 2 +- ...umnMajor_00_01Iterator___01_4-members.html | 2 +- ..._1_1kColumnMajor_00_01Iterator___01_4.html | 4 +- ...RowMajor_00_01Iterator___01_4-members.html | 2 +- ...out_1_1kRowMajor_00_01Iterator___01_4.html | 4 +- ...tcutlass_1_1gemm_1_1IgemmTransformerB.html | 2 +- ...umnMajor_00_01Iterator___01_4-members.html | 2 +- ..._1_1kColumnMajor_00_01Iterator___01_4.html | 4 +- ...RowMajor_00_01Iterator___01_4-members.html | 2 +- ...out_1_1kRowMajor_00_01Iterator___01_4.html | 4 +- ...ructcutlass_1_1gemm_1_1Launch-members.html | 2 +- docs/structcutlass_1_1gemm_1_1Launch.html | 2 +- ...unch_3_01Gemm_00_01false_01_4-members.html | 2 +- ...mm_1_1Launch_3_01Gemm_00_01false_01_4.html | 2 +- ...lass_1_1gemm_1_1LinearScaling-members.html | 2 +- ...tructcutlass_1_1gemm_1_1LinearScaling.html | 2 +- ...emm_1_1LinearScalingDevicePtr-members.html | 2 +- ...ass_1_1gemm_1_1LinearScalingDevicePtr.html | 2 +- ...mm_1_1LinearScaling_1_1Params-members.html | 2 +- ...ss_1_1gemm_1_1LinearScaling_1_1Params.html | 2 +- ...ructcutlass_1_1gemm_1_1ProjectOperand.html | 2 +- ...rand_1_1kA_00_01Kstrided_01_4-members.html | 2 +- ...1GemmOperand_1_1kA_00_01Kstrided_01_4.html | 2 +- ...rand_1_1kB_00_01Kstrided_01_4-members.html | 2 +- ...1GemmOperand_1_1kB_00_01Kstrided_01_4.html | 2 +- ...mOperand_1_1kC_00_01true_01_4-members.html | 2 +- ..._3_01GemmOperand_1_1kC_00_01true_01_4.html | 2 +- ...mOperand_1_1kD_00_01true_01_4-members.html | 2 +- ..._3_01GemmOperand_1_1kD_00_01true_01_4.html | 2 +- ...ass_1_1gemm_1_1ReshapeThreads-members.html | 2 +- ...ructcutlass_1_1gemm_1_1ReshapeThreads.html | 2 +- ...00_01Threads___00_01true_01_4-members.html | 2 +- ...1Tile___00_01Threads___00_01true_01_4.html | 2 +- ...1gemm_1_1RowMajorBlockSwizzle-members.html | 6 +- ...tlass_1_1gemm_1_1RowMajorBlockSwizzle.html | 76 +- ...utlass_1_1gemm_1_1SgemmConfig-members.html | 2 +- .../structcutlass_1_1gemm_1_1SgemmConfig.html | 2 +- ...lass_1_1gemm_1_1SgemmLBTraits-members.html | 2 +- ...tructcutlass_1_1gemm_1_1SgemmLBTraits.html | 6 +- ...utlass_1_1gemm_1_1SgemmTraits-members.html | 2 +- .../structcutlass_1_1gemm_1_1SgemmTraits.html | 6 +- ...s_1_1gemm_1_1SharedLoadStream-members.html | 2 +- ...ctcutlass_1_1gemm_1_1SharedLoadStream.html | 2 +- ...1_1SharedLoadStream_1_1Params-members.html | 2 +- ...1_1gemm_1_1SharedLoadStream_1_1Params.html | 2 +- ...s_1_1gemm_1_1SharedStreamPair-members.html | 2 +- ...ctcutlass_1_1gemm_1_1SharedStreamPair.html | 2 +- ...1_1SharedStreamPair_1_1Params-members.html | 2 +- ...1_1gemm_1_1SharedStreamPair_1_1Params.html | 2 +- ...1SimplifiedGemmEpilogueTraits-members.html | 17 +- ...1gemm_1_1SimplifiedGemmEpilogueTraits.html | 5 +- ...1gemm_1_1SimplifiedGemmTraits-members.html | 2 +- ...tlass_1_1gemm_1_1SimplifiedGemmTraits.html | 6 +- ...1_1SimplifiedGemmTraitsHelper-members.html | 2 +- ...1_1gemm_1_1SimplifiedGemmTraitsHelper.html | 2 +- ...1_1gemm_1_1SplitkPIGemmTraits-members.html | 103 +++ ...cutlass_1_1gemm_1_1SplitkPIGemmTraits.html | 363 +++++++++ ...1SplitkPIGemmTraits_1_1Params-members.html | 101 +++ ...1gemm_1_1SplitkPIGemmTraits_1_1Params.html | 466 +++++++++++ ..._1_1gemm_1_1ThreadMultiplyAdd-members.html | 2 +- ...tcutlass_1_1gemm_1_1ThreadMultiplyAdd.html | 2 +- ...1half030e27fde4380ad93cd574bc743e0ba3.html | 2 +- ...1half8ea66703da782e035d986e48031ff835.html | 2 +- ...__00_01half_00_01half_00_01float_01_4.html | 2 +- ...___00_01half_00_01half_00_01half_01_4.html | 2 +- ...1int86f255c0f34c1afba22b3a7d64d8f85bf.html | 2 +- ..._01int8__t_00_01int8__t_00_01int_01_4.html | 2 +- ...m_1_1WmmaGemmGlobalIteratorCd-members.html | 42 +- ...s_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html | 23 +- ...mmaGemmGlobalIteratorCdTraits-members.html | 2 +- ...emm_1_1WmmaGemmGlobalIteratorCdTraits.html | 8 +- ...ratorCdTraits_1_1ThreadOffset-members.html | 2 +- ...lobalIteratorCdTraits_1_1ThreadOffset.html | 2 +- ...emmGlobalIteratorCd_1_1Params-members.html | 4 +- ...1_1WmmaGemmGlobalIteratorCd_1_1Params.html | 10 +- ...s_1_1gemm_1_1swizzleDirection-members.html | 2 +- ...ctcutlass_1_1gemm_1_1swizzleDirection.html | 6 +- docs/structcutlass_1_1int4__t.html | 2 +- docs/structcutlass_1_1is__pow2-members.html | 2 +- docs/structcutlass_1_1is__pow2.html | 2 +- docs/structcutlass_1_1log2__down-members.html | 2 +- docs/structcutlass_1_1log2__down.html | 2 +- ..._3_01N_00_011_00_01Count_01_4-members.html | 2 +- ...g2__down_3_01N_00_011_00_01Count_01_4.html | 2 +- docs/structcutlass_1_1log2__up-members.html | 2 +- docs/structcutlass_1_1log2__up.html | 2 +- ..._3_01N_00_011_00_01Count_01_4-members.html | 2 +- ...log2__up_3_01N_00_011_00_01Count_01_4.html | 2 +- ...ctcutlass_1_1platform_1_1Pair-members.html | 96 +++ docs/structcutlass_1_1platform_1_1Pair.html | 256 ++++++ ...cutlass_1_1platform_1_1aligned__chunk.html | 2 +- ...1platform_1_1aligned__storage-members.html | 2 +- ...tlass_1_1platform_1_1aligned__storage.html | 2 +- ..._1_1platform_1_1alignment__of-members.html | 2 +- ...tcutlass_1_1platform_1_1alignment__of.html | 2 +- ...tform_1_1alignment__of_1_1pad-members.html | 2 +- ...s_1_1platform_1_1alignment__of_1_1pad.html | 2 +- ..._of_3_01const_01value__t_01_4-members.html | 2 +- ...ignment__of_3_01const_01value__t_01_4.html | 2 +- ...st_01volatile_01value__t_01_4-members.html | 2 +- ..._3_01const_01volatile_01value__t_01_4.html | 2 +- ...lignment__of_3_01double2_01_4-members.html | 2 +- ...orm_1_1alignment__of_3_01double2_01_4.html | 2 +- ...lignment__of_3_01double4_01_4-members.html | 2 +- ...orm_1_1alignment__of_3_01double4_01_4.html | 2 +- ...alignment__of_3_01float4_01_4-members.html | 2 +- ...form_1_1alignment__of_3_01float4_01_4.html | 2 +- ..._1alignment__of_3_01int4_01_4-members.html | 2 +- ...atform_1_1alignment__of_3_01int4_01_4.html | 2 +- ...1alignment__of_3_01long4_01_4-members.html | 2 +- ...tform_1_1alignment__of_3_01long4_01_4.html | 2 +- ...gnment__of_3_01longlong2_01_4-members.html | 2 +- ...m_1_1alignment__of_3_01longlong2_01_4.html | 2 +- ...gnment__of_3_01longlong4_01_4-members.html | 2 +- ...m_1_1alignment__of_3_01longlong4_01_4.html | 2 +- ...1alignment__of_3_01uint4_01_4-members.html | 2 +- ...tform_1_1alignment__of_3_01uint4_01_4.html | 2 +- ...alignment__of_3_01ulong4_01_4-members.html | 2 +- ...form_1_1alignment__of_3_01ulong4_01_4.html | 2 +- ...nment__of_3_01ulonglong2_01_4-members.html | 2 +- ..._1_1alignment__of_3_01ulonglong2_01_4.html | 2 +- ...nment__of_3_01ulonglong4_01_4-members.html | 2 +- ..._1_1alignment__of_3_01ulonglong4_01_4.html | 2 +- ..._3_01volatile_01value__t_01_4-members.html | 2 +- ...ment__of_3_01volatile_01value__t_01_4.html | 2 +- ...1_1platform_1_1bool__constant-members.html | 2 +- ...cutlass_1_1platform_1_1bool__constant.html | 2 +- ...ss_1_1platform_1_1conditional-members.html | 2 +- ...uctcutlass_1_1platform_1_1conditional.html | 2 +- ..._3_01false_00_01T_00_01F_01_4-members.html | 2 +- ...ditional_3_01false_00_01T_00_01F_01_4.html | 2 +- ..._1platform_1_1default__delete-members.html | 2 +- ...utlass_1_1platform_1_1default__delete.html | 2 +- ..._1_1default__delete_3_01T[]_4-members.html | 2 +- ...platform_1_1default__delete_3_01T[]_4.html | 2 +- ...ass_1_1platform_1_1enable__if-members.html | 2 +- ...ructcutlass_1_1platform_1_1enable__if.html | 2 +- ...m_1_1enable__if_3_01false_00_01T_01_4.html | 2 +- ...utlass_1_1platform_1_1greater-members.html | 2 +- .../structcutlass_1_1platform_1_1greater.html | 2 +- ...latform_1_1integral__constant-members.html | 2 +- ...ass_1_1platform_1_1integral__constant.html | 2 +- ...1_1platform_1_1is__arithmetic-members.html | 2 +- ...cutlass_1_1platform_1_1is__arithmetic.html | 2 +- ...s_1_1platform_1_1is__base__of-members.html | 2 +- ...ctcutlass_1_1platform_1_1is__base__of.html | 2 +- ...tform_1_1is__base__of__helper-members.html | 2 +- ...s_1_1platform_1_1is__base__of__helper.html | 2 +- ...is__base__of__helper_1_1dummy-members.html | 2 +- ...form_1_1is__base__of__helper_1_1dummy.html | 2 +- ...atform_1_1is__floating__point-members.html | 2 +- ...ss_1_1platform_1_1is__floating__point.html | 2 +- ..._1platform_1_1is__fundamental-members.html | 2 +- ...utlass_1_1platform_1_1is__fundamental.html | 2 +- ...s_1_1platform_1_1is__integral-members.html | 2 +- ...ctcutlass_1_1platform_1_1is__integral.html | 2 +- ...1_1is__integral_3_01char_01_4-members.html | 2 +- ...latform_1_1is__integral_3_01char_01_4.html | 2 +- ...__integral_3_01const_01T_01_4-members.html | 2 +- ...rm_1_1is__integral_3_01const_01T_01_4.html | 2 +- ...3_01const_01volatile_01T_01_4-members.html | 2 +- ...ntegral_3_01const_01volatile_01T_01_4.html | 2 +- ..._1_1is__integral_3_01int_01_4-members.html | 2 +- ...platform_1_1is__integral_3_01int_01_4.html | 2 +- ...1_1is__integral_3_01long_01_4-members.html | 2 +- ...latform_1_1is__integral_3_01long_01_4.html | 2 +- ...integral_3_01long_01long_01_4-members.html | 2 +- ..._1_1is__integral_3_01long_01long_01_4.html | 2 +- ..._1is__integral_3_01short_01_4-members.html | 2 +- ...atform_1_1is__integral_3_01short_01_4.html | 2 +- ...tegral_3_01signed_01char_01_4-members.html | 2 +- ..._1is__integral_3_01signed_01char_01_4.html | 2 +- ...gral_3_01unsigned_01char_01_4-members.html | 2 +- ...is__integral_3_01unsigned_01char_01_4.html | 2 +- ...egral_3_01unsigned_01int_01_4-members.html | 2 +- ...1is__integral_3_01unsigned_01int_01_4.html | 2 +- ...gral_3_01unsigned_01long_01_4-members.html | 2 +- ...is__integral_3_01unsigned_01long_01_4.html | 2 +- ...01unsigned_01long_01long_01_4-members.html | 2 +- ...egral_3_01unsigned_01long_01long_01_4.html | 2 +- ...ral_3_01unsigned_01short_01_4-members.html | 2 +- ...s__integral_3_01unsigned_01short_01_4.html | 2 +- ...ntegral_3_01volatile_01T_01_4-members.html | 2 +- ...1_1is__integral_3_01volatile_01T_01_4.html | 2 +- ...ss_1_1platform_1_1is__pointer-members.html | 2 +- ...uctcutlass_1_1platform_1_1is__pointer.html | 2 +- ...atform_1_1is__pointer__helper-members.html | 2 +- ...ss_1_1platform_1_1is__pointer__helper.html | 2 +- ...inter__helper_3_01T_01_5_01_4-members.html | 2 +- ..._1is__pointer__helper_3_01T_01_5_01_4.html | 2 +- ...tlass_1_1platform_1_1is__same-members.html | 2 +- ...structcutlass_1_1platform_1_1is__same.html | 2 +- ...1_1is__same_3_01A_00_01A_01_4-members.html | 2 +- ...latform_1_1is__same_3_01A_00_01A_01_4.html | 2 +- ...rm_1_1is__trivially__copyable-members.html | 2 +- ..._1platform_1_1is__trivially__copyable.html | 2 +- ...tlass_1_1platform_1_1is__void-members.html | 2 +- ...structcutlass_1_1platform_1_1is__void.html | 2 +- ...s_1_1platform_1_1is__volatile-members.html | 2 +- ...ctcutlass_1_1platform_1_1is__volatile.html | 2 +- ...olatile_3_01volatile_01T_01_4-members.html | 2 +- ...1_1is__volatile_3_01volatile_01T_01_4.html | 2 +- ...ctcutlass_1_1platform_1_1less-members.html | 2 +- docs/structcutlass_1_1platform_1_1less.html | 2 +- ...ructcutlass_1_1platform_1_1nullptr__t.html | 2 +- ...ctcutlass_1_1platform_1_1plus-members.html | 2 +- docs/structcutlass_1_1platform_1_1plus.html | 2 +- ..._1_1platform_1_1remove__const-members.html | 2 +- ...tcutlass_1_1platform_1_1remove__const.html | 2 +- ...ove__const_3_01const_01T_01_4-members.html | 2 +- ...m_1_1remove__const_3_01const_01T_01_4.html | 2 +- ...ass_1_1platform_1_1remove__cv-members.html | 2 +- ...ructcutlass_1_1platform_1_1remove__cv.html | 2 +- ...1platform_1_1remove__volatile-members.html | 2 +- ...tlass_1_1platform_1_1remove__volatile.html | 2 +- ...olatile_3_01volatile_01T_01_4-members.html | 2 +- ...emove__volatile_3_01volatile_01T_01_4.html | 2 +- ...reduction_1_1BatchedReduction-members.html | 100 +++ ...lass_1_1reduction_1_1BatchedReduction.html | 379 +++++++++ ...ion_1_1BatchedReductionTraits-members.html | 108 +++ ..._1reduction_1_1BatchedReductionTraits.html | 484 +++++++++++ ...chedReductionTraits_1_1Params-members.html | 102 +++ ...n_1_1BatchedReductionTraits_1_1Params.html | 403 +++++++++ ...uction_1_1DefaultBlockSwizzle-members.html | 94 +++ ...s_1_1reduction_1_1DefaultBlockSwizzle.html | 223 +++++ docs/structcutlass_1_1sqrt__est-members.html | 2 +- docs/structcutlass_1_1sqrt__est.html | 2 +- docs/structcutlass_1_1uint4__t.html | 2 +- docs/tensor__ref_8h.html | 2 +- docs/tensor__ref_8h_source.html | 2 +- docs/tensor__ref__collection_8h.html | 12 +- docs/tensor__ref__collection_8h_source.html | 101 +-- docs/tensor__view_8h.html | 2 +- docs/tensor__view_8h_source.html | 6 +- docs/thread__multiply__add_8h.html | 2 +- docs/thread__multiply__add_8h_source.html | 8 +- docs/tile__allocation_8h.html | 3 +- docs/tile__allocation_8h_source.html | 53 +- docs/tile__coord_8h.html | 2 +- docs/tile__coord_8h_source.html | 4 +- docs/tile__iterator_8h.html | 2 +- docs/tile__iterator_8h_source.html | 321 ++++---- docs/tile__stream_8h.html | 2 +- docs/tile__stream_8h_source.html | 4 +- docs/tile__traits__standard_8h.html | 2 +- docs/tile__traits__standard_8h_source.html | 4 +- docs/unioncutlass_1_1Vector-members.html | 2 +- docs/unioncutlass_1_1Vector.html | 2 +- ..._01bin1__t_00_01kLanes___01_4-members.html | 2 +- ...Vector_3_01bin1__t_00_01kLanes___01_4.html | 2 +- ..._1Vector_3_01half_00_011_01_4-members.html | 2 +- ...utlass_1_1Vector_3_01half_00_011_01_4.html | 2 +- ...r_3_01half_00_01kLanes___01_4-members.html | 2 +- ...1_1Vector_3_01half_00_01kLanes___01_4.html | 2 +- ..._01int4__t_00_01kLanes___01_4-members.html | 2 +- ...Vector_3_01int4__t_00_01kLanes___01_4.html | 2 +- ...01uint4__t_00_01kLanes___01_4-members.html | 2 +- ...ector_3_01uint4__t_00_01kLanes___01_4.html | 2 +- ...Traits_1_1StreamSharedStorage-members.html | 2 +- ...EpilogueTraits_1_1StreamSharedStorage.html | 2 +- ..._1GemmTraits_1_1SharedStorage-members.html | 2 +- ..._1gemm_1_1GemmTraits_1_1SharedStorage.html | 2 +- docs/vector_8h.html | 2 +- docs/vector_8h_source.html | 2 +- docs/wmma__gemm__epilogue__traits_8h.html | 2 +- ...mma__gemm__epilogue__traits_8h_source.html | 6 +- docs/wmma__gemm__global__tile_8h.html | 2 +- docs/wmma__gemm__global__tile_8h_source.html | 48 +- docs/wmma__gemm__multiply__add_8h.html | 2 +- docs/wmma__gemm__multiply__add_8h_source.html | 10 +- docs/wmma__gemm__shared__tile_8h.html | 2 +- docs/wmma__gemm__shared__tile_8h_source.html | 10 +- docs/wmma__gemm__traits_8h.html | 2 +- docs/wmma__gemm__traits_8h_source.html | 10 +- docs/wmma__matrix_8h.html | 2 +- docs/wmma__matrix_8h_source.html | 8 +- docs/zip__fragment_8h.html | 2 +- docs/zip__fragment_8h_source.html | 2 +- docs/zip__tensor__ref_8h.html | 2 +- docs/zip__tensor__ref_8h_source.html | 2 +- docs/zip__tile__iterator_8h.html | 3 +- docs/zip__tile__iterator_8h_source.html | 91 ++- 1065 files changed, 12770 insertions(+), 4093 deletions(-) create mode 100644 docs/batched__reduction_8h.html create mode 100644 docs/batched__reduction_8h_source.html create mode 100644 docs/batched__reduction__traits_8h.html create mode 100644 docs/batched__reduction__traits_8h_source.html create mode 100644 docs/device__gemm_8h.html create mode 100644 docs/device__gemm_8h_source.html create mode 100644 docs/device__gemm__traits_8h.html create mode 100644 docs/device__gemm__traits_8h_source.html create mode 100644 docs/dir_f34d74b5ae2b711d395109410c5aafb1.html create mode 100644 docs/functions_type_r.html create mode 100644 docs/functions_vars_w.html create mode 100644 docs/gemm_2threadblock__swizzle_8h.html create mode 100644 docs/gemm_2threadblock__swizzle_8h_source.html create mode 100644 docs/namespacecutlass_1_1MatrixLayout.html create mode 100644 docs/namespacecutlass_1_1reduction.html create mode 100644 docs/namespacemembers_enum.html create mode 100644 docs/namespacemembers_eval.html create mode 100644 docs/pair_8h.html create mode 100644 docs/pair_8h_source.html create mode 100644 docs/performance__tuning_8h.html create mode 100644 docs/performance__tuning_8h_source.html create mode 100644 docs/reduction_2threadblock__swizzle_8h.html create mode 100644 docs/reduction_2threadblock__swizzle_8h_source.html create mode 100644 docs/search/files_11.html create mode 100644 docs/search/files_11.js create mode 100644 docs/search/typedefs_13.html create mode 100644 docs/search/typedefs_13.js create mode 100644 docs/search/variables_12.html create mode 100644 docs/search/variables_12.js create mode 100644 docs/structcutlass_1_1WmmaReshapeTile-members.html create mode 100644 docs/structcutlass_1_1WmmaReshapeTile.html create mode 100644 docs/structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4-members.html create mode 100644 docs/structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4.html create mode 100644 docs/structcutlass_1_1gemm_1_1DeviceGemm-members.html create mode 100644 docs/structcutlass_1_1gemm_1_1DeviceGemm.html create mode 100644 docs/structcutlass_1_1gemm_1_1SplitkPIGemmTraits-members.html create mode 100644 docs/structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html create mode 100644 docs/structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params-members.html create mode 100644 docs/structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html create mode 100644 docs/structcutlass_1_1platform_1_1Pair-members.html create mode 100644 docs/structcutlass_1_1platform_1_1Pair.html create mode 100644 docs/structcutlass_1_1reduction_1_1BatchedReduction-members.html create mode 100644 docs/structcutlass_1_1reduction_1_1BatchedReduction.html create mode 100644 docs/structcutlass_1_1reduction_1_1BatchedReductionTraits-members.html create mode 100644 docs/structcutlass_1_1reduction_1_1BatchedReductionTraits.html create mode 100644 docs/structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params-members.html create mode 100644 docs/structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html create mode 100644 docs/structcutlass_1_1reduction_1_1DefaultBlockSwizzle-members.html create mode 100644 docs/structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html diff --git a/docs/annotated.html b/docs/annotated.html index da54a8ee..641f3c3d 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -81,353 +81,364 @@ $(function() {  CClearAccumulators  CSharedStorageThe shared storage  CColumnMajorBlockSwizzle - CDgemmConfig - CDgemmTraits - CFp16SgemmConfig - CFp16SgemmSgemmTraits - CFragmentMultiplyAdd - CFragmentMultiplyAdd< half, half, true > - CGemm - CGemmConfig - CGemmCoord - CGemmDescGEMM problem description - CGemmEpilogue - CGemmEpilogueTraits - CParamsThe params - CSharedStorageThe shared memory to swizzle the data in the epilogue - CStreamSharedStorageThe shared memory storage to exchange data - CGemmEpilogueTraitsHelper - CGemmGlobalIteratorAb - CParams - CGemmGlobalIteratorCd - CParamsThe params - CGemmGlobalTileCdTraits - CThreadOffsetComputes the thread offset in (H, W) based on thread ID - CGemmGlobalTileTraits - CThreadOffsetComputes the thread offset in (H, W) based on thread ID - CGemmMultiplicandTraits - CGemmOperandTraitsAbHelper to describe attributes of GEMM matrix operands - CGemmSharedLoadTileATraits - CThreadOffsetComputes the thread offset in (H, W) based on thread ID - CGemmSharedLoadTileBTraits - CThreadOffsetComputes the thread offset in (H, W) based on thread ID - CGemmSharedLoadTileDTraits - CThreadOffsetComputes the thread offset in (H, W) based on thread ID - CGemmSharedStoreTileAbTraits - CThreadOffset - CGemmSharedStoreTileDTraits - CThreadOffsetComputes the thread offset in (H, W) based on thread ID - CGemmSharedStoreWithSkewTileAbTraits - CThreadOffset - CGemmTileTraitsHelperA - CGemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ > - CGemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ > - CGemmTileTraitsHelperB - CGemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ > - CGemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ > - CGemmTraits - CMainLoopSharedStorage - CParamsParameters object constructable on the host - CSharedStorageThe storage in shared memory - CGetExtent - CGetExtent< GemmOperand::kA, Tile_ > - CGetExtent< GemmOperand::kB, Tile_ > - CGlobalLoadStream - CParamsThe params - CSharedStorage - CGlobalLoadStreamPairCollect the global load streams for multiplicands - CParamsParameters object - CSharedStorageDefines a structure containing shared storage for each pair - CHgemmConfig - CHgemmCrosswiseGlobalTileTraits - CThreadOffsetComputes the thread offset in (H, W) based on thread ID - CHgemmSwizzle - CHgemmTileTraitsHelperA - CHgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ > - CHgemmTileTraitsHelperB - CHgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ > - CHgemmTraits - CHgemmTraitsHelper - CHgemmTransformerA - CHgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ > - CHgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ > - CHgemmTransformerB - CHgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ > - CHgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ > - CIdentityBlockSwizzle - CIgemmConfig - CIgemmConfig< OutputTile_, int8_t, ThreadGemmShape_ > - CIgemmEpilogue - CIgemmEpilogue< GemmEpilogueTraits_, true > - CIgemmEpilogueScalar - CIgemmEpilogueScalar< int > - CIgemmEpilogueTraits - CIgemmEpilogueTraitsHelper - CIgemmFloatToInt8Converter - CIgemmGlobalIteratorAb - CIgemmGlobalLoadTransformer - CIgemmGlobalLoadTransformer< Fragment< int8_t, kElements_ >, float > - CIgemmGlobalStoreTransformer - CIgemmGlobalStoreTransformer< float, Fragment< int8_t, kElements_ > > - CIgemmGlobalTileTraits - CThreadOffsetComputes the thread offset in (H, W) based on thread ID - CIgemmInt8ToFloatConverter - CIgemmSharedStoreTransformer - CIgemmSwizzle - CIgemmTileTraitsHelperA - CIgemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_, Index_ > - CIgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ > - CIgemmTileTraitsHelperB - CIgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ > - CIgemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_, Index_ > - CIgemmTraits - CIgemmTraitsHelper - CIgemmTransformerA - CIgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ > - CIgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ > - CIgemmTransformerB - CIgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ > - CIgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ > - CLaunchPartial specialization for launching the GEMM kernel with or without launch bounds - CLaunch< Gemm, false >Partial specialization for launching the GEMM kernel with or without launch bounds - CLinearScalingFunctor to compute linear combination of fragments - CParamsThe parameters - CLinearScalingDevicePtr - CParamsThe parameters - CProjectOperand - CProjectOperand< GemmOperand::kA, Kstrided >Project A operand - (0, K, M) - CProjectOperand< GemmOperand::kB, Kstrided >Project B operand - (0, K, N) - CProjectOperand< GemmOperand::kC, true >Project C operand - (0, N, M) - CProjectOperand< GemmOperand::kD, true >Project D operand - (0, N, M) - CReshapeThreads - CReshapeThreads< Tile_, Threads_, true > - CRowMajorBlockSwizzle - CSgemmConfig - CSgemmLBTraitsHelper to define SGEMM traits using Launch Bounds - CSgemmTraits - CSharedLoadStream - CParamsThe params - CSharedStreamPairCollect the global load streams for multiplicands - CParamsParameters object passed to load iterators - CSimplifiedGemmEpilogueTraits - CSimplifiedGemmTraits - CSimplifiedGemmTraitsHelper - CswizzleDirection - CThreadMultiplyAddTemplate performing matrix multiply-add operation within a thread - CThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >Template performing matrix multiply-add operation within a thread - CThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >Template performing matrix multiply-add operation within a thread - CThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >Template performing matrix multiply-add operation within a thread - CWmmaGemmGlobalIteratorCd - CParamsThe params - CWmmaGemmGlobalIteratorCdTraits - CThreadOffsetComputes the thread offset in (H, W) based on thread ID - Nplatform - Caligned_chunk - Caligned_storageStd::aligned_storage - Calignment_ofStd::alignment_of - Cpad - Calignment_of< const value_t > - Calignment_of< const volatile value_t > - Calignment_of< double2 > - Calignment_of< double4 > - Calignment_of< float4 > - Calignment_of< int4 > - Calignment_of< long4 > - Calignment_of< longlong2 > - Calignment_of< longlong4 > - Calignment_of< uint4 > - Calignment_of< ulong4 > - Calignment_of< ulonglong2 > - Calignment_of< ulonglong4 > - Calignment_of< volatile value_t > - Cbool_constantStd::bool_constant - Ccomplex - CconditionalStd::conditional (true specialization) - Cconditional< false, T, F >Std::conditional (false specialization) - Cdefault_deleteDefault deleter - Cdefault_delete< T[]>Partial specialization for deleting array types - Cenable_ifStd::enable_if (true specialization) - Cenable_if< false, T >Std::enable_if (false specialization) - CgreaterStd::greater - Cintegral_constantStd::integral_constant - Cis_arithmeticStd::is_arithmetic - Cis_base_ofStd::is_base_of - Cis_base_of_helperHelper for std::is_base_of - Cdummy - Cis_floating_pointStd::is_floating_point - Cis_fundamentalStd::is_fundamental - Cis_integralStd::is_integral - Cis_integral< char > - Cis_integral< const T > - Cis_integral< const volatile T > - Cis_integral< int > - Cis_integral< long > - Cis_integral< long long > - Cis_integral< short > - Cis_integral< signed char > - Cis_integral< unsigned char > - Cis_integral< unsigned int > - Cis_integral< unsigned long > - Cis_integral< unsigned long long > - Cis_integral< unsigned short > - Cis_integral< volatile T > - Cis_pointerStd::is_pointer - Cis_pointer_helperHelper for std::is_pointer (false specialization) - Cis_pointer_helper< T * >Helper for std::is_pointer (true specialization) - Cis_sameStd::is_same (false specialization) - Cis_same< A, A >Std::is_same (true specialization) - Cis_trivially_copyable - Cis_voidStd::is_void - Cis_volatileStd::is_volatile - Cis_volatile< volatile T > - ClessStd::less - Cnullptr_tStd::nullptr_t - CplusPlatform::plus - Cremove_constStd::remove_const (non-const specialization) - Cremove_const< const T >Std::remove_const (const specialization) - Cremove_cvStd::remove_cv - Cremove_volatileStd::remove_volatile (non-volatile specialization) - Cremove_volatile< volatile T >Std::remove_volatile (volatile specialization) - Cunique_ptrStd::unique_ptr - CAlignedStruct - Cbin1_t - CComputeOffsetFromShapeCompute the offset for the given coordinates in a cube - CComputeOffsetFromStridesCompute the offset for the given coordinates in a cube - CComputeThreadOffsetFromStridesDecompose threadId.x into coordinate of a cube whose dimensions are specified by Threads_. Afterwards compute the offset of those coordinates using Strides_ - CComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, 1 >, Shape< 1, S_h_, S_w_, 1 > >Specialization for D=1 and C=1 - CComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, T_c_ >, Shape< 1, S_h_, S_w_, S_c_ > >Specialization for D=1 - CConstPredicateTileAdapterAdapter to enable random access to predicates via logical coordinate within a tile - CConvert - CConvert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > > - CCoordStatically-sized array specifying Coords within a tensor - CCopy - Cdivide_assert - CDumpType - CExtentReturns the extent of a scalar or vector - CExtent< Vector< T, Lanes > >Returns the number of lanes of a vector if need be - CExtent< Vector< T, Lanes > const >Returns the number of lanes of a vector if need be - CFragmentA template defining Fragment Concept - CFragmentConstIterator - CFragmentElementTypeSpecifies whether iterator storage fragment consists of Scalar values or WMMA matrix - CFragmentIteratorA template defining Fragment Iterator Concept - CGemmOperandGemm operand - D = A * B + C - CIdentityDescribes identity elements - CIdentityTensorMapFunc - Cint4_t - Cis_pow2 - CIteratorAdvanceSpecifies dimension in which post-increment accesses advance - CKernelLaunchConfigurationStructure containing the basic launch configuration of a CUDA kernel - CLoad - CLoad< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 > - CLoad< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 >Partial specialization for 16b loads - CLoad< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 > - CLoad< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 > - CLoad< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 > - CLoad< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > - CLoad< Vector< bin1_t, 32 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > - CLoad< Vector< int4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > - CLoad< Vector< uint4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > - Clog2_down - Clog2_down< N, 1, Count > - Clog2_up - Clog2_up< N, 1, Count > - CMatrixCoord - CMatrixLayoutDefines data layouts of various matrix formats usable by TensorRef and other classes - CColumnMajorMapping function for column-major matrices - CColumnMajorBlockLinear - CColumnMajorInterleaved - CContiguousLayout - CRowMajorMapping function for row-major matrices - CRowMajorBlockLinear - CRowMajorInterleaved - CMatrixTransformTransformation applied to matrix operands - CMax - CMemorySpaceEnum to specify which memory space data resides in - CMin - CPredicatedTileLoadStreamGeneric stream for loading and transforming fragments - CPredicatedTileStoreStreamGeneric stream for transforming and storing fragments - CPredicateTileAdapterAdapter to enable random access to predicates via logical coordinate within a tile - CPredicateVectorStatically sized array of bits implementing - CConstIteratorA const iterator implementing Predicate Iterator Concept enabling sequential read-only access to prediactes - CIteratorAn iterator implementing Predicate Iterator Concept enabling sequential read and write access to predicates - CTrivialIteratorIterator that always returns true - CRegularTilePredicateFunctorFunctor computing a predicate given the logical position of an access - CReshapeTile - CReshapeTile< Tile_, kAccessSize_, true > - CScalarIOHelper to enable formatted printing of CUTLASS scalar types to an ostream - CShapeA Shape implementing Layout Concept describing the dimensions of a cube - CShapeAdd - CShapeCountCompute derived counted of a Layout Concept based class - CShapeDiv - CShapeDivCeiling - CShapeMax - CShapeMin - CShapeMul - CShapeScale - CShapeStrides - CShapeSub - Csqrt_est - CStorageType - CStorageType< 1 > - CStorageType< 2 > - CStorageType< 4 > - CStore - CStore< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 > - CStore< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 > - CStore< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 > - CStore< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 > - CStore< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 > - CStore< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > - CTensorRef - CTensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >Specialization for rank=1 case with no internal StrideVector - CStrideVector - CTensorRefArray - CConstIteratorTensorRefIterator over TensorRef objects in TensorRefArray - CTensorRefBatchStrided - CConstIteratorConstant iterator over tensors implied by TensorRefBatchStrided - CTensorViewDefines a view into a logical tensor - CTileAllocationClass for storing a tile in memory and accessing it through a tensor ref - CTileCoord - CTiledThreadOffsetBasic thread offset function computed from a thread shape - CTileIteratorBaseIterator for accessing a stripmined tile in memory - CParamsParameters to the iterator - CTileLoadIteratorAn iterator implementing Tile Load Iterator Concept for loading a tile from memory - CParamsParameters - CTileLoadStreamGeneric stream for loading and transforming fragments - CParamsParameters object used to construct generic load stream - CPredicateVectorEmpty predicate vector struct - CTileStoreIteratorAn iterator implementing Tile Store Iterator Concept for storing a tile to memory - CParamsParameters - CTileStoreStreamGeneric stream for transforming and storing fragments - CParamsParameters used to construct the stream - CPredicateVectorEmpty predicate vector struct - CTileTraitsA template defining Tile Traits Concept - CTileTraitsContiguousMajor - CTileTraitsStandardChooses 'best' shape to enable warp raking along contiguous dimension if possible - CTileTraitsStrideMajor - CTileTraitsWarpRakeTiling in which warps rake across the contiguous dimension - CThreadOffsetComputes the thread offset in (H, W) based on thread ID - CTrivialPredicateTileAdapterAlways returns true predicate - Cuint4_t - CVector - CVector< bin1_t, kLanes_ >Vector definition for 1-bit binary datatype - CVector< half, 1 > - CVector< half, kLanes_ > - CVector< int4_t, kLanes_ >Vector definition for 4-bit signed integer datatype - CVector< uint4_t, kLanes_ >Vector definition for 4-bit unsigned integer datatype - CVectorize - CVectorize< Vector< bin1_t, 32 >, kLanes_ > - CVectorize< Vector< int4_t, 8 >, kLanes_ > - CVectorize< Vector< uint4_t, 8 >, kLanes_ > - CVectorTraitsTraits describing properties of vectors and scalar-as-vectors - CVectorTraits< Vector< T, Lanes > >Partial specialization for actual cutlass::Vector - CVectorTraits< Vector< T, Lanes > const >Partial specialization for actual cutlass::Vector - CZipConvertZips two convert operations - CZipFragmentA template defining Fragment Concept - CZipTensorRef - CZipTileAllocationManages a pair of tile allocations as if they are one allocation - CZipTileIteratorConstructs an iterator from a pair of iterators - CParamsParams object + CDeviceGemm + CDgemmConfig + CDgemmTraits + CFp16SgemmConfig + CFp16SgemmSgemmTraits + CFragmentMultiplyAdd + CFragmentMultiplyAdd< half, half, true > + CGemm + CGemmConfig + CGemmCoord + CGemmDescGEMM problem description + CGemmEpilogue + CGemmEpilogueTraits + CParamsThe params + CSharedStorageThe shared memory to swizzle the data in the epilogue + CStreamSharedStorageThe shared memory storage to exchange data + CGemmEpilogueTraitsHelper + CGemmGlobalIteratorAb + CParams + CGemmGlobalIteratorCd + CParamsThe params + CGemmGlobalTileCdTraits + CThreadOffsetComputes the thread offset in (H, W) based on thread ID + CGemmGlobalTileTraits + CThreadOffsetComputes the thread offset in (H, W) based on thread ID + CGemmMultiplicandTraits + CGemmOperandTraitsAbHelper to describe attributes of GEMM matrix operands + CGemmSharedLoadTileATraits + CThreadOffsetComputes the thread offset in (H, W) based on thread ID + CGemmSharedLoadTileBTraits + CThreadOffsetComputes the thread offset in (H, W) based on thread ID + CGemmSharedLoadTileDTraits + CThreadOffsetComputes the thread offset in (H, W) based on thread ID + CGemmSharedStoreTileAbTraits + CThreadOffset + CGemmSharedStoreTileDTraits + CThreadOffsetComputes the thread offset in (H, W) based on thread ID + CGemmSharedStoreWithSkewTileAbTraits + CThreadOffset + CGemmTileTraitsHelperA + CGemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ > + CGemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ > + CGemmTileTraitsHelperB + CGemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ > + CGemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ > + CGemmTraits + CMainLoopSharedStorage + CParamsParameters object constructable on the host + CSharedStorageThe storage in shared memory + CGetExtent + CGetExtent< GemmOperand::kA, Tile_ > + CGetExtent< GemmOperand::kB, Tile_ > + CGlobalLoadStream + CParamsThe params + CSharedStorage + CGlobalLoadStreamPairCollect the global load streams for multiplicands + CParamsParameters object + CSharedStorageDefines a structure containing shared storage for each pair + CHgemmConfig + CHgemmCrosswiseGlobalTileTraits + CThreadOffsetComputes the thread offset in (H, W) based on thread ID + CHgemmSwizzle + CHgemmTileTraitsHelperA + CHgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ > + CHgemmTileTraitsHelperB + CHgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ > + CHgemmTraits + CHgemmTraitsHelper + CHgemmTransformerA + CHgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ > + CHgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ > + CHgemmTransformerB + CHgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ > + CHgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ > + CIdentityBlockSwizzle + CIgemmConfig + CIgemmConfig< OutputTile_, int8_t, ThreadGemmShape_ > + CIgemmEpilogue + CIgemmEpilogue< GemmEpilogueTraits_, true > + CIgemmEpilogueScalar + CIgemmEpilogueScalar< int > + CIgemmEpilogueTraits + CIgemmEpilogueTraitsHelper + CIgemmFloatToInt8Converter + CIgemmGlobalIteratorAb + CIgemmGlobalLoadTransformer + CIgemmGlobalLoadTransformer< Fragment< int8_t, kElements_ >, float > + CIgemmGlobalStoreTransformer + CIgemmGlobalStoreTransformer< float, Fragment< int8_t, kElements_ > > + CIgemmGlobalTileTraits + CThreadOffsetComputes the thread offset in (H, W) based on thread ID + CIgemmInt8ToFloatConverter + CIgemmSharedStoreTransformer + CIgemmSwizzle + CIgemmTileTraitsHelperA + CIgemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_, Index_ > + CIgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ > + CIgemmTileTraitsHelperB + CIgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ > + CIgemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_, Index_ > + CIgemmTraits + CIgemmTraitsHelper + CIgemmTransformerA + CIgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ > + CIgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ > + CIgemmTransformerB + CIgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ > + CIgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ > + CLaunchPartial specialization for launching the GEMM kernel with or without launch bounds + CLaunch< Gemm, false >Partial specialization for launching the GEMM kernel with or without launch bounds + CLinearScalingFunctor to compute linear combination of fragments + CParamsThe parameters + CLinearScalingDevicePtr + CParamsThe parameters + CProjectOperand + CProjectOperand< GemmOperand::kA, Kstrided >Project A operand - (0, K, M) + CProjectOperand< GemmOperand::kB, Kstrided >Project B operand - (0, K, N) + CProjectOperand< GemmOperand::kC, true >Project C operand - (0, N, M) + CProjectOperand< GemmOperand::kD, true >Project D operand - (0, N, M) + CReshapeThreads + CReshapeThreads< Tile_, Threads_, true > + CRowMajorBlockSwizzle + CSgemmConfig + CSgemmLBTraitsHelper to define SGEMM traits using Launch Bounds + CSgemmTraits + CSharedLoadStream + CParamsThe params + CSharedStreamPairCollect the global load streams for multiplicands + CParamsParameters object passed to load iterators + CSimplifiedGemmEpilogueTraits + CSimplifiedGemmTraits + CSimplifiedGemmTraitsHelper + CSplitkPIGemmTraits + CParams + CswizzleDirection + CThreadMultiplyAddTemplate performing matrix multiply-add operation within a thread + CThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >Template performing matrix multiply-add operation within a thread + CThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >Template performing matrix multiply-add operation within a thread + CThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >Template performing matrix multiply-add operation within a thread + CWmmaGemmGlobalIteratorCd + CParamsThe params + CWmmaGemmGlobalIteratorCdTraits + CThreadOffsetComputes the thread offset in (H, W) based on thread ID + NMatrixLayoutDefines data layouts of various matrix formats usable by TensorRef and other classes + CColumnMajorMapping function for column-major matrices + CColumnMajorBlockLinear + CColumnMajorInterleaved + CContiguousLayout + CRowMajorMapping function for row-major matrices + CRowMajorBlockLinear + CRowMajorInterleaved + Nplatform + Caligned_chunk + Caligned_storageStd::aligned_storage + Calignment_ofStd::alignment_of + Cpad + Calignment_of< const value_t > + Calignment_of< const volatile value_t > + Calignment_of< double2 > + Calignment_of< double4 > + Calignment_of< float4 > + Calignment_of< int4 > + Calignment_of< long4 > + Calignment_of< longlong2 > + Calignment_of< longlong4 > + Calignment_of< uint4 > + Calignment_of< ulong4 > + Calignment_of< ulonglong2 > + Calignment_of< ulonglong4 > + Calignment_of< volatile value_t > + Cbool_constantStd::bool_constant + Ccomplex + CconditionalStd::conditional (true specialization) + Cconditional< false, T, F >Std::conditional (false specialization) + Cdefault_deleteDefault deleter + Cdefault_delete< T[]>Partial specialization for deleting array types + Cenable_ifStd::enable_if (true specialization) + Cenable_if< false, T >Std::enable_if (false specialization) + CgreaterStd::greater + Cintegral_constantStd::integral_constant + Cis_arithmeticStd::is_arithmetic + Cis_base_ofStd::is_base_of + Cis_base_of_helperHelper for std::is_base_of + Cdummy + Cis_floating_pointStd::is_floating_point + Cis_fundamentalStd::is_fundamental + Cis_integralStd::is_integral + Cis_integral< char > + Cis_integral< const T > + Cis_integral< const volatile T > + Cis_integral< int > + Cis_integral< long > + Cis_integral< long long > + Cis_integral< short > + Cis_integral< signed char > + Cis_integral< unsigned char > + Cis_integral< unsigned int > + Cis_integral< unsigned long > + Cis_integral< unsigned long long > + Cis_integral< unsigned short > + Cis_integral< volatile T > + Cis_pointerStd::is_pointer + Cis_pointer_helperHelper for std::is_pointer (false specialization) + Cis_pointer_helper< T * >Helper for std::is_pointer (true specialization) + Cis_sameStd::is_same (false specialization) + Cis_same< A, A >Std::is_same (true specialization) + Cis_trivially_copyable + Cis_voidStd::is_void + Cis_volatileStd::is_volatile + Cis_volatile< volatile T > + ClessStd::less + Cnullptr_tStd::nullptr_t + CPairConstructs an iterator from a pair of iterators + CplusPlatform::plus + Cremove_constStd::remove_const (non-const specialization) + Cremove_const< const T >Std::remove_const (const specialization) + Cremove_cvStd::remove_cv + Cremove_volatileStd::remove_volatile (non-volatile specialization) + Cremove_volatile< volatile T >Std::remove_volatile (volatile specialization) + Cunique_ptrStd::unique_ptr + Nreduction + CBatchedReduction + CBatchedReductionTraits + CParams + CDefaultBlockSwizzle + CAlignedStruct + Cbin1_t + CComputeOffsetFromShapeCompute the offset for the given coordinates in a cube + CComputeOffsetFromStridesCompute the offset for the given coordinates in a cube + CComputeThreadOffsetFromStridesDecompose threadId.x into coordinate of a cube whose dimensions are specified by Threads_. Afterwards compute the offset of those coordinates using Strides_ + CComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, 1 >, Shape< 1, S_h_, S_w_, 1 > >Specialization for D=1 and C=1 + CComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, T_c_ >, Shape< 1, S_h_, S_w_, S_c_ > >Specialization for D=1 + CConstPredicateTileAdapterAdapter to enable random access to predicates via logical coordinate within a tile + CConvert + CConvert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > > + CCoordStatically-sized array specifying Coords within a tensor + CCopy + Cdivide_assert + CDumpType + CExtentReturns the extent of a scalar or vector + CExtent< Vector< T, Lanes > >Returns the number of lanes of a vector if need be + CExtent< Vector< T, Lanes > const >Returns the number of lanes of a vector if need be + CFragmentA template defining Fragment Concept + CFragmentConstIterator + CFragmentElementTypeSpecifies whether iterator storage fragment consists of Scalar values or WMMA matrix + CFragmentIteratorA template defining Fragment Iterator Concept + CGemmOperandGemm operand - D = A * B + C + CIdentityDescribes identity elements + CIdentityTensorMapFunc + Cint4_t + Cis_pow2 + CIteratorAdvanceSpecifies dimension in which post-increment accesses advance + CKernelLaunchConfigurationStructure containing the basic launch configuration of a CUDA kernel + CLoad + CLoad< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 > + CLoad< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 >Partial specialization for 16b loads + CLoad< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 > + CLoad< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 > + CLoad< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 > + CLoad< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > + CLoad< Vector< bin1_t, 32 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > + CLoad< Vector< int4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > + CLoad< Vector< uint4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > + Clog2_down + Clog2_down< N, 1, Count > + Clog2_up + Clog2_up< N, 1, Count > + CMatrixCoord + CMatrixTransformTransformation applied to matrix operands + CMax + CMemorySpaceEnum to specify which memory space data resides in + CMin + CPredicatedTileLoadStreamGeneric stream for loading and transforming fragments + CPredicatedTileStoreStreamGeneric stream for transforming and storing fragments + CPredicateTileAdapterAdapter to enable random access to predicates via logical coordinate within a tile + CPredicateVectorStatically sized array of bits implementing + CConstIteratorA const iterator implementing Predicate Iterator Concept enabling sequential read-only access to prediactes + CIteratorAn iterator implementing Predicate Iterator Concept enabling sequential read and write access to predicates + CTrivialIteratorIterator that always returns true + CRegularTilePredicateFunctorFunctor computing a predicate given the logical position of an access + CReshapeTile + CReshapeTile< Tile_, kAccessSize_, true > + CScalarIOHelper to enable formatted printing of CUTLASS scalar types to an ostream + CShapeA Shape implementing Layout Concept describing the dimensions of a cube + CShapeAdd + CShapeCountCompute derived counted of a Layout Concept based class + CShapeDiv + CShapeDivCeiling + CShapeMax + CShapeMin + CShapeMul + CShapeScale + CShapeStrides + CShapeSub + Csqrt_est + CStorageType + CStorageType< 1 > + CStorageType< 2 > + CStorageType< 4 > + CStore + CStore< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 > + CStore< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 > + CStore< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 > + CStore< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 > + CStore< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 > + CStore< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > + CTensorRef + CTensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >Specialization for rank=1 case with no internal StrideVector + CStrideVector + CTensorRefArray + CConstIteratorTensorRefIterator over TensorRef objects in TensorRefArray + CTensorRefBatchStrided + CConstIteratorConstant iterator over tensors implied by TensorRefBatchStrided + CTensorViewDefines a view into a logical tensor + CTileAllocationClass for storing a tile in memory and accessing it through a tensor ref + CTileCoord + CTiledThreadOffsetBasic thread offset function computed from a thread shape + CTileIteratorBaseIterator for accessing a stripmined tile in memory + CParamsParameters to the iterator + CTileLoadIteratorAn iterator implementing Tile Load Iterator Concept for loading a tile from memory + CParamsParameters + CTileLoadStreamGeneric stream for loading and transforming fragments + CParamsParameters object used to construct generic load stream + CPredicateVectorEmpty predicate vector struct + CTileStoreIteratorAn iterator implementing Tile Store Iterator Concept for storing a tile to memory + CParamsParameters + CTileStoreStreamGeneric stream for transforming and storing fragments + CParamsParameters used to construct the stream + CPredicateVectorEmpty predicate vector struct + CTileTraitsA template defining Tile Traits Concept + CTileTraitsContiguousMajor + CTileTraitsStandardChooses 'best' shape to enable warp raking along contiguous dimension if possible + CTileTraitsStrideMajor + CTileTraitsWarpRakeTiling in which warps rake across the contiguous dimension + CThreadOffsetComputes the thread offset in (H, W) based on thread ID + CTrivialPredicateTileAdapterAlways returns true predicate + Cuint4_t + CVector + CVector< bin1_t, kLanes_ >Vector definition for 1-bit binary datatype + CVector< half, 1 > + CVector< half, kLanes_ > + CVector< int4_t, kLanes_ >Vector definition for 4-bit signed integer datatype + CVector< uint4_t, kLanes_ >Vector definition for 4-bit unsigned integer datatype + CVectorize + CVectorize< Vector< bin1_t, 32 >, kLanes_ > + CVectorize< Vector< int4_t, 8 >, kLanes_ > + CVectorize< Vector< uint4_t, 8 >, kLanes_ > + CVectorTraitsTraits describing properties of vectors and scalar-as-vectors + CVectorTraits< Vector< T, Lanes > >Partial specialization for actual cutlass::Vector + CVectorTraits< Vector< T, Lanes > const >Partial specialization for actual cutlass::Vector + CWmmaReshapeTile + CWmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true > + CZipConvertZips two convert operations + CZipFragmentA template defining Fragment Concept + CZipTensorRef + CZipTileAllocationManages a pair of tile allocations as if they are one allocation + CZipTileIteratorConstructs an iterator from a pair of iterators + CParamsParams object  CDebugType  CDebugValue @@ -435,7 +446,7 @@ $(function() { diff --git a/docs/batched__reduction_8h.html b/docs/batched__reduction_8h.html new file mode 100644 index 00000000..5fceb9df --- /dev/null +++ b/docs/batched__reduction_8h.html @@ -0,0 +1,119 @@ + + + + + + + +Cutlass: batched_reduction.h File Reference + + + + + + + + + + +
+
+ + + + + + +
+
Cutlass +
+
CUDA Templates for Linear Algebra Subroutines and Solvers
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
batched_reduction.h File Reference
+
+
+ +

Implements a software-pipelined efficient batched reduction. D = alpha * Reduction(A) + beta * C. +More...

+
#include <cuda.h>
+#include "cutlass/coord.h"
+#include "cutlass/util/platform.h"
+#include "cutlass/fragment.h"
+
+

Go to the source code of this file.

+ + + + +

+Classes

struct  cutlass::reduction::BatchedReduction< BatchedReductionTraits_ >
 
+ + + + + +

+Namespaces

 cutlass
 
 cutlass::reduction
 
+ + + + +

+Functions

template<typename batched_reduction_ >
__global__ cutlass::reduction::__launch_bounds__ (batched_reduction_::Traits::kThreads, 1) void batched_reduction_kernel(typename batched_reduction_
 
+
+ + + + diff --git a/docs/batched__reduction_8h_source.html b/docs/batched__reduction_8h_source.html new file mode 100644 index 00000000..e305f9f7 --- /dev/null +++ b/docs/batched__reduction_8h_source.html @@ -0,0 +1,104 @@ + + + + + + + +Cutlass: batched_reduction.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
Cutlass +
+
CUDA Templates for Linear Algebra Subroutines and Solvers
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
batched_reduction.h
+
+
+Go to the documentation of this file.
1 /***************************************************************************************************
2 * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without modification, are permitted
5 * provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright notice, this list of
7 * conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright notice, this list of
9 * conditions and the following disclaimer in the documentation and/or other materials
10 * provided with the distribution.
11 * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12 * to endorse or promote products derived from this software without specific prior written
13 * permission.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21 * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 **************************************************************************************************/
29 #pragma once
30 
31 #if !defined(__CUDACC_RTC__)
32 #include <cuda.h>
33 #endif
34 
35 #include "cutlass/coord.h"
36 #include "cutlass/util/platform.h"
37 #include "cutlass/fragment.h"
38 
39 namespace cutlass {
40 namespace reduction {
41 
43 
44 template <typename batched_reduction_>
45 __global__ __launch_bounds__(batched_reduction_::Traits::kThreads, 1) void batched_reduction_kernel(typename batched_reduction_::Params params) {
46  // Construct the batched_reduction object
47  batched_reduction_ batched_reduction(params);
48  batched_reduction.run();
49 }
50 
51 template <typename BatchedReductionTraits_>
56  typedef BatchedReductionTraits_ Traits;
58  typedef typename Traits::Params Params;
60  typedef typename Traits::Functor Functor;
61 
63  CUTLASS_DEVICE BatchedReduction(Params const &params_)
64  : params(params_), functor(params_.functorParams) {}
65 
68  CUTLASS_DEVICE void run() {
69 #if (__CUDA_ARCH__ >= 600)
70  // Swizzle the IDs of the block
71  typename Traits::BlockSwizzle block_swizzle;
72  Coord<3> threadblock_offset =
73  block_swizzle.get_threadblock_offset(make_Coord_from_shape<Traits::SubTile>());
74 
75  int subTileSize = gridDim.x * Traits::SubTile::kW;
76  int tileSize = params.problem_size[1] * params.problem_size[2];
77  int subTileOffset = threadblock_offset[2] + threadIdx.x * Traits::ThreadShape::kW;
78 
79  int subTileBase = 0;
80 
81  typename Traits::ScalarA inRegs[Traits::maxInReg];
82  typename Traits::ScalarAccum AccumRegs[Traits::maxOutReg];
83 
84  for (int subTile = 0; subTile < tileSize; subTile += subTileSize) {
85  int tileOffset = subTileBase + subTileOffset;
86  // Init AccumRegs
87  for (int i = 0; i < Traits::ThreadShape::kW; i++)
88  AccumRegs[i] = static_cast<typename Traits::ScalarAccum>(0.0f);
89  // Fetch c0
90  typename Traits::ScalarAccum c0[Traits::ThreadShape::kW];
91  for (int i = 0; i< Traits::ThreadShape::kW; i++)
92  c0[i] = static_cast<typename Traits::ScalarAccum>(params.d_c[tileOffset + i]);
93 
94  // Fetch partial sums from A
95 #pragma unroll
96  for (int s = 0; s < Traits::ReductionSize; s++) {
97  int inRegOffset = s * Traits::ThreadShape::kW;
98  int dOffset = (s * tileSize) + tileOffset;
99 #pragma unroll
100  for (int i = 0; i< Traits::ThreadShape::kW; i++) {
101  inRegs[inRegOffset + i] = params.d_a[dOffset + i];
102  }
103  }
104 
105  // Accumulate
106 #pragma unroll
107  for (int s = 0; s < Traits::ReductionSize; s++) {
108  int inRegOffset = s * Traits::ThreadShape::kW;
109 #pragma unroll
110  for (int i = 0; i < Traits::ThreadShape::kW; i++) {
111  //AccumRegs[i] = cuFma(params.alpha, inRegs[inRegOffset + i], AccumRegs[i]);
112  //AccumRegs[i] = params.alpha * inRegs[inRegOffset + i] + AccumRegs[i];
113  AccumRegs[i] = static_cast<typename Traits::ScalarAccum>(inRegs[inRegOffset + i]) + AccumRegs[i];
114  }
115  }
116  // calling functor
117  functor_caller<Traits::ThreadShapeMultiple2>(AccumRegs, c0, AccumRegs);
118 
119  // Store AccumRegs to D
120 #pragma unroll
121  for (int i = 0; i < Traits::ThreadShape::kW; i++) {
122  params.d_d[tileOffset + i] = static_cast<typename Traits::ScalarD>(AccumRegs[i]);
123  }
124 
125  // Advance sub-tile pointer
126  subTileBase += subTileSize;
127  } // end for loop
128 #endif //#if (__CUDA_ARCH__ >= 600)
129  }
130 
131  template<bool ThreadShapeMultiple2>
132  CUTLASS_DEVICE void functor_caller(typename Traits::ScalarAccum const *accum, typename Traits::ScalarAccum const *old, typename Traits::ScalarAccum *output) {
133  if (ThreadShapeMultiple2 == true) {
134  for (int i = 0; i < Traits::ThreadShape::kW / 2; i++) {
135  functor.template evaluate<typename Traits::ScalarAccum, typename Traits::ScalarAccum, 2>(&accum[2 * i], &old[2 * i], &output[2 * i]);
136  }
137  }
138  else {
139  for (int i = 0; i < Traits::ThreadShape::kW; i++) {
140  functor.template evaluate<typename Traits::ScalarAccum, typename Traits::ScalarAccum, 1>(&accum[i], &old[i], &output[i]);
141  }
142  }
143  }
144 
145  //
146  // Static function members
147  //
148 #if !defined(__CUDACC_RTC__)
149  static __host__ cudaError_t launch(Params const& params,
151  cudaStream_t stream = cudaStreamDefault) {
152  // Setup the grid.
153  typename Traits::BlockSwizzle block_swizzle;
154  dim3 grid = block_swizzle.get_grid_layout(params.problem_size,
155  make_Coord_from_shape<typename Traits::OutputTile>());
156 
157  dim3 block;
158  block.x = Traits::kThreads;
159  batched_reduction_kernel<This_><<<grid, block, 0, stream>>>(params);
160  return cudaGetLastError();
161  }
162 #endif
163 
164  //
165  // Data members
166  //
167 
169  Params const& params;
170  // The functor.
172 };
173 
174 } // namespace reduction
175 } // namespace cutlass
Definition: convert.h:33
+
Params const & params
The params.
Definition: batched_reduction.h:169
+
__global__ __launch_bounds__(batched_reduction_::Traits::kThreads, 1) void batched_reduction_kernel(typename batched_reduction_
Definition: batched_reduction.h:45
+
A Coord is a coordinate of arbitrary rank into a tensor or matrix.
+
CUTLASS_DEVICE void run()
Definition: batched_reduction.h:68
+
C++ features that may be otherwise unimplemented for CUDA device functions.
+
BatchedReduction< BatchedReductionTraits_ > This_
This class.
Definition: batched_reduction.h:54
+
Functor functor
Definition: batched_reduction.h:171
+
Definition: batched_reduction.h:52
+ +
CUTLASS_DEVICE BatchedReduction(Params const &params_)
ctor
Definition: batched_reduction.h:63
+
Traits::Params Params
Params.
Definition: batched_reduction.h:58
+
CUTLASS_DEVICE void functor_caller(typename Traits::ScalarAccum const *accum, typename Traits::ScalarAccum const *old, typename Traits::ScalarAccum *output)
Definition: batched_reduction.h:132
+
Traits::Functor Functor
functor
Definition: batched_reduction.h:60
+
BatchedReductionTraits_ Traits
The traits.
Definition: batched_reduction.h:56
+
Defines Fragment, a statically-sized array for storing parts of matrices within a thread&#39;s registers...
+
static __host__ cudaError_t launch(Params const &params, cudaStream_t stream=cudaStreamDefault)
Launch the kernel.
Definition: batched_reduction.h:150
+
+ + + + diff --git a/docs/batched__reduction__traits_8h.html b/docs/batched__reduction__traits_8h.html new file mode 100644 index 00000000..bdf28f47 --- /dev/null +++ b/docs/batched__reduction__traits_8h.html @@ -0,0 +1,115 @@ + + + + + + + +Cutlass: batched_reduction_traits.h File Reference + + + + + + + + + + +
+
+ + + + + + +
+
Cutlass +
+
CUDA Templates for Linear Algebra Subroutines and Solvers
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
batched_reduction_traits.h File Reference
+
+
+ +

Defines structural properties of complete batched reduction. D = alpha * Reduction(A) + beta * C. +More...

+ +

Go to the source code of this file.

+ + + + + + +

+Classes

struct  cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
 
struct  cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params
 
+ + + + + +

+Namespaces

 cutlass
 
 cutlass::reduction
 
+
+ + + + diff --git a/docs/batched__reduction__traits_8h_source.html b/docs/batched__reduction__traits_8h_source.html new file mode 100644 index 00000000..a2deea77 --- /dev/null +++ b/docs/batched__reduction__traits_8h_source.html @@ -0,0 +1,131 @@ + + + + + + + +Cutlass: batched_reduction_traits.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
Cutlass +
+
CUDA Templates for Linear Algebra Subroutines and Solvers
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
batched_reduction_traits.h
+
+
+Go to the documentation of this file.
1 /***************************************************************************************************
2 * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without modification, are permitted
5 * provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright notice, this list of
7 * conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright notice, this list of
9 * conditions and the following disclaimer in the documentation and/or other materials
10 * provided with the distribution.
11 * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12 * to endorse or promote products derived from this software without specific prior written
13 * permission.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21 * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 **************************************************************************************************/
29 #pragma once
30 #include "cutlass/cutlass.h"
31 #include "cutlass/shape.h"
35 
36 namespace cutlass {
37 namespace reduction {
38 
39 /*
40 OutputTile defines the work load per thread block
41 Subtile defines the work load per thread block per iteration
42 OutputTile / Subtile = number of iterations within a kernel
43 ThreadShape defines the work load per thread
44 Subtile / ThreadShape = number of threads per thread block
45 */
46 template <
48  typename ScalarA_,
50  typename ScalarC_,
52  typename ScalarD_,
54  typename ScalarAlphaBeta_,
56  typename ScalarAccum_,
58  int ReductionSize_ = 1,
60  typename OutputTile_ = Shape<1, 1, 128>,
62  typename SubTile_ = Shape<1, 1, 64>,
64  typename ThreadShape_ = Shape<1, 1, 2>,
66  typename Index_ = int,
68  typename BlockSwizzle_ = DefaultBlockSwizzle,
70  int maxInReg_ = 160,
72  int maxOutReg_ = 64,
75 >
78  typedef BatchedReductionTraits<ScalarA_,
79  ScalarC_,
80  ScalarD_,
81  ScalarAlphaBeta_,
82  ScalarAccum_,
83  ReductionSize_,
84  OutputTile_,
85  SubTile_,
86  ThreadShape_,
87  Index_,
88  BlockSwizzle_,
89  maxInReg_,
90  maxOutReg_,
91  Functor_> This_;
95  typedef OutputTile_ OutputTile;
97  typedef SubTile_ SubTile;
99  typedef ThreadShape_ ThreadShape;
101  typedef ScalarA_ ScalarA;
103  typedef ScalarC_ ScalarC;
105  typedef ScalarD_ ScalarD;
107  typedef ScalarAlphaBeta_ ScalarAlphaBeta;
109  typedef ScalarAccum_ ScalarAccum;
111  typedef Index_ Index;
113  typedef BlockSwizzle_ BlockSwizzle;
115  static const int ReductionSize = ReductionSize_;
117  static const bool ThreadShapeMultiple2 = (ThreadShape::kW % 2 == 0);
119  typedef Functor_ Functor;
122  static int const kThreads = SubTile::kW / ThreadShape::kW;
123  //
124  static int const maxInReg = maxInReg_;
125  //
126  static int const maxOutReg = maxOutReg_;
127  //
128  static_assert(SubTile::kW % ThreadShape::kW == 0, "cannot evenly distribute work load among threads");
129  //
130  static_assert(kThreads % 32 == 0, "threads per threadblock is not multiple of 32");
131  //
132  static_assert(OutputTile::kW % SubTile::kW == 0, "cannot evenly distribute work load among iterations");
133  //
134  static_assert(ReductionSize * ThreadShape::kW <= maxInReg, "ReductionSize * ThreadShape::kW should not be bigger than maxInReg");
135  //
136  static_assert(ThreadShape::kW <= maxOutReg, "ThreadShape::kW should not be bigger than maxOutReg");
137 
138  struct Params {
146  long long int reduction_stride;
147  //
148  ScalarA const *d_a;
149  //
151  //
152  ScalarC const *d_c;
153  //
155  //
157  //
160  typename Functor::Params functorParams;
163  Index n_,
164  ScalarAlphaBeta alpha_,
165  ScalarAlphaBeta beta_,
166  long long int reduction_stride_,
167  ScalarA const *d_a_,
168  Index lda_,
169  ScalarC const *d_c_,
170  Index ldc_,
171  ScalarD *d_d_,
172  Index ldd_){
173  problem_size = make_Coord(1, n_, m_);
174  alpha = alpha_;
175  beta = beta_;
176  reduction_stride = reduction_stride_;
177  d_a = d_a_;
178  lda = lda_;
179  d_c = d_c_;
180  d_d = d_d_;
181  ldc = ldc_;
182  ldd = ldd_;
183 
184  functorParams.initialize(alpha_, beta_);
185 
186  return 0;
187  }
188  };
189 
190 };
191 } // namespace reduction
192 } // namespace cutlass
Coord< 3 > problem_size
The dimension of output tensor.
Definition: batched_reduction_traits.h:140
+
Definition: convert.h:33
+
Definition: batched_reduction_traits.h:138
+
BlockSwizzle_ BlockSwizzle
The thread block swizzle.
Definition: batched_reduction_traits.h:113
+
BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > This_
Definition: batched_reduction_traits.h:91
+
Implements the BLAS linear scaling function alpha*AB + beta*C.
+
static int const kThreads
Definition: batched_reduction_traits.h:122
+
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:368
+
ScalarAccum_ ScalarAccum
The type for accumulation.
Definition: batched_reduction_traits.h:109
+
Index lda
Definition: batched_reduction_traits.h:150
+
ScalarAlphaBeta beta
The beta.
Definition: batched_reduction_traits.h:144
+
Defies functors for mapping blockIdx to partitions of the batched reduction computation.
+
ThreadShape_ ThreadShape
Definition: batched_reduction_traits.h:99
+
Index ldd
Definition: batched_reduction_traits.h:158
+
ScalarD_ ScalarD
The output pointer type.
Definition: batched_reduction_traits.h:105
+
long long int reduction_stride
stride between two element that will be sumed
Definition: batched_reduction_traits.h:146
+
SubTile_ SubTile
Definition: batched_reduction_traits.h:97
+
ScalarC const * d_c
Definition: batched_reduction_traits.h:152
+
OutputTile_ OutputTile
Definition: batched_reduction_traits.h:95
+
Index ldc
Definition: batched_reduction_traits.h:154
+
ScalarAlphaBeta_ ScalarAlphaBeta
The alpha beta type.
Definition: batched_reduction_traits.h:107
+
ScalarC_ ScalarC
Definition: batched_reduction_traits.h:103
+
ScalarA const * d_a
Definition: batched_reduction_traits.h:148
+
Definition: batched_reduction.h:52
+
static const int ReductionSize
Definition: batched_reduction_traits.h:115
+
ScalarA_ ScalarA
The input pointer type.
Definition: batched_reduction_traits.h:101
+
#define CUTLASS_HOST_DEVICE
Definition: cutlass.h:46
+
#define static_assert(__e, __m)
Definition: platform.h:153
+ +
ScalarAlphaBeta alpha
The alpha.
Definition: batched_reduction_traits.h:142
+
Functor_ Functor
Definition: batched_reduction_traits.h:119
+
static int const maxInReg
Definition: batched_reduction_traits.h:124
+
ScalarD * d_d
Definition: batched_reduction_traits.h:156
+
Functor::Params functorParams
The functor params.
Definition: batched_reduction_traits.h:160
+
static const bool ThreadShapeMultiple2
check if threadShape is multiple of 2.
Definition: batched_reduction_traits.h:117
+
Functor to compute linear combination of fragments.
Definition: linear_scaling.h:51
+
Defines Shape implementing the Layout concept for representing a 4D hypercube of objects.
+
Index_ Index
The index.
Definition: batched_reduction_traits.h:111
+
static int const maxOutReg
Definition: batched_reduction_traits.h:126
+
Implements a software-pipelined efficient batched reduction. D = alpha * Reduction(A) + beta * C...
+
Basic include for CUTLASS macros.
+
Definition: batched_reduction_traits.h:76
+
CUTLASS_HOST_DEVICE int initialize(Index m_, Index n_, ScalarAlphaBeta alpha_, ScalarAlphaBeta beta_, long long int reduction_stride_, ScalarA const *d_a_, Index lda_, ScalarC const *d_c_, Index ldc_, ScalarD *d_d_, Index ldd_)
Initialize the parameters for 2D output tensor.
Definition: batched_reduction_traits.h:162
+
cutlass::reduction::BatchedReduction< This_ > KernelClass
The struct that consumes this Traits.
Definition: batched_reduction_traits.h:93
+
+ + + + diff --git a/docs/classcutlass_1_1PredicateVector_1_1ConstIterator-members.html b/docs/classcutlass_1_1PredicateVector_1_1ConstIterator-members.html index 18f59fc0..9eb72a1c 100644 --- a/docs/classcutlass_1_1PredicateVector_1_1ConstIterator-members.html +++ b/docs/classcutlass_1_1PredicateVector_1_1ConstIterator-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/docs/classcutlass_1_1PredicateVector_1_1ConstIterator.html b/docs/classcutlass_1_1PredicateVector_1_1ConstIterator.html index 7e7089a0..8bcc1a4f 100644 --- a/docs/classcutlass_1_1PredicateVector_1_1ConstIterator.html +++ b/docs/classcutlass_1_1PredicateVector_1_1ConstIterator.html @@ -381,7 +381,7 @@ template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ diff --git a/docs/classcutlass_1_1PredicateVector_1_1Iterator-members.html b/docs/classcutlass_1_1PredicateVector_1_1Iterator-members.html index 73d0ebca..b29bf867 100644 --- a/docs/classcutlass_1_1PredicateVector_1_1Iterator-members.html +++ b/docs/classcutlass_1_1PredicateVector_1_1Iterator-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/classcutlass_1_1PredicateVector_1_1Iterator.html b/docs/classcutlass_1_1PredicateVector_1_1Iterator.html index 2cbc797d..f55dd932 100644 --- a/docs/classcutlass_1_1PredicateVector_1_1Iterator.html +++ b/docs/classcutlass_1_1PredicateVector_1_1Iterator.html @@ -443,7 +443,7 @@ template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ diff --git a/docs/classcutlass_1_1TensorRef-members.html b/docs/classcutlass_1_1TensorRef-members.html index 202c9ab4..16c6516d 100644 --- a/docs/classcutlass_1_1TensorRef-members.html +++ b/docs/classcutlass_1_1TensorRef-members.html @@ -118,7 +118,7 @@ $(function() { diff --git a/docs/classcutlass_1_1TensorRef.html b/docs/classcutlass_1_1TensorRef.html index 1053ca0a..fae44ea1 100644 --- a/docs/classcutlass_1_1TensorRef.html +++ b/docs/classcutlass_1_1TensorRef.html @@ -1146,7 +1146,7 @@ template<typename Storage_, int Rank_, typename MapFunc_ = IdentityTensorMapF diff --git a/docs/classcutlass_1_1TensorRefArray_1_1ConstIterator-members.html b/docs/classcutlass_1_1TensorRefArray_1_1ConstIterator-members.html index 44c11895..4514b27a 100644 --- a/docs/classcutlass_1_1TensorRefArray_1_1ConstIterator-members.html +++ b/docs/classcutlass_1_1TensorRefArray_1_1ConstIterator-members.html @@ -79,8 +79,8 @@ $(function() {

This is the complete list of members for cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator, including all inherited members.

- - + + @@ -89,11 +89,11 @@ $(function() { - +
ConstIterator(TensorArrayRef const &ref, int idx=0)cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
operator() constcutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
ConstIterator(TensorRefArray const &ref, int idx=0)cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
operator*() constcutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
operator+(Index idx)cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
operator++()cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
operator++(int)cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
operator--()cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
operator--(int)cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
operator-=(Index idx)cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
TensorRef typedefcutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator
TensorRef typedefcutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator
diff --git a/docs/classcutlass_1_1TensorRefArray_1_1ConstIterator.html b/docs/classcutlass_1_1TensorRefArray_1_1ConstIterator.html index aa40085c..8e5ca839 100644 --- a/docs/classcutlass_1_1TensorRefArray_1_1ConstIterator.html +++ b/docs/classcutlass_1_1TensorRefArray_1_1ConstIterator.html @@ -88,18 +88,18 @@ $(function() { - - - + + +

Public Types

typedef Base TensorRef
 TensorRef returned by the iterator. More...
 
typedef TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > TensorRef
 Containing class's tensor rev. More...
 
- - - - - - + + + + + + @@ -121,8 +121,8 @@ Public Member Functions

Public Member Functions

CUTLASS_HOST_DEVICE ConstIterator (TensorArrayRef const &ref, int idx=0)
 Constructs a ConstIterator over the TensorRef objects. More...
 
CUTLASS_HOST_DEVICE TensorRefoperator () const
 Obtains a TensorRef pointed to by this iterator. More...
 
CUTLASS_HOST_DEVICE ConstIterator (TensorRefArray const &ref, int idx=0)
 Constructs a ConstIterator over the TensorRef objects. More...
 
CUTLASS_HOST_DEVICE TensorRef operator* () const
 Obtains a TensorRef pointed to by this iterator. More...
 
CUTLASS_HOST_DEVICE ConstIteratoroperator++ ()
 Advances to next TensorRef. More...
 
 

Member Typedef Documentation

- -

◆ TensorRef

+ +

◆ TensorRef

@@ -130,7 +130,7 @@ Public Member Functions template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMapFunc<Rank_>, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long>
- +
typedef Base cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::TensorReftypedef TensorRef<Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_> cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::TensorRef
@@ -138,8 +138,8 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa

Constructor & Destructor Documentation

- -

◆ ConstIterator()

+ +

◆ ConstIterator()

@@ -152,7 +152,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa CUTLASS_HOST_DEVICE cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::ConstIterator ( - TensorArrayRef const &  + TensorRefArray const &  ref, @@ -177,8 +177,8 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa

Member Function Documentation

- -

◆ operator()

+ +

◆ operator*()

@@ -189,7 +189,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa - + @@ -216,7 +216,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa
CUTLASS_HOST_DEVICE TensorRef* cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator CUTLASS_HOST_DEVICE TensorRef cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator* ( ) const - + @@ -244,7 +244,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa + + + + +
CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator+ CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator+ ( Index  idx) - + @@ -271,7 +271,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa diff --git a/docs/igemm__epilogue_8h_source.html b/docs/igemm__epilogue_8h_source.html index 43f9f158..f53a99d0 100644 --- a/docs/igemm__epilogue_8h_source.html +++ b/docs/igemm__epilogue_8h_source.html @@ -85,7 +85,7 @@ $(function() {
Definition: convert.h:33
Base::SharedLoadTileTraits SharedLoadTileTraits
The traits class for the shared iterator to load D from shared memory.
Definition: igemm_epilogue.h:235
TileLoadIterator< SharedLoadTileTraits, typename SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorD
The shared iterator to load D from shared memory.
Definition: igemm_epilogue.h:241
-
Definition: gemm_epilogue_traits.h:186
+
Definition: gemm_epilogue_traits.h:203
GemmEpilogue< GemmEpilogueTraits_ > Base
The base class.
Definition: igemm_epilogue.h:292
Traits::Params Params
The params.
Definition: gemm_epilogue.h:46
Definition: gemm_epilogue.h:42
@@ -94,11 +94,11 @@ $(function() {
Defines the Tile Traits concept and iterators for loading and storing to tiles efficiently.
CUTLASS_DEVICE IgemmInt8ToFloatConverter()
Ctor.
Definition: igemm_epilogue.h:123
SharedStoreIteratorD::Fragment SharedStoreFragmentD
The fragment that needs to be passed to that store iterator.
Definition: igemm_epilogue.h:229
-
EpilogueFunctor_::Scalar Scalar
The scalar.
Definition: gemm_epilogue_traits.h:188
+
EpilogueFunctor_::Scalar Scalar
The scalar.
Definition: gemm_epilogue_traits.h:205
Definition: igemm_epilogue.h:186
Definition: load_store.h:42
Fragment< int8_t, kElements_ > InputFragment
The input fragment.
Definition: igemm_epilogue.h:115
-
Fragment< FragmentElement, ShapeCount< Iterations >::kCount *kAccessSize > Fragment
The fragment.
Definition: tile_iterator.h:196
+
Fragment< FragmentElement, ShapeCount< Iterations >::kCount *kAccessSize > Fragment
The fragment.
Definition: tile_iterator.h:199
Definition: igemm_epilogue.h:290
Definition: igemm_epilogue.h:45
CUTLASS_DEVICE void transform(Fragment_ const &src, int offset, OutputFragment &dst)
Transform a fragment.
Definition: igemm_epilogue.h:64
@@ -109,13 +109,13 @@ $(function() {
Base::Scalar Scalar
The scalar type of the epilogue.
Definition: igemm_epilogue.h:194
CUTLASS_DEVICE IgemmEpilogue(typename Base::Params const &params_, typename Base::SharedStorage &shared_storage_, Coord< 3 > const &_problem_size)
Ctor.
Definition: igemm_epilogue.h:295
GlobalLoadIteratorC::Fragment GlobalFragmentC
The fragment that needs to be produced by the load iterator.
Definition: igemm_epilogue.h:205
-
Base::Fragment Fragment
Fragment definition.
Definition: tile_iterator.h:901
+
Base::Fragment Fragment
Fragment definition.
Definition: tile_iterator.h:909
CUTLASS_DEVICE void transform(InputFragment const &src, OutputFragment &dst)
Transform a fragment.
Definition: igemm_epilogue.h:58
Fragment< int8_t, kElements_ > OutputFragment
The output fragment.
Definition: igemm_epilogue.h:49
GemmGlobalIteratorCd< GlobalStoreTileTraits > GlobalStoreIteratorD
The iterator to store to shared memory.
Definition: igemm_epilogue.h:213
IgemmSharedStoreTransformer< typename IgemmConfig::Accumulators::Element, SharedStoreFragmentD >::Transformer SharedStoreTransformerD
The transformer from accumulators to shared memory fragments.
Definition: igemm_epilogue.h:233
static bool const kInt8Output
Do we output in int8?
Definition: igemm_epilogue.h:283
-
An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
Definition: tile_iterator.h:399
+
An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
Definition: tile_iterator.h:402
Convert< Fragment< InputScalar_, OutputFragment_::kElements >, OutputFragment_ > Transformer
Definition: igemm_epilogue.h:180
GemmEpilogue< GemmEpilogueTraits_ > Base
The base class.
Definition: igemm_epilogue.h:306
Defines a type for restructuring a tile.
@@ -133,7 +133,7 @@ $(function() {
Fragment< float, kElements_ > InputFragment
The input fragment.
Definition: igemm_epilogue.h:47
Definition: gemm_epilogue_traits.h:70
-
Definition: gemm_global_tile.h:396
+
Definition: gemm_global_tile.h:366
Definition: igemm_epilogue.h:179
Implements efficient loading of the thread block-level tile from global memory and storing to shared ...
Definition: convert.h:38
@@ -156,11 +156,11 @@ $(function() {
CUTLASS_DEVICE IgemmEpilogue(typename Base::Params const &params_, typename Base::SharedStorage &shared_storage_, Coord< 3 > const &_problem_size)
Ctor.
Definition: igemm_epilogue.h:309
Implements tile iterators to partition the thread block tile into 2D subtiles and efficiently load ea...
Definition: gemm_shared_tile.h:270
-
An iterator implementing Tile Store Iterator Concept for storing a tile to memory.
Definition: tile_iterator.h:836
+
An iterator implementing Tile Store Iterator Concept for storing a tile to memory.
Definition: tile_iterator.h:841
diff --git a/docs/igemm__global__tile_8h.html b/docs/igemm__global__tile_8h.html index 4b5ee6d7..02ea6cc7 100644 --- a/docs/igemm__global__tile_8h.html +++ b/docs/igemm__global__tile_8h.html @@ -110,7 +110,7 @@ Namespaces diff --git a/docs/igemm__global__tile_8h_source.html b/docs/igemm__global__tile_8h_source.html index 04428a68..5158b569 100644 --- a/docs/igemm__global__tile_8h_source.html +++ b/docs/igemm__global__tile_8h_source.html @@ -76,46 +76,48 @@ $(function() {
igemm_global_tile.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
33 #pragma once
34 
35 #include "cutlass/coord.h"
37 #include "cutlass/matrix_traits.h"
38 
39 namespace cutlass {
40 namespace gemm {
41 
43 
44 template <GemmOperand::Kind kOperand_,
45  MatrixLayout::Kind kLayout_,
46  typename Scalar_,
47  typename Tile_,
48  typename Threads_,
49  int kAccessSize_>
51  // Which GEMM operand?
52  kOperand_,
53  // The layout.
54  kLayout_,
55  // The scalar.
56  Scalar_,
57  // The tile.
58  Tile_,
59  // The threads.
60  Threads_,
61  // The number of scalars per LDG/STG.
62  kAccessSize_> {
66  typedef typename Base::Threads Threads;
70  typedef Shape<Base::VectorizedTile::kH / Base::Threads::kH / 4,
71  4,
72  Base::VectorizedTile::kW / Base::Threads::kW,
73  Base::VectorizedTile::kC / Base::kAccessSize>
75 
77  struct ThreadOffset {
79  Coord<4> operator()() const {
80  int thread_offset_h = threadIdx.x / Threads::kW * ThreadsDelta::kH;
81  int thread_offset_w = threadIdx.x % Threads::kW * ThreadsDelta::kW;
82 
83  return make_Coord(0, thread_offset_h, thread_offset_w, 0);
84  }
85  };
86 
87  public:
90 };
91 
93 
94 template <typename TileTraits_, typename Index_ = int>
95 struct IgemmGlobalIteratorAb : public GemmGlobalIteratorAb<TileTraits_, Index_> {
99  typedef typename TileTraits_::ThreadOffset ThreadOffset;
100 
102  CUTLASS_DEVICE IgemmGlobalIteratorAb(typename Base::Params const& _params,
103  const Coord<3>& bounds,
104  const Coord<3>& threadblock_offset,
105  ThreadOffset thread_offset_func = ThreadOffset())
106  : Base(_params, bounds, threadblock_offset, thread_offset_func), mask_(0xffffffff) {
107  // The number of elements read in a single iteration.
108  int const kBlock = TileTraits_::Tile::kW;
109  // The residue.
110  int const kResidue = (int)(bounds[1] % kBlock);
111 
112  // Compute the number of elements that are valid.
113  int const left = kResidue - Base::thread_offset[2];
114  if (left > 0 && left < 4) {
115  mask_ = (1u << (8 * left)) - 1u;
116  }
117  }
118 
119  CUTLASS_DEVICE void load_element(
120  typename Base::AccessType& value, int d, int h, int w, int c) const {
121  Base::load_element(value, d, h, w, c);
122  reinterpret_cast<uint32_t&>(value) &= mask_;
123  }
124 
126  uint32_t mask_;
127 };
128 
130 
131 } // namespace gemm
132 } // namespace cutlass
Definition: convert.h:33
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
33 #pragma once
34 
35 #include "cutlass/coord.h"
37 #include "cutlass/matrix_traits.h"
38 
39 namespace cutlass {
40 namespace gemm {
41 
43 
44 template <GemmOperand::Kind kOperand_,
45  MatrixLayout::Kind kLayout_,
46  typename Scalar_,
47  typename Tile_,
48  typename Threads_,
49  int kAccessSize_>
51  // Which GEMM operand?
52  kOperand_,
53  // The layout.
54  kLayout_,
55  // The scalar.
56  Scalar_,
57  // The tile.
58  Tile_,
59  // The threads.
60  Threads_,
61  // The number of scalars per LDG/STG.
62  kAccessSize_> {
66  typedef typename Base::Threads Threads;
70  typedef Shape<Base::VectorizedTile::kH / Base::Threads::kH / 4,
71  4,
72  Base::VectorizedTile::kW / Base::Threads::kW,
73  Base::VectorizedTile::kC / Base::kAccessSize>
75 
77  struct ThreadOffset {
79  Coord<4> operator()() const {
80  int thread_offset_h = threadIdx.x / Threads::kW * ThreadsDelta::kH;
81  int thread_offset_w = threadIdx.x % Threads::kW * ThreadsDelta::kW;
82 
83  return make_Coord(0, thread_offset_h, thread_offset_w, 0);
84  }
85  };
86 
87  public:
90 };
91 
93 
94 template <typename TileTraits_, typename Index_ = int>
95 struct IgemmGlobalIteratorAb : public GemmGlobalIteratorAb<TileTraits_, Index_> {
99  typedef typename TileTraits_::ThreadOffset ThreadOffset;
100 
102  CUTLASS_DEVICE IgemmGlobalIteratorAb(typename Base::Params const& _params,
103  const Coord<3>& threadblock_offset,
104  ThreadOffset thread_offset_func = ThreadOffset())
105  : Base(_params, threadblock_offset, thread_offset_func), mask_(0xffffffff) { }
106 
107  CUTLASS_DEVICE void initialize_predicates(const Coord<3>& bounds, const Coord<3>& threadblock_offset) {
108 
109  Base::initialize_predicates(bounds, threadblock_offset);
110  // The number of elements read in a single iteration.
111  int const kBlock = TileTraits_::Tile::kW;
112  // The residue.
113  int const kResidue = (int)(bounds[1] % kBlock);
114 
115  // Compute the number of elements that are valid.
116  int const left = kResidue - Base::thread_offset[2];
117  if (left > 0 && left < 4) {
118  mask_ = (1u << (8 * left)) - 1u;
119  }
120  }
121 
122  CUTLASS_DEVICE void load_element(
123  typename Base::AccessType& value, int d, int h, int w, int c) const {
124  Base::load_element(value, d, h, w, c);
125  reinterpret_cast<uint32_t&>(value) &= mask_;
126  }
127 
129  uint32_t mask_;
130 };
131 
133 
134 } // namespace gemm
135 } // namespace cutlass
Definition: convert.h:33
Base::Threads Threads
The threads.
Definition: igemm_global_tile.h:66
Computes the thread offset in (H, W) based on thread ID.
Definition: igemm_global_tile.h:77
Defines iterators for efficiently loading and storing to global memory.
Definition: gemm_global_tile.h:70
A Coord is a coordinate of arbitrary rank into a tensor or matrix.
Shape< Base::VectorizedTile::kH/Base::Threads::kH/4, 4, Base::VectorizedTile::kW/Base::Threads::kW, Base::VectorizedTile::kC/Base::kAccessSize > Iterations
The number of iterations needed to load/store the tile.
Definition: igemm_global_tile.h:74
-
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:318
-
CUTLASS_HOST_DEVICE void load_element(typename Base::AccessType &value, int d, int h, int w, int c) const
Loads a single fragment element from memory.
Definition: gemm_global_tile.h:292
+
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:368
+
CUTLASS_HOST_DEVICE void load_element(typename Base::AccessType &value, int d, int h, int w, int c) const
Loads a single fragment element from memory.
Definition: gemm_global_tile.h:267
+
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
CUTLASS_HOST_DEVICE Coord< 4 > operator()() const
Definition: igemm_global_tile.h:79
Definition: gemm_global_tile.h:163
static int const kH
The height of the cube.
Definition: shape.h:68
-
An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
Definition: tile_iterator.h:399
+
An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
Definition: tile_iterator.h:402
Definition: igemm_global_tile.h:50
-
CUTLASS_DEVICE void load_element(typename Base::AccessType &value, int d, int h, int w, int c) const
Definition: igemm_global_tile.h:119
+
CUTLASS_DEVICE void load_element(typename Base::AccessType &value, int d, int h, int w, int c) const
Definition: igemm_global_tile.h:122
GemmGlobalIteratorAb< TileTraits_, Index_ > Base
The base class.
Definition: igemm_global_tile.h:97
Definition: igemm_global_tile.h:95
#define CUTLASS_HOST_DEVICE
Definition: cutlass.h:46
Definition: vector.h:62
A Shape implementing Layout Concept describing the dimensions of a cube.
Definition: shape.h:64
TileTraits_::ThreadOffset ThreadOffset
The functor to compute the thread offset.
Definition: igemm_global_tile.h:99
-
uint32_t mask_
The mask to clean up the values.
Definition: igemm_global_tile.h:126
+
uint32_t mask_
The mask to clean up the values.
Definition: igemm_global_tile.h:129
ReshapeThreads< VectorizedTile, Threads_ >::Threads Threads
The threads shape.
Definition: gemm_global_tile.h:88
-
CUTLASS_DEVICE IgemmGlobalIteratorAb(typename Base::Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &threadblock_offset, ThreadOffset thread_offset_func=ThreadOffset())
Constructor.
Definition: igemm_global_tile.h:102
Shape< 1, 4, Base::VectorizedTile::kC > ThreadsDelta
The threads strides.
Definition: igemm_global_tile.h:89
-
TileTraits_::ThreadOffset ThreadOffset
The thread offset.
Definition: gemm_global_tile.h:192
+
TileTraits_::ThreadOffset ThreadOffset
The thread offset.
Definition: gemm_global_tile.h:194
static int const kW
The width of the cube.
Definition: shape.h:70
-
Parameters.
Definition: tile_iterator.h:491
-
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
+
CUTLASS_DEVICE void initialize_predicates(const Coord< 3 > &bounds, const Coord< 3 > &threadblock_offset)
Definition: igemm_global_tile.h:107
+
Parameters.
Definition: tile_iterator.h:497
static int const kAccessSize
The number of scalars per LDG/STG.
Definition: gemm_global_tile.h:80
Kind
Definition: matrix_traits.h:357
Shape< Base::Threads::kH *4, 1, Base::Threads::kW, Base::kAccessSize > Delta
The strides in each dimension between different loads/stores.
Definition: igemm_global_tile.h:68
Defines properties of matrices used to denote layout and operands to GEMM kernels.
-
Coord< 4 > thread_offset
Offset of an individual lane from the start of the tile.
Definition: gemm_global_tile.h:237
+
CUTLASS_HOST_DEVICE void initialize_predicates(const Coord< 3 > &bounds, const Coord< 3 > &block_offset)
Definition: gemm_global_tile.h:219
+
Coord< 4 > thread_offset
Offset of an individual lane from the start of the tile.
Definition: gemm_global_tile.h:213
+
CUTLASS_DEVICE IgemmGlobalIteratorAb(typename Base::Params const &_params, const Coord< 3 > &threadblock_offset, ThreadOffset thread_offset_func=ThreadOffset())
Constructor.
Definition: igemm_global_tile.h:102
GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ > Base
The base class.
Definition: igemm_global_tile.h:64
diff --git a/docs/igemm__multiply__add_8h.html b/docs/igemm__multiply__add_8h.html index d67e57b8..95e37347 100644 --- a/docs/igemm__multiply__add_8h.html +++ b/docs/igemm__multiply__add_8h.html @@ -103,7 +103,7 @@ Namespaces
diff --git a/docs/igemm__multiply__add_8h_source.html b/docs/igemm__multiply__add_8h_source.html index b67129ef..a7f5658f 100644 --- a/docs/igemm__multiply__add_8h_source.html +++ b/docs/igemm__multiply__add_8h_source.html @@ -76,7 +76,7 @@ $(function() {
igemm_multiply_add.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
29 #pragma once
30 
31 #include "cutlass/fragment.h"
32 
34 
35 namespace cutlass {
36 namespace gemm {
37 
39 
41 template <typename ThreadGemmShape_, typename ThreadsPerWarp_>
42 struct ThreadMultiplyAdd<ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int> {
46  typedef ThreadGemmShape_ ThreadGemmShape;
50  typedef ThreadsPerWarp_ ThreadsPerWarp;
54  typedef int8_t ScalarA;
58  typedef int8_t ScalarB;
62  typedef int ScalarC;
65 
67  CUTLASS_DEVICE ThreadMultiplyAdd() {}
68 
70  CUTLASS_DEVICE void multiply_add(FragmentA const& a,
71  FragmentB const& b,
72  Accumulators const& c,
73  Accumulators& d) {
74  // The inputs.
75  int const* a_int = reinterpret_cast<int const*>(&a[0]);
76  int const* b_int = reinterpret_cast<int const*>(&b[0]);
77 
78  for (int j = 0; j < AccumulatorsPerThread::kH; ++j) {
79  for (int i = 0; i < AccumulatorsPerThread::kW; ++i) {
80  asm volatile("dp4a.s32.s32 %0, %1, %2, %3;"
81  : "=r"(d[j * AccumulatorsPerThread::kW + i])
82  : "r"(a_int[i]), "r"(b_int[j]), "r"(c[j * AccumulatorsPerThread::kW + i]));
83  }
84  }
85  }
86 };
87 
89 
90 } // namespace gemm
91 } // namespace cutlass
Definition: convert.h:33
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
29 #pragma once
30 
31 #include "cutlass/fragment.h"
32 
34 
35 namespace cutlass {
36 namespace gemm {
37 
39 
41 template <typename ThreadGemmShape_, typename ThreadsPerWarp_>
42 struct ThreadMultiplyAdd<ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int> {
46  typedef ThreadGemmShape_ ThreadGemmShape;
50  typedef ThreadsPerWarp_ ThreadsPerWarp;
54  typedef int8_t ScalarA;
58  typedef int8_t ScalarB;
62  typedef int ScalarC;
65 
67  CUTLASS_DEVICE ThreadMultiplyAdd() {}
68 
70  CUTLASS_DEVICE void multiply_add(FragmentA const& a,
71  FragmentB const& b,
72  Accumulators const& c,
73  Accumulators& d) {
74 
75  #if defined(__CUDA_ARCH__) && (__CUDA_ARCH__ >= 610)
76  // The inputs.
77  int const* a_int = reinterpret_cast<int const*>(&a[0]);
78  int const* b_int = reinterpret_cast<int const*>(&b[0]);
79 
80  for (int j = 0; j < AccumulatorsPerThread::kH; ++j) {
81  for (int i = 0; i < AccumulatorsPerThread::kW; ++i) {
82  asm volatile("dp4a.s32.s32 %0, %1, %2, %3;"
83  : "=r"(d[j * AccumulatorsPerThread::kW + i])
84  : "r"(a_int[i]), "r"(b_int[j]), "r"(c[j * AccumulatorsPerThread::kW + i]));
85  }
86  }
87  #endif
88  }
89 };
90 
92 
93 } // namespace gemm
94 } // namespace cutlass
Definition: convert.h:33
Fragment< ScalarA, AccumulatorsPerThread::kW *4 > FragmentA
The fragment for A.
Definition: igemm_multiply_add.h:56
Shape< A_::kD *B_::kD, A_::kH *B_::kH, A_::kW *B_::kW, A_::kC *B_::kC > Shape
Definition: shape.h:119
A template defining Fragment Concept.
Definition: fragment.h:99
@@ -99,7 +99,7 @@ $(function() {
diff --git a/docs/igemm__swizzle_8h.html b/docs/igemm__swizzle_8h.html index c8785521..e4c5bd9a 100644 --- a/docs/igemm__swizzle_8h.html +++ b/docs/igemm__swizzle_8h.html @@ -101,7 +101,7 @@ Namespaces
diff --git a/docs/igemm__swizzle_8h_source.html b/docs/igemm__swizzle_8h_source.html index 015b5f9a..e2b6aee7 100644 --- a/docs/igemm__swizzle_8h_source.html +++ b/docs/igemm__swizzle_8h_source.html @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/igemm__traits_8h.html b/docs/igemm__traits_8h.html index 897687ee..61d15997 100644 --- a/docs/igemm__traits_8h.html +++ b/docs/igemm__traits_8h.html @@ -146,7 +146,7 @@ Namespaces diff --git a/docs/igemm__traits_8h_source.html b/docs/igemm__traits_8h_source.html index e1fa87e4..d7584f9a 100644 --- a/docs/igemm__traits_8h_source.html +++ b/docs/igemm__traits_8h_source.html @@ -76,7 +76,7 @@ $(function() {
igemm_traits.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
30 #pragma once
31 
32 #include "cutlass/convert.h"
33 #include "cutlass/gemm/gemm.h"
43 #include "cutlass/reshape_tile.h"
44 
45 namespace cutlass {
46 namespace gemm {
47 
49 
50 template <
52  typename OutputTile_,
54  typename ScalarD_,
56  typename ThreadGemmShape_>
57 struct IgemmConfig : public GemmConfig<
59  int8_t,
61  int8_t,
63  ScalarD_,
65  ScalarD_,
67  OutputTile_,
69  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, int8_t, int8_t, int>,
71  4,
73  4,
75  16,
77  4,
79  4,
81  16,
83  1,
85  4,
87  1,
89  2,
91  false,
93  false,
95  false> {};
96 
98 
99 template <typename OutputTile_, typename ThreadGemmShape_>
100 struct IgemmConfig<OutputTile_, int8_t, ThreadGemmShape_>
101  : public GemmConfig<
103  int8_t,
105  int8_t,
107  int8_t,
109  int8_t,
111  OutputTile_,
113  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, int8_t, int8_t, int>,
115  4,
117  4,
119  16,
121  4,
123  4,
125  16,
127  4,
129  4,
131  4,
133  2,
135  false,
137  true,
139  false> {};
140 
142 
143 template <enum MatrixLayout::Kind kLayout_, typename GemmConfig_, typename Index_>
144 struct IgemmTileTraitsHelperA : public GemmTileTraitsHelperA<kLayout_, GemmConfig_> {};
145 
147 
148 template <typename GemmConfig_, typename Index_>
149 struct IgemmTileTraitsHelperA<MatrixLayout::kColumnMajor, GemmConfig_, Index_>
150  : public GemmTileTraitsHelperA<MatrixLayout::kColumnMajor, GemmConfig_> {
153 
155  static int const kScalarsPerStsA = 16;
156 
158  typedef IgemmGlobalTileTraits<
160  // The layout.
162  // The pointer is float const.
163  int8_t const,
164  // The tile has size KxM in GEMM's terminology.
166  // The threads are distributed as warps x 32 (the traits may reorganize).
168  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
169  GemmConfig_::kScalarsPerLdgA>
171 
174 
177  // The pointer is float.
178  int8_t,
179  // The tile has size KxM in GEMM's terminology.
180  Shape<GemmConfig_::kStages, GemmConfig_::OutputTile::kD / 4, GemmConfig_::OutputTile::kW * 4>,
181  // The threads are distributed as warps x 32 (the traits may reorganize).
182  typename GlobalTileTraits::Threads,
183  // The number of scalars per STS (STS.32 or STS.128, etc).
184  kScalarsPerStsA>
186 };
187 
189 
190 template <typename GemmConfig_, typename Index_>
191 struct IgemmTileTraitsHelperA<MatrixLayout::kRowMajor, GemmConfig_, Index_> {
194 
196  typedef int8_t Scalar;
198  typedef int8_t MultiplyAddScalar;
199 
201  static int const kScalarsPerStsA = 16;
202 
204  typedef IgemmGlobalTileTraits<
206  // The layout.
208  // The pointer is float const.
209  int8_t const,
210  // The tile has size NxK in GEMM's terminology.
212  // The threads are distributed as warps x 32 (the traits may reorganize).
214  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
215  GemmConfig_::kScalarsPerLdgA>
217 
220 
223  // The pointer is int8.
224  int8_t,
225  // The tile has size KxN in GEMM's terminology.
226  Shape<GemmConfig_::kStages, GemmConfig_::OutputTile::kD / 4, GemmConfig_::OutputTile::kW * 4>,
227  // The threads are distributed as (threads / K) x K (the traits may reorganize).
228  typename GlobalTileTraits::Threads,
229  // The number of scalars per STS.
230  kScalarsPerStsA,
231  // The skew to avoid bank conflicts added in the tile W dimension.
232  16>
234 
237  // The pointer is float const.
238  int8_t const,
239  // The output tile size.
240  typename GemmConfig_::OutputTile,
241  // The number of warps.
242  typename GemmConfig_::Warps,
243  // The number of threads per warp.
244  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
245  // The shape of the FMA instruction.
246  typename GemmConfig_::InstructionShape,
247  // The number of stages.
248  GemmConfig_::kStages,
249  // The number of scalars per LDS.
250  16,
251  // The skew.
252  SharedStoreTileTraits::kSkew>
254 };
255 
257 
258 template <enum MatrixLayout::Kind kLayout_, typename GemmConfig_, typename Index_>
259 struct IgemmTileTraitsHelperB : public GemmTileTraitsHelperB<kLayout_, GemmConfig_> {};
260 
262 
263 template <typename GemmConfig_, typename Index_>
264 struct IgemmTileTraitsHelperB<MatrixLayout::kColumnMajor, GemmConfig_, Index_> {
267 
269  typedef int8_t Scalar;
271  typedef int8_t MultiplyAddScalar;
272 
274  static int const kScalarsPerStsB = 16;
275 
277  typedef IgemmGlobalTileTraits<
279  // The layout.
281  // The pointer is float const.
282  int8_t const,
283  // The tile has size NxK in GEMM's terminology.
285  // The threads are distributed as warps x 32 (the traits may reorganize).
287  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
288  GemmConfig_::kScalarsPerLdgB>
290 
293 
296  // The pointer is int8.
297  int8_t,
298  // The tile has size KxN in GEMM's terminology.
299  Shape<GemmConfig_::kStages, GemmConfig_::OutputTile::kD / 4, GemmConfig_::OutputTile::kH * 4>,
300  // The threads are distributed as (threads / K) x K (the traits may reorganize).
301  typename GlobalTileTraits::Threads,
302  // The number of scalars per STS.
303  kScalarsPerStsB,
304  // The skew to avoid bank conflicts added in the tile W dimension.
305  16>
307 
310  // The pointer is float const.
311  int8_t const,
312  // The output tile size.
313  typename GemmConfig_::OutputTile,
314  // The number of warps.
315  typename GemmConfig_::Warps,
316  // The number of threads per warp.
317  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
318  // The shape of the FMA instruction.
319  typename GemmConfig_::InstructionShape,
320  // The number of stages.
321  GemmConfig_::kStages,
322  // The number of scalars per LDS.
323  16,
324  // The skew.
325  SharedStoreTileTraits::kSkew>
327 };
328 
330 
331 template <typename GemmConfig_, typename Index_>
332 struct IgemmTileTraitsHelperB<MatrixLayout::kRowMajor, GemmConfig_, Index_>
333  : public GemmTileTraitsHelperB<MatrixLayout::kRowMajor, GemmConfig_> {
336 
338  static int const kScalarsPerStsB = 16;
339 
341  typedef IgemmGlobalTileTraits<
343  // The layout.
345  // The pointer is float const.
346  int8_t const,
347  // The tile has size KxM in GEMM's terminology.
349  // The threads are distributed as warps x 32 (the traits may reorganize).
351  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
352  GemmConfig_::kScalarsPerLdgB>
354 
357 
360  // The pointer is float.
361  int8_t,
362  // The tile has size KxM in GEMM's terminology.
363  Shape<GemmConfig_::kStages, GemmConfig_::OutputTile::kD / 4, GemmConfig_::OutputTile::kH * 4>,
364  // The threads are distributed as warps x 32 (the traits may reorganize).
365  typename GlobalTileTraits::Threads,
366  // The number of scalars per STS (STS.32 or STS.128, etc).
367  kScalarsPerStsB>
369 };
370 
372 
373 template <enum MatrixLayout::Kind kLayout_, typename Iterator_>
375 
376 template <typename Iterator_>
377 struct IgemmTransformerA<MatrixLayout::kRowMajor, Iterator_> {
379 };
380 
381 template <typename Iterator_>
382 struct IgemmTransformerA<MatrixLayout::kColumnMajor, Iterator_> {
384 };
385 
387 
388 template <enum MatrixLayout::Kind kLayout_, typename Iterator_>
390 
391 template <typename Iterator_>
392 struct IgemmTransformerB<MatrixLayout::kColumnMajor, Iterator_> {
394 };
395 
396 template <typename Iterator_>
397 struct IgemmTransformerB<MatrixLayout::kRowMajor, Iterator_> {
399 };
400 
402 
403 template <
405  MatrixLayout::Kind kLayoutA_,
407  MatrixLayout::Kind kLayoutB_,
409  typename OutputTile_,
411  typename ScalarD_,
413  typename EpilogueFunctor_,
415  typename ThreadGemmShape_ = Shape<32, 8, 8>,
417  typename Index_ = int>
425 
427  typedef typename GemmTileTraitsHelperA::GlobalLoadIterator GlobalLoadIteratorA;
429  typedef typename IgemmTransformerA<GemmTileTraitsHelperA::kLayout,
432  typedef TileStoreIterator<typename GemmTileTraitsHelperA::SharedStoreTileTraits,
433  typename GemmTileTraitsHelperA::SharedStoreTileTraits::Scalar,
443 
445  typedef typename GemmTileTraitsHelperB::GlobalLoadIterator GlobalLoadIteratorB;
446  // The default transformer for B.
447  typedef typename IgemmTransformerB<GemmTileTraitsHelperB::kLayout,
450  typedef TileStoreIterator<typename GemmTileTraitsHelperB::SharedStoreTileTraits,
451  typename GemmTileTraitsHelperB::SharedStoreTileTraits::Scalar,
461 
463  typedef TileLoadIterator<typename GemmTileTraitsHelperA::SharedLoadTileTraits,
464  typename GemmTileTraitsHelperA::SharedLoadTileTraits::Scalar,
472  typedef TileLoadIterator<typename GemmTileTraitsHelperB::SharedLoadTileTraits,
473  typename GemmTileTraitsHelperB::SharedLoadTileTraits::Scalar,
480 
485 
488 };
489 
491 
492 template <typename ScalarD_>
494  typedef float Scalar;
495 };
496 
497 template <>
498 struct IgemmEpilogueScalar<int> {
499  typedef int Scalar;
500 };
501 
503 
504 template <
506  MatrixLayout::Kind kLayoutA_,
508  MatrixLayout::Kind kLayoutB_,
510  typename OutputTile_ = Shape<32, 128, 128>,
512  typename ScalarD_ = int,
516  typename ThreadGemmShape_ = Shape<32, 8, 8>,
518  typename Index_ = int,
520  typename Helper_ = IgemmTraitsHelper<kLayoutA_,
521  kLayoutB_,
522  OutputTile_,
523  ScalarD_,
524  EpilogueFunctor_,
525  ThreadGemmShape_,
526  Index_> >
527 struct IgemmTraits : public GemmTraits<
528  // The config.
529  typename Helper_::GemmConfig,
530  // The stream to load A from global memory to shared memory.
531  typename Helper_::GlobalLoadStreamA,
532  // The stream to load B from global memory to shared memory.
533  typename Helper_::GlobalLoadStreamB,
534  // The stream to load A from shared memory.
535  typename Helper_::SharedLoadStreamA,
536  // The stream to load B from shared memory.
537  typename Helper_::SharedLoadStreamB,
538  // The epilogue.
539  typename Helper_::Epilogue,
540  // The block swizzle to reorganize the grid.
541  IdentityBlockSwizzle,
542  // The index.
543  Index_,
544  // The tool used to clear accumulators.
545  typename Helper_::ClearAccumulators> {};
546 
548 
549 } // namespace gemm
550 } // namespace cutlass
IgemmTransformerB< GemmTileTraitsHelperB::kLayout, GlobalLoadIteratorB >::Transformer GlobalTransformerB
Definition: igemm_traits.h:448
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
30 #pragma once
31 
32 #include "cutlass/convert.h"
33 #include "cutlass/gemm/gemm.h"
43 #include "cutlass/reshape_tile.h"
44 
45 namespace cutlass {
46 namespace gemm {
47 
49 
50 template <
52  typename OutputTile_,
54  typename ScalarD_,
56  typename ThreadGemmShape_>
57 struct IgemmConfig : public GemmConfig<
59  int8_t,
61  int8_t,
63  ScalarD_,
65  ScalarD_,
67  OutputTile_,
69  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, int8_t, int8_t, int>,
71  4,
73  4,
75  16,
77  4,
79  4,
81  16,
83  1,
85  4,
87  1,
89  2,
91  false,
93  false,
95  false> {};
96 
98 
99 template <typename OutputTile_, typename ThreadGemmShape_>
100 struct IgemmConfig<OutputTile_, int8_t, ThreadGemmShape_>
101  : public GemmConfig<
103  int8_t,
105  int8_t,
107  int8_t,
109  int8_t,
111  OutputTile_,
113  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, int8_t, int8_t, int>,
115  4,
117  4,
119  16,
121  4,
123  4,
125  16,
127  4,
129  4,
131  4,
133  2,
135  false,
137  true,
139  false> {};
140 
142 
143 template <enum MatrixLayout::Kind kLayout_, typename GemmConfig_, typename Index_>
144 struct IgemmTileTraitsHelperA : public GemmTileTraitsHelperA<kLayout_, GemmConfig_> {};
145 
147 
148 template <typename GemmConfig_, typename Index_>
149 struct IgemmTileTraitsHelperA<MatrixLayout::kColumnMajor, GemmConfig_, Index_>
150  : public GemmTileTraitsHelperA<MatrixLayout::kColumnMajor, GemmConfig_> {
153 
155  static int const kScalarsPerStsA = 16;
156 
158  typedef IgemmGlobalTileTraits<
160  // The layout.
162  // The pointer is float const.
163  int8_t const,
164  // The tile has size KxM in GEMM's terminology.
166  // The threads are distributed as warps x 32 (the traits may reorganize).
168  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
169  GemmConfig_::kScalarsPerLdgA>
171 
174 
177  // The pointer is float.
178  int8_t,
179  // The tile has size KxM in GEMM's terminology.
180  Shape<GemmConfig_::kStages, GemmConfig_::OutputTile::kD / 4, GemmConfig_::OutputTile::kW * 4>,
181  // The threads are distributed as warps x 32 (the traits may reorganize).
182  typename GlobalTileTraits::Threads,
183  // The number of scalars per STS (STS.32 or STS.128, etc).
184  kScalarsPerStsA>
186 };
187 
189 
190 template <typename GemmConfig_, typename Index_>
191 struct IgemmTileTraitsHelperA<MatrixLayout::kRowMajor, GemmConfig_, Index_> {
194 
196  typedef int8_t Scalar;
198  typedef int8_t MultiplyAddScalar;
199 
201  static int const kScalarsPerStsA = 16;
202 
204  typedef IgemmGlobalTileTraits<
206  // The layout.
208  // The pointer is float const.
209  int8_t const,
210  // The tile has size NxK in GEMM's terminology.
212  // The threads are distributed as warps x 32 (the traits may reorganize).
214  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
215  GemmConfig_::kScalarsPerLdgA>
217 
220 
223  // The pointer is int8.
224  int8_t,
225  // The tile has size KxN in GEMM's terminology.
226  Shape<GemmConfig_::kStages, GemmConfig_::OutputTile::kD / 4, GemmConfig_::OutputTile::kW * 4>,
227  // The threads are distributed as (threads / K) x K (the traits may reorganize).
228  typename GlobalTileTraits::Threads,
229  // The number of scalars per STS.
230  kScalarsPerStsA,
231  // The skew to avoid bank conflicts added in the tile W dimension.
232  16>
234 
237  // The pointer is float const.
238  int8_t const,
239  // The output tile size.
240  typename GemmConfig_::OutputTile,
241  // The number of warps.
242  typename GemmConfig_::Warps,
243  // The number of threads per warp.
244  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
245  // The shape of the FMA instruction.
246  typename GemmConfig_::InstructionShape,
247  // The number of stages.
248  GemmConfig_::kStages,
249  // The number of scalars per LDS.
250  16,
251  // The skew.
252  SharedStoreTileTraits::kSkew>
254 };
255 
257 
258 template <enum MatrixLayout::Kind kLayout_, typename GemmConfig_, typename Index_>
259 struct IgemmTileTraitsHelperB : public GemmTileTraitsHelperB<kLayout_, GemmConfig_> {};
260 
262 
263 template <typename GemmConfig_, typename Index_>
264 struct IgemmTileTraitsHelperB<MatrixLayout::kColumnMajor, GemmConfig_, Index_> {
267 
269  typedef int8_t Scalar;
271  typedef int8_t MultiplyAddScalar;
272 
274  static int const kScalarsPerStsB = 16;
275 
277  typedef IgemmGlobalTileTraits<
279  // The layout.
281  // The pointer is float const.
282  int8_t const,
283  // The tile has size NxK in GEMM's terminology.
285  // The threads are distributed as warps x 32 (the traits may reorganize).
287  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
288  GemmConfig_::kScalarsPerLdgB>
290 
293 
296  // The pointer is int8.
297  int8_t,
298  // The tile has size KxN in GEMM's terminology.
299  Shape<GemmConfig_::kStages, GemmConfig_::OutputTile::kD / 4, GemmConfig_::OutputTile::kH * 4>,
300  // The threads are distributed as (threads / K) x K (the traits may reorganize).
301  typename GlobalTileTraits::Threads,
302  // The number of scalars per STS.
303  kScalarsPerStsB,
304  // The skew to avoid bank conflicts added in the tile W dimension.
305  16>
307 
310  // The pointer is float const.
311  int8_t const,
312  // The output tile size.
313  typename GemmConfig_::OutputTile,
314  // The number of warps.
315  typename GemmConfig_::Warps,
316  // The number of threads per warp.
317  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
318  // The shape of the FMA instruction.
319  typename GemmConfig_::InstructionShape,
320  // The number of stages.
321  GemmConfig_::kStages,
322  // The number of scalars per LDS.
323  16,
324  // The skew.
325  SharedStoreTileTraits::kSkew>
327 };
328 
330 
331 template <typename GemmConfig_, typename Index_>
332 struct IgemmTileTraitsHelperB<MatrixLayout::kRowMajor, GemmConfig_, Index_>
333  : public GemmTileTraitsHelperB<MatrixLayout::kRowMajor, GemmConfig_> {
336 
338  static int const kScalarsPerStsB = 16;
339 
341  typedef IgemmGlobalTileTraits<
343  // The layout.
345  // The pointer is float const.
346  int8_t const,
347  // The tile has size KxM in GEMM's terminology.
349  // The threads are distributed as warps x 32 (the traits may reorganize).
351  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
352  GemmConfig_::kScalarsPerLdgB>
354 
357 
360  // The pointer is float.
361  int8_t,
362  // The tile has size KxM in GEMM's terminology.
363  Shape<GemmConfig_::kStages, GemmConfig_::OutputTile::kD / 4, GemmConfig_::OutputTile::kH * 4>,
364  // The threads are distributed as warps x 32 (the traits may reorganize).
365  typename GlobalTileTraits::Threads,
366  // The number of scalars per STS (STS.32 or STS.128, etc).
367  kScalarsPerStsB>
369 };
370 
372 
373 template <enum MatrixLayout::Kind kLayout_, typename Iterator_>
375 
376 template <typename Iterator_>
377 struct IgemmTransformerA<MatrixLayout::kRowMajor, Iterator_> {
379 };
380 
381 template <typename Iterator_>
382 struct IgemmTransformerA<MatrixLayout::kColumnMajor, Iterator_> {
384 };
385 
387 
388 template <enum MatrixLayout::Kind kLayout_, typename Iterator_>
390 
391 template <typename Iterator_>
392 struct IgemmTransformerB<MatrixLayout::kColumnMajor, Iterator_> {
394 };
395 
396 template <typename Iterator_>
397 struct IgemmTransformerB<MatrixLayout::kRowMajor, Iterator_> {
399 };
400 
402 
403 template <
405  MatrixLayout::Kind kLayoutA_,
407  MatrixLayout::Kind kLayoutB_,
409  typename OutputTile_,
411  typename ScalarD_,
413  typename EpilogueFunctor_,
415  typename ThreadGemmShape_ = Shape<32, 8, 8>,
417  typename Index_ = int>
425 
427  typedef typename GemmTileTraitsHelperA::GlobalLoadIterator GlobalLoadIteratorA;
429  typedef typename IgemmTransformerA<GemmTileTraitsHelperA::kLayout,
432  typedef TileStoreIterator<typename GemmTileTraitsHelperA::SharedStoreTileTraits,
433  typename GemmTileTraitsHelperA::SharedStoreTileTraits::Scalar,
443 
445  typedef typename GemmTileTraitsHelperB::GlobalLoadIterator GlobalLoadIteratorB;
446  // The default transformer for B.
447  typedef typename IgemmTransformerB<GemmTileTraitsHelperB::kLayout,
450  typedef TileStoreIterator<typename GemmTileTraitsHelperB::SharedStoreTileTraits,
451  typename GemmTileTraitsHelperB::SharedStoreTileTraits::Scalar,
461 
463  typedef TileLoadIterator<typename GemmTileTraitsHelperA::SharedLoadTileTraits,
464  typename GemmTileTraitsHelperA::SharedLoadTileTraits::Scalar,
472  typedef TileLoadIterator<typename GemmTileTraitsHelperB::SharedLoadTileTraits,
473  typename GemmTileTraitsHelperB::SharedLoadTileTraits::Scalar,
480 
485 
488 };
489 
491 
492 template <typename ScalarD_>
494  typedef float Scalar;
495 };
496 
497 template <>
498 struct IgemmEpilogueScalar<int> {
499  typedef int Scalar;
500 };
501 
503 
504 template <
506  MatrixLayout::Kind kLayoutA_,
508  MatrixLayout::Kind kLayoutB_,
510  typename OutputTile_ = Shape<32, 128, 128>,
512  typename ScalarD_ = int,
516  typename ThreadGemmShape_ = Shape<32, 8, 8>,
518  typename Index_ = int,
520  typename Helper_ = IgemmTraitsHelper<kLayoutA_,
521  kLayoutB_,
522  OutputTile_,
523  ScalarD_,
524  EpilogueFunctor_,
525  ThreadGemmShape_,
526  Index_> >
527 struct IgemmTraits : public GemmTraits<
528  // The config.
529  typename Helper_::GemmConfig,
530  // The stream to load A from global memory to shared memory.
531  typename Helper_::GlobalLoadStreamA,
532  // The stream to load B from global memory to shared memory.
533  typename Helper_::GlobalLoadStreamB,
534  // The stream to load A from shared memory.
535  typename Helper_::SharedLoadStreamA,
536  // The stream to load B from shared memory.
537  typename Helper_::SharedLoadStreamB,
538  // The epilogue.
539  typename Helper_::Epilogue,
540  // The block swizzle to reorganize the grid.
541  IdentityBlockSwizzle,
542  // The index.
543  Index_,
544  // The tool used to clear accumulators.
545  typename Helper_::ClearAccumulators> {};
546 
548 
549 } // namespace gemm
550 } // namespace cutlass
IgemmTransformerB< GemmTileTraitsHelperB::kLayout, GlobalLoadIteratorB >::Transformer GlobalTransformerB
Definition: igemm_traits.h:448
Definition: load_store.h:41
GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ > Base
The base config.
Definition: igemm_traits.h:335
Definition: convert.h:33
@@ -94,6 +94,7 @@ $(function() {
IgemmGlobalIteratorAb< GlobalTileTraits, Index_ > GlobalLoadIterator
The global load iterator.
Definition: igemm_traits.h:219
Definition: igemm_traits.h:144
Definition: igemm_epilogue.h:290
+
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
Definition: convert.h:69
IgemmGlobalTileTraits< GemmOperand::kB, MatrixLayout::kRowMajor, int8_t const, Shape< 1, GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kH >, Shape< 1, ShapeCount< typename GemmConfig_::Warps >::kCount, GemmConfig_::kWarpSize >, GemmConfig_::kScalarsPerLdgB > GlobalTileTraits
The traits class to build the iterator to load data from global memory for B^T.
Definition: igemm_traits.h:353
Definition: gemm_shared_tile.h:38
@@ -113,16 +114,14 @@ $(function() {
IgemmEpilogue< IgemmEpilogueTraits< GemmConfig, EpilogueFunctor_ > > Epilogue
The epilogue.
Definition: igemm_traits.h:487
int Scalar
Definition: igemm_traits.h:499
IgemmSwizzle< Iterator_ > Transformer
Definition: igemm_traits.h:398
-
Defines data layouts of various matrix formats usable by TensorRef and other classes.
Definition: matrix_traits.h:156
GemmSharedStoreTileAbTraits< int8_t, Shape< GemmConfig_::kStages, GemmConfig_::OutputTile::kD/4, GemmConfig_::OutputTile::kW *4 >, typename GlobalTileTraits::Threads, kScalarsPerStsA > SharedStoreTileTraits
The traits class to build the iterator to store data to shared memory for A^N.
Definition: igemm_traits.h:185
Definition: igemm_swizzle.h:38
Definition: igemm_traits.h:259
Definition: igemm_traits.h:418
-
An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
Definition: tile_iterator.h:399
+
An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
Definition: tile_iterator.h:402
IgemmTransformerA< GemmTileTraitsHelperA::kLayout, GlobalLoadIteratorA >::Transformer GlobalTransformerA
The default transformer for A.
Definition: igemm_traits.h:430
Defines iterators for efficiently loading and storing tiles to and from shared memory.
GlobalLoadStream< GemmOperand::kB, GlobalLoadIteratorB, SharedStoreIteratorB, GlobalTransformerB > GlobalLoadStreamB
The stream to load B from global memory to shared memory.
Definition: igemm_traits.h:460
-
Definition: matrix_traits.h:159
Definition: gemm_shared_stream.h:45
Definition: igemm_global_tile.h:50
Defines a type for restructuring a tile.
@@ -140,17 +139,17 @@ $(function() {
Copy< typename Iterator_::Fragment > Transformer
Definition: igemm_traits.h:378
Definition: igemm_traits.h:527
A Shape implementing Layout Concept describing the dimensions of a cube.
Definition: shape.h:64
+
Definition: matrix_traits.h:159
TileLoadIterator< typename GemmTileTraitsHelperB::SharedLoadTileTraits, typename GemmTileTraitsHelperB::SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorB
The iterator to load B from shared memory.
Definition: igemm_traits.h:476
GemmSharedStoreTileAbTraits< int8_t, Shape< GemmConfig_::kStages, GemmConfig_::OutputTile::kD/4, GemmConfig_::OutputTile::kH *4 >, typename GlobalTileTraits::Threads, kScalarsPerStsB > SharedStoreTileTraits
The traits class to build the iterator to store data to shared memory for B^N.
Definition: igemm_traits.h:368
+
Definition: matrix_traits.h:159
ReshapeThreads< VectorizedTile, Threads_ >::Threads Threads
The threads shape.
Definition: gemm_global_tile.h:88
Template performing matrix multiply-add operation within a thread.
Definition: thread_multiply_add.h:44
-
Definition: matrix_traits.h:159
IgemmConfig< OutputTile_, ScalarD_, ThreadGemmShape_ > GemmConfig
The IGEMM config.
Definition: igemm_traits.h:420
IgemmGlobalIteratorAb< GlobalTileTraits, Index_ > GlobalLoadIterator
The global load iterator.
Definition: igemm_traits.h:292
-
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
GemmGlobalIteratorAb< GlobalTileTraits, Index_ > GlobalLoadIterator
The global load iterator.
Definition: igemm_traits.h:173
GemmGlobalIteratorAb< GlobalTileTraits, Index_ > GlobalLoadIterator
The global load iterator.
Definition: igemm_traits.h:356
GemmConfig::MultiplyAdd MultiplyAdd
The multiply-add functor.
Definition: igemm_traits.h:482
@@ -172,12 +171,12 @@ $(function() {
Implements tile iterators to partition the thread block tile into 2D subtiles and efficiently load ea...
TileLoadIterator< typename GemmTileTraitsHelperA::SharedLoadTileTraits, typename GemmTileTraitsHelperA::SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorA
The iterator to load A from shared memory.
Definition: igemm_traits.h:467
GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ > Base
The base config.
Definition: igemm_traits.h:152
-
An iterator implementing Tile Store Iterator Concept for storing a tile to memory.
Definition: tile_iterator.h:836
+
An iterator implementing Tile Store Iterator Concept for storing a tile to memory.
Definition: tile_iterator.h:841
ClearAccumulators< typename MultiplyAdd::ScalarC > ClearAccumulators
The object to clear accumulators.
Definition: igemm_traits.h:484
diff --git a/docs/index.html b/docs/index.html index 6fab15e1..77eddf85 100644 --- a/docs/index.html +++ b/docs/index.html @@ -75,7 +75,7 @@ $(function() {
diff --git a/docs/iterator__access_8h.html b/docs/iterator__access_8h.html index 06fd90ad..b61c08e8 100644 --- a/docs/iterator__access_8h.html +++ b/docs/iterator__access_8h.html @@ -105,7 +105,7 @@ Functions diff --git a/docs/iterator__access_8h_source.html b/docs/iterator__access_8h_source.html index fac9ea1e..fe57d5dc 100644 --- a/docs/iterator__access_8h_source.html +++ b/docs/iterator__access_8h_source.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/kernel__launch_8h.html b/docs/kernel__launch_8h.html index 192d541b..17418e61 100644 --- a/docs/kernel__launch_8h.html +++ b/docs/kernel__launch_8h.html @@ -100,7 +100,7 @@ Namespaces diff --git a/docs/kernel__launch_8h_source.html b/docs/kernel__launch_8h_source.html index 52c7a5e0..2ce3945a 100644 --- a/docs/kernel__launch_8h_source.html +++ b/docs/kernel__launch_8h_source.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/linear__scaling_8h.html b/docs/linear__scaling_8h.html index 132c09d4..1acf5c0b 100644 --- a/docs/linear__scaling_8h.html +++ b/docs/linear__scaling_8h.html @@ -114,7 +114,7 @@ Functions diff --git a/docs/linear__scaling_8h_source.html b/docs/linear__scaling_8h_source.html index b00e5859..c43a8ac5 100644 --- a/docs/linear__scaling_8h_source.html +++ b/docs/linear__scaling_8h_source.html @@ -102,7 +102,7 @@ $(function() { diff --git a/docs/linear__scaling__device__ptr_8h.html b/docs/linear__scaling__device__ptr_8h.html index ad2add1d..eb2df717 100644 --- a/docs/linear__scaling__device__ptr_8h.html +++ b/docs/linear__scaling__device__ptr_8h.html @@ -106,7 +106,7 @@ Namespaces diff --git a/docs/linear__scaling__device__ptr_8h_source.html b/docs/linear__scaling__device__ptr_8h_source.html index 2fae588f..9b0b7681 100644 --- a/docs/linear__scaling__device__ptr_8h_source.html +++ b/docs/linear__scaling__device__ptr_8h_source.html @@ -101,7 +101,7 @@ $(function() { diff --git a/docs/load__store_8h.html b/docs/load__store_8h.html index 30a4e733..3c54c3cc 100644 --- a/docs/load__store_8h.html +++ b/docs/load__store_8h.html @@ -138,7 +138,7 @@ Namespaces diff --git a/docs/load__store_8h_source.html b/docs/load__store_8h_source.html index 9fc9c866..735dcb98 100644 --- a/docs/load__store_8h_source.html +++ b/docs/load__store_8h_source.html @@ -133,7 +133,7 @@ $(function() { diff --git a/docs/matrix__traits_8h.html b/docs/matrix__traits_8h.html index 097d5f4a..b389e5f8 100644 --- a/docs/matrix__traits_8h.html +++ b/docs/matrix__traits_8h.html @@ -74,7 +74,8 @@ $(function() {
matrix_traits.h File Reference
@@ -90,9 +91,6 @@ $(function() { Classes - - - @@ -120,11 +118,22 @@ Classes Namespaces + + + +
CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator++ CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator++ ( ) - + @@ -299,7 +299,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa diff --git a/docs/gemm_8h_source.html b/docs/gemm_8h_source.html index f946c39a..632ac1b2 100644 --- a/docs/gemm_8h_source.html +++ b/docs/gemm_8h_source.html @@ -76,13 +76,14 @@ $(function() {
gemm.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
28 #pragma once
29 
30 #if !defined(__CUDACC_RTC__)
31 #include <cuda.h>
32 #endif
33 
34 #include "cutlass/coord.h"
35 #include "cutlass/util/platform.h"
36 namespace cutlass {
37 namespace gemm {
38 
40 
42 template <typename Gemm_>
43 __global__ __launch_bounds__(Gemm_::kThreads)
44 void gemm_kernel(typename Gemm_::Params params) {
45  // Declare shared memory.
46  __shared__ typename Gemm_::SharedStorage shared_storage;
47 
48  // Construct the GEMM object.
49  Gemm_ gemm(params, shared_storage);
50  // Run GEMM.
51  gemm.multiply_add();
52 }
53 
55 
57 template <typename Gemm_>
58 __global__ /* __launch_bounds__(Gemm_::kThreads) */
59 void gemm_kernel_nolb(typename Gemm_::Params params) {
60  // Declare shared memory.
61  __shared__ typename Gemm_::SharedStorage shared_storage;
62 
63  // Construct the GEMM object.
64  Gemm_ gemm(params, shared_storage);
65  // Run GEMM.
66  gemm.multiply_add();
67 }
68 
70 
72 template <typename Gemm, bool WithLaunchBounds>
73 struct Launch {
74  Launch(typename Gemm::Params params, dim3 grid, dim3 block, cudaStream_t stream = 0) {
75  gemm_kernel<Gemm><<< grid, block, 0, stream >>>(params);
76  }
77 };
78 
80 
82 template <typename Gemm>
83 struct Launch<Gemm, false> {
84  Launch(typename Gemm::Params params, dim3 grid, dim3 block, cudaStream_t stream = 0) {
85  gemm_kernel_nolb<Gemm><<< grid, block, 0, stream >>>(params);
86  }
87 };
88 
90 
91 template <typename GemmTraits_>
92 struct Gemm {
96  typedef GemmTraits_ Traits;
98  typedef typename Traits::SharedStorage SharedStorage;
99 
101  typedef typename Traits::ScalarA ScalarA;
103  typedef typename Traits::ScalarB ScalarB;
105  typedef typename Traits::Epilogue::Scalar ScalarEpilogue;
107  typedef typename Traits::Epilogue::ScalarC ScalarC;
109  typedef typename Traits::Epilogue::ScalarD ScalarD;
111  typedef typename Traits::Index Index;
112 
114  typedef typename Traits::MultiplyAdd MultiplyAdd;
115 
117  static int const kThreads = Traits::GemmConfig::kThreads;
118 
119  // Number of warp-level multiply-accumulate steps executed by each warp.
120  static Index const kWarpGemmSteps =
121  Traits::GemmConfig::AccumulatorsPerWarp::kD / MultiplyAdd::InstructionShape::kD;
122 
123  // Make sure we have at least 2 unrolling steps or our pipeling is not going to work.
124  static_assert(kWarpGemmSteps >= 2, "The pipelining assumes at least two steps");
125 
127  typedef typename Traits::Params Params;
128 
129 //
130 // Static function members
131 //
132 
134 #if !defined(__CUDACC_RTC__)
135  static __host__ cudaError_t launch(Params const& params,
137  cudaStream_t stream = cudaStreamDefault) {
138 
139  // Launch the kernel.
141  params, params.grid, params.block, stream);
142 
143  return cudaGetLastError();
144  }
145 
147  static __host__ cudaError_t launch(CUfunction kernel,
148  Params const& params,
149  CUstream stream = CU_STREAM_LEGACY) {
150 
151  // Launch the kernel.
152  void* params_[] = {const_cast<void*>(reinterpret_cast<void const*>(&params))};
153 
154  CUresult result = cuLaunchKernel(
155  kernel,
156  params.grid.x, params.grid.y, params.grid.z,
157  params.block.x, params.block.y, params.block.z,
158  0, stream, params_, 0);
159 
160  if (result != CUDA_SUCCESS) {
161  return cudaErrorLaunchFailure;
162  }
163  return cudaSuccess;
164  }
165 
166 #endif
167 
168  //
169  // Methods
170  //
171 
173  CUTLASS_DEVICE Gemm(Params const& params_, SharedStorage& shared_storage_)
174  : params(params_), shared_storage(shared_storage_) {}
175 
177  template <bool Residue, bool LastIteration>
178  CUTLASS_DEVICE void consume_tile(typename Traits::GlobalLoadStream& global_to_shared_stream,
179  typename Traits::SharedStream& shared_load_stream,
180  typename MultiplyAdd::Accumulators& accumulators,
181  Index outer_k) {
182  // If residue portion and not calculating residue in prolog, update residue predicates now.
183  if (Residue && outer_k <= Traits::OutputTile::kD) {
184  global_to_shared_stream.residue(outer_k);
185  }
186 
187  // Load data for the next iteration of the main loop (unless it's the last iteration).
188  if (!LastIteration) {
189  global_to_shared_stream.copy();
190  }
191 
193  for (int step = 0; step < kWarpGemmSteps - 1; ++step) {
194  // Trigger the copy from shared memory for the next A/B values.
195  shared_load_stream.copy(step + 1);
196 
197  // Make sure the values are available for the current iteration to do the multiply-add.
198  shared_load_stream.commit(step);
199 
201 
202  // Do the math on the fragments of the current iteration.
203  multiply_add.multiply_add(shared_load_stream.fragment_a(step),
204  shared_load_stream.fragment_b(step),
205  accumulators,
206  accumulators);
207  }
208 
209  // Make sure the data from shared memory has been entirely consumed.
210  Traits::shared_load_fence(true);
211 
212  // Commit the data in shared memory for A/B.
213  if (!LastIteration) {
214  global_to_shared_stream.commit();
215  }
216  // Make sure the data is in shared memory.
217  Traits::shared_store_fence(true);
218 
219  if (!LastIteration) {
220  // Move to the next stage for the load (if it makes sense).
221  shared_load_stream.inc_stage();
222  // Trigger the copy from shared memory for the next loop iteration.
223  shared_load_stream.copy(0);
224  }
225  // Make sure the values are available for the current iteration to do the multiply-add.
226  shared_load_stream.commit(kWarpGemmSteps - 1);
227 
228  // Do the math on the fragments of the current iteration.
230  multiply_add.multiply_add(shared_load_stream.fragment_a(kWarpGemmSteps - 1),
231  shared_load_stream.fragment_b(kWarpGemmSteps - 1),
232  accumulators,
233  accumulators);
234  }
235 
237  CUTLASS_DEVICE void multiply_add() {
238  // Swizzle the IDs of the block (to enable better cache behavior).
239  typename Traits::BlockSwizzle block_swizzle;
240  Coord<3> threadblock_offset =
241  block_swizzle.get_threadblock_offset(make_Coord_from_shape<Traits::OutputTile>());
242 
243  // We may want to use shared memory to clear the registers.
244  typedef typename Traits::ClearAccumulators ClearAccumulators;
245 
246  // The streams to read A/B from global memory to shared memory.
247  typename Traits::GlobalLoadStream global_to_shared_stream(
248  params.global_to_shared_stream,
249  shared_storage.main_loop.global_to_shared_stream,
250  shared_storage.main_loop.threadblock_tile.reference(),
251  params.problem_size.knm(),
252  threadblock_offset);
253 
254  // update A and B pointer offset based on batch_id and batch_stride_offset
255  //global_to_shared_stream.add_pointer_offset(block_swizzle.get_batch_id(), params.batch_stride_A, params.batch_stride_B);
256  global_to_shared_stream += make_Coord(block_swizzle.get_batch_id(), 0, 0);
257 
258  // Create the accumulator clear.
259  ClearAccumulators clear;
260 
261  // Deal with residue in prolog.
262  global_to_shared_stream.move_to_residue(params.problem_size[0], Traits::OutputTile::kD);
263 
264  // Fetch the fragments for A and B from global memory.
265  global_to_shared_stream.copy();
266 
267  // Copy the elements to shared memory (after transformation if needed).
268  global_to_shared_stream.commit();
269 
270  // Make sure the data is in shared memory.
271  Traits::shared_store_fence(false);
272 
273  // Rollback to the beginning of the first tile (if residue exists).
274  global_to_shared_stream.rollback(params.problem_size[0] % Traits::OutputTile::kD);
275 
276  // The stream of data from shared memory to fragments.
277  typename Traits::SharedStream shared_load_stream(
278  params.shared_stream,
279  shared_storage.main_loop.threadblock_tile.reference());
280 
281  // Trigger the copy from shared memory for the 1st stream.
282  shared_load_stream.copy(0);
283 
284  // Allocate the accumulators.
285  typename MultiplyAdd::Accumulators accumulators;
286 
287  // Clear the accumulators.
288  clear.clear(accumulators);
289 
290  // Initial index
291  Index outer_k = params.problem_size[0] - Traits::OutputTile::kD;
292 
293  // Check if we are computing residue in prolog or not.
294  if (Traits::GemmConfig::kResidueInProlog) {
295 
296  // Execute all mainloop iterations but the last one.
297 
299  for (; outer_k > 0; outer_k -= Traits::OutputTile::kD) {
300  consume_tile<false, false>(
301  global_to_shared_stream, shared_load_stream, accumulators, outer_k);
302 
303  }
304 
305  // Don't load data for the last "residue" portion since we've already computed the residue.
307  for (; outer_k > -Traits::OutputTile::kD; outer_k -= Traits::OutputTile::kD) {
308  consume_tile<false, true>(
309  global_to_shared_stream, shared_load_stream, accumulators, outer_k);
310 
311  }
312  } else {
313  // When kResidueSeparate = true, execute all mainloop iterations but the last two without any
314  // consideration for K-residue or predicate updates. This improves the steady state of some
315  // kernels.
316  if (Traits::GemmConfig::kResidueSeparate) {
317 
319  for (; outer_k > Traits::OutputTile::kD; outer_k -= Traits::OutputTile::kD) {
320  consume_tile<false, false>(
321  global_to_shared_stream, shared_load_stream, accumulators, outer_k);
322 
323  }
324  }
325 
326  // Execute remaining tiles with K-residue predicate updates enabled.
327 
329  for (; outer_k > -Traits::OutputTile::kD; outer_k -= Traits::OutputTile::kD) {
330  consume_tile<true, false>(
331  global_to_shared_stream, shared_load_stream, accumulators, outer_k);
332 
333  }
334  }
335 
336  // Epilogue.
337  typedef typename Traits::Epilogue Epilogue;
338  Epilogue epilogue(params.epilogue, shared_storage.epilogue, params.problem_size.knm());
339  epilogue.epilogue(accumulators, threadblock_offset, block_swizzle.get_batch_id());
340  }
341 
342  //
343  // Data members
344  //
345 
347  Params const& params;
350 };
351 
353 
354 } // namespace gemm
355 } // namespace cutlass
Definition: convert.h:33
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
28 #pragma once
29 
30 #if !defined(__CUDACC_RTC__)
31 #include <cuda.h>
32 #endif
33 
34 #include "cutlass/coord.h"
35 #include "cutlass/util/platform.h"
36 namespace cutlass {
37 namespace gemm {
38 
40 
42 template <typename Gemm_>
43 __global__ __launch_bounds__(Gemm_::kThreads)
44 void gemm_kernel(typename Gemm_::Params params) {
45  // Declare shared memory.
46  __shared__ typename Gemm_::SharedStorage shared_storage;
47 
48  // Construct the GEMM object.
49  Gemm_ gemm(params, shared_storage);
50  // Run GEMM.
51  gemm.multiply_add();
52 }
53 
55 
57 template <typename Gemm_>
58 __global__ /* __launch_bounds__(Gemm_::kThreads) */
59 void gemm_kernel_nolb(typename Gemm_::Params params) {
60  // Declare shared memory.
61  __shared__ typename Gemm_::SharedStorage shared_storage;
62 
63  // Construct the GEMM object.
64  Gemm_ gemm(params, shared_storage);
65  // Run GEMM.
66  gemm.multiply_add();
67 }
68 
70 
72 template <typename Gemm, bool WithLaunchBounds>
73 struct Launch {
74  Launch(typename Gemm::Params params, dim3 grid, dim3 block, cudaStream_t stream = 0) {
75  gemm_kernel<Gemm><<< grid, block, 0, stream >>>(params);
76  }
77 };
78 
80 
82 template <typename Gemm>
83 struct Launch<Gemm, false> {
84  Launch(typename Gemm::Params params, dim3 grid, dim3 block, cudaStream_t stream = 0) {
85  gemm_kernel_nolb<Gemm><<< grid, block, 0, stream >>>(params);
86  }
87 };
88 
90 
91 template <typename GemmTraits_>
92 struct Gemm {
96  typedef GemmTraits_ Traits;
98  typedef typename Traits::SharedStorage SharedStorage;
99 
101  typedef typename Traits::ScalarA ScalarA;
103  typedef typename Traits::ScalarB ScalarB;
105  typedef typename Traits::Epilogue::Scalar ScalarEpilogue;
107  typedef typename Traits::Epilogue::ScalarC ScalarC;
109  typedef typename Traits::Epilogue::ScalarD ScalarD;
111  typedef typename Traits::Index Index;
112 
114  typedef typename Traits::MultiplyAdd MultiplyAdd;
115 
117  static int const kThreads = Traits::GemmConfig::kThreads;
118 
119  // Number of warp-level multiply-accumulate steps executed by each warp.
120  static Index const kWarpGemmSteps =
121  Traits::GemmConfig::AccumulatorsPerWarp::kD / MultiplyAdd::InstructionShape::kD;
122 
123  // Make sure we have at least 2 unrolling steps or our pipeling is not going to work.
124  static_assert(kWarpGemmSteps >= 2, "The pipelining assumes at least two steps");
125 
127  typedef typename Traits::Params Params;
128 
129 //
130 // Static function members
131 //
132 
134 #if !defined(__CUDACC_RTC__)
135  static __host__ cudaError_t launch(Params const& params,
137  cudaStream_t stream = cudaStreamDefault) {
138 
139  // Launch the kernel.
141  params, params.grid, params.block, stream);
142 
143  return cudaGetLastError();
144  }
145 
147  static __host__ cudaError_t launch(CUfunction kernel,
148  Params const& params,
149  CUstream stream = CU_STREAM_LEGACY) {
150 
151  // Launch the kernel.
152  void* params_[] = {const_cast<void*>(reinterpret_cast<void const*>(&params))};
153 
154  CUresult result = cuLaunchKernel(
155  kernel,
156  params.grid.x, params.grid.y, params.grid.z,
157  params.block.x, params.block.y, params.block.z,
158  0, stream, params_, 0);
159 
160  if (result != CUDA_SUCCESS) {
161  return cudaErrorLaunchFailure;
162  }
163  return cudaSuccess;
164  }
165 
166 #endif
167 
168  //
169  // Methods
170  //
171 
173  CUTLASS_DEVICE Gemm(Params const& params_, SharedStorage& shared_storage_)
174  : params(params_), shared_storage(shared_storage_) {}
175 
177  template <bool Residue, bool LastIteration>
178  CUTLASS_DEVICE void consume_tile(typename Traits::GlobalLoadStream& global_to_shared_stream,
179  typename Traits::SharedStream& shared_load_stream,
180  typename MultiplyAdd::Accumulators& accumulators,
181  Index outer_k) {
182  // If residue portion and not calculating residue in prolog, update residue predicates now.
183  if (Residue && outer_k <= Traits::OutputTile::kD) {
184  global_to_shared_stream.residue(outer_k);
185  }
186 
187  // Load data for the next iteration of the main loop (unless it's the last iteration).
188  if (!LastIteration) {
189  global_to_shared_stream.copy();
190  }
191 
193  for (int step = 0; step < kWarpGemmSteps - 1; ++step) {
194  // Trigger the copy from shared memory for the next A/B values.
195  shared_load_stream.copy(step + 1);
196 
197  // Make sure the values are available for the current iteration to do the multiply-add.
198  shared_load_stream.commit(step);
199 
201 
202  // Do the math on the fragments of the current iteration.
203  multiply_add.multiply_add(shared_load_stream.fragment_a(step),
204  shared_load_stream.fragment_b(step),
205  accumulators,
206  accumulators);
207  }
208 
209  // Make sure the data from shared memory has been entirely consumed.
210  Traits::shared_load_fence(true);
211 
212  // Commit the data in shared memory for A/B.
213  if (!LastIteration) {
214  global_to_shared_stream.commit();
215  }
216  // Make sure the data is in shared memory.
217  Traits::shared_store_fence(true);
218 
219  if (!LastIteration) {
220  // Move to the next stage for the load (if it makes sense).
221  shared_load_stream.inc_stage();
222  // Trigger the copy from shared memory for the next loop iteration.
223  shared_load_stream.copy(0);
224  }
225  // Make sure the values are available for the current iteration to do the multiply-add.
226  shared_load_stream.commit(kWarpGemmSteps - 1);
227 
228  // Do the math on the fragments of the current iteration.
230  multiply_add.multiply_add(shared_load_stream.fragment_a(kWarpGemmSteps - 1),
231  shared_load_stream.fragment_b(kWarpGemmSteps - 1),
232  accumulators,
233  accumulators);
234  }
235 
237  CUTLASS_DEVICE void multiply_add() {
238  // Swizzle the IDs of the block (to enable better cache behavior).
239  typename Traits::BlockSwizzle block_swizzle;
240  Coord<3> threadblock_offset =
241  block_swizzle.get_threadblock_offset(make_Coord_from_shape<Traits::OutputTile>());
242 
243  // We may want to use shared memory to clear the registers.
244  typedef typename Traits::ClearAccumulators ClearAccumulators;
245 
246  // Get the bounds for each thread, it maybe different than problem_size
247  Coord<3> bounds = block_swizzle.get_threadblock_bounds(params.problem_size,
248  params.partitionK_range);
249 
250  // The streams to read A/B from global memory to shared memory.
251  typename Traits::GlobalLoadStream global_to_shared_stream(
252  params.global_to_shared_stream,
253  shared_storage.main_loop.global_to_shared_stream,
254  shared_storage.main_loop.threadblock_tile.reference(),
255  bounds,
256  threadblock_offset);
257 
258  // update A and B pointer offset based on batch_id and batch_stride_offset
259  global_to_shared_stream.add_batch_offset(block_swizzle.get_batch_id());
260 
261  // Create the accumulator clear.
262  ClearAccumulators clear;
263 
264  // Deal with residue in prolog.
265  // global_to_shared_stream.move_to_residue(params.problem_size[0], Traits::OutputTile::kD);
266  global_to_shared_stream.move_to_residue(bounds[0], Traits::OutputTile::kD);
267 
268  // Fetch the fragments for A and B from global memory.
269  global_to_shared_stream.copy();
270 
271  // Copy the elements to shared memory (after transformation if needed).
272  global_to_shared_stream.commit();
273 
274  // Make sure the data is in shared memory.
275  Traits::shared_store_fence(false);
276 
277  // Rollback to the beginning of the first tile (if residue exists).
278  // global_to_shared_stream.rollback(params.problem_size[0] % Traits::OutputTile::kD);
279  global_to_shared_stream.rollback(bounds[0] % Traits::OutputTile::kD);
280 
281  // The stream of data from shared memory to fragments.
282  typename Traits::SharedStream shared_load_stream(
283  params.shared_stream,
284  shared_storage.main_loop.threadblock_tile.reference());
285 
286  // Trigger the copy from shared memory for the 1st stream.
287  shared_load_stream.copy(0);
288 
289  // Allocate the accumulators.
290  typename MultiplyAdd::Accumulators accumulators;
291 
292  // Clear the accumulators.
293  clear.clear(accumulators);
294 
295  // Initial index
296  // Index outer_k = params.problem_size[0] - Traits::OutputTile::kD;
297  // problem_size[0] might be bigger than bounds[0]
298  Index outer_k = bounds[0] - Traits::OutputTile::kD;
299  // Check if we are computing residue in prolog or not.
300  if (Traits::GemmConfig::kResidueInProlog) {
301  // Execute all mainloop iterations but the last one.
302 
304  for (; outer_k > 0; outer_k -= Traits::OutputTile::kD) {
305  consume_tile<false, false>(
306  global_to_shared_stream, shared_load_stream, accumulators, outer_k);
307  }
308 
309  // Don't load data for the last "residue" portion since we've already computed the residue.
311  for (; outer_k > -Traits::OutputTile::kD; outer_k -= Traits::OutputTile::kD) {
312  consume_tile<false, true>(
313  global_to_shared_stream, shared_load_stream, accumulators, outer_k);
314  }
315  } else {
316  // When kResidueSeparate = true, execute all mainloop iterations but the last two without any
317  // consideration for K-residue or predicate updates. This improves the steady state of some
318  // kernels.
319  if (Traits::GemmConfig::kResidueSeparate) {
320 
322  for (; outer_k > Traits::OutputTile::kD; outer_k -= Traits::OutputTile::kD) {
323  consume_tile<false, false>(
324  global_to_shared_stream, shared_load_stream, accumulators, outer_k);
325  }
326  }
327 
328  // Execute remaining tiles with K-residue predicate updates enabled.
330  for (; outer_k > -Traits::OutputTile::kD; outer_k -= Traits::OutputTile::kD) {
331  consume_tile<true, false>(
332  global_to_shared_stream, shared_load_stream, accumulators, outer_k);
333  }
334  }
335 
336  // Epilogue.
337  typedef typename Traits::Epilogue Epilogue;
338  Epilogue epilogue(params.epilogue, shared_storage.epilogue, params.problem_size.knm());
339  epilogue.epilogue(accumulators, threadblock_offset, block_swizzle.get_batch_id());
340  }
341 
342  //
343  // Data members
344  //
345 
347  Params const& params;
350 };
351 
353 
354 } // namespace gemm
355 } // namespace cutlass
#define CUTLASS_PRAGMA_UNROLL
Definition: performance_tuning.h:35
+
Definition: convert.h:33
SharedStorage & shared_storage
The shared storage.
Definition: gemm.h:349
Traits::Epilogue::ScalarD ScalarD
The scalar for D.
Definition: gemm.h:109
Traits::SharedStorage SharedStorage
The shared storage.
Definition: gemm.h:98
A Coord is a coordinate of arbitrary rank into a tensor or matrix.
Launch(typename Gemm::Params params, dim3 grid, dim3 block, cudaStream_t stream=0)
Definition: gemm.h:74
-
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:318
+
#define CUTLASS_GEMM_LOOP
Definition: performance_tuning.h:39
Params const & params
The params.
Definition: gemm.h:347
Traits::Epilogue::ScalarC ScalarC
The scalar for C.
Definition: gemm.h:107
C++ features that may be otherwise unimplemented for CUDA device functions.
@@ -94,7 +95,6 @@ $(function() {
Traits::ScalarB ScalarB
The scalar for B.
Definition: gemm.h:103
Definition: clear_accumulators.h:38
Definition: gemm.h:92
-
#define CUTLASS_PRAGMA_UNROLL
Definition: cutlass.h:62
Traits::MultiplyAdd MultiplyAdd
Define the mainloop iteration size.
Definition: gemm.h:114
static __host__ cudaError_t launch(CUfunction kernel, Params const &params, CUstream stream=CU_STREAM_LEGACY)
Launch the kernel.
Definition: gemm.h:147
static Index const kWarpGemmSteps
Definition: gemm.h:120
@@ -105,8 +105,8 @@ $(function() {
#define static_assert(__e, __m)
Definition: platform.h:153
Traits::ScalarA ScalarA
The scalar for A.
Definition: gemm.h:101
+
CUTLASS_DEVICE void clear(Fragment_ &fragment)
Clear the fragment.
Definition: clear_accumulators.h:50
__global__ void gemm_kernel_nolb(typename Gemm_::Params params)
GEMM kernel without launch bounds specified.
Definition: gemm.h:59
-
#define CUTLASS_GEMM_LOOP
Definition: cutlass.h:66
static int const kThreads
The number of threads.
Definition: gemm.h:117
Traits::Params Params
Use the params object defined in traits.
Definition: gemm.h:124
static __host__ cudaError_t launch(Params const &params, cudaStream_t stream=cudaStreamDefault)
Support for NVRTC.
Definition: gemm.h:136
@@ -114,7 +114,7 @@ $(function() {
diff --git a/docs/gemm__config_8h.html b/docs/gemm__config_8h.html index 62f36540..e1a66e25 100644 --- a/docs/gemm__config_8h.html +++ b/docs/gemm__config_8h.html @@ -101,7 +101,7 @@ Namespaces
diff --git a/docs/gemm__config_8h_source.html b/docs/gemm__config_8h_source.html index 847e6f7b..0517a655 100644 --- a/docs/gemm__config_8h_source.html +++ b/docs/gemm__config_8h_source.html @@ -115,7 +115,7 @@ $(function() { diff --git a/docs/gemm__coord_8h.html b/docs/gemm__coord_8h.html index a464c733..c1026f3e 100644 --- a/docs/gemm__coord_8h.html +++ b/docs/gemm__coord_8h.html @@ -103,7 +103,7 @@ Namespaces diff --git a/docs/gemm__coord_8h_source.html b/docs/gemm__coord_8h_source.html index 4930501b..f5b7c867 100644 --- a/docs/gemm__coord_8h_source.html +++ b/docs/gemm__coord_8h_source.html @@ -76,43 +76,44 @@ $(function() {
gemm_coord.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
30 #pragma once
31 
32 #include "cutlass/cutlass.h"
33 #include "cutlass/coord.h"
34 #include "cutlass/util/platform.h"
35 
36 namespace cutlass {
37 namespace gemm {
38 
40 
43 struct GemmCoord : public Coord<4, int> {
44 
46  typedef int Index;
47 
50 
52  static int const kK = 0;
53 
55  static int const kN = 1;
56 
58  static int const kM = 2;
59 
61  static int const kBatch = 3;
62 
63  //
64  // Methods
65  //
66 
69  GemmCoord() { }
70 
73  GemmCoord(Coord<3, Index> const &coord, Index _batch = 0): Base(make_Coord(coord[0], coord[1], coord[2], _batch)) { }
74 
77  GemmCoord(Coord<4, Index> const &coord): Base(coord) { }
78 
81  GemmCoord(Index coord[4]): Base(coord) { }
82 
86 
89  Index const & m() const { return this->at(kM); }
90 
93  Index & m() { return this->at(kM); }
94 
97  Index const & n() const { return this->at(kN); }
98 
101  Index & n() { return this->at(kN); }
102 
105  Index const & k() const { return this->at(kK); }
106 
109  Index & k() { return this->at(kK); }
110 
113  Index const & batch() const { return this->at(kBatch); }
114 
117  Index & batch() { return this->at(kBatch); }
118 
121  Coord<3> knm() const {
122  return make_Coord(k(), n(), m());
123  }
124 
127  Coord<2> nm() const {
128  return make_Coord(n(), m());
129  }
130 
133  Coord<2> km() const {
134  return make_Coord(k(), m());
135  }
136 
139  Coord<2> kn() const {
140  return make_Coord(k(), n());
141  }
142 
143  //
144  // Coord operators
145  //
146 
149  GemmCoord operator+(Base const& b) const {
150  return GemmCoord(Base::operator+(b));
151  }
152 
155  GemmCoord operator-(Base const& b) const {
156  return GemmCoord(Base::operator-(b));
157  }
158 
161  GemmCoord operator*(Base const& b) const {
162  return GemmCoord(Base::operator*(b));
163  }
164 
167  GemmCoord operator/(Base const& b) const {
168  return GemmCoord(Base::operator/(b));
169  }
170 
173  GemmCoord& operator+=(Base const& b) {
174  Base::operator+=(b);
175  return *this;
176  }
177 
180  GemmCoord& operator-=(Base const& b) {
181  Base::operator-=(b);
182  return *this;
183  }
184 
187  GemmCoord& operator*=(Base const& b) {
188  Base::operator*=(b);
189  return *this;
190  }
191 
194  GemmCoord& operator/=(Base const& b) {
195  Base::operator/=(b);
196  return *this;
197  }
198 };
199 
201 
202 } // namespace gemm
203 } // namespace cutlass
Definition: convert.h:33
-
CUTLASS_HOST_DEVICE GemmCoord & operator/=(Base const &b)
In-place division.
Definition: gemm_coord.h:194
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
30 #pragma once
31 
32 #include "cutlass/cutlass.h"
33 #include "cutlass/coord.h"
34 #include "cutlass/util/platform.h"
35 
36 namespace cutlass {
37 namespace gemm {
38 
40 
43 struct GemmCoord : public Coord<4, int> {
44 
46  typedef int Index;
47 
50 
52  static int const kK = 0;
53 
55  static int const kN = 1;
56 
58  static int const kM = 2;
59 
61  static int const kBatch = 3;
62 
63  //
64  // Methods
65  //
66 
69  GemmCoord() { }
70 
73  GemmCoord(Coord<3, Index> const &coord, Index _batch = 0): Base(make_Coord(coord[0], coord[1], coord[2], _batch)) { }
74 
77  GemmCoord(Coord<4, Index> const &coord): Base(coord) { }
78 
81  GemmCoord(Index coord[4]): Base(coord) { }
82 
86 
89  Index const & m() const { return this->at(kM); }
90 
93  Index & m() { return this->at(kM); }
94 
97  Index const & n() const { return this->at(kN); }
98 
101  Index & n() { return this->at(kN); }
102 
105  Index const & k() const { return this->at(kK); }
106 
109  Index & k() { return this->at(kK); }
110 
113  Index const & batch() const { return this->at(kBatch); }
114 
117  Index & batch() { return this->at(kBatch); }
118 
121  Coord<3> knm() const {
122  return make_Coord(k(), n(), m());
123  }
124 
127  Coord<2> nm() const {
128  return make_Coord(n(), m());
129  }
130 
133  Coord<2> mn() const {
134  return make_Coord(m(), n());
135  }
136 
139  Coord<2> km() const {
140  return make_Coord(k(), m());
141  }
142 
145  Coord<2> kn() const {
146  return make_Coord(k(), n());
147  }
148 
149  //
150  // Coord operators
151  //
152 
155  GemmCoord operator+(Base const& b) const {
156  return GemmCoord(Base::operator+(b));
157  }
158 
161  GemmCoord operator-(Base const& b) const {
162  return GemmCoord(Base::operator-(b));
163  }
164 
167  GemmCoord operator*(Base const& b) const {
168  return GemmCoord(Base::operator*(b));
169  }
170 
173  GemmCoord operator/(Base const& b) const {
174  return GemmCoord(Base::operator/(b));
175  }
176 
179  GemmCoord& operator+=(Base const& b) {
180  Base::operator+=(b);
181  return *this;
182  }
183 
186  GemmCoord& operator-=(Base const& b) {
187  Base::operator-=(b);
188  return *this;
189  }
190 
193  GemmCoord& operator*=(Base const& b) {
194  Base::operator*=(b);
195  return *this;
196  }
197 
200  GemmCoord& operator/=(Base const& b) {
201  Base::operator/=(b);
202  return *this;
203  }
204 };
205 
207 
208 } // namespace gemm
209 } // namespace cutlass
Definition: convert.h:33
+
CUTLASS_HOST_DEVICE GemmCoord & operator/=(Base const &b)
In-place division.
Definition: gemm_coord.h:200
int Index
Integer-valued index.
Definition: gemm_coord.h:46
CUTLASS_HOST_DEVICE Coord< 3 > knm() const
Obtains a Coord<3> from GemmCoord.
Definition: gemm_coord.h:121
-
CUTLASS_HOST_DEVICE Coord< 2 > km() const
Obtains a Coord<2> from GemmCoord.
Definition: gemm_coord.h:133
+
CUTLASS_HOST_DEVICE Coord< 2 > km() const
Obtains a Coord<2> from GemmCoord.
Definition: gemm_coord.h:139
Coord< 4, Index > Base
Base type is a Coord of rank=4.
Definition: gemm_coord.h:49
A Coord is a coordinate of arbitrary rank into a tensor or matrix.
CUTLASS_HOST_DEVICE Index const & n() const
Returns the GEMM N coordinate.
Definition: gemm_coord.h:97
-
CUTLASS_HOST_DEVICE GemmCoord operator/(Base const &b) const
Element-wise division.
Definition: gemm_coord.h:167
-
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:318
+
CUTLASS_HOST_DEVICE GemmCoord operator/(Base const &b) const
Element-wise division.
Definition: gemm_coord.h:173
+
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:368
CUTLASS_HOST_DEVICE Index & m()
Returns reference to the GEMM M coordinate.
Definition: gemm_coord.h:93
Definition: gemm_coord.h:43
static int const kBatch
Batch dimension - for generalizing to larger problems.
Definition: gemm_coord.h:61
-
CUTLASS_HOST_DEVICE GemmCoord operator-(Base const &b) const
Element-wise subtraction.
Definition: gemm_coord.h:155
+
CUTLASS_HOST_DEVICE GemmCoord operator-(Base const &b) const
Element-wise subtraction.
Definition: gemm_coord.h:161
CUTLASS_HOST_DEVICE Coord & operator*=(Coord const &b)
In-place multiplication.
Definition: coord.h:197
CUTLASS_HOST_DEVICE GemmCoord(Coord< 4, Index > const &coord)
Constructs from Coord<4>
Definition: gemm_coord.h:77
C++ features that may be otherwise unimplemented for CUDA device functions.
CUTLASS_HOST_DEVICE Index & k()
Returns reference to the GEMM K coordinate.
Definition: gemm_coord.h:109
CUTLASS_HOST_DEVICE GemmCoord(Coord< 3, Index > const &coord, Index _batch=0)
Constructs from Coord<3> and a batch.
Definition: gemm_coord.h:73
-
CUTLASS_HOST_DEVICE GemmCoord operator+(Base const &b) const
Element-wise addition.
Definition: gemm_coord.h:149
+
CUTLASS_HOST_DEVICE GemmCoord operator+(Base const &b) const
Element-wise addition.
Definition: gemm_coord.h:155
CUTLASS_HOST_DEVICE Coord & operator-=(Coord const &b)
In-place subtraction.
Definition: coord.h:188
static int const kK
GEMM K dimension - inner dimension of the GEMM problem.
Definition: gemm_coord.h:52
static int const kN
GEMM N dimension - columns of the output C matrix.
Definition: gemm_coord.h:55
CUTLASS_HOST_DEVICE Coord & operator+=(Coord const &b)
In-place addition.
Definition: coord.h:179
#define CUTLASS_HOST_DEVICE
Definition: cutlass.h:46
-
CUTLASS_HOST_DEVICE Coord< 2 > kn() const
Obtains a Coord<2> from GemmCoord.
Definition: gemm_coord.h:139
+
CUTLASS_HOST_DEVICE Coord< 2 > kn() const
Obtains a Coord<2> from GemmCoord.
Definition: gemm_coord.h:145
CUTLASS_HOST_DEVICE Index & at()
Gets the index of a given Coord element.
Definition: coord.h:240
+
CUTLASS_HOST_DEVICE Coord< 2 > mn() const
Obtains a Coord<2> from GemmCoord.
Definition: gemm_coord.h:133
CUTLASS_HOST_DEVICE Coord & operator/=(Coord const &b)
In-place division.
Definition: coord.h:206
-
CUTLASS_HOST_DEVICE GemmCoord & operator+=(Base const &b)
In-place addition.
Definition: gemm_coord.h:173
+
CUTLASS_HOST_DEVICE GemmCoord & operator+=(Base const &b)
In-place addition.
Definition: gemm_coord.h:179
static int const kM
GEMM M dimension - rows of the output C matrix.
Definition: gemm_coord.h:58
Statically-sized array specifying Coords within a tensor.
Definition: coord.h:49
CUTLASS_HOST_DEVICE GemmCoord()
Default ctor.
Definition: gemm_coord.h:69
-
CUTLASS_HOST_DEVICE GemmCoord & operator-=(Base const &b)
In-place subtraction.
Definition: gemm_coord.h:180
+
CUTLASS_HOST_DEVICE GemmCoord & operator-=(Base const &b)
In-place subtraction.
Definition: gemm_coord.h:186
CUTLASS_HOST_DEVICE Index const & m() const
Returns the GEMM M coordinate.
Definition: gemm_coord.h:89
-
CUTLASS_HOST_DEVICE GemmCoord operator*(Base const &b) const
Element-wise multiplication.
Definition: gemm_coord.h:161
+
CUTLASS_HOST_DEVICE GemmCoord operator*(Base const &b) const
Element-wise multiplication.
Definition: gemm_coord.h:167
CUTLASS_HOST_DEVICE Index const & k() const
Returns the GEMM K coordinate.
Definition: gemm_coord.h:105
-
CUTLASS_HOST_DEVICE GemmCoord & operator*=(Base const &b)
In-place multiplication.
Definition: gemm_coord.h:187
+
CUTLASS_HOST_DEVICE GemmCoord & operator*=(Base const &b)
In-place multiplication.
Definition: gemm_coord.h:193
CUTLASS_HOST_DEVICE Index const & batch() const
Returns the GEMM batch coordinate.
Definition: gemm_coord.h:113
Basic include for CUTLASS macros.
CUTLASS_HOST_DEVICE Index & n()
Returns reference to the GEMM N coordinate.
Definition: gemm_coord.h:101
@@ -123,7 +124,7 @@ $(function() {
diff --git a/docs/gemm__desc_8h.html b/docs/gemm__desc_8h.html index deb246cb..11e88830 100644 --- a/docs/gemm__desc_8h.html +++ b/docs/gemm__desc_8h.html @@ -103,7 +103,7 @@ Namespaces
diff --git a/docs/gemm__desc_8h_source.html b/docs/gemm__desc_8h_source.html index 76f0d072..0cc23f43 100644 --- a/docs/gemm__desc_8h_source.html +++ b/docs/gemm__desc_8h_source.html @@ -113,7 +113,7 @@ $(function() { diff --git a/docs/gemm__epilogue_8h.html b/docs/gemm__epilogue_8h.html index 7c4213e4..5070a158 100644 --- a/docs/gemm__epilogue_8h.html +++ b/docs/gemm__epilogue_8h.html @@ -103,7 +103,7 @@ Namespaces diff --git a/docs/gemm__epilogue_8h_source.html b/docs/gemm__epilogue_8h_source.html index 87add8a9..a9aaffcb 100644 --- a/docs/gemm__epilogue_8h_source.html +++ b/docs/gemm__epilogue_8h_source.html @@ -76,26 +76,26 @@ $(function() {
gemm_epilogue.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
30 #pragma once
31 
32 #include "cutlass/convert.h"
33 #include "cutlass/coord.h"
34 #include "cutlass/fragment.h"
35 
36 namespace cutlass {
37 namespace gemm {
38 
40 
41 template <typename GemmEpilogueTraits_>
42 struct GemmEpilogue {
44  typedef GemmEpilogueTraits_ Traits;
46  typedef typename Traits::Params Params;
48  typedef typename Traits::SharedStorage SharedStorage;
49 
51  typedef typename Traits::OutputTile OutputTile;
53  typedef typename Traits::Iterations Iterations;
55  typedef typename Traits::Accumulators Accumulators;
57  typedef typename Traits::Scalar Scalar;
59  typedef typename Traits::Functor Functor;
60 
62  static_assert(Iterations::kD == 1 && Iterations::kC == 1, "Unsupported 3D/4D shapes");
63 
65  typedef typename Traits::GlobalLoadIteratorC GlobalLoadIteratorC;
67  typedef typename Traits::GlobalTransformerC GlobalTransformerC;
69  typedef typename Traits::GlobalTransformerD GlobalTransformerD;
71  typedef typename Traits::GlobalStoreIteratorD GlobalStoreIteratorD;
73  typedef typename Traits::SharedStoreIteratorD SharedStoreIteratorD;
75  typedef typename Traits::SharedStoreTransformerD SharedStoreTransformerD;
77  typedef typename Traits::SharedLoadStreamD SharedLoadStreamD;
78 
80  typedef typename Traits::Index Index;
81 
83  typedef typename GlobalLoadIteratorC::Scalar ScalarC;
85  typedef typename GlobalStoreIteratorD::Scalar ScalarD;
86 
88  CUTLASS_DEVICE GemmEpilogue(Params const& params_,
89  SharedStorage& shared_storage_,
90  Coord<3> const& _problem_size)
91  : params(params_), shared_storage(shared_storage_), problem_size(_problem_size), functor(params_.functor) {}
92 
94  CUTLASS_DEVICE void epilogue(Accumulators& accumulators,
95  Coord<3> const& block = make_Coord(0, 0, 0),
96  int batch_id = 0) {
97  if (functor.source_required()) {
98  epilogue_with_or_without_beta<true>(accumulators, block, batch_id);
99  } else {
100  epilogue_with_or_without_beta<false>(accumulators, block, batch_id);
101  }
102  }
103 
104  template <bool kSourceRequired>
105  CUTLASS_DEVICE void epilogue_with_or_without_beta(Accumulators& accumulators,
106  Coord<3> const& block,
107  int batch_id) {
108  // The C fragment.
109  typename GlobalLoadIteratorC::Fragment fragment_c;
110  // The transformed C fragment.
111  typename GlobalTransformerC::OutputFragment transformed_c;
113  for (int h = 0; h < Iterations::kH; ++h) {
114  // Compute pointer and predicate offsets for C and D global iterators.
115  int const pointer_offset =
116  ((params.iterator_d.inc_h * (GlobalStoreIteratorD::Iterations::kH - 1) +
117  params.iterator_d.inc_advance) *
118  Iterations::kW +
119  params.stride_h) *
120  h;
121 
122  int const predicate_offset =
123  ((params.iterator_d.predicate_inc_h * (GlobalStoreIteratorD::Iterations::kH - 1) +
124  params.iterator_d.predicate_inc_advance) *
125  Iterations::kW +
126  Traits::Delta::kH) *
127  h;
128 
129  // The iterator to load the elements of the C matrix.
130  GlobalLoadIteratorC global_load_iterator(
131  params.iterator_c, problem_size, block, pointer_offset, predicate_offset);
132 
133  // update C pointer offset based on batch_id and batch_stride_offset
134  //global_load_iterator.add_pointer_offset(batch_id * params.batch_stride_offset_c);
135  global_load_iterator += make_Coord(batch_id, 0, 0);
136 
137  // The transformer for C.
138  GlobalTransformerC transformer_c;
139  // The transformer for D.
140  GlobalTransformerD transformer_d;
141  // The iterator to store into the D matrix.
142  GlobalStoreIteratorD global_store_iterator(
143  params.iterator_d, problem_size, block, pointer_offset, predicate_offset);
144 
145  // update D pointer offset based on batch_id and batch_stride_offset
146  //global_store_iterator.add_pointer_offset(batch_id * params.batch_stride_offset_d);
147  global_store_iterator += make_Coord(batch_id, 0, 0);
148 
149  SharedStoreTransformerD shared_store_transformer;
150  typename SharedStoreTransformerD::OutputFragment shared_store_transformed_d;
151 
152  SharedStoreIteratorD shared_store_iterator(
153  params.shared_store_iterator_d,
154  reinterpret_cast<typename SharedStoreIteratorD::Scalar*>(shared_storage.data()));
155 
156  SharedLoadStreamD shared_load_stream(
157  params.shared_load_stream_d,
158  reinterpret_cast<typename SharedLoadStreamD::Scalar*>(shared_storage.data()));
159 
161  for (int w = 0; w < Iterations::kW; ++w) {
162  // Load the C matrix into fragment.
163  if (kSourceRequired) {
164  global_load_iterator.load_post_increment(fragment_c);
165  }
166 
167  // Make sure we can write to shared memory.
169 
170  // Copy the accumulators to shared memory.
171  int const offset = (h * Iterations::kW + w) * SharedStoreIteratorD::Fragment::kElements;
172 
173  shared_store_transformer.transform(accumulators, offset, shared_store_transformed_d);
174  shared_store_iterator.store_post_increment(shared_store_transformed_d);
175 
176  // Make sure the data is in shared memory.
178 
179  // Copy the accumulators back to registers from shared memory.
180  shared_load_stream.copy();
181  shared_load_stream.commit();
182 
183  // Do the math.
184  typename GlobalTransformerD::InputFragment fragment_d;
185 
186  if (kSourceRequired) {
187  // Transform C fragment.
188  transformer_c.transform(fragment_c, transformed_c);
189  // Do the math.
190  functor.evaluate(shared_load_stream.fragment(), transformed_c, fragment_d);
191  } else {
192  functor.evaluate(shared_load_stream.fragment(), fragment_d);
193  }
194 
195  // Transform D fragment.
196  typename GlobalTransformerD::OutputFragment global_transformed_d;
197  transformer_d.transform(fragment_d, global_transformed_d);
198 
199  // Copy the results to global memory.
200  global_store_iterator.store_post_increment(global_transformed_d);
201  }
202  }
203  }
204 
206  CUTLASS_DEVICE void shared_load_fence() { __syncthreads(); }
207 
209  CUTLASS_DEVICE void shared_store_fence() { __syncthreads(); }
210 
212  Params const& params;
217  // The functor.
219 };
220 
222 
223 } // namespace gemm
224 } // namespace cutlass
GlobalStoreIteratorD::Scalar ScalarD
The scalar for D.
Definition: gemm_epilogue.h:85
-
Coord< 3 > problem_size
The dimensions of the GEMM.
Definition: gemm_epilogue.h:216
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
30 #pragma once
31 
32 #include "cutlass/convert.h"
33 #include "cutlass/coord.h"
34 #include "cutlass/fragment.h"
35 
36 namespace cutlass {
37 namespace gemm {
38 
40 
41 template <typename GemmEpilogueTraits_>
42 struct GemmEpilogue {
44  typedef GemmEpilogueTraits_ Traits;
46  typedef typename Traits::Params Params;
48  typedef typename Traits::SharedStorage SharedStorage;
49 
51  typedef typename Traits::OutputTile OutputTile;
53  typedef typename Traits::Iterations Iterations;
55  typedef typename Traits::Accumulators Accumulators;
57  typedef typename Traits::Scalar Scalar;
59  typedef typename Traits::Functor Functor;
60 
62  static_assert(Iterations::kD == 1 && Iterations::kC == 1, "Unsupported 3D/4D shapes");
63 
65  typedef typename Traits::GlobalLoadIteratorC GlobalLoadIteratorC;
67  typedef typename Traits::GlobalTransformerC GlobalTransformerC;
69  typedef typename Traits::GlobalTransformerD GlobalTransformerD;
71  typedef typename Traits::GlobalStoreIteratorD GlobalStoreIteratorD;
73  typedef typename Traits::SharedStoreIteratorD SharedStoreIteratorD;
75  typedef typename Traits::SharedStoreTransformerD SharedStoreTransformerD;
77  typedef typename Traits::SharedLoadStreamD SharedLoadStreamD;
78 
80  typedef typename Traits::Index Index;
81 
83  typedef typename GlobalLoadIteratorC::Scalar ScalarC;
85  typedef typename GlobalStoreIteratorD::Scalar ScalarD;
86 
88  CUTLASS_DEVICE GemmEpilogue(Params const& params_,
89  SharedStorage& shared_storage_,
90  Coord<3> const& _problem_size)
91  : params(params_), shared_storage(shared_storage_), problem_size(_problem_size), functor(params_.functor) {}
92 
94  CUTLASS_DEVICE void epilogue(Accumulators& accumulators,
95  Coord<3> const& block = make_Coord(0, 0, 0),
96  int batch_id = 0) {
97  if (functor.source_required()) {
98  epilogue_with_or_without_beta<true>(accumulators, block, batch_id);
99  } else {
100  epilogue_with_or_without_beta<false>(accumulators, block, batch_id);
101  }
102  }
103 
104  template <bool kSourceRequired>
105  CUTLASS_DEVICE void epilogue_with_or_without_beta(Accumulators& accumulators,
106  Coord<3> const& block,
107  int batch_id) {
108  // The C fragment.
109  typename GlobalLoadIteratorC::Fragment fragment_c;
110  // The transformed C fragment.
111  typename GlobalTransformerC::OutputFragment transformed_c;
113  for (int h = 0; h < Iterations::kH; ++h) {
114  // Compute pointer and predicate offsets for C and D global iterators.
115  int const pointer_offset =
116  ((params.iterator_d.inc_h * (GlobalStoreIteratorD::Iterations::kH - 1) +
117  params.iterator_d.inc_advance) *
118  Iterations::kW +
119  params.stride_h) *
120  h;
121 
122  int const predicate_offset =
123  ((params.iterator_d.predicate_inc_h * (GlobalStoreIteratorD::Iterations::kH - 1) +
124  params.iterator_d.predicate_inc_advance) *
125  Iterations::kW +
126  Traits::Delta::kH) *
127  h;
128 
129  // The iterator to load the elements of the C matrix.
130  GlobalLoadIteratorC global_load_iterator(
131  params.iterator_c, problem_size, block, pointer_offset, predicate_offset);
132 
133  // update C pointer offset based on batch_id and batch_stride_offset
134  global_load_iterator.add_pointer_offset(batch_id * params.batch_stride_C);
135 
136  // The transformer for C.
137  GlobalTransformerC transformer_c;
138  // The transformer for D.
139  GlobalTransformerD transformer_d;
140 
141  // The iterator to store into the D matrix.
142  GlobalStoreIteratorD global_store_iterator(
143  params.iterator_d, problem_size, block, pointer_offset, predicate_offset);
144 
145  // update D pointer offset based on batch_id and batch_stride_offset
146  global_store_iterator.add_pointer_offset(batch_id * params.batch_stride_D);
147 
148  SharedStoreTransformerD shared_store_transformer;
149  typename SharedStoreTransformerD::OutputFragment shared_store_transformed_d;
150 
151  SharedStoreIteratorD shared_store_iterator(
152  params.shared_store_iterator_d,
153  reinterpret_cast<typename SharedStoreIteratorD::Scalar*>(shared_storage.data()));
154 
155  SharedLoadStreamD shared_load_stream(
156  params.shared_load_stream_d,
157  reinterpret_cast<typename SharedLoadStreamD::Scalar*>(shared_storage.data()));
158 
160  for (int w = 0; w < Iterations::kW; ++w) {
161  // Load the C matrix into fragment.
162  if (kSourceRequired) {
163  global_load_iterator.load_post_increment(fragment_c);
164  }
165 
166  // Make sure we can write to shared memory.
168 
169  // Copy the accumulators to shared memory.
170  int const offset = (h * Iterations::kW + w) * SharedStoreIteratorD::Fragment::kElements;
171 
172  shared_store_transformer.transform(accumulators, offset, shared_store_transformed_d);
173 
174  shared_store_iterator.store_post_increment(shared_store_transformed_d);
175 
176  // Make sure the data is in shared memory.
178 
179  // Copy the accumulators back to registers from shared memory.
180  shared_load_stream.copy();
181  shared_load_stream.commit();
182 
183  // Do the math.
184  typename GlobalTransformerD::InputFragment fragment_d;
185  if (kSourceRequired) {
186  // Transform C fragment.
187  transformer_c.transform(fragment_c, transformed_c);
188  // Do the math.
189  functor.evaluate(shared_load_stream.fragment(), transformed_c, fragment_d);
190  } else {
191  functor.evaluate(shared_load_stream.fragment(), fragment_d);
192  }
193 
194  // Transform D fragment.
195  typename GlobalTransformerD::OutputFragment global_transformed_d;
196  transformer_d.transform(fragment_d, global_transformed_d);
197 
198  // Copy the results to global memory.
199  global_store_iterator.store_post_increment(global_transformed_d);
200  }
201  }
202  }
203 
205  CUTLASS_DEVICE void shared_load_fence() { __syncthreads(); }
206 
208  CUTLASS_DEVICE void shared_store_fence() { __syncthreads(); }
209 
211  Params const& params;
216  // The functor.
218 };
219 
221 
222 } // namespace gemm
223 } // namespace cutlass
GlobalStoreIteratorD::Scalar ScalarD
The scalar for D.
Definition: gemm_epilogue.h:85
+
Coord< 3 > problem_size
The dimensions of the GEMM.
Definition: gemm_epilogue.h:215
Traits::SharedStoreIteratorD SharedStoreIteratorD
The iterator to store D in shared memory.
Definition: gemm_epilogue.h:73
+
#define CUTLASS_PRAGMA_UNROLL
Definition: performance_tuning.h:35
Definition: convert.h:33
Traits::Params Params
The params.
Definition: gemm_epilogue.h:46
Definition: gemm_epilogue.h:42
CUTLASS_DEVICE void epilogue_with_or_without_beta(Accumulators &accumulators, Coord< 3 > const &block, int batch_id)
Definition: gemm_epilogue.h:105
A Coord is a coordinate of arbitrary rank into a tensor or matrix.
-
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:318
-
Functor functor
Definition: gemm_epilogue.h:218
+
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:368
+
Functor functor
Definition: gemm_epilogue.h:217
Traits::SharedStorage SharedStorage
The shared storage.
Definition: gemm_epilogue.h:48
Traits::GlobalTransformerD GlobalTransformerD
The transformer for D.
Definition: gemm_epilogue.h:69
CUTLASS_DEVICE GemmEpilogue(Params const &params_, SharedStorage &shared_storage_, Coord< 3 > const &_problem_size)
Ctor.
Definition: gemm_epilogue.h:88
Traits::OutputTile OutputTile
The output tile.
Definition: gemm_epilogue.h:51
Traits::Accumulators Accumulators
The accumulators.
Definition: gemm_epilogue.h:55
-
#define CUTLASS_PRAGMA_UNROLL
Definition: cutlass.h:62
-
CUTLASS_DEVICE void shared_load_fence()
The memory fence for shared loads.
Definition: gemm_epilogue.h:206
-
SharedStorage & shared_storage
The shared storage.
Definition: gemm_epilogue.h:214
+
CUTLASS_DEVICE void shared_load_fence()
The memory fence for shared loads.
Definition: gemm_epilogue.h:205
+
SharedStorage & shared_storage
The shared storage.
Definition: gemm_epilogue.h:213
GemmEpilogueTraits_ Traits
The traits class.
Definition: gemm_epilogue.h:44
-
Params const & params
The params.
Definition: gemm_epilogue.h:212
+
Params const & params
The params.
Definition: gemm_epilogue.h:211
Traits::Index Index
The index.
Definition: gemm_epilogue.h:80
#define static_assert(__e, __m)
Definition: platform.h:153
Traits::SharedStoreTransformerD SharedStoreTransformerD
The shared store transformer for D.
Definition: gemm_epilogue.h:75
@@ -109,13 +109,13 @@ $(function() {
Defines Fragment, a statically-sized array for storing parts of matrices within a thread&#39;s registers...
Traits::Scalar Scalar
The scalar.
Definition: gemm_epilogue.h:57
Defines conversion operations among Fragments of different base type.
-
CUTLASS_DEVICE void shared_store_fence()
The memory fence for shared stores.
Definition: gemm_epilogue.h:209
+
CUTLASS_DEVICE void shared_store_fence()
The memory fence for shared stores.
Definition: gemm_epilogue.h:208
Traits::GlobalTransformerC GlobalTransformerC
The transformer for C.
Definition: gemm_epilogue.h:67
Traits::GlobalLoadIteratorC GlobalLoadIteratorC
We do not support 3D or 4D shapes.
Definition: gemm_epilogue.h:62
diff --git a/docs/gemm__epilogue__traits_8h.html b/docs/gemm__epilogue__traits_8h.html index 3dceb744..ed090a5b 100644 --- a/docs/gemm__epilogue__traits_8h.html +++ b/docs/gemm__epilogue__traits_8h.html @@ -120,7 +120,7 @@ Namespaces
diff --git a/docs/gemm__epilogue__traits_8h_source.html b/docs/gemm__epilogue__traits_8h_source.html index 2471d16a..076c38bb 100644 --- a/docs/gemm__epilogue__traits_8h_source.html +++ b/docs/gemm__epilogue__traits_8h_source.html @@ -76,86 +76,89 @@ $(function() {
gemm_epilogue_traits.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
28 #pragma once
29 
30 #include "cutlass/convert.h"
31 #include "cutlass/coord.h"
35 #include "cutlass/reshape_tile.h"
36 #include "cutlass/tile_iterator.h"
37 
38 namespace cutlass {
39 namespace gemm {
40 
42 
43 template <
45  typename OutputTile_,
47  typename Accumulators_,
49  typename GlobalLoadIteratorC_,
51  typename GlobalTransformerC_,
53  typename GlobalTransformerD_,
55  typename GlobalStoreIteratorD_,
57  typename SharedStoreIteratorD_,
59  typename SharedStoreTransformerD_,
61  typename SharedLoadStreamD_,
63  typename Iterations_,
65  typename Delta_,
67  typename Functor_,
69  typename Index_ = int>
71  //
73  typedef OutputTile_ OutputTile;
76  typedef Accumulators_ Accumulators;
78  typedef GlobalLoadIteratorC_ GlobalLoadIteratorC;
80  typedef GlobalTransformerC_ GlobalTransformerC;
82  typedef GlobalTransformerD_ GlobalTransformerD;
84  typedef GlobalStoreIteratorD_ GlobalStoreIteratorD;
86  typedef SharedStoreIteratorD_ SharedStoreIteratorD;
88  typedef SharedStoreTransformerD_ SharedStoreTransformerD;
90  typedef SharedLoadStreamD_ SharedLoadStreamD;
92  typedef Iterations_ Iterations;
94  typedef Delta_ Delta;
95 
97  typedef Functor_ Functor;
99  typedef Index_ Index;
100 
102  static_assert(Iterations::kD == 1 && Iterations::kC == 1, "Unsupported 3D/4D shapes");
103 
105  typedef typename Functor::Scalar Scalar;
107  typedef typename GlobalLoadIteratorC::Scalar ScalarC;
109  typedef typename GlobalStoreIteratorD::Scalar ScalarD;
110 
112  struct Params {
116  typename GlobalLoadIteratorC::Params iterator_c;
118  typename GlobalStoreIteratorD::Params iterator_d;
120  typename SharedStoreIteratorD::Params shared_store_iterator_d;
122  typename SharedLoadStreamD::Params shared_load_stream_d;
124  typename Functor::Params functor;
125 
127  template <typename GemmDesc_>
128  CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const& desc) {
129 
130  // The parameters for the functor.
131  int error_code = functor.initialize(desc);
132  if (error_code) {
133  return error_code;
134  }
135 
136  // At the end of the H iteration, we jump over a number of columns.
137  this->stride_h = desc.D.leading_dim() * Delta::kH;
138  // Nothing to do here.
139  this->stride_w = 0;
140  // Setup the params for the global memory iterator for C.
141  error_code = iterator_c.initialize(desc.C.data(),
142  desc.batch_stride_C,
143  desc.C.leading_dim(),
144  desc.problem_size[1],
145  stride_w,
146  Delta::kW);
147  if (error_code) {
148  return error_code;
149  }
150 
151  // Setup the params for the global memory iterator for D.
152  return iterator_d.initialize(desc.D.data(),
153  desc.batch_stride_D,
154  desc.D.leading_dim(),
155  desc.problem_size[1],
156  stride_w,
157  Delta::kW);
158  }
159  };
160 
163  // The storage for the store iterator.
164  typename SharedStoreIteratorD::SharedStorage store;
165  // The storage for the store iterator.
166  typename SharedLoadStreamD::SharedStorage load;
167  };
168 
170  struct SharedStorage {
171  // The storage for the shared stream D.
173 
174  //
175  //
176  //
177 
178  CUTLASS_DEVICE
179  ScalarD* data() { return reinterpret_cast<ScalarD*>(&shared_stream.load); }
180  };
181 };
182 
184 
185 template <typename GemmConfig_, typename EpilogueFunctor_, typename Index_ = int>
188  typedef typename EpilogueFunctor_::Scalar Scalar;
190  typedef typename GemmConfig_::OutputTile OutputTile;
191 
193  typedef Shape<1,
194  GemmConfig_::MultiplyAdd::AccumulatorsPerThread::kH /
195  GemmConfig_::kAccumulatorsPerLdsB,
196  GemmConfig_::kAccumulatorsPerLdsB>
198  // The iteration strides in the H/W dimension.
199  typedef Shape<0,
200  GemmConfig_::kAccumulatorsPerLdsB*(
201  GemmConfig_::Warps::kH* GemmConfig_::MultiplyAdd::ThreadsPerWarp::kH - 1),
202  0>
205  typedef EpilogueFunctor_ Functor;
206 
209  // The pointer is float.
210  // typename Functor::Scalar,
211  // Functor::Scalar is alpha, beta type, in mixed precision, alpha and beta may not be the same with accumulation.
212  // In this case Functor::ScalarAccum is needed
213  typename Functor::ScalarAccum,
214  // The output tile size.
215  typename GemmConfig_::OutputTile,
216  // The number of warps.
217  typename GemmConfig_::Warps,
218  // The number of threads per warp.
219  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
220  // The number of scalars per STS.
221  GemmConfig_::kScalarsPerStsD,
222  // The skew -- 128 / sizeof(ScalarD) / kScalarsPerStsD is the number of threads involved in
223  // a single STS. We divide by 2 as our objective is to add a skew to the odd threads to
224  // avoid bank conflicts between odd and even threads.
225  128 / sizeof(typename GemmConfig_::ScalarD) / GemmConfig_::kScalarsPerStsD / 2 *
226  GemmConfig_::kScalarsPerStsD>
228 
235 
238 
241  // The pointer is float.
242  // typename Functor::Scalar,
243  // Functor::Scalar is alpha, beta type, in mixed precision, alpha and beta may not be the same with accumulation.
244  // In this case Functor::ScalarAccum is needed
245  typename Functor::ScalarAccum,
246  // The output tile size.
247  typename GemmConfig_::OutputTile,
248  // The number of warps.
249  typename GemmConfig_::Warps,
250  // The number of threads per warp.
251  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
252  // The number of columns of the output tile written by iteration.
253  GemmConfig_::OutputTile::kH / ShapeCount<Iterations>::kCount,
254  // The number of scalars per LDS.
255  GemmConfig_::kScalarsPerLdsD,
256  // The skew.
259 
268 
270  typedef GemmGlobalTileCdTraits<
271  // The pointer is float const.
272  typename GemmConfig_::ScalarC const,
273  // The tile has size (N / Iterations)xM in GEMM's terminology.
274  Shape<1,
275  GemmConfig_::OutputTile::kH / ShapeCount<Iterations>::kCount,
276  GemmConfig_::OutputTile::kW>,
277  // The threads are distributed as warps x 32 (the traits may reorganize).
279  // How many elements do we jump over at each iteration?
281  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
282  GemmConfig_::kScalarsPerLdgC>
284 
289 
291  typedef GemmGlobalTileCdTraits<
292  // The pointer is float.
293  typename GemmConfig_::ScalarD,
294  // The tile has size (N / Iterations)xM in GEMM's terminology.
295  Shape<1,
296  GemmConfig_::OutputTile::kH / ShapeCount<Iterations>::kCount,
297  GemmConfig_::OutputTile::kW>,
298  // The threads are distributed as warps x 32 (the traits may reorganize).
300  // How many elements do we jump over at each iteration?
302  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
303  GemmConfig_::kScalarsPerStgD>
305 
310 };
311 
313 
314 template <
316  typename GemmConfig_,
318  typename EpilogueFunctor_,
320  typename Index_ = int,
324  // The output tile.
325  typename GemmConfig_::OutputTile,
326  // The accumulators.
327  typename GemmConfig_::Accumulators,
328  // The global iterator for C.
329  typename Helper_::GlobalLoadIteratorC,
330  // The transformer for C.
331  typename Helper_::GlobalTransformerC,
332  // The transformer for D.
333  typename Helper_::GlobalTransformerD,
334  // The global iterator for D.
335  typename Helper_::GlobalStoreIteratorD,
336  // The iterator to store D to shared memory.
337  typename Helper_::SharedStoreIteratorD,
338  // The shared store transformer for D.
339  typename Helper_::SharedStoreTransformerD,
340  // The stream to load D from shared memory.
341  typename Helper_::SharedLoadStreamD,
342  // The number of iterations.
343  typename Helper_::Iterations,
344  // The strides between iterations.
345  typename Helper_::Delta,
346  // The functor to be used in the epilogue.
347  EpilogueFunctor_,
348  // The index.
349  Index_> {};
350 
352 
353 } // namespace gemm
354 } // namespace cutlass
Definition: gemm_global_tile.h:120
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
28 #pragma once
29 
30 #include "cutlass/convert.h"
31 #include "cutlass/coord.h"
35 #include "cutlass/reshape_tile.h"
36 #include "cutlass/tile_iterator.h"
37 
38 namespace cutlass {
39 namespace gemm {
40 
42 
43 template <
45  typename OutputTile_,
47  typename Accumulators_,
49  typename GlobalLoadIteratorC_,
51  typename GlobalTransformerC_,
53  typename GlobalTransformerD_,
55  typename GlobalStoreIteratorD_,
57  typename SharedStoreIteratorD_,
59  typename SharedStoreTransformerD_,
61  typename SharedLoadStreamD_,
63  typename Iterations_,
65  typename Delta_,
67  typename Functor_,
69  typename Index_ = int>
71  //
73  typedef OutputTile_ OutputTile;
76  typedef Accumulators_ Accumulators;
78  typedef GlobalLoadIteratorC_ GlobalLoadIteratorC;
80  typedef GlobalTransformerC_ GlobalTransformerC;
82  typedef GlobalTransformerD_ GlobalTransformerD;
84  typedef GlobalStoreIteratorD_ GlobalStoreIteratorD;
86  typedef SharedStoreIteratorD_ SharedStoreIteratorD;
88  typedef SharedStoreTransformerD_ SharedStoreTransformerD;
90  typedef SharedLoadStreamD_ SharedLoadStreamD;
92  typedef Iterations_ Iterations;
94  typedef Delta_ Delta;
95 
97  typedef Functor_ Functor;
99  typedef Index_ Index;
101  typedef long long LongIndex;
102 
104  static_assert(Iterations::kD == 1 && Iterations::kC == 1, "Unsupported 3D/4D shapes");
105 
107  typedef typename Functor::Scalar Scalar;
109  typedef typename GlobalLoadIteratorC::Scalar ScalarC;
111  typedef typename GlobalStoreIteratorD::Scalar ScalarD;
112 
114  struct Params {
118  typename GlobalLoadIteratorC::Params iterator_c;
119 
122 
124  typename GlobalStoreIteratorD::Params iterator_d;
125 
128 
130  typename SharedStoreIteratorD::Params shared_store_iterator_d;
132  typename SharedLoadStreamD::Params shared_load_stream_d;
134  typename Functor::Params functor;
135 
137  template <typename GemmDesc_>
138  CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const& desc) {
139 
140  // The parameters for the functor.
141  int error_code = functor.initialize(desc);
142  if (error_code) {
143  return error_code;
144  }
145 
146  // At the end of the H iteration, we jump over a number of columns.
147  this->stride_h = desc.D.leading_dim() * Delta::kH;
148  // Nothing to do here.
149  this->stride_w = 0;
150  // Setup the params for the global memory iterator for C.
151  error_code = iterator_c.initialize(desc.C.data(),
152  desc.C.leading_dim(),
153  desc.C.leading_dim(),
154  desc.problem_size[1],
155  stride_w,
156  Delta::kW);
157 
158  batch_stride_C = desc.batch_stride_C;
159 
160  if (error_code) {
161  return error_code;
162  }
163 
164  // Setup the params for the global memory iterator for D.
165  error_code = iterator_d.initialize(desc.D.data(),
166  desc.D.leading_dim(),
167  desc.D.leading_dim(),
168  desc.problem_size[1],
169  stride_w,
170  Delta::kW);
171 
172  batch_stride_D = desc.batch_stride_D;
173 
174  return error_code;
175  }
176  };
177 
180  // The storage for the store iterator.
181  typename SharedStoreIteratorD::SharedStorage store;
182  // The storage for the store iterator.
183  typename SharedLoadStreamD::SharedStorage load;
184  };
185 
187  struct SharedStorage {
188  // The storage for the shared stream D.
190 
191  //
192  //
193  //
194 
195  CUTLASS_DEVICE
196  ScalarD* data() { return reinterpret_cast<ScalarD*>(&shared_stream.load); }
197  };
198 };
199 
201 
202 template <typename GemmConfig_, typename EpilogueFunctor_, typename Index_ = int>
205  typedef typename EpilogueFunctor_::Scalar Scalar;
207  typedef typename GemmConfig_::OutputTile OutputTile;
208 
210  typedef Shape<1,
211  GemmConfig_::MultiplyAdd::AccumulatorsPerThread::kH /
212  GemmConfig_::kAccumulatorsPerLdsB,
213  GemmConfig_::kAccumulatorsPerLdsB>
215  // The iteration strides in the H/W dimension.
216  typedef Shape<0,
217  GemmConfig_::kAccumulatorsPerLdsB*(
218  GemmConfig_::Warps::kH* GemmConfig_::MultiplyAdd::ThreadsPerWarp::kH - 1),
219  0>
222  typedef EpilogueFunctor_ Functor;
223 
226  // The pointer is float.
227  // typename Functor::Scalar,
228  // Functor::Scalar is alpha, beta type, in mixed precision, alpha and beta may not be the same with accumulation.
229  // In this case Functor::ScalarAccum is needed
230  typename Functor::ScalarAccum,
231  // The output tile size.
232  typename GemmConfig_::OutputTile,
233  // The number of warps.
234  typename GemmConfig_::Warps,
235  // The number of threads per warp.
236  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
237  // The number of scalars per STS.
238  GemmConfig_::kScalarsPerStsD,
239  // The skew -- 128 / sizeof(ScalarD) / kScalarsPerStsD is the number of threads involved in
240  // a single STS. We divide by 2 as our objective is to add a skew to the odd threads to
241  // avoid bank conflicts between odd and even threads.
242  128 / sizeof(typename GemmConfig_::ScalarD) / GemmConfig_::kScalarsPerStsD / 2 *
243  GemmConfig_::kScalarsPerStsD>
245 
252 
255 
258  // The pointer is float.
259  // typename Functor::Scalar,
260  // Functor::Scalar is alpha, beta type, in mixed precision, alpha and beta may not be the same with accumulation.
261  // In this case Functor::ScalarAccum is needed
262  typename Functor::ScalarAccum,
263  // The output tile size.
264  typename GemmConfig_::OutputTile,
265  // The number of warps.
266  typename GemmConfig_::Warps,
267  // The number of threads per warp.
268  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
269  // The number of columns of the output tile written by iteration.
270  GemmConfig_::OutputTile::kH / ShapeCount<Iterations>::kCount,
271  // The number of scalars per LDS.
272  GemmConfig_::kScalarsPerLdsD,
273  // The skew.
276 
285 
287  typedef GemmGlobalTileCdTraits<
288  // The pointer is float const.
289  typename GemmConfig_::ScalarC const,
290  // The tile has size (N / Iterations)xM in GEMM's terminology.
291  Shape<1,
292  GemmConfig_::OutputTile::kH / ShapeCount<Iterations>::kCount,
293  GemmConfig_::OutputTile::kW>,
294  // The threads are distributed as warps x 32 (the traits may reorganize).
296  // How many elements do we jump over at each iteration?
298  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
299  GemmConfig_::kScalarsPerLdgC>
301 
306 
308  typedef GemmGlobalTileCdTraits<
309  // The pointer is float.
310  typename GemmConfig_::ScalarD,
311  // The tile has size (N / Iterations)xM in GEMM's terminology.
312  Shape<1,
313  GemmConfig_::OutputTile::kH / ShapeCount<Iterations>::kCount,
314  GemmConfig_::OutputTile::kW>,
315  // The threads are distributed as warps x 32 (the traits may reorganize).
317  // How many elements do we jump over at each iteration?
319  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
320  GemmConfig_::kScalarsPerStgD>
322 
327 };
328 
330 
331 template <
333  typename GemmConfig_,
335  typename EpilogueFunctor_,
337  typename Index_ = int,
341  // The output tile.
342  typename GemmConfig_::OutputTile,
343  // The accumulators.
344  typename GemmConfig_::Accumulators,
345  // The global iterator for C.
346  typename Helper_::GlobalLoadIteratorC,
347  // The transformer for C.
348  typename Helper_::GlobalTransformerC,
349  // The transformer for D.
350  typename Helper_::GlobalTransformerD,
351  // The global iterator for D.
352  typename Helper_::GlobalStoreIteratorD,
353  // The iterator to store D to shared memory.
354  typename Helper_::SharedStoreIteratorD,
355  // The shared store transformer for D.
356  typename Helper_::SharedStoreTransformerD,
357  // The stream to load D from shared memory.
358  typename Helper_::SharedLoadStreamD,
359  // The number of iterations.
360  typename Helper_::Iterations,
361  // The strides between iterations.
362  typename Helper_::Delta,
363  // The functor to be used in the epilogue.
364  EpilogueFunctor_,
365  // The index.
366  Index_> {};
367 
369 
370 } // namespace gemm
371 } // namespace cutlass
Definition: gemm_global_tile.h:120
SharedStoreTransformerD_ SharedStoreTransformerD
The shared store transformer for D.
Definition: gemm_epilogue_traits.h:88
Iterations_ Iterations
typedef typename GemmConfig::EpilogueIterations Iterations;
Definition: gemm_epilogue_traits.h:92
-
CUTLASS_DEVICE ScalarD * data()
Definition: gemm_epilogue_traits.h:179
+
CUTLASS_DEVICE ScalarD * data()
Definition: gemm_epilogue_traits.h:196
Definition: load_store.h:41
Definition: convert.h:33
-
GemmGlobalTileCdTraits< typename GemmConfig_::ScalarC const, Shape< 1, GemmConfig_::OutputTile::kH/ShapeCount< Iterations >::kCount, GemmConfig_::OutputTile::kW >, Shape< 1, ShapeCount< typename GemmConfig_::Warps >::kCount, GemmConfig_::kWarpSize >, Iterations::kW, GemmConfig_::kScalarsPerLdgC > GlobalLoadTileTraits
The traits class to build the iterator to load data from global memory for C^N.
Definition: gemm_epilogue_traits.h:283
+
GemmGlobalTileCdTraits< typename GemmConfig_::ScalarC const, Shape< 1, GemmConfig_::OutputTile::kH/ShapeCount< Iterations >::kCount, GemmConfig_::OutputTile::kW >, Shape< 1, ShapeCount< typename GemmConfig_::Warps >::kCount, GemmConfig_::kWarpSize >, Iterations::kW, GemmConfig_::kScalarsPerLdgC > GlobalLoadTileTraits
The traits class to build the iterator to load data from global memory for C^N.
Definition: gemm_epilogue_traits.h:300
GlobalLoadIteratorC_ GlobalLoadIteratorC
The iterator for C in global memory.
Definition: gemm_epilogue_traits.h:78
-
Definition: gemm_epilogue_traits.h:186
-
Functor::Params functor
The functor params.
Definition: gemm_epilogue_traits.h:124
+
Definition: gemm_epilogue_traits.h:203
+
Functor::Params functor
The functor params.
Definition: gemm_epilogue_traits.h:134
Defines the Tile Traits concept and iterators for loading and storing to tiles efficiently.
-
SharedLoadStreamD::SharedStorage load
Definition: gemm_epilogue_traits.h:166
+
SharedLoadStreamD::SharedStorage load
Definition: gemm_epilogue_traits.h:183
+
long long LongIndex
The long index.
Definition: gemm_epilogue_traits.h:101
Implements the BLAS linear scaling function alpha*AB + beta*C.
-
The shared memory storage to exchange data.
Definition: gemm_epilogue_traits.h:162
-
EpilogueFunctor_::Scalar Scalar
The scalar.
Definition: gemm_epilogue_traits.h:188
+
The shared memory storage to exchange data.
Definition: gemm_epilogue_traits.h:179
+
EpilogueFunctor_::Scalar Scalar
The scalar.
Definition: gemm_epilogue_traits.h:205
A Coord is a coordinate of arbitrary rank into a tensor or matrix.
Definition: convert.h:69
GlobalTransformerC_ GlobalTransformerC
The transformer for C.
Definition: gemm_epilogue_traits.h:80
-
GemmGlobalIteratorCd< GlobalLoadTileTraits, Index_ > GlobalLoadIteratorC
The iterator to load C.
Definition: gemm_epilogue_traits.h:286
+
GemmGlobalIteratorCd< GlobalLoadTileTraits, Index_ > GlobalLoadIteratorC
The iterator to load C.
Definition: gemm_epilogue_traits.h:303
GlobalTransformerD_ GlobalTransformerD
The transformer for D.
Definition: gemm_epilogue_traits.h:82
Definition: tile_iterator.h:65
-
TileStoreIterator< SharedStoreTileTraits, typename SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedStoreIteratorD
The iterator to store D to shared memory.
Definition: gemm_epilogue_traits.h:234
-
SharedLoadStream< SharedLoadIteratorD > SharedLoadStreamD
The stream to load D.
Definition: gemm_epilogue_traits.h:267
-
GlobalStoreIteratorD::Scalar ScalarD
The scalar for D.
Definition: gemm_epilogue_traits.h:109
-
GemmGlobalIteratorCd< GlobalStoreTileTraits, Index_ > GlobalStoreIteratorD
The iterator to store D.
Definition: gemm_epilogue_traits.h:307
-
GlobalStoreIteratorD::Params iterator_d
The params for the D global iterator.
Definition: gemm_epilogue_traits.h:118
-
SharedLoadStreamD::Params shared_load_stream_d
The params for the D shared load stream.
Definition: gemm_epilogue_traits.h:122
-
Copy< typename SharedStoreIteratorD::Fragment > SharedStoreTransformerD
The shared store transformer for D.
Definition: gemm_epilogue_traits.h:237
-
Shape< 1, GemmConfig_::MultiplyAdd::AccumulatorsPerThread::kH/GemmConfig_::kAccumulatorsPerLdsB, GemmConfig_::kAccumulatorsPerLdsB > Iterations
The number of iterations in the epilogue.
Definition: gemm_epilogue_traits.h:197
-
GemmGlobalTileCdTraits< typename GemmConfig_::ScalarD, Shape< 1, GemmConfig_::OutputTile::kH/ShapeCount< Iterations >::kCount, GemmConfig_::OutputTile::kW >, Shape< 1, ShapeCount< typename GemmConfig_::Warps >::kCount, GemmConfig_::kWarpSize >, Iterations::kW, GemmConfig_::kScalarsPerStgD > GlobalStoreTileTraits
The traits class to build the iterator to store data to global memory for D^N.
Definition: gemm_epilogue_traits.h:304
-
An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
Definition: tile_iterator.h:399
-
Index stride_h
The strides for H and W in the different iterations of the epilogue.
Definition: gemm_epilogue_traits.h:114
+
TileStoreIterator< SharedStoreTileTraits, typename SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedStoreIteratorD
The iterator to store D to shared memory.
Definition: gemm_epilogue_traits.h:251
+
SharedLoadStream< SharedLoadIteratorD > SharedLoadStreamD
The stream to load D.
Definition: gemm_epilogue_traits.h:284
+
GlobalStoreIteratorD::Scalar ScalarD
The scalar for D.
Definition: gemm_epilogue_traits.h:111
+
LongIndex batch_stride_C
Batch stride for C matrix.
Definition: gemm_epilogue_traits.h:121
+
GemmGlobalIteratorCd< GlobalStoreTileTraits, Index_ > GlobalStoreIteratorD
The iterator to store D.
Definition: gemm_epilogue_traits.h:324
+
GlobalStoreIteratorD::Params iterator_d
The params for the D global iterator.
Definition: gemm_epilogue_traits.h:124
+
SharedLoadStreamD::Params shared_load_stream_d
The params for the D shared load stream.
Definition: gemm_epilogue_traits.h:132
+
Copy< typename SharedStoreIteratorD::Fragment > SharedStoreTransformerD
The shared store transformer for D.
Definition: gemm_epilogue_traits.h:254
+
Shape< 1, GemmConfig_::MultiplyAdd::AccumulatorsPerThread::kH/GemmConfig_::kAccumulatorsPerLdsB, GemmConfig_::kAccumulatorsPerLdsB > Iterations
The number of iterations in the epilogue.
Definition: gemm_epilogue_traits.h:214
+
GemmGlobalTileCdTraits< typename GemmConfig_::ScalarD, Shape< 1, GemmConfig_::OutputTile::kH/ShapeCount< Iterations >::kCount, GemmConfig_::OutputTile::kW >, Shape< 1, ShapeCount< typename GemmConfig_::Warps >::kCount, GemmConfig_::kWarpSize >, Iterations::kW, GemmConfig_::kScalarsPerStgD > GlobalStoreTileTraits
The traits class to build the iterator to store data to global memory for D^N.
Definition: gemm_epilogue_traits.h:321
+
An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
Definition: tile_iterator.h:402
+
Index stride_h
The strides for H and W in the different iterations of the epilogue.
Definition: gemm_epilogue_traits.h:116
Functor_ Functor
The functor in charge of the math.
Definition: gemm_epilogue_traits.h:97
Definition: gemm_shared_stream.h:45
Accumulators_ Accumulators
Definition: gemm_epilogue_traits.h:76
static int const kSkew
The skew.
Definition: gemm_shared_tile.h:284
Defines a type for restructuring a tile.
-
GlobalLoadIteratorC::Params iterator_c
The params for the C iterator.
Definition: gemm_epilogue_traits.h:116
-
SharedStoreIteratorD::SharedStorage store
Definition: gemm_epilogue_traits.h:164
-
Index stride_w
Definition: gemm_epilogue_traits.h:114
+
GlobalLoadIteratorC::Params iterator_c
The params for the C iterator.
Definition: gemm_epilogue_traits.h:118
+
LongIndex batch_stride_D
Batch stride for C matrix.
Definition: gemm_epilogue_traits.h:127
+
SharedStoreIteratorD::SharedStorage store
Definition: gemm_epilogue_traits.h:181
+
Index stride_w
Definition: gemm_epilogue_traits.h:116
SharedLoadStreamD_ SharedLoadStreamD
The stream to store D in shared memory.
Definition: gemm_epilogue_traits.h:90
OutputTile_ OutputTile
The output tile.
Definition: gemm_epilogue_traits.h:73
Definition: gemm_shared_tile.h:339
#define CUTLASS_HOST_DEVICE
Definition: cutlass.h:46
#define static_assert(__e, __m)
Definition: platform.h:153
A Shape implementing Layout Concept describing the dimensions of a cube.
Definition: shape.h:64
-
Definition: gemm_epilogue_traits.h:323
-
EpilogueFunctor_ Functor
The functor to do the math in the epilogue.
Definition: gemm_epilogue_traits.h:205
-
TileLoadIterator< SharedLoadTileTraits, typename SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorD
The iterator to load D from shared memory.
Definition: gemm_epilogue_traits.h:265
-
GemmConfig_::OutputTile OutputTile
The output tile.
Definition: gemm_epilogue_traits.h:190
-
CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const &desc)
Setup the params.
Definition: gemm_epilogue_traits.h:128
-
StreamSharedStorage shared_stream
Definition: gemm_epilogue_traits.h:172
+
Definition: gemm_epilogue_traits.h:340
+
EpilogueFunctor_ Functor
The functor to do the math in the epilogue.
Definition: gemm_epilogue_traits.h:222
+
TileLoadIterator< SharedLoadTileTraits, typename SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorD
The iterator to load D from shared memory.
Definition: gemm_epilogue_traits.h:282
+
GemmConfig_::OutputTile OutputTile
The output tile.
Definition: gemm_epilogue_traits.h:207
+
CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const &desc)
Setup the params.
Definition: gemm_epilogue_traits.h:138
+
StreamSharedStorage shared_stream
Definition: gemm_epilogue_traits.h:189
Index_ Index
The index.
Definition: gemm_epilogue_traits.h:99
Definition: gemm_epilogue_traits.h:70
-
GemmSharedLoadTileDTraits< typename Functor::ScalarAccum, typename GemmConfig_::OutputTile, typename GemmConfig_::Warps, typename GemmConfig_::MultiplyAdd::ThreadsPerWarp, GemmConfig_::OutputTile::kH/ShapeCount< Iterations >::kCount, GemmConfig_::kScalarsPerLdsD, SharedStoreTileTraits::kSkew > SharedLoadTileTraits
The traits class to build the iterator to load from shared memory for D.
Definition: gemm_epilogue_traits.h:258
-
Definition: gemm_global_tile.h:396
+
GemmSharedLoadTileDTraits< typename Functor::ScalarAccum, typename GemmConfig_::OutputTile, typename GemmConfig_::Warps, typename GemmConfig_::MultiplyAdd::ThreadsPerWarp, GemmConfig_::OutputTile::kH/ShapeCount< Iterations >::kCount, GemmConfig_::kScalarsPerLdsD, SharedStoreTileTraits::kSkew > SharedLoadTileTraits
The traits class to build the iterator to load from shared memory for D.
Definition: gemm_epilogue_traits.h:275
+
Definition: gemm_global_tile.h:366
static int const kW
The width of the cube.
Definition: shape.h:70
Delta_ Delta
The iterations strides.
Definition: gemm_epilogue_traits.h:94
GlobalStoreIteratorD_ GlobalStoreIteratorD
The iterator for D in global memory.
Definition: gemm_epilogue_traits.h:84
-
Copy< typename GlobalStoreIteratorD::Fragment > GlobalTransformerD
The transformer for D.
Definition: gemm_epilogue_traits.h:309
-
GlobalLoadIteratorC::Scalar ScalarC
The scalar for C.
Definition: gemm_epilogue_traits.h:107
+
Copy< typename GlobalStoreIteratorD::Fragment > GlobalTransformerD
The transformer for D.
Definition: gemm_epilogue_traits.h:326
+
GlobalLoadIteratorC::Scalar ScalarC
The scalar for C.
Definition: gemm_epilogue_traits.h:109
Implements efficient loading of the thread block-level tile from global memory and storing to shared ...
-
The params.
Definition: gemm_epilogue_traits.h:112
-
The shared memory to swizzle the data in the epilogue.
Definition: gemm_epilogue_traits.h:170
-
Copy< typename GlobalLoadIteratorC::Fragment > GlobalTransformerC
The transformer for C.
Definition: gemm_epilogue_traits.h:288
-
SharedStoreIteratorD::Params shared_store_iterator_d
The params for the D shared store iterator.
Definition: gemm_epilogue_traits.h:120
+
The params.
Definition: gemm_epilogue_traits.h:114
+
The shared memory to swizzle the data in the epilogue.
Definition: gemm_epilogue_traits.h:187
+
Copy< typename GlobalLoadIteratorC::Fragment > GlobalTransformerC
The transformer for C.
Definition: gemm_epilogue_traits.h:305
+
SharedStoreIteratorD::Params shared_store_iterator_d
The params for the D shared store iterator.
Definition: gemm_epilogue_traits.h:130
platform::remove_const< Scalar_ >::type Scalar
The scalar.
Definition: gemm_shared_tile.h:272
Defines abstractions for managing loading and storing fragments to shared memory in the efficient GEM...
Compute derived counted of a Layout Concept based class.
Definition: shape.h:79
Defines conversion operations among Fragments of different base type.
-
Functor::Scalar Scalar
We do not support 3D or 4D shapes.
Definition: gemm_epilogue_traits.h:102
+
Functor::Scalar Scalar
We do not support 3D or 4D shapes.
Definition: gemm_epilogue_traits.h:104
platform::remove_const< Scalar_ >::type Scalar
The scalar.
Definition: gemm_shared_tile.h:341
SharedStoreIteratorD_ SharedStoreIteratorD
The iterator to store D in shared memory.
Definition: gemm_epilogue_traits.h:86
-
GemmSharedStoreTileDTraits< typename Functor::ScalarAccum, typename GemmConfig_::OutputTile, typename GemmConfig_::Warps, typename GemmConfig_::MultiplyAdd::ThreadsPerWarp, GemmConfig_::kScalarsPerStsD, 128/sizeof(typename GemmConfig_::ScalarD)/GemmConfig_::kScalarsPerStsD/2 *GemmConfig_::kScalarsPerStsD > SharedStoreTileTraits
The traits class to build the iterator to store to shared memory for D.
Definition: gemm_epilogue_traits.h:227
+
GemmSharedStoreTileDTraits< typename Functor::ScalarAccum, typename GemmConfig_::OutputTile, typename GemmConfig_::Warps, typename GemmConfig_::MultiplyAdd::ThreadsPerWarp, GemmConfig_::kScalarsPerStsD, 128/sizeof(typename GemmConfig_::ScalarD)/GemmConfig_::kScalarsPerStsD/2 *GemmConfig_::kScalarsPerStsD > SharedStoreTileTraits
The traits class to build the iterator to store to shared memory for D.
Definition: gemm_epilogue_traits.h:244
Definition: gemm_shared_tile.h:270
-
An iterator implementing Tile Store Iterator Concept for storing a tile to memory.
Definition: tile_iterator.h:836
+
An iterator implementing Tile Store Iterator Concept for storing a tile to memory.
Definition: tile_iterator.h:841
diff --git a/docs/gemm__global__stream_8h.html b/docs/gemm__global__stream_8h.html index 5be9d29d..7448fab7 100644 --- a/docs/gemm__global__stream_8h.html +++ b/docs/gemm__global__stream_8h.html @@ -109,7 +109,7 @@ Namespaces
diff --git a/docs/gemm__global__stream_8h_source.html b/docs/gemm__global__stream_8h_source.html index d028554c..0b0387bd 100644 --- a/docs/gemm__global__stream_8h_source.html +++ b/docs/gemm__global__stream_8h_source.html @@ -76,66 +76,71 @@ $(function() {
gemm_global_stream.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
30 #pragma once
31 
32 #include "cutlass/coord.h"
33 #include "cutlass/convert.h"
36 
37 namespace cutlass {
38 namespace gemm {
39 
41 
42 template <
44  GemmOperand::Kind Operand,
46  typename LoadIterator_,
48  typename StoreIterator_,
50  typename Transformer_>
51 
54  static GemmOperand::Kind const kOperand = Operand;
56  typedef LoadIterator_ LoadIterator;
58  typedef Transformer_ Transformer;
60  typedef StoreIterator_ StoreIterator;
61 
63  typedef typename LoadIterator::Fragment FetchedFragment;
65  typedef typename Transformer::OutputFragment TransformedFragment;
68  "");
73  "");
74 
76  static MatrixLayout::Kind const kLayout = LoadIterator::kLayout;
78  typedef typename LoadIterator::Scalar Scalar;
80  typedef typename LoadIterator::Pointer Pointer;
82  typedef typename LoadIterator::Index Index;
84  typedef typename LoadIterator::Tile Tile;
85 
89 
92 
94  struct Params {
95  // The load iterator.
96  typename LoadIterator::Params load_iterator;
97  // The store iterator.
98  typename StoreIterator::Params store_iterator;
99  // Offset to residue.
101 
104  long long batch_stride,
105  Index ldm,
106  Index _offset_to_residue) {
107 
108  offset_to_residue = _offset_to_residue;
109  int error_code = load_iterator.initialize(pointer, batch_stride, ldm);
110  if (error_code) {
111  return error_code;
112  }
113  return store_iterator.initialize();
114  }
115  };
116 
120  struct SharedStorage {};
121 
122  //
123  // Static member functions
124  //
125 
127  CUTLASS_DEVICE static Coord<3> project_coordinate(Coord<3> const& coord, Index d_offset = 0) {
128  bool const kKstrided =
131  return make_Coord(
132  tile_coord[0] + d_offset, tile_coord[1], tile_coord[2] / LoadIterator::Tile::kC);
133  }
134 
136  CUTLASS_DEVICE GlobalLoadStream(
137  Params const& _params,
138  SharedStorage& shared_storage,
139  ThreadblockTileRef const& threadblock_tile_ref,
140  Coord<3> const bounds,
141  Coord<3> const& _threadblock_offset)
142  : params(_params),
144  threadblock_offset(project_coordinate(_threadblock_offset)),
146  project_coordinate(bounds, 1), /*multiplicant_bounds*/
147  project_coordinate(_threadblock_offset) /*threablock_offset*/),
148  transformer(),
149  store_iterator(params.store_iterator, threadblock_tile_ref.data())
150  {
151  load_iterator.initialize_predicates(multiplicand_bounds, threadblock_offset);
152  fetched_fragment.clear();
153  }
154 
155 
157  CUTLASS_DEVICE void copy() { load_iterator.load_post_increment(fetched_fragment); }
158 
160  CUTLASS_DEVICE void commit() {
162  store_iterator.store_post_increment(transformed_fragment);
163  store_iterator.inc_stage();
164  }
165 
167  CUTLASS_DEVICE void residue(Index k, bool skip_clear = false) {
168  load_iterator.residue(k);
169  if (!skip_clear) {
170  fetched_fragment.clear();
171  }
172  }
173 
175  CUTLASS_DEVICE void move_to_residue(Index k, Index kTileK) {
176  Index kResidue = k % kTileK;
177  if (kResidue) {
178  residue(kResidue);
179  }
180  load_iterator.add_pointer_offset(params.offset_to_residue * load_iterator.stride_advance());
181  }
182 
184  CUTLASS_DEVICE void rollback(void) {
185  load_iterator.initialize_predicates(multiplicand_bounds, threadblock_offset);
186 
187  int const kBlock = kOperand == GemmOperand::kA
188  ? (kLayout == MatrixLayout::kColumnMajor ? Tile::kH : Tile::kW)
189  : (kLayout == MatrixLayout::kRowMajor ? Tile::kH : Tile::kW);
190 
191  load_iterator.add_pointer_offset(-(params.offset_to_residue + kBlock) *
192  load_iterator.stride_advance());
193  }
194 
196  CUTLASS_DEVICE GlobalLoadStream &operator+=(Coord<3> const &offset) {
197  load_iterator += offset;
198  return *this;
199  }
200 
201  //
202  // Data members
203  //
204 
221 };
222 
224 } // namespace gemm
225 } // namespace cutlass
ThreadblockTileStorage::TensorRef ThreadblockTileRef
Tensor reference to threadblock tile.
Definition: gemm_global_stream.h:91
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
30 #pragma once
31 
32 #include "cutlass/coord.h"
33 #include "cutlass/convert.h"
36 
37 namespace cutlass {
38 namespace gemm {
39 
41 
42 template <
44  GemmOperand::Kind Operand,
46  typename LoadIterator_,
48  typename StoreIterator_,
50  typename Transformer_>
51 
54  static GemmOperand::Kind const kOperand = Operand;
56  typedef LoadIterator_ LoadIterator;
58  typedef Transformer_ Transformer;
60  typedef StoreIterator_ StoreIterator;
61 
63  typedef typename LoadIterator::Fragment FetchedFragment;
65  typedef typename Transformer::OutputFragment TransformedFragment;
68  "");
73  "");
74 
76  static MatrixLayout::Kind const kLayout = LoadIterator::kLayout;
78  typedef typename LoadIterator::Scalar Scalar;
80  typedef typename LoadIterator::Pointer Pointer;
82  typedef typename LoadIterator::Index Index;
84  typedef typename LoadIterator::LongIndex LongIndex;
86  typedef typename LoadIterator::Tile Tile;
87 
91 
94 
96  struct Params {
97  // The load iterator.
98  typename LoadIterator::Params load_iterator;
99 
102 
103  // The store iterator.
104  typename StoreIterator::Params store_iterator;
105 
106  // Offset to residue.
108 
109  // Offset to residue for the last partition
111 
114  LongIndex batch_stride_,
115  Index ldm,
116  Index offset_to_residue_,
117  Index offset_to_residue_last_partition_) {
118 
119  int error_code = load_iterator.initialize(pointer, ldm, ldm);
120  if (error_code) {
121  return error_code;
122  }
123 
124  batch_stride = batch_stride_;
125  offset_to_residue = offset_to_residue_;
126  offset_to_residue_last_partition = offset_to_residue_last_partition_;
127 
128  return store_iterator.initialize();
129  }
130 
131  CUTLASS_DEVICE Index get_offset_to_residue() {
132  if (blockIdx.z == gridDim.z - 1) { //last partition
134  }
135  else {
136  return offset_to_residue;
137  }
138  }
139  };
140 
144  struct SharedStorage {};
145 
146  //
147  // Static member functions
148  //
149 
151  CUTLASS_HOST_DEVICE static Coord<3> project_coordinate(Coord<3> const& coord, Index d_offset = 0) {
152  bool const kKstrided =
155  return make_Coord(
156  tile_coord[0] + d_offset, tile_coord[1], tile_coord[2] / LoadIterator::Tile::kC);
157  }
158 
160  CUTLASS_DEVICE GlobalLoadStream(
161  Params const& _params,
162  SharedStorage& shared_storage,
163  ThreadblockTileRef const& threadblock_tile_ref,
164  Coord<3> const bounds,
165  Coord<3> const& _threadblock_offset)
166  : params(_params),
167  threadblock_offset(project_coordinate(_threadblock_offset)),
170  transformer(),
171  store_iterator(params.store_iterator, threadblock_tile_ref.data()) {
172  load_iterator.initialize_predicates(multiplicand_bounds, threadblock_offset);
173  fetched_fragment.clear();
174  }
175 
176 
178  CUTLASS_DEVICE void copy() {
179  load_iterator.load_post_increment(fetched_fragment);
180  }
181 
183  CUTLASS_DEVICE void commit() {
185  store_iterator.store_post_increment(transformed_fragment);
186  store_iterator.inc_stage();
187  }
188 
190  CUTLASS_DEVICE void residue(Index k, bool skip_clear = false) {
191  load_iterator.residue(k);
192  if (!skip_clear) {
193  fetched_fragment.clear();
194  }
195  }
196 
198  CUTLASS_DEVICE void move_to_residue(Index k, Index kTileK) {
199  Index kResidue = k % kTileK;
200  if (kResidue) {
201  residue(kResidue);
202  Index this_offset_residue = params.get_offset_to_residue();
203  load_iterator.add_pointer_offset(this_offset_residue * load_iterator.stride_advance());
204  }
205  }
206 
208  CUTLASS_DEVICE void rollback(void) {
209  load_iterator.initialize_predicates(multiplicand_bounds, threadblock_offset);
210 
211  int const kBlock = kOperand == GemmOperand::kA
212  ? (kLayout == MatrixLayout::kColumnMajor ? Tile::kH : Tile::kW)
213  : (kLayout == MatrixLayout::kRowMajor ? Tile::kH : Tile::kW);
214  Index this_offset_residue = params.get_offset_to_residue();
215  load_iterator.add_pointer_offset(-(this_offset_residue + kBlock) *
216  load_iterator.stride_advance());
217  }
218 
220  CUTLASS_DEVICE GlobalLoadStream &operator+=(Coord<3> const &offset) {
221  load_iterator += offset;
222  return *this;
223  }
224 
226  CUTLASS_DEVICE GlobalLoadStream &add_batch_offset(int batch_id) {
227  load_iterator.add_pointer_offset(batch_id * params.batch_stride);
228  return *this;
229  }
230 
231  //
232  // Data members
233  //
234 
251 };
252 
254 } // namespace gemm
255 } // namespace cutlass
ThreadblockTileStorage::TensorRef ThreadblockTileRef
Tensor reference to threadblock tile.
Definition: gemm_global_stream.h:93
LoadIterator::Pointer Pointer
The pointer.
Definition: gemm_global_stream.h:80
-
LoadIterator load_iterator
The iterator.
Definition: gemm_global_stream.h:212
+
LoadIterator load_iterator
The iterator.
Definition: gemm_global_stream.h:242
Definition: convert.h:33
-
StoreIterator store_iterator
The store iterator.
Definition: gemm_global_stream.h:220
-
Params params
Parameters.
Definition: gemm_global_stream.h:206
+
static CUTLASS_HOST_DEVICE Coord< 3 > project_coordinate(Coord< 3 > const &coord, Index d_offset=0)
Maps a coordinate in the GEMM&#39;s (K, N, M) coordinate system to global memory.
Definition: gemm_global_stream.h:151
+
StoreIterator store_iterator
The store iterator.
Definition: gemm_global_stream.h:250
+
Params params
Parameters.
Definition: gemm_global_stream.h:236
Defines iterators for efficiently loading and storing to global memory.
std::is_same (false specialization)
Definition: platform.h:420
-
TensorRef< Scalar, 4 > TensorRef
Defines the tensor reference for this allocation.
Definition: tile_allocation.h:62
+
TensorRef< Scalar, 4 > TensorRef
Defines the tensor reference for this allocation.
Definition: tile_allocation.h:63
static GemmOperand::Kind const kOperand
Indicates the type of GEMM operand.
Definition: gemm_global_stream.h:54
-
CUTLASS_DEVICE GlobalLoadStream & operator+=(Coord< 3 > const &offset)
Adds a Coord<3> to the underlying global load iterator.
Definition: gemm_global_stream.h:196
-
CUTLASS_DEVICE void copy()
Load the data from shared memory to the fetch fragment.
Definition: gemm_global_stream.h:157
+
CUTLASS_DEVICE GlobalLoadStream & operator+=(Coord< 3 > const &offset)
Adds a Coord<3> to the underlying global load iterator.
Definition: gemm_global_stream.h:220
+
CUTLASS_DEVICE void copy()
Load the data from shared memory to the fetch fragment.
Definition: gemm_global_stream.h:178
A Coord is a coordinate of arbitrary rank into a tensor or matrix.
-
Coord< 3 > multiplicand_bounds
Multiplicand bounds.
Definition: gemm_global_stream.h:208
-
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:318
+
Coord< 3 > multiplicand_bounds
Multiplicand bounds.
Definition: gemm_global_stream.h:240
+
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:368
+
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
static MatrixLayout::Kind const kLayout
Make sure the transformed fragment is the same as the store fragment.
Definition: gemm_global_stream.h:76
-
StoreIterator::Params store_iterator
Definition: gemm_global_stream.h:98
-
FetchedFragment fetched_fragment
The fragment to fetch from shared memory.
Definition: gemm_global_stream.h:214
-
CUTLASS_HOST_DEVICE int initialize(Pointer pointer, long long batch_stride, Index ldm, Index _offset_to_residue)
Setup the params.
Definition: gemm_global_stream.h:103
+
StoreIterator::Params store_iterator
Definition: gemm_global_stream.h:104
+
LoadIterator::LongIndex LongIndex
The index.
Definition: gemm_global_stream.h:84
+
FetchedFragment fetched_fragment
The fragment to fetch from shared memory.
Definition: gemm_global_stream.h:244
+
CUTLASS_HOST_DEVICE int initialize(Pointer pointer, LongIndex batch_stride_, Index ldm, Index offset_to_residue_, Index offset_to_residue_last_partition_)
Setup the params.
Definition: gemm_global_stream.h:113
Definition: gemm_global_stream.h:52
-
Definition: gemm_global_stream.h:120
+
Definition: gemm_global_stream.h:144
LoadIterator::Scalar Scalar
The scalar type of the iterator.
Definition: gemm_global_stream.h:78
-
CUTLASS_DEVICE void residue(Index k, bool skip_clear=false)
Execute the residue code.
Definition: gemm_global_stream.h:167
-
TransformedFragment transformed_fragment
The fragment to convert the data after it has been fetched from shared memory.
Definition: gemm_global_stream.h:218
-
Definition: matrix_traits.h:159
+
CUTLASS_DEVICE void residue(Index k, bool skip_clear=false)
Execute the residue code.
Definition: gemm_global_stream.h:190
+
TransformedFragment transformed_fragment
The fragment to convert the data after it has been fetched from shared memory.
Definition: gemm_global_stream.h:248
Defines a fragment based on a Shape<> template.
-
Index offset_to_residue
Definition: gemm_global_stream.h:100
+
Index offset_to_residue
Definition: gemm_global_stream.h:107
TransformedFragment Fragment
Make sure the fragments match.
Definition: gemm_global_stream.h:68
+
CUTLASS_DEVICE GlobalLoadStream & add_batch_offset(int batch_id)
Adds an offset based on batch stride.
Definition: gemm_global_stream.h:226
LoadIterator_ LoadIterator
The load iterator.
Definition: gemm_global_stream.h:56
Definition: gemm_operand.h:67
-
CUTLASS_DEVICE void commit()
Commit the data.
Definition: gemm_global_stream.h:160
+
Index offset_to_residue_last_partition
Definition: gemm_global_stream.h:110
+
CUTLASS_DEVICE void commit()
Commit the data.
Definition: gemm_global_stream.h:183
#define CUTLASS_HOST_DEVICE
Definition: cutlass.h:46
-
Class for storing a tile in memory and accessing it through a tensor ref.
Definition: tile_allocation.h:41
-
Transformer transformer
The transformer.
Definition: gemm_global_stream.h:216
+
Class for storing a tile in memory and accessing it through a tensor ref.
Definition: tile_allocation.h:42
+
Transformer transformer
The transformer.
Definition: gemm_global_stream.h:246
#define static_assert(__e, __m)
Definition: platform.h:153
+
LongIndex batch_stride
Batch stride in global memory.
Definition: gemm_global_stream.h:101
+
Definition: matrix_traits.h:159
Definition: gemm_operand.h:96
+
Definition: matrix_traits.h:159
StoreIterator_ StoreIterator
The store iterator to write to shared memory.
Definition: gemm_global_stream.h:60
-
Definition: matrix_traits.h:159
-
TileAllocation< typename StoreIterator::Scalar, typename StoreIterator::Tile > ThreadblockTileStorage
Shared memory allocation for the tile.
Definition: gemm_global_stream.h:88
-
LoadIterator::Params load_iterator
Definition: gemm_global_stream.h:96
-
The params.
Definition: gemm_global_stream.h:94
+
TileAllocation< typename StoreIterator::Scalar, typename StoreIterator::Tile > ThreadblockTileStorage
Shared memory allocation for the tile.
Definition: gemm_global_stream.h:90
+
LoadIterator::Params load_iterator
Definition: gemm_global_stream.h:98
+
The params.
Definition: gemm_global_stream.h:96
Transformer_ Transformer
The transformer.
Definition: gemm_global_stream.h:58
-
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
-
Coord< 3 > threadblock_offset
Threadblock offset.
Definition: gemm_global_stream.h:210
+
Coord< 3 > threadblock_offset
Threadblock offset.
Definition: gemm_global_stream.h:238
LoadIterator::Index Index
The index.
Definition: gemm_global_stream.h:82
-
static CUTLASS_DEVICE Coord< 3 > project_coordinate(Coord< 3 > const &coord, Index d_offset=0)
Maps a coordinate in the GEMM&#39;s (K, N, M) coordinate system to global memory.
Definition: gemm_global_stream.h:127
Kind
Definition: matrix_traits.h:357
Definition: matrix_traits.h:357
-
CUTLASS_DEVICE void move_to_residue(Index k, Index kTileK)
Move to the residue portion.
Definition: gemm_global_stream.h:175
+
CUTLASS_DEVICE void move_to_residue(Index k, Index kTileK)
Move to the residue portion.
Definition: gemm_global_stream.h:198
LoadIterator::Fragment FetchedFragment
The fragment that is copied from shared memory.
Definition: gemm_global_stream.h:63
Transformer::OutputFragment TransformedFragment
The fragment that is obtained after the transformation by the transformer.
Definition: gemm_global_stream.h:65
-
CUTLASS_DEVICE GlobalLoadStream(Params const &_params, SharedStorage &shared_storage, ThreadblockTileRef const &threadblock_tile_ref, Coord< 3 > const bounds, Coord< 3 > const &_threadblock_offset)
Ctor.
Definition: gemm_global_stream.h:136
+
CUTLASS_DEVICE GlobalLoadStream(Params const &_params, SharedStorage &shared_storage, ThreadblockTileRef const &threadblock_tile_ref, Coord< 3 > const bounds, Coord< 3 > const &_threadblock_offset)
Ctor.
Definition: gemm_global_stream.h:160
Defines conversion operations among Fragments of different base type.
-
LoadIterator::Tile Tile
The tile.
Definition: gemm_global_stream.h:84
-
CUTLASS_DEVICE void rollback(void)
Rollback to the beginning of the first tile.
Definition: gemm_global_stream.h:184
+
CUTLASS_DEVICE Index get_offset_to_residue()
Definition: gemm_global_stream.h:131
+
LoadIterator::Tile Tile
The tile.
Definition: gemm_global_stream.h:86
+
CUTLASS_DEVICE void rollback(void)
Rollback to the beginning of the first tile.
Definition: gemm_global_stream.h:208
diff --git a/docs/gemm__global__tile_8h.html b/docs/gemm__global__tile_8h.html index 2618ca58..885b56b7 100644 --- a/docs/gemm__global__tile_8h.html +++ b/docs/gemm__global__tile_8h.html @@ -128,7 +128,7 @@ Namespaces
diff --git a/docs/gemm__global__tile_8h_source.html b/docs/gemm__global__tile_8h_source.html index 8aac5bbc..c88c5cc8 100644 --- a/docs/gemm__global__tile_8h_source.html +++ b/docs/gemm__global__tile_8h_source.html @@ -76,169 +76,170 @@ $(function() {
gemm_global_tile.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
28 #pragma once
29 
30 #include "cutlass/coord.h"
31 #include "cutlass/util/platform.h"
32 
34 #include "cutlass/matrix_traits.h"
36 #include "cutlass/reshape_tile.h"
37 #include "cutlass/tile_iterator.h"
38 
39 namespace cutlass {
40 namespace gemm {
41 
43 
44 // The following functor reshapes a tile of threads to match a tile of data. The idea is that when
45 // the user wants to build the iterator traits, he/she may want to specify the tile independently
46 // from the number of scalars loaded/stored per instruction. For example, in the row-major version
47 // with a tile of size 128x8 - the user may want to that the iterator works with 32x8 threads if
48 // each thread loads 1 scalar per LDG. If the user changes to 4 scalars per LDG, then the tile of
49 // threads has to change. The code below detects that and correct the code automatically - it is
50 // a helper when the user does not specify the right configuration.
51 
52 template <typename Tile_, typename Threads_, bool = (Tile_::kW < Threads_::kW)>
53 struct ReshapeThreads {
54  typedef Threads_ Threads;
55 };
56 
57 template <typename Tile_, typename Threads_>
59  typedef Shape<Threads_::kD, Threads_::kH * Threads_::kW / Tile_::kW, Tile_::kW, 1> Threads;
60 };
61 
63 
64 template <GemmOperand::Kind kOperand_,
65  MatrixLayout::Kind kLayout_,
66  typename Scalar_,
67  typename Tile_,
68  typename Threads_,
69  int kAccessSize_>
72  static GemmOperand::Kind const kOperand = kOperand_;
74  static MatrixLayout::Kind const kLayout = kLayout_;
78  typedef Scalar_* Pointer;
80  static int const kAccessSize = kAccessSize_;
84  typedef Tile_ Tile;
93 
97  typedef Shape<1,
98  VectorizedTile::kH / Threads::kH,
99  VectorizedTile::kW / Threads::kW,
100  VectorizedTile::kC / kAccessSize>
102 
104 
106  struct ThreadOffset {
109  int thread_offset_h = threadIdx.x / Threads::kW * ThreadsDelta::kH;
110  int thread_offset_w = threadIdx.x % Threads::kW * ThreadsDelta::kW;
111 
112  return make_Coord(0, thread_offset_h, thread_offset_w, 0);
113  }
114  };
115 };
116 
118 
119 template <typename Scalar_, typename Tile_, typename Threads_, int kStrideH_, int kAccessSize_>
120 struct GemmGlobalTileCdTraits : public GemmGlobalTileTraits<GemmOperand::kC,
121  MatrixLayout::kColumnMajor,
122  Scalar_,
123  Tile_,
124  Threads_,
125  kAccessSize_> {
129  Scalar_,
130  Tile_,
131  Threads_,
132  kAccessSize_>
134 
136  static int const kStrideH = kStrideH_;
139 
140  typedef typename Base::Iterations Iterations;
141 
142  typedef typename Base::Threads Threads;
143 
145 
147 
149  struct ThreadOffset {
152  int thread_offset_h = threadIdx.x / Threads::kW * kStrideH * Iterations::kH;
153  int thread_offset_w = threadIdx.x % Threads::kW * ThreadsDelta::kW;
154 
155  return make_Coord(0, thread_offset_h, thread_offset_w, 0);
156  }
157  };
158 };
159 
161 
162 template <typename TileTraits_, typename Index_ = int>
164  : public TileLoadIterator<TileTraits_,
165  typename TileTraits_::Scalar,
166  TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH
167  : IteratorAdvance::kW,
168  MemorySpace::kGlobal,
169  Index_> {
172  typedef TileLoadIterator<TileTraits_,
173  typename TileTraits_::Scalar,
174  TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH
177  Index_>
180  static MatrixLayout::Kind const kLayout = TileTraits_::kLayout;
182  typedef typename TileTraits_::Tile Tile;
184  typedef typename Base::Fragment Fragment;
186  typedef typename TileTraits_::Scalar Scalar;
188  typedef typename TileTraits_::Threads Threads;
190  typedef Index_ Index;
192  typedef typename TileTraits_::ThreadOffset ThreadOffset;
195 
197 
199  typedef typename Base::Params BaseParams;
200 
201  struct Params : public BaseParams {
204  long long stride_d,
205  Index stride_h) {
206  Index inc_d = 0;
207  Index inc_advance = 0;
208  // Move by some columns for each iteration in the H dimension.
209  Index inc_h = Base::Delta::kH * stride_h;
210 
211  // Move by some more columns in the number of iterations if the D dimension is > 1.
212  if (Base::Delta::kD > 0) {
213  inc_d = Base::Delta::kD * stride_h - (Base::Iterations::kH - 1) * inc_h;
214  }
215 
216  // Move to the beginning of the next iteration.
217  if (kAdvance == IteratorAdvance::kH && Base::Delta::kD > 0) {
218  inc_advance = inc_d;
219  } else if (kAdvance == IteratorAdvance::kH) {
220  inc_advance = inc_h;
221  } else if (Base::Delta::kD > 0) {
222  inc_advance = (Base::Iterations::kW + 0) * ShapeCount<typename Base::Delta>::kWc -
223  (Base::Iterations::kH - 1) * inc_h -
224  (Base::Iterations::kD - 1) * Base::Delta::kD * stride_h;
225  } else {
226  inc_advance = (Base::Iterations::kW + 0) * ShapeCount<typename Base::Delta>::kWc -
227  (Base::Iterations::kH - 1) * inc_h;
228  }
229 
231  ptr, stride_d, stride_h, 1, inc_d, inc_h, 0, inc_advance);
232  return 0;
233  }
234  };
235 
242 
243  CUTLASS_HOST_DEVICE void initialize_predicates(const Coord<3>& bounds, const Coord<3>& block_offset) {
244  // Setup the masks to control loads.
245  predicates.fill(0);
246 
247  // Fill in the bits of the predicate vector.
248  for (int d = 0; d < Base::Iterations::kD; ++d) {
249  for (int h = 0; h < Base::Iterations::kH; ++h) {
250  for (int w = 0; w < Base::Iterations::kW; ++w) {
251  for (int c = 0; c < Base::Iterations::kC; ++c) {
252  bool flag = w * Base::Delta::kW + thread_offset[2] + block_offset[2] < bounds[2];
253  if (kAdvance == IteratorAdvance::kH) {
254  flag =
255  flag &&
256  (h * Base::Delta::kH + d * Base::Delta::kD) + thread_offset[1] + block_offset[1] <
257  bounds[1];
258  } else {
259  flag = flag && (h * Base::Delta::kH) + thread_offset[1] + block_offset[1] < bounds[1];
260  }
261  int const bit = ComputeOffsetFromShape<typename Base::Iterations>::get(d, h, w, c);
262  predicates.set(bit, flag);
263  }
264  }
265  }
266  }
267  }
268 
271  const Coord<3>& bounds,
272  const Coord<3>& threadblock_offset,
273  ThreadOffset thread_offset_func = ThreadOffset())
274  : params(_params) {
275  thread_offset = thread_offset_func();
276  // Setup the pointer.
277  params.pointer += ((threadblock_offset[1] + thread_offset[1]) * params.stride_h +
278  (threadblock_offset[2] + thread_offset[2]));
279 
280  }
281 
290 
293  typename Base::AccessType& value, int d, int h, int w, int c) const {
294  int const offset =
296  Load<Scalar,
300  typename Base::FragmentElement,
301  Base::Tile::kW,
302  Base::kAccessSize * sizeof(Scalar)>::load(value, params.pointer, offset);
303  }
304 
307  // The coordinates of the thread.
308  Index block_h = thread_offset[1];
309  // The contiguous dimension.
310  Index block_w = thread_offset[2];
311 
312  // Update the predicate vector.
313  for (int d = 0; d < Base::Iterations::kD; ++d) {
314  for (int h = 0; h < Base::Iterations::kH; ++h) {
315  for (int w = 0; w < Base::Iterations::kW; ++w) {
316  for (int c = 0; c < Base::Iterations::kC; ++c) {
317  Index offset = 0;
318  if (kAdvance == IteratorAdvance::kH) {
319  offset += block_h + h * Base::Delta::kH + d * Base::Delta::kD;
320  } else {
321  offset += block_w + w * Base::Delta::kW;
322  }
323 
324  int const bit = ComputeOffsetFromShape<typename Base::Iterations>::get(d, h, w, c);
325  if (offset >= k) {
326  predicates.set(bit, false);
327  }
328  }
329  }
330  }
331  }
332  }
333 
335  CUTLASS_HOST_DEVICE bool valid(int d, int h, int w, int c) const {
336  int const bit = ComputeOffsetFromShape<typename Base::Iterations>::get(d, h, w, c);
337  return predicates[bit];
338  }
339 
342 
343  long long _offset = offset.template dot<long long>(
345  );
346 
347  params.pointer += _offset;
348  return *this;
349  }
350 
352 
354  Index stride = params.stride_h;
355  if (kAdvance == IteratorAdvance::kW) {
356  stride = params.stride_w;
357  }
358  return stride;
359  }
360 
361  template <typename Fragment>
363  typename Base::FragmentIterator frag_iterator(fragment);
364  for (int d = 0; d < Base::Iterations::kD; ++d) {
365  for (int h = 0; h < Base::Iterations::kH; ++h) {
366  for (int w = 0; w < Base::Iterations::kW; ++w) {
367  for (int c = 0; c < Base::Iterations::kC; ++c) {
368  if (valid(d, h, w, c)) {
369  load_element(
370  reinterpret_cast<typename Base::AccessType&>(frag_iterator.at(d, h, w, c)),
371  d,
372  h,
373  w,
374  c);
375  }
376  }
377  if (w < Base::Iterations::kW - 1) {
378  inc_w();
379  }
380  }
381  if (h < Base::Iterations::kH - 1) {
382  inc_h();
383  }
384  }
385  if (d < Base::Iterations::kD - 1) {
386  inc_d();
387  }
388  }
389  inc_advance();
390  }
391 };
392 
394 
395 template <typename TileTraits_, typename Index_ = int>
396 struct GemmGlobalIteratorCd : public TileIteratorBase<TileTraits_,
397  typename TileTraits_::Scalar,
398  IteratorAdvance::kH,
399  MemorySpace::kGlobal,
400  Index_> {
404  typedef TileIteratorBase<TileTraits_,
405  typename TileTraits_::Scalar,
408  Index_>
410 
412  static MatrixLayout::Kind const kLayout = TileTraits_::kLayout;
413 
415  typedef typename TileTraits_::Scalar Scalar;
417  typedef typename TileTraits_::Pointer Pointer;
419  typedef typename TileTraits_::Threads Threads;
421  typedef Index_ Index;
423  typedef typename TileTraits_::ThreadOffset ThreadOffset;
424 
426  struct Params {
430  long long stride_d;
439 
442  long long batch_stride,
443  Index ldm,
444  Index bound,
445  Index epilogue_stride_w,
446  Index epilogue_delta_w) {
447  // The pointer.
448  this->pointer = pointer;
449  // Stride per batch
450  stride_d = batch_stride;
451  // Each column of the matrix.
452  stride_h = TileTraits_::ThreadsDelta::kH * ldm;
453  // Each thread output 1 column per iteration. The stride between columns is given by the
454  // number of scalars that are loaded per LDS for B.
455  inc_h = ldm * TileTraits_::kStrideH;
456  inc_advance =
457  (ldm - ldm * TileTraits_::kStrideH * (Base::Iterations::kH - 1)) + epilogue_stride_w;
458 
459  predicate_offset = bound;
460  predicate_inc_h = TileTraits_::kStrideH;
462  -((TileTraits_::kStrideH * (Base::Iterations::kH - 1) - 1) + epilogue_delta_w);
463 
464  return 0;
465  }
466  };
467 
474 
477  const Coord<3>& bounds,
478  const Coord<3>& block_offset,
479  ThreadOffset thread_offset_func = ThreadOffset())
480  : params(_params) {
481  thread_offset = thread_offset_func();
482  // Prepare the vector of predicates.
483  for (int i = 0; i < Base::Iterations::kW; ++i) {
484  predicates.set(i, thread_offset[2] + i * Base::Delta::kW < bounds[2]);
485  }
486  }
487 
490  const Coord<3>& bounds,
491  const Coord<3>& block,
492  int offset = 0,
493  int pred_offset = 0,
494  ThreadOffset thread_offset_func = ThreadOffset())
495  : params(_params) {
496  thread_offset = thread_offset_func();
497  // Each warp works on a different column of the tile.
498  int const h = thread_offset[1] + block[1];
499  // Each lane writes a different element.
500  int const w = thread_offset[2] + block[2];
501  // Setup the pointer.
502  params.pointer += ((h * params.stride_h + w) + offset);
503 
504  // Prepare the vector of predicates.
505  for (int i = 0; i < Base::Iterations::kW; ++i) {
506  predicates.set(i, w + i * Base::Delta::kW < bounds[2]);
507  }
508  params.predicate_offset -= (h + pred_offset);
509  }
510 
519  }
526  }
527 
530  long long _offset = offset.template dot<long long>(
532  );
533  params.pointer += _offset;
534  return *this;
535  }
536 
539  typename Base::AccessType& value, int d, int h, int w, int c) const {
540  int const offset =
542  Load<Scalar,
546  typename Base::FragmentElement,
547  Base::Tile::kW,
548  Base::kAccessSize * sizeof(Scalar)>::load(value, params.pointer, offset);
549  }
550 
553  typename Base::AccessType const& value, int d, int h, int w, int c) {
554  int const offset =
556  Store<Scalar,
560  typename Base::FragmentElement,
561  Base::Tile::kW,
562  Base::kAccessSize * sizeof(Scalar)>::store(value, params.pointer, offset);
563  }
564 
566  CUTLASS_HOST_DEVICE bool valid(int d, int h, int w, int c) const {
567  return predicates.at(w) && params.predicate_offset > 0;
568  }
569 
572 
574  template <typename Fragment>
576  typename Base::FragmentIterator frag_iterator(fragment);
577  for (int d = 0; d < Base::Iterations::kD; ++d) {
578  for (int h = 0; h < Base::Iterations::kH; ++h) {
579  for (int w = 0; w < Base::Iterations::kW; ++w) {
580  for (int c = 0; c < Base::Iterations::kC; ++c) {
581  if (valid(d, h, w, c)) {
582  load_element(
583  reinterpret_cast<typename Base::AccessType&>(frag_iterator.at(d, h, w, c)),
584  d,
585  h,
586  w,
587  c);
588  }
589  }
590  if (w < Base::Iterations::kW - 1) {
591  inc_w();
592  }
593  }
594  if (h < Base::Iterations::kH - 1) {
595  inc_h();
596  }
597  }
598  if (d < Base::Iterations::kD - 1) {
599  inc_d();
600  }
601  }
602  inc_advance();
603  }
604 
605  template <typename Fragment>
607  typename Base::FragmentIterator frag_iterator(fragment);
608  for (int d = 0; d < Base::Iterations::kD; ++d) {
609  for (int h = 0; h < Base::Iterations::kH; ++h) {
610  for (int w = 0; w < Base::Iterations::kW; ++w) {
611  for (int c = 0; c < Base::Iterations::kC; ++c) {
612  if (valid(d, h, w, c)) {
614  reinterpret_cast<typename Base::AccessType&>(frag_iterator.at(d, h, w, c)),
615  d,
616  h,
617  w,
618  c);
619  }
620  }
621  if (w < Base::Iterations::kW - 1) {
622  inc_w();
623  }
624  }
625  if (h < Base::Iterations::kH - 1) {
626  inc_h();
627  }
628  }
629  if (d < Base::Iterations::kD - 1) {
630  inc_d();
631  }
632  }
633  inc_advance();
634  }
635 };
636 
638 
639 } // namespace gemm
640 } // namespace cutlass
Definition: gemm_global_tile.h:120
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
28 #pragma once
29 
30 #include "cutlass/coord.h"
31 #include "cutlass/util/platform.h"
32 
34 #include "cutlass/matrix_traits.h"
36 #include "cutlass/reshape_tile.h"
37 #include "cutlass/tile_iterator.h"
38 
39 namespace cutlass {
40 namespace gemm {
41 
43 
44 // The following functor reshapes a tile of threads to match a tile of data. The idea is that when
45 // the user wants to build the iterator traits, he/she may want to specify the tile independently
46 // from the number of scalars loaded/stored per instruction. For example, in the row-major version
47 // with a tile of size 128x8 - the user may want to that the iterator works with 32x8 threads if
48 // each thread loads 1 scalar per LDG. If the user changes to 4 scalars per LDG, then the tile of
49 // threads has to change. The code below detects that and correct the code automatically - it is
50 // a helper when the user does not specify the right configuration.
51 
52 template <typename Tile_, typename Threads_, bool = (Tile_::kW < Threads_::kW)>
53 struct ReshapeThreads {
54  typedef Threads_ Threads;
55 };
56 
57 template <typename Tile_, typename Threads_>
59  typedef Shape<Threads_::kD, Threads_::kH * Threads_::kW / Tile_::kW, Tile_::kW, 1> Threads;
60 };
61 
63 
64 template <GemmOperand::Kind kOperand_,
65  MatrixLayout::Kind kLayout_,
66  typename Scalar_,
67  typename Tile_,
68  typename Threads_,
69  int kAccessSize_>
72  static GemmOperand::Kind const kOperand = kOperand_;
74  static MatrixLayout::Kind const kLayout = kLayout_;
78  typedef Scalar_* Pointer;
80  static int const kAccessSize = kAccessSize_;
84  typedef Tile_ Tile;
93 
97  typedef Shape<1,
98  VectorizedTile::kH / Threads::kH,
99  VectorizedTile::kW / Threads::kW,
100  VectorizedTile::kC / kAccessSize>
102 
104 
106  struct ThreadOffset {
109  int thread_offset_h = threadIdx.x / Threads::kW * ThreadsDelta::kH;
110  int thread_offset_w = threadIdx.x % Threads::kW * ThreadsDelta::kW;
111 
112  return make_Coord(0, thread_offset_h, thread_offset_w, 0);
113  }
114  };
115 };
116 
118 
119 template <typename Scalar_, typename Tile_, typename Threads_, int kStrideH_, int kAccessSize_>
120 struct GemmGlobalTileCdTraits : public GemmGlobalTileTraits<GemmOperand::kC,
121  MatrixLayout::kColumnMajor,
122  Scalar_,
123  Tile_,
124  Threads_,
125  kAccessSize_> {
129  Scalar_,
130  Tile_,
131  Threads_,
132  kAccessSize_>
134 
136  static int const kStrideH = kStrideH_;
139 
140  typedef typename Base::Iterations Iterations;
141 
142  typedef typename Base::Threads Threads;
143 
145 
147 
149  struct ThreadOffset {
152  int thread_offset_h = threadIdx.x / Threads::kW * kStrideH * Iterations::kH;
153  int thread_offset_w = threadIdx.x % Threads::kW * ThreadsDelta::kW;
154 
155  return make_Coord(0, thread_offset_h, thread_offset_w, 0);
156  }
157  };
158 };
159 
161 
162 template <typename TileTraits_, typename Index_ = int>
164  : public TileLoadIterator<TileTraits_,
165  typename TileTraits_::Scalar,
166  TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH
167  : IteratorAdvance::kW,
168  MemorySpace::kGlobal,
169  Index_> {
172  typedef TileLoadIterator<TileTraits_,
173  typename TileTraits_::Scalar,
174  TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH
177  Index_>
180  static MatrixLayout::Kind const kLayout = TileTraits_::kLayout;
182  typedef typename TileTraits_::Tile Tile;
184  typedef typename Base::Fragment Fragment;
186  typedef typename TileTraits_::Scalar Scalar;
188  typedef typename TileTraits_::Threads Threads;
190  typedef Index_ Index;
192  typedef long long LongIndex;
194  typedef typename TileTraits_::ThreadOffset ThreadOffset;
197 
199 
201  typedef typename Base::Params BaseParams;
202 
203  struct Params : public BaseParams {
206  Index stride_d,
207  Index stride_h) {
209  }
210  };
211 
218 
219  CUTLASS_HOST_DEVICE void initialize_predicates(const Coord<3>& bounds, const Coord<3>& block_offset) {
220  // Setup the masks to control loads.
221  predicates.fill(0);
222 
223  // Fill in the bits of the predicate vector.
224  for (int d = 0; d < Base::Iterations::kD; ++d) {
225  for (int h = 0; h < Base::Iterations::kH; ++h) {
226  for (int w = 0; w < Base::Iterations::kW; ++w) {
227  for (int c = 0; c < Base::Iterations::kC; ++c) {
228  bool flag = w * Base::Delta::kW + thread_offset[2] + block_offset[2] < bounds[2];
229  if (kAdvance == IteratorAdvance::kH) {
230  flag =
231  flag &&
232  (h * Base::Delta::kH + d * Base::Delta::kD) + thread_offset[1] + block_offset[1] <
233  bounds[1];
234  } else {
235  flag = flag && (h * Base::Delta::kH) + thread_offset[1] + block_offset[1] < bounds[1];
236  }
237  int const bit = ComputeOffsetFromShape<typename Base::Iterations>::get(d, h, w, c);
238  predicates.set(bit, flag);
239  }
240  }
241  }
242  }
243  }
244 
247  const Coord<3>& threadblock_offset,
248  ThreadOffset thread_offset_func = ThreadOffset())
249  : params(_params) {
250  thread_offset = thread_offset_func();
251  // Setup the pointer.
252  params.pointer += ((threadblock_offset[1] + thread_offset[1]) * params.stride_h +
253  (threadblock_offset[2] + thread_offset[2]));
254 
255  }
256 
265 
268  typename Base::AccessType& value, int d, int h, int w, int c) const {
269  int const offset =
271  Load<Scalar,
275  typename Base::FragmentElement,
276  Base::Tile::kW,
277  Base::kAccessSize * sizeof(Scalar)>::load(value, params.pointer, offset);
278  }
279 
282  // Update the predicate vector.
283  for (int d = 0; d < Base::Iterations::kD; ++d) {
284  for (int h = 0; h < Base::Iterations::kH; ++h) {
285  for (int w = 0; w < Base::Iterations::kW; ++w) {
286  for (int c = 0; c < Base::Iterations::kC; ++c) {
287  Index offset = 0;
288  if (kAdvance == IteratorAdvance::kH) {
289  offset += thread_offset[1] + h * Base::Delta::kH + d * Base::Delta::kD;
290  } else {
291  offset += thread_offset[2] + w * Base::Delta::kW;
292  }
293 
294  int const bit = ComputeOffsetFromShape<typename Base::Iterations>::get(d, h, w, c);
295  if (offset >= k) {
296  predicates.set(bit, false);
297  }
298  }
299  }
300  }
301  }
302  }
303 
305  CUTLASS_HOST_DEVICE bool valid(int d, int h, int w, int c) const {
306  int const bit = ComputeOffsetFromShape<typename Base::Iterations>::get(d, h, w, c);
307  return predicates[bit];
308  }
309 
312 
313  LongIndex _offset = offset.template dot<LongIndex>(
315  );
316 
317  params.pointer += _offset;
318  return *this;
319  }
320 
322 
324  Index stride = params.stride_h;
325  if (kAdvance == IteratorAdvance::kW) {
326  stride = params.stride_w;
327  }
328  return stride;
329  }
330 
331  template <typename Fragment>
333  typename Base::FragmentIterator frag_iterator(fragment);
334  for (int d = 0; d < Base::Iterations::kD; ++d) {
335  for (int h = 0; h < Base::Iterations::kH; ++h) {
336  for (int w = 0; w < Base::Iterations::kW; ++w) {
337  for (int c = 0; c < Base::Iterations::kC; ++c) {
338  if (valid(d, h, w, c)) {
339  load_element(
340  reinterpret_cast<typename Base::AccessType&>(frag_iterator.at(d, h, w, c)),
341  d,
342  h,
343  w,
344  c);
345  }
346  }
347  if (w < Base::Iterations::kW - 1) {
348  inc_w();
349  }
350  }
351  if (h < Base::Iterations::kH - 1) {
352  inc_h();
353  }
354  }
355  if (d < Base::Iterations::kD - 1) {
356  inc_d();
357  }
358  }
359  inc_advance();
360  }
361 };
362 
364 
365 template <typename TileTraits_, typename Index_ = int>
366 struct GemmGlobalIteratorCd : public TileIteratorBase<TileTraits_,
367  typename TileTraits_::Scalar,
368  IteratorAdvance::kH,
369  MemorySpace::kGlobal,
370  Index_> {
374  typedef TileIteratorBase<TileTraits_,
375  typename TileTraits_::Scalar,
378  Index_>
380 
382  static MatrixLayout::Kind const kLayout = TileTraits_::kLayout;
383 
385  typedef typename TileTraits_::Scalar Scalar;
387  typedef typename TileTraits_::Pointer Pointer;
389  typedef typename TileTraits_::Threads Threads;
391  typedef Index_ Index;
393  typedef long long LongIndex;
395  typedef typename TileTraits_::ThreadOffset ThreadOffset;
396 
398  struct Params {
402  long long stride_d;
411 
414  int stride_d_,
415  Index ldm,
416  Index bound,
417  Index epilogue_stride_w,
418  Index epilogue_delta_w) {
419  // The pointer.
420  this->pointer = pointer;
421  // Stride per batch
422  stride_d = stride_d_;
423  // Each column of the matrix.
424  stride_h = TileTraits_::ThreadsDelta::kH * ldm;
425  // Each thread output 1 column per iteration. The stride between columns is given by the
426  // number of scalars that are loaded per LDS for B.
427  inc_h = ldm * TileTraits_::kStrideH;
428  inc_advance =
429  (ldm - ldm * TileTraits_::kStrideH * (Base::Iterations::kH - 1)) + epilogue_stride_w;
430 
431  predicate_offset = bound;
432  predicate_inc_h = TileTraits_::kStrideH;
434  -((TileTraits_::kStrideH * (Base::Iterations::kH - 1) - 1) + epilogue_delta_w);
435 
436  return 0;
437  }
438 
439  CUTLASS_HOST_DEVICE int initialize(Pointer pointer, long long _stride_d, Index _stride_h,
440  Index _inc_advance, Index _inc_h, Index _predicate_inc_advance, Index _predicate_inc_h,
441  Index _predicate_offset) {
442  this->pointer = pointer;
443  stride_d = _stride_d;
444  stride_h = _stride_h;
445  inc_advance = _inc_advance;
446  inc_h = _inc_h;
447  predicate_inc_advance = _predicate_inc_advance;
448  predicate_inc_h = _predicate_inc_h;
449  predicate_offset = _predicate_offset;
450 
451  return 0;
452  }
453  };
454 
461 
464  const Coord<3>& bounds,
465  const Coord<3>& block,
466  int offset = 0,
467  int pred_offset = 0,
468  ThreadOffset thread_offset_func = ThreadOffset())
469  : params(_params) {
470  thread_offset = thread_offset_func();
471  // Each warp works on a different column of the tile.
472  int const h = thread_offset[1] + block[1];
473  // Each lane writes a different element.
474  int const w = thread_offset[2] + block[2];
475  // Setup the pointer.
476  params.pointer += ((h * params.stride_h + w) + offset);
477 
478  // Prepare the vector of predicates.
479  for (int i = 0; i < Base::Iterations::kW; ++i) {
480  predicates.set(i, w + i * Base::Delta::kW < bounds[2]);
481  }
482  params.predicate_offset -= (h + pred_offset);
483  }
484 
493  }
500  }
501 
504  LongIndex _offset = offset.template dot<LongIndex>(
506  );
507  params.pointer += _offset;
508  return *this;
509  }
510 
513  typename Base::AccessType& value, int d, int h, int w, int c) const {
514  int const offset =
516  Load<Scalar,
520  typename Base::FragmentElement,
521  Base::Tile::kW,
522  Base::kAccessSize * sizeof(Scalar)>::load(value, params.pointer, offset);
523  }
524 
527  typename Base::AccessType const& value, int d, int h, int w, int c) {
528  int const offset =
530  Store<Scalar,
534  typename Base::FragmentElement,
535  Base::Tile::kW,
536  Base::kAccessSize * sizeof(Scalar)>::store(value, params.pointer, offset);
537  }
538 
540  CUTLASS_HOST_DEVICE bool valid(int d, int h, int w, int c) const {
541  return predicates.at(w) && params.predicate_offset > 0;
542  }
543 
546 
548  template <typename Fragment>
550  typename Base::FragmentIterator frag_iterator(fragment);
551  for (int d = 0; d < Base::Iterations::kD; ++d) {
552  for (int h = 0; h < Base::Iterations::kH; ++h) {
553  for (int w = 0; w < Base::Iterations::kW; ++w) {
554  for (int c = 0; c < Base::Iterations::kC; ++c) {
555  if (valid(d, h, w, c)) {
556  load_element(
557  reinterpret_cast<typename Base::AccessType&>(frag_iterator.at(d, h, w, c)),
558  d,
559  h,
560  w,
561  c);
562  }
563  }
564  if (w < Base::Iterations::kW - 1) {
565  inc_w();
566  }
567  }
568  if (h < Base::Iterations::kH - 1) {
569  inc_h();
570  }
571  }
572  if (d < Base::Iterations::kD - 1) {
573  inc_d();
574  }
575  }
576  inc_advance();
577  }
578 
579  template <typename Fragment>
581  typename Base::FragmentIterator frag_iterator(fragment);
582  for (int d = 0; d < Base::Iterations::kD; ++d) {
583  for (int h = 0; h < Base::Iterations::kH; ++h) {
584  for (int w = 0; w < Base::Iterations::kW; ++w) {
585  for (int c = 0; c < Base::Iterations::kC; ++c) {
586  if (valid(d, h, w, c)) {
588  reinterpret_cast<typename Base::AccessType&>(frag_iterator.at(d, h, w, c)),
589  d,
590  h,
591  w,
592  c);
593  }
594  }
595  if (w < Base::Iterations::kW - 1) {
596  inc_w();
597  }
598  }
599  if (h < Base::Iterations::kH - 1) {
600  inc_h();
601  }
602  }
603  if (d < Base::Iterations::kD - 1) {
604  inc_d();
605  }
606  }
607  inc_advance();
608  }
609 };
610 
612 
613 } // namespace gemm
614 } // namespace cutlass
Definition: gemm_global_tile.h:120
Shape< 0, Threads::kH, Threads::kW *kAccessSize > Delta
The strides in each dimension between different loads/stores.
Definition: gemm_global_tile.h:92
-
CUTLASS_HOST_DEVICE GemmGlobalIteratorCd & operator+=(Coord< 3 > const &offset)
Adds a vector offset to the iterator.
Definition: gemm_global_tile.h:529
-
CUTLASS_HOST_DEVICE void load_post_increment(Fragment &fragment)
Definition: gemm_global_tile.h:362
-
Index inc_advance
The strides to increment the pointer.
Definition: gemm_global_tile.h:434
+
CUTLASS_HOST_DEVICE GemmGlobalIteratorCd & operator+=(Coord< 3 > const &offset)
Adds a vector offset to the iterator.
Definition: gemm_global_tile.h:503
+
CUTLASS_HOST_DEVICE void add_pointer_offset(LongIndex offset)
add pointer offset
Definition: gemm_global_tile.h:545
+
CUTLASS_HOST_DEVICE int initialize(Pointer pointer, long long _stride_d, Index _stride_h, Index _inc_advance, Index _inc_h, Index _predicate_inc_advance, Index _predicate_inc_h, Index _predicate_offset)
Definition: gemm_global_tile.h:439
+
CUTLASS_HOST_DEVICE void load_post_increment(Fragment &fragment)
Definition: gemm_global_tile.h:332
+
Index inc_advance
The strides to increment the pointer.
Definition: gemm_global_tile.h:406
Definition: convert.h:33
-
cutlass::PredicateVector< ShapeCount< typename Base::Iterations >::kCount > PredicateVector
Definition: gemm_global_tile.h:196
+
cutlass::PredicateVector< ShapeCount< typename Base::Iterations >::kCount > PredicateVector
Definition: gemm_global_tile.h:198
static MatrixLayout::Kind const kLayout
The layout.
Definition: gemm_global_tile.h:180
-
CUTLASS_HOST_DEVICE GemmGlobalIteratorAb(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &threadblock_offset, ThreadOffset thread_offset_func=ThreadOffset())
Ctor.
Definition: gemm_global_tile.h:270
T type
Definition: platform.h:377
-
static int const kAccessSize
The number of scalars accessed per load/store.
Definition: tile_iterator.h:461
-
Base::Params BaseParams
Iterator parameters type.
Definition: gemm_global_tile.h:199
-
CUTLASS_HOST_DEVICE void inc_c()
Increment the pointer in the C dimension.
Definition: gemm_global_tile.h:512
-
Index_ Index
The index.
Definition: gemm_global_tile.h:421
+
static int const kAccessSize
The number of scalars accessed per load/store.
Definition: tile_iterator.h:467
+
Base::Params BaseParams
Iterator parameters type.
Definition: gemm_global_tile.h:201
+
CUTLASS_HOST_DEVICE void inc_c()
Increment the pointer in the C dimension.
Definition: gemm_global_tile.h:486
+
Index_ Index
The index.
Definition: gemm_global_tile.h:391
Defines the Tile Traits concept and iterators for loading and storing to tiles efficiently.
ReshapeTile< Tile_, kAccessSize_ >::Tile VectorizedTile
The vectorized tile shape.
Definition: gemm_global_tile.h:86
-
GemmGlobalIteratorCd< TileTraits_, Index_ > This_
This class.
Definition: gemm_global_tile.h:402
-
static MatrixLayout::Kind const kLayout
The layout.
Definition: gemm_global_tile.h:412
+
GemmGlobalIteratorCd< TileTraits_, Index_ > This_
This class.
Definition: gemm_global_tile.h:372
+
static MatrixLayout::Kind const kLayout
The layout.
Definition: gemm_global_tile.h:382
Definition: gemm_global_tile.h:70
Scalar_ * Pointer
The pointer.
Definition: gemm_global_tile.h:78
-
FragmentIterator< Fragment, Iterations, AccessType > FragmentIterator
The fragment iterator.
Definition: tile_iterator.h:199
+
FragmentIterator< Fragment, Iterations, AccessType > FragmentIterator
The fragment iterator.
Definition: tile_iterator.h:202
A Coord is a coordinate of arbitrary rank into a tensor or matrix.
Kind
Definition: tile_iterator.h:65
+
CUTLASS_HOST_DEVICE int initialize(Scalar const *ptr, Index stride_d, Index stride_h)
Initializes params to load a strip-mined tile, given pointer and stride_h.
Definition: gemm_global_tile.h:205
CUTLASS_HOST_DEVICE bool at(int idx) const
Accesses a bit within the predicate vector.
Definition: predicate_vector.h:357
Definition: load_store.h:42
-
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:318
+
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:368
Shape< 1, 1, VectorizedTile::kC > ThreadsDelta
The relative offset between two elements in the H/W dimension in adjacent threads.
Definition: gemm_global_tile.h:90
GemmMultiplicandTraits< Tile, kOperand, kLayout > MultiplicandTraits
Definition: gemm_global_tile.h:103
-
FragmentElement_ FragmentElement
Fragment element.
Definition: tile_iterator.h:425
+
FragmentElement_ FragmentElement
Fragment element.
Definition: tile_iterator.h:428
static MemorySpace::Kind const kMemorySpace
The memory space.
Definition: gemm_global_tile.h:82
-
CUTLASS_HOST_DEVICE void load_element(typename Base::AccessType &value, int d, int h, int w, int c) const
Loads a single fragment element from memory.
Definition: gemm_global_tile.h:292
-
TileIteratorBase< TileTraits_, typename TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ > Base
The base class.
Definition: gemm_global_tile.h:409
-
Fragment< FragmentElement, ShapeCount< Iterations >::kCount *kAccessSize > Fragment
The fragment.
Definition: tile_iterator.h:196
+
long long LongIndex
Long index.
Definition: gemm_global_tile.h:192
+
CUTLASS_HOST_DEVICE void load_element(typename Base::AccessType &value, int d, int h, int w, int c) const
Loads a single fragment element from memory.
Definition: gemm_global_tile.h:267
+
TileIteratorBase< TileTraits_, typename TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ > Base
The base class.
Definition: gemm_global_tile.h:379
+
Fragment< FragmentElement, ShapeCount< Iterations >::kCount *kAccessSize > Fragment
The fragment.
Definition: tile_iterator.h:199
+
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
Shape< 0, 0, Base::Delta::kW, Base::Delta::kC > Delta
Override the strides in each dimension between different loads/stores.
Definition: gemm_global_tile.h:138
-
Index predicate_inc_h
Definition: gemm_global_tile.h:436
-
CUTLASS_HOST_DEVICE int initialize()
Definition: tile_iterator.h:584
-
static MemorySpace::Kind const kMemorySpace
Source or destination memory space.
Definition: tile_iterator.h:434
-
long long inc_d
Definition: tile_iterator.h:223
+
Index predicate_inc_h
Definition: gemm_global_tile.h:408
+
CUTLASS_HOST_DEVICE int initialize()
Definition: tile_iterator.h:590
+
static MemorySpace::Kind const kMemorySpace
Source or destination memory space.
Definition: tile_iterator.h:437
Tile_ Tile
The tile shape.
Definition: gemm_global_tile.h:84
-
Base::Fragment Fragment
Fragment definition.
Definition: tile_iterator.h:464
+
Base::Fragment Fragment
Fragment definition.
Definition: tile_iterator.h:470
Definition: tile_iterator.h:65
-
long long inc_advance
Definition: tile_iterator.h:227
-
CUTLASS_HOST_DEVICE void load_post_increment(Fragment &fragment)
Loads and increments iterator.
Definition: gemm_global_tile.h:575
+
CUTLASS_HOST_DEVICE void load_post_increment(Fragment &fragment)
Loads and increments iterator.
Definition: gemm_global_tile.h:549
TileLoadIterator< TileTraits_, typename TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ > Base
The base class.
Definition: gemm_global_tile.h:178
-
Definition: gemm_global_tile.h:201
-
CUTLASS_HOST_DEVICE GemmGlobalIteratorCd(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block, int offset=0, int pred_offset=0, ThreadOffset thread_offset_func=ThreadOffset())
Ctor.
Definition: gemm_global_tile.h:489
+
Definition: gemm_global_tile.h:203
+
Index inc_d
Definition: tile_iterator.h:226
+
CUTLASS_HOST_DEVICE GemmGlobalIteratorCd(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block, int offset=0, int pred_offset=0, ThreadOffset thread_offset_func=ThreadOffset())
Ctor.
Definition: gemm_global_tile.h:463
Definition: matrix_traits.h:357
static CUTLASS_HOST_DEVICE int get(int d, int h, int w, int c)
Definition: shape.h:181
C++ features that may be otherwise unimplemented for CUDA device functions.
Definition: gemm_global_tile.h:163
GemmGlobalTileTraits< GemmOperand::kC, MatrixLayout::kColumnMajor, Scalar_, Tile_, Threads_, kAccessSize_ > Base
The base class.
Definition: gemm_global_tile.h:133
Kind
Definition: load_store.h:39
-
CUTLASS_HOST_DEVICE void inc_d()
Increment the pointer in the D dimension.
Definition: gemm_global_tile.h:287
-
static IteratorAdvance::Kind const kAdvance
Specifies in which dimension post-increment accesses advance.
Definition: gemm_global_tile.h:194
+
CUTLASS_HOST_DEVICE void inc_d()
Increment the pointer in the D dimension.
Definition: gemm_global_tile.h:262
+
static IteratorAdvance::Kind const kAdvance
Specifies in which dimension post-increment accesses advance.
Definition: gemm_global_tile.h:196
TileTraits_::Threads Threads
The threads.
Definition: gemm_global_tile.h:188
static int const kStrideH
The stride in the H dimension.
Definition: gemm_global_tile.h:136
static int const kH
The height of the cube.
Definition: shape.h:68
Definition: load_store.h:178
Shape< Threads_::kD, Threads_::kH *Threads_::kW/Tile_::kW, Tile_::kW, 1 > Threads
Definition: gemm_global_tile.h:59
-
Index predicate_inc_advance
The strides to increment the predicate offset.
Definition: gemm_global_tile.h:436
+
Index predicate_inc_advance
The strides to increment the predicate offset.
Definition: gemm_global_tile.h:408
static GemmOperand::Kind const kOperand
Identity of the operand.
Definition: gemm_global_tile.h:72
-
Index stride_h
Definition: tile_iterator.h:220
+
Index stride_h
Definition: tile_iterator.h:223
Defines container classes and iterators for managing a statically sized vector of boolean predicates...
-
CUTLASS_HOST_DEVICE bool valid(int d, int h, int w, int c) const
Test the validity of the.
Definition: gemm_global_tile.h:566
+
CUTLASS_HOST_DEVICE bool valid(int d, int h, int w, int c) const
Test the validity of the.
Definition: gemm_global_tile.h:540
static FragmentElementType::Kind const kFragmentElementType
Specifies iterator storage fragment type (Scalar or WmmaMatrix)
Definition: tile_iterator.h:158
-
CUTLASS_HOST_DEVICE void inc_d()
Increment the pointer in the D dimension.
Definition: gemm_global_tile.h:521
-
An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
Definition: tile_iterator.h:399
+
CUTLASS_HOST_DEVICE void inc_d()
Increment the pointer in the D dimension.
Definition: gemm_global_tile.h:495
+
An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
Definition: tile_iterator.h:402
-
CUTLASS_HOST_DEVICE int initialize(Pointer pointer, long long batch_stride, Index ldm, Index bound, Index epilogue_stride_w, Index epilogue_delta_w)
Setup the params.
Definition: gemm_global_tile.h:441
-
PredicateVector predicates
The predicates.
Definition: gemm_global_tile.h:241
+
CUTLASS_HOST_DEVICE GemmGlobalIteratorAb(Params const &_params, const Coord< 3 > &threadblock_offset, ThreadOffset thread_offset_func=ThreadOffset())
Ctor.
Definition: gemm_global_tile.h:246
+
PredicateVector predicates
The predicates.
Definition: gemm_global_tile.h:217
platform::remove_const< Scalar_ >::type Scalar
The scalar.
Definition: gemm_global_tile.h:76
Defines a type for restructuring a tile.
Defines constant expressions for mapping GEMM problem size and strides onto pitch-linear memory...
-
CUTLASS_HOST_DEVICE void inc_h()
Increment the pointer in the H dimension.
Definition: gemm_global_tile.h:285
-
CUTLASS_HOST_DEVICE GemmGlobalIteratorAb & operator+=(Coord< 3 > const &offset)
Adds a vector offset to the iterator.
Definition: gemm_global_tile.h:341
+
CUTLASS_HOST_DEVICE void inc_h()
Increment the pointer in the H dimension.
Definition: gemm_global_tile.h:260
+
CUTLASS_HOST_DEVICE GemmGlobalIteratorAb & operator+=(Coord< 3 > const &offset)
Adds a vector offset to the iterator.
Definition: gemm_global_tile.h:311
Base::Fragment Fragment
Fragment type loaded by the iterator.
Definition: gemm_global_tile.h:184
-
TileTraits_::Threads Threads
The threads.
Definition: gemm_global_tile.h:419
+
TileTraits_::Threads Threads
The threads.
Definition: gemm_global_tile.h:389
CUTLASS_HOST_DEVICE Coord< 4 > operator()() const
Definition: gemm_global_tile.h:151
Definition: gemm_operand.h:67
Computes the thread offset in (H, W) based on thread ID.
Definition: gemm_global_tile.h:106
-
CUTLASS_HOST_DEVICE void inc_w()
Increment the pointer in the W dimension.
Definition: gemm_global_tile.h:283
-
CUTLASS_HOST_DEVICE void load(Fragment &fragment, PredicateIterator pred_it) const
Loads a fragment without advancing the iterator..
Definition: tile_iterator.h:771
+
CUTLASS_HOST_DEVICE void inc_w()
Increment the pointer in the W dimension.
Definition: gemm_global_tile.h:258
+
CUTLASS_HOST_DEVICE void load(Fragment &fragment, PredicateIterator pred_it) const
Loads a fragment without advancing the iterator..
Definition: tile_iterator.h:776
CUTLASS_HOST_DEVICE void fill(bool value=true)
Fills all predicates with a given value.
Definition: predicate_vector.h:344
-
CUTLASS_HOST_DEVICE void store_post_increment(Fragment &fragment)
Definition: gemm_global_tile.h:606
+
CUTLASS_HOST_DEVICE void store_post_increment(Fragment &fragment)
Definition: gemm_global_tile.h:580
Base::Threads Threads
Definition: gemm_global_tile.h:142
-
Index stride_h
The stride in the H dimension to setup the thread in the block.
Definition: gemm_global_tile.h:432
+
Index stride_h
The stride in the H dimension to setup the thread in the block.
Definition: gemm_global_tile.h:404
#define CUTLASS_HOST_DEVICE
Definition: cutlass.h:46
-
CUTLASS_HOST_DEVICE void inc_advance()
Increment the pointer to move to the next iteration.
Definition: gemm_global_tile.h:289
+
CUTLASS_HOST_DEVICE void inc_advance()
Increment the pointer to move to the next iteration.
Definition: gemm_global_tile.h:264
CUTLASS_HOST_DEVICE Coord< 4 > operator()() const
Definition: gemm_global_tile.h:108
-
CUTLASS_HOST_DEVICE void load_element(typename Base::AccessType &value, int d, int h, int w, int c) const
Loads a single fragment element from memory.
Definition: gemm_global_tile.h:538
-
Index inc_h
Definition: tile_iterator.h:224
+
CUTLASS_HOST_DEVICE void load_element(typename Base::AccessType &value, int d, int h, int w, int c) const
Loads a single fragment element from memory.
Definition: gemm_global_tile.h:512
+
Index inc_h
Definition: tile_iterator.h:227
+
Index stride_d
Definition: tile_iterator.h:222
Shape< 0, 0, Threads::kW *ThreadsDelta::kW, kAccessSize > ImmediateOffsetStrides
Strides for immediate offset computation.
Definition: gemm_global_tile.h:95
Statically sized array of bits implementing.
Definition: predicate_vector.h:105
Definition: vector.h:62
Definition: load_store.h:60
-
TileTraits_::ThreadOffset ThreadOffset
The thread offset.
Definition: gemm_global_tile.h:423
+
TileTraits_::ThreadOffset ThreadOffset
The thread offset.
Definition: gemm_global_tile.h:395
A Shape implementing Layout Concept describing the dimensions of a cube.
Definition: shape.h:64
+
Definition: matrix_traits.h:159
Base::ImmediateOffsetStrides ImmediateOffsetStrides
Definition: gemm_global_tile.h:146
-
long long stride_d
Definition: tile_iterator.h:219
-
TileTraits_::Scalar Scalar
The scalar.
Definition: gemm_global_tile.h:415
-
Index inc_h
Definition: gemm_global_tile.h:434
-
cutlass::PredicateVector< Base::Iterations::kW > predicates
The predicates for the row.
Definition: gemm_global_tile.h:473
+
long long LongIndex
The index.
Definition: gemm_global_tile.h:393
+
TileTraits_::Scalar Scalar
The scalar.
Definition: gemm_global_tile.h:385
+
Index inc_h
Definition: gemm_global_tile.h:406
+
cutlass::PredicateVector< Base::Iterations::kW > predicates
The predicates for the row.
Definition: gemm_global_tile.h:460
static MemorySpace::Kind const kMemorySpace
Source or destination memory space.
Definition: tile_iterator.h:161
-
Pointer pointer
The pointer.
Definition: gemm_global_tile.h:428
+
Pointer pointer
The pointer.
Definition: gemm_global_tile.h:400
GemmGlobalIteratorAb< TileTraits_, Index_ > This_
This class.
Definition: gemm_global_tile.h:171
TileTraits_::Tile Tile
The tile.
Definition: gemm_global_tile.h:182
ReshapeThreads< VectorizedTile, Threads_ >::Threads Threads
The threads shape.
Definition: gemm_global_tile.h:88
Shape< 1, VectorizedTile::kH/Threads::kH, VectorizedTile::kW/Threads::kW, VectorizedTile::kC/kAccessSize > Iterations
The number of iterations needed to load/store the tile.
Definition: gemm_global_tile.h:101
-
CUTLASS_HOST_DEVICE GemmGlobalIteratorCd(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block_offset, ThreadOffset thread_offset_func=ThreadOffset())
Ctor.
Definition: gemm_global_tile.h:476
-
CUTLASS_HOST_DEVICE void inc_advance()
Increment the pointer to move to the next iteration.
Definition: gemm_global_tile.h:523
-
CUTLASS_HOST_DEVICE void inc_h()
Increment the pointer in the H dimension.
Definition: gemm_global_tile.h:516
-
CUTLASS_HOST_DEVICE void inc_w()
Increment the pointer in the W dimension.
Definition: gemm_global_tile.h:514
+
CUTLASS_HOST_DEVICE void inc_advance()
Increment the pointer to move to the next iteration.
Definition: gemm_global_tile.h:497
+
CUTLASS_HOST_DEVICE void inc_h()
Increment the pointer in the H dimension.
Definition: gemm_global_tile.h:490
+
CUTLASS_HOST_DEVICE void inc_w()
Increment the pointer in the W dimension.
Definition: gemm_global_tile.h:488
Iterator for accessing a stripmined tile in memory.
Definition: tile_iterator.h:144
-
Scalar const * pointer
Pointer to memory.
Definition: tile_iterator.h:493
-
Params params
Parameters.
Definition: gemm_global_tile.h:469
-
Definition: gemm_global_tile.h:396
-
Definition: matrix_traits.h:159
-
static IteratorAdvance::Kind const kAdvance
Specifies in which dimension post-increment accesses advance.
Definition: tile_iterator.h:428
-
Coord< 4 > thread_offset
Offset of an individual lane from the start of the tile.
Definition: gemm_global_tile.h:471
+
Scalar const * pointer
Pointer to memory.
Definition: tile_iterator.h:499
+
Params params
Parameters.
Definition: gemm_global_tile.h:456
+
Definition: gemm_global_tile.h:366
+
static IteratorAdvance::Kind const kAdvance
Specifies in which dimension post-increment accesses advance.
Definition: tile_iterator.h:431
+
Coord< 4 > thread_offset
Offset of an individual lane from the start of the tile.
Definition: gemm_global_tile.h:458
FragmentElement_ FragmentElement
Fragment element.
Definition: tile_iterator.h:152
-
TileTraits_::ThreadOffset ThreadOffset
The thread offset.
Definition: gemm_global_tile.h:192
+
TileTraits_::ThreadOffset ThreadOffset
The thread offset.
Definition: gemm_global_tile.h:194
static int const kW
The width of the cube.
Definition: shape.h:70
CUTLASS_HOST_DEVICE void set(int idx, bool value=true)
Set a bit within the predicate vector.
Definition: predicate_vector.h:365
-
CUTLASS_HOST_DEVICE void add_pointer_offset(Index offset)
Definition: gemm_global_tile.h:351
-
static int const kAccessSize
The number of scalars accessed per load/store.
Definition: tile_iterator.h:185
-
Parameters.
Definition: tile_iterator.h:491
+
CUTLASS_HOST_DEVICE void add_pointer_offset(Index offset)
Definition: gemm_global_tile.h:321
+
static int const kAccessSize
The number of scalars accessed per load/store.
Definition: tile_iterator.h:188
+
Parameters.
Definition: tile_iterator.h:497
static CUTLASS_HOST_DEVICE int get(int d, int h, int w, int c)
Definition: shape.h:199
Computes the thread offset in (H, W) based on thread ID.
Definition: gemm_global_tile.h:149
-
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
-
long long stride_d
The stride in the D dimension.
Definition: gemm_global_tile.h:430
-
CUTLASS_HOST_DEVICE Index stride_advance(void)
Definition: gemm_global_tile.h:353
-
CUTLASS_HOST_DEVICE void inc_w()
Increment in the W dimension.
Definition: tile_iterator.h:680
+
long long stride_d
The stride in the D dimension.
Definition: gemm_global_tile.h:402
+
CUTLASS_HOST_DEVICE Index stride_advance(void)
Definition: gemm_global_tile.h:323
+
CUTLASS_HOST_DEVICE void inc_w()
Increment in the W dimension.
Definition: tile_iterator.h:686
static int const kAccessSize
The number of scalars per LDG/STG.
Definition: gemm_global_tile.h:80
Tile_ Tile
Definition: reshape_tile.h:43
Definition: tile_iterator.h:65
Base::Iterations Iterations
Definition: gemm_global_tile.h:140
Index_ Index
The index.
Definition: gemm_global_tile.h:190
-
TileTraits_::Pointer Pointer
The pointer.
Definition: gemm_global_tile.h:417
-
CUTLASS_HOST_DEVICE bool valid(int d, int h, int w, int c) const
Is the valid?
Definition: gemm_global_tile.h:335
-
static FragmentElementType::Kind const kFragmentElementType
Specifies type of iterator fragment storage (Salar or WmmaMatrix)
Definition: tile_iterator.h:431
+
TileTraits_::Pointer Pointer
The pointer.
Definition: gemm_global_tile.h:387
+
CUTLASS_HOST_DEVICE bool valid(int d, int h, int w, int c) const
Is the valid?
Definition: gemm_global_tile.h:305
+
static FragmentElementType::Kind const kFragmentElementType
Specifies type of iterator fragment storage (Salar or WmmaMatrix)
Definition: tile_iterator.h:434
Kind
Definition: matrix_traits.h:357
TileTraits_::Scalar Scalar
The scalar.
Definition: gemm_global_tile.h:186
+
Index inc_advance
Definition: tile_iterator.h:230
Threads_ Threads
Definition: gemm_global_tile.h:54
-
CUTLASS_HOST_DEVICE int initialize(Scalar const *ptr, long long stride_d, Index stride_h)
Initializes params to load a strip-mined tile, given pointer and stride_h.
Definition: gemm_global_tile.h:203
-
CUTLASS_HOST_DEVICE void add_pointer_offset(Index offset)
add pointer offset
Definition: gemm_global_tile.h:571
-
Params params
The parameters.
Definition: gemm_global_tile.h:239
+
Params params
The parameters.
Definition: gemm_global_tile.h:215
Defines properties of matrices used to denote layout and operands to GEMM kernels.
-
CUTLASS_HOST_DEVICE void initialize_predicates(const Coord< 3 > &bounds, const Coord< 3 > &block_offset)
Definition: gemm_global_tile.h:243
-
The params.
Definition: gemm_global_tile.h:426
+
CUTLASS_HOST_DEVICE int initialize(Pointer pointer, int stride_d_, Index ldm, Index bound, Index epilogue_stride_w, Index epilogue_delta_w)
Setup the params.
Definition: gemm_global_tile.h:413
+
CUTLASS_HOST_DEVICE void initialize_predicates(const Coord< 3 > &bounds, const Coord< 3 > &block_offset)
Definition: gemm_global_tile.h:219
+
The params.
Definition: gemm_global_tile.h:398
Base::ThreadsDelta ThreadsDelta
Definition: gemm_global_tile.h:144
-
Coord< 4 > thread_offset
Offset of an individual lane from the start of the tile.
Definition: gemm_global_tile.h:237
-
Base::FragmentIterator FragmentIterator
Fragment iterator definition.
Definition: tile_iterator.h:467
-
Compute derived counted of a Layout Concept based class.
Definition: shape.h:79
-
CUTLASS_HOST_DEVICE void residue(Index k)
That&#39;s the residue! Update the predicates.
Definition: gemm_global_tile.h:306
-
Index predicate_offset
The column offset to compute the predicate for the columns.
Definition: gemm_global_tile.h:438
+
Coord< 4 > thread_offset
Offset of an individual lane from the start of the tile.
Definition: gemm_global_tile.h:213
+
Base::FragmentIterator FragmentIterator
Fragment iterator definition.
Definition: tile_iterator.h:473
+
CUTLASS_HOST_DEVICE void residue(Index k)
That&#39;s the residue! Update the predicates.
Definition: gemm_global_tile.h:281
+
Index predicate_offset
The column offset to compute the predicate for the columns.
Definition: gemm_global_tile.h:410
static MatrixLayout::Kind const kLayout
The layout.
Definition: gemm_global_tile.h:74
-
CUTLASS_HOST_DEVICE void store_element(typename Base::AccessType const &value, int d, int h, int w, int c)
Stores a single fragment element into memory.
Definition: gemm_global_tile.h:552
-
Index stride_w
Definition: tile_iterator.h:221
+
CUTLASS_HOST_DEVICE void store_element(typename Base::AccessType const &value, int d, int h, int w, int c)
Stores a single fragment element into memory.
Definition: gemm_global_tile.h:526
+
Index stride_w
Definition: tile_iterator.h:224
diff --git a/docs/gemm__operand_8h.html b/docs/gemm__operand_8h.html index 07eefb28..a5dd88df 100644 --- a/docs/gemm__operand_8h.html +++ b/docs/gemm__operand_8h.html @@ -126,7 +126,7 @@ Namespaces
diff --git a/docs/gemm__operand_8h_source.html b/docs/gemm__operand_8h_source.html index a53c3f11..3c918cdc 100644 --- a/docs/gemm__operand_8h_source.html +++ b/docs/gemm__operand_8h_source.html @@ -76,15 +76,15 @@ $(function() {
gemm_operand.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
29 #pragma once
30 
31 #include "cutlass/matrix_traits.h"
32 #include "cutlass/reshape_tile.h"
33 #include "cutlass/util/platform.h"
34 
35 namespace cutlass {
36 namespace gemm {
37 
39 
41 template <GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_>
43  static const bool Congruous =
44  (kOperand_ == GemmOperand::kA ^ kLayout_ == MatrixLayout::kRowMajor);
45 };
46 
48 
49 template <typename GemmOperand::Kind kOperand_, typename Tile_>
50 struct GetExtent;
51 
52 template <typename Tile_>
53 struct GetExtent<GemmOperand::kA, Tile_> {
54  static const int kExtent = Tile_::kW;
55 };
56 
57 template <typename Tile_>
58 struct GetExtent<GemmOperand::kB, Tile_> {
59  static const int kExtent = Tile_::kH;
60 };
61 
63 
66 template <typename ThreadBlockTile_, GemmOperand::Kind Usage, MatrixLayout::Kind Layout>
68  // Only defined for A or B
69  static_assert(Usage == GemmOperand::kA || Usage == GemmOperand::kB,
70  "MultiplicandTileShape defined only for A or B operands.");
71 
73  typedef ThreadBlockTile_ ThreadBlockTile;
74 
76  static GemmOperand::Kind const kUsage = Usage;
77 
79  static MatrixLayout::Kind const kLayout = Layout;
80 
81  // True if K is the strided dimension
83 
85  typedef typename platform::conditional<
86  kKstrided,
89 };
90 
92 
95 template <GemmOperand::Kind operand, bool Kstrided = true>
97 
99 template <bool Kstrided>
100 struct ProjectOperand<GemmOperand::kA, Kstrided> {
102  static Coord<3> project(Coord<3> const &coord) {
103  if (Kstrided) {
104  return make_Coord(0, coord[0], coord[2]);
105  } else {
106  return make_Coord(0, coord[2], coord[0]);
107  }
108  }
109 };
110 
112 template <bool Kstrided>
113 struct ProjectOperand<GemmOperand::kB, Kstrided> {
115  static Coord<3> project(Coord<3> const &coord) {
116  if (Kstrided) {
117  return make_Coord(0, coord[0], coord[1]);
118  } else {
119  return make_Coord(0, coord[1], coord[0]);
120  }
121  }
122 };
123 
125 template <>
126 struct ProjectOperand<GemmOperand::kC, true> {
128  static Coord<3> project(Coord<3> const &coord) { return make_Coord(0, coord[1], coord[2]); }
129 };
130 
132 template <>
133 struct ProjectOperand<GemmOperand::kD, true> {
135  static Coord<3> project(Coord<3> const &coord) { return make_Coord(0, coord[1], coord[2]); }
136 };
137 
139 
140 } // namespace gemm
141 } // namespace cutlass
static bool const kKstrided
Definition: gemm_operand.h:82
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
29 #pragma once
30 
31 #include "cutlass/matrix_traits.h"
32 #include "cutlass/reshape_tile.h"
33 #include "cutlass/util/platform.h"
34 
35 namespace cutlass {
36 namespace gemm {
37 
39 
41 template <GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_>
43  static const bool Congruous =
44  (kOperand_ == GemmOperand::kA ^ kLayout_ == MatrixLayout::kRowMajor);
45 };
46 
48 
49 template <typename GemmOperand::Kind kOperand_, typename Tile_>
50 struct GetExtent;
51 
52 template <typename Tile_>
53 struct GetExtent<GemmOperand::kA, Tile_> {
54  static const int kExtent = Tile_::kW;
55 };
56 
57 template <typename Tile_>
58 struct GetExtent<GemmOperand::kB, Tile_> {
59  static const int kExtent = Tile_::kH;
60 };
61 
63 
66 template <typename ThreadBlockTile_, GemmOperand::Kind Usage, MatrixLayout::Kind Layout>
68  // Only defined for A or B
69  static_assert(Usage == GemmOperand::kA || Usage == GemmOperand::kB,
70  "MultiplicandTileShape defined only for A or B operands.");
71 
73  typedef ThreadBlockTile_ ThreadBlockTile;
74 
76  static GemmOperand::Kind const kUsage = Usage;
77 
79  static MatrixLayout::Kind const kLayout = Layout;
80 
81  // True if K is the strided dimension
83 
85  typedef typename platform::conditional<
86  kKstrided,
89 };
90 
92 
95 template <GemmOperand::Kind operand, bool Kstrided = true>
97 
99 template <bool Kstrided>
100 struct ProjectOperand<GemmOperand::kA, Kstrided> {
102  static Coord<3> project(Coord<3> const &coord) {
103  if (Kstrided) {
104  return make_Coord(0, coord[0], coord[2]);
105  } else {
106  return make_Coord(0, coord[2], coord[0]);
107  }
108  }
109 };
110 
112 template <bool Kstrided>
113 struct ProjectOperand<GemmOperand::kB, Kstrided> {
115  static Coord<3> project(Coord<3> const &coord) {
116  if (Kstrided) {
117  return make_Coord(0, coord[0], coord[1]);
118  } else {
119  return make_Coord(0, coord[1], coord[0]);
120  }
121  }
122 };
123 
125 template <>
126 struct ProjectOperand<GemmOperand::kC, true> {
128  static Coord<3> project(Coord<3> const &coord) { return make_Coord(0, coord[1], coord[2]); }
129 };
130 
132 template <>
133 struct ProjectOperand<GemmOperand::kD, true> {
135  static Coord<3> project(Coord<3> const &coord) { return make_Coord(0, coord[1], coord[2]); }
136 };
137 
139 
140 } // namespace gemm
141 } // namespace cutlass
static bool const kKstrided
Definition: gemm_operand.h:82
static CUTLASS_HOST_DEVICE Coord< 3 > project(Coord< 3 > const &coord)
Definition: gemm_operand.h:115
Definition: convert.h:33
-
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:318
+
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:368
+
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
static CUTLASS_HOST_DEVICE Coord< 3 > project(Coord< 3 > const &coord)
Definition: gemm_operand.h:128
C++ features that may be otherwise unimplemented for CUDA device functions.
ThreadBlockTile_ ThreadBlockTile
Shape of GEMM thread block tile (K, N, M)
Definition: gemm_operand.h:70
platform::conditional< kKstrided, Shape< 1, ThreadBlockTile::kD, GetExtent< Usage, ThreadBlockTile >::kExtent >, Shape< 1, GetExtent< Usage, ThreadBlockTile >::kExtent, ThreadBlockTile::kD > >::type Shape
Map the ThreadBlockShape onto (kH, kW) dimensions for A and B operand.
Definition: gemm_operand.h:88
-
Definition: matrix_traits.h:159
Defines a type for restructuring a tile.
Definition: gemm_operand.h:67
static const bool Congruous
Definition: gemm_operand.h:43
@@ -98,8 +98,8 @@ $(function() {
Definition: gemm_operand.h:96
Definition: gemm_operand.h:50
+
Definition: matrix_traits.h:159
Gemm operand - D = A * B + C.
Definition: matrix_traits.h:356
-
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
static CUTLASS_HOST_DEVICE Coord< 3 > project(Coord< 3 > const &coord)
Definition: gemm_operand.h:135
Kind
Definition: matrix_traits.h:357
Definition: matrix_traits.h:357
@@ -109,7 +109,7 @@ $(function() {
diff --git a/docs/gemm__shared__stream_8h.html b/docs/gemm__shared__stream_8h.html index 55312ff8..8e6358d3 100644 --- a/docs/gemm__shared__stream_8h.html +++ b/docs/gemm__shared__stream_8h.html @@ -105,7 +105,7 @@ Namespaces
diff --git a/docs/gemm__shared__stream_8h_source.html b/docs/gemm__shared__stream_8h_source.html index eadc63d2..3229edcb 100644 --- a/docs/gemm__shared__stream_8h_source.html +++ b/docs/gemm__shared__stream_8h_source.html @@ -76,31 +76,31 @@ $(function() {
gemm_shared_stream.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
29 #pragma once
30 
31 #include "cutlass/tensor_ref.h"
33 
34 namespace cutlass {
35 namespace gemm {
36 
38 
39 template <
41  typename Iterator_,
43  typename Transformer_ = Copy<typename Iterator_::Fragment> >
44 
47  typedef Iterator_ Iterator;
49  typedef Transformer_ Transformer;
50 
52  typedef typename Iterator::Fragment FetchedFragment;
54  typedef typename Transformer::OutputFragment TransformedFragment;
57  "");
61  typedef typename Iterator::Scalar Scalar;
62 
65 
67  struct Params {
69  typename Iterator::Params iterator;
70 
72  CUTLASS_HOST_DEVICE int initialize() { return iterator.initialize(); }
73  };
74 
76  typedef typename Iterator::Storage SharedStorage;
77 
79  CUTLASS_DEVICE SharedLoadStream() {}
80 
82  CUTLASS_DEVICE SharedLoadStream(Params const &params, TensorRef const &ref) {
83  this->initialize(params, ref);
84  }
85 
87  CUTLASS_DEVICE void initialize(Params const &params, TensorRef const &ref) {
88  // The iterator.
89  iterator = Iterator(params.iterator, ref.data());
90  // The transformer.
92  }
93 
95  CUTLASS_DEVICE void copy() { iterator.load_post_increment(fetched[0]); }
96 
98  CUTLASS_DEVICE void copy(int step) { iterator.load(fetched[step % 2], step); }
99 
101  CUTLASS_DEVICE void commit() { transformer.transform(fetched[0], transformed[0]); }
102 
104  CUTLASS_DEVICE void commit(int step) {
105  transformer.transform(fetched[step % 2], transformed[step % 2]);
106  }
107 
109  CUTLASS_DEVICE TransformedFragment &fragment(int step = 0) { return transformed[step % 2]; }
110 
112  CUTLASS_DEVICE TransformedFragment const &fragment(int step = 0) const {
113  return transformed[step % 2];
114  }
115 
117  CUTLASS_DEVICE void inc_stage() { iterator.inc_stage(); }
118 
127 };
128 
130 
131 } // namespace gemm
132 } // namespace cutlass
CUTLASS_DEVICE void commit()
Commit the data.
Definition: gemm_shared_stream.h:101
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
29 #pragma once
30 
31 #include "cutlass/tensor_ref.h"
33 
34 namespace cutlass {
35 namespace gemm {
36 
38 
39 template <
41  typename Iterator_,
43  typename Transformer_ = Copy<typename Iterator_::Fragment> >
44 
47  typedef Iterator_ Iterator;
49  typedef Transformer_ Transformer;
50 
52  typedef typename Iterator::Fragment FetchedFragment;
54  typedef typename Transformer::OutputFragment TransformedFragment;
57  "");
61  typedef typename Iterator::Scalar Scalar;
62 
65 
67  struct Params {
69  typename Iterator::Params iterator;
70 
72  CUTLASS_HOST_DEVICE int initialize() { return iterator.initialize(); }
73  };
74 
76  typedef typename Iterator::Storage SharedStorage;
77 
79  CUTLASS_DEVICE SharedLoadStream() {}
80 
82  CUTLASS_DEVICE SharedLoadStream(Params const &params, TensorRef const &ref) {
83  this->initialize(params, ref);
84  }
85 
87  CUTLASS_DEVICE void initialize(Params const &params, TensorRef const &ref) {
88  // The iterator.
89  iterator = Iterator(params.iterator, ref.data());
90  // The transformer.
92  }
93 
95  CUTLASS_DEVICE void copy() {
96  iterator.load_post_increment(fetched[0]);
97  }
98 
100  CUTLASS_DEVICE void copy(int step) { iterator.load(fetched[step % 2], step); }
101 
103  CUTLASS_DEVICE void commit() { transformer.transform(fetched[0], transformed[0]); }
104 
106  CUTLASS_DEVICE void commit(int step) {
107  transformer.transform(fetched[step % 2], transformed[step % 2]);
108  }
109 
111  CUTLASS_DEVICE TransformedFragment &fragment(int step = 0) { return transformed[step % 2]; }
112 
114  CUTLASS_DEVICE TransformedFragment const &fragment(int step = 0) const {
115  return transformed[step % 2];
116  }
117 
119  CUTLASS_DEVICE void inc_stage() { iterator.inc_stage(); }
120 
129 };
130 
132 
133 } // namespace gemm
134 } // namespace cutlass
CUTLASS_DEVICE void commit()
Commit the data.
Definition: gemm_shared_stream.h:103
Definition: convert.h:33
Defines a structure containing strides, bounds, and a pointer to tensor data.
-
FetchedFragment fetched[2]
Fetched fragment.
Definition: gemm_shared_stream.h:122
+
FetchedFragment fetched[2]
Fetched fragment.
Definition: gemm_shared_stream.h:124
std::is_same (false specialization)
Definition: platform.h:420
-
CUTLASS_DEVICE void commit(int step)
Commit the data.
Definition: gemm_shared_stream.h:104
+
CUTLASS_DEVICE void commit(int step)
Commit the data.
Definition: gemm_shared_stream.h:106
Iterator::Storage SharedStorage
The storage in shared memory needed by that stream.
Definition: gemm_shared_stream.h:76
-
CUTLASS_DEVICE void inc_stage()
Increment the stage.
Definition: gemm_shared_stream.h:117
+
CUTLASS_DEVICE void inc_stage()
Increment the stage.
Definition: gemm_shared_stream.h:119
TensorRef< Scalar, 4 > TensorRef
Reference type to a tensor.
Definition: gemm_shared_stream.h:64
CUTLASS_DEVICE SharedLoadStream()
Ctor.
Definition: gemm_shared_stream.h:79
-
TransformedFragment transformed[2]
Transformed fragment.
Definition: gemm_shared_stream.h:126
+
TransformedFragment transformed[2]
Transformed fragment.
Definition: gemm_shared_stream.h:128
Defines iterators for efficiently loading and storing tiles to and from shared memory.
Definition: gemm_shared_stream.h:45
-
CUTLASS_DEVICE TransformedFragment const & fragment(int step=0) const
Returns the fragment for the given step.
Definition: gemm_shared_stream.h:112
-
Transformer transformer
The transformer.
Definition: gemm_shared_stream.h:124
+
CUTLASS_DEVICE TransformedFragment const & fragment(int step=0) const
Returns the fragment for the given step.
Definition: gemm_shared_stream.h:114
+
Transformer transformer
The transformer.
Definition: gemm_shared_stream.h:126
TransformedFragment Fragment
Make sure the fragments match.
Definition: gemm_shared_stream.h:57
#define CUTLASS_HOST_DEVICE
Definition: cutlass.h:46
#define static_assert(__e, __m)
Definition: platform.h:153
Iterator::Params iterator
The iterator params.
Definition: gemm_shared_stream.h:69
-
Iterator iterator
The iterator.
Definition: gemm_shared_stream.h:120
+
Iterator iterator
The iterator.
Definition: gemm_shared_stream.h:122
CUTLASS_HOST_DEVICE int initialize()
Setup the params.
Definition: gemm_shared_stream.h:72
Transformer::OutputFragment TransformedFragment
The fragment that is obtained after the transformation by the transformer.
Definition: gemm_shared_stream.h:54
CUTLASS_DEVICE SharedLoadStream(Params const &params, TensorRef const &ref)
Ctor.
Definition: gemm_shared_stream.h:82
-
CUTLASS_DEVICE TransformedFragment & fragment(int step=0)
Returns the fragment for the given step.
Definition: gemm_shared_stream.h:109
-
CUTLASS_DEVICE void copy(int step)
Load the data from shared memory to the fetch fragment.
Definition: gemm_shared_stream.h:98
+
CUTLASS_DEVICE TransformedFragment & fragment(int step=0)
Returns the fragment for the given step.
Definition: gemm_shared_stream.h:111
+
CUTLASS_DEVICE void copy(int step)
Load the data from shared memory to the fetch fragment.
Definition: gemm_shared_stream.h:100
The params.
Definition: gemm_shared_stream.h:67
CUTLASS_DEVICE void initialize(Params const &params, TensorRef const &ref)
Initialize the stream.
Definition: gemm_shared_stream.h:87
Iterator::Scalar Scalar
Scalar data type.
Definition: gemm_shared_stream.h:61
@@ -111,7 +111,7 @@ $(function() {
diff --git a/docs/gemm__shared__tile_8h.html b/docs/gemm__shared__tile_8h.html index bb3cd687..38e9d232 100644 --- a/docs/gemm__shared__tile_8h.html +++ b/docs/gemm__shared__tile_8h.html @@ -127,7 +127,7 @@ Namespaces
diff --git a/docs/gemm__shared__tile_8h_source.html b/docs/gemm__shared__tile_8h_source.html index 7f572ff5..c108568f 100644 --- a/docs/gemm__shared__tile_8h_source.html +++ b/docs/gemm__shared__tile_8h_source.html @@ -100,7 +100,7 @@ $(function() {
static int const kAccessSize
The number of scalars per LDG/STG.
Definition: gemm_shared_tile.h:351
ThreadsPerWarp_ ThreadsPerWarp
The threads in a warp.
Definition: gemm_shared_tile.h:148
Definition: reshape_tile.h:42
-
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:318
+
CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
Helper to make a 2-element coordinate.
Definition: coord.h:368
Shape< 0, ShapeCount< Tile >::kWc, Tile::kC, kScalarsPerSts_ > ThreadsStrides
The strides to compute the base position of the thread.
Definition: gemm_shared_tile.h:48
static int const kAccessSize
The number of scalars per LDG/STG.
Definition: gemm_shared_tile.h:282
static int const kSkew
The skew.
Definition: gemm_shared_tile.h:353
@@ -207,7 +207,7 @@ $(function() { diff --git a/docs/gemm__stream__pair_8h.html b/docs/gemm__stream__pair_8h.html index 9b7a01d5..698336c9 100644 --- a/docs/gemm__stream__pair_8h.html +++ b/docs/gemm__stream__pair_8h.html @@ -92,7 +92,7 @@ $(function() { #include "cutlass/gemm/gemm_global_stream.h"
#include "cutlass/gemm/gemm_operand.h"
#include "cutlass/gemm/gemm_shared_stream.h"
-#include "cutlass/gemm/threadblock_swizzle.h"
+#include "cutlass/gemm/threadblock_swizzle.h"

Go to the source code of this file.

CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator++ CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator++ ( int  ) - + @@ -327,7 +327,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa diff --git a/docs/fp16__sgemm__multiply__add_8h_source.html b/docs/fp16__sgemm__multiply__add_8h_source.html index efac0463..c0717384 100644 --- a/docs/fp16__sgemm__multiply__add_8h_source.html +++ b/docs/fp16__sgemm__multiply__add_8h_source.html @@ -99,7 +99,7 @@ $(function() { diff --git a/docs/fp16__sgemm__traits_8h.html b/docs/fp16__sgemm__traits_8h.html index 0691fbbf..ad24e717 100644 --- a/docs/fp16__sgemm__traits_8h.html +++ b/docs/fp16__sgemm__traits_8h.html @@ -109,7 +109,7 @@ Namespaces diff --git a/docs/fp16__sgemm__traits_8h_source.html b/docs/fp16__sgemm__traits_8h_source.html index b5f94457..8e3bb6ba 100644 --- a/docs/fp16__sgemm__traits_8h_source.html +++ b/docs/fp16__sgemm__traits_8h_source.html @@ -76,27 +76,27 @@ $(function() {
fp16_sgemm_traits.h
-Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
29 #pragma once
30 
31 #include "cutlass/gemm/gemm.h"
38 
39 namespace cutlass {
40 namespace gemm {
41 
43 
44 template <
46  typename OutputTile_,
48  typename ThreadGemmShape_,
50  typename ScalarA_,
52  typename ScalarB_,
54  typename ScalarC_,
56  typename ScalarD_,
58  int kScalarsPerLdgA_ = 1,
60  int kScalarsPerLdgB_ = 1>
61 struct Fp16SgemmConfig : public GemmConfig<
63  ScalarA_,
65  ScalarB_,
67  ScalarC_,
69  ScalarD_,
71  OutputTile_,
73  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, ScalarA_, ScalarB_, float /*for sgemm accum is float*/>,
75  kScalarsPerLdgA_,
77  kScalarsPerLdgA_,
79  4,
81  kScalarsPerLdgB_,
83  kScalarsPerLdgB_,
85  4,
87  1,
89  4,
91  1,
93  2> {};
94 
96 
97 template <
99  MatrixLayout::Kind kLayoutA_,
101  MatrixLayout::Kind kLayoutB_,
103  typename OutputTile_ = Shape<8, 128, 128>,
105  typename ScalarA_ = half,
107  typename ScalarB_ = half,
109  typename ScalarC_ = half,
111  typename ScalarD_ = half,
113  typename Scalar_ = half,
115  typename EpilogueFunctor_ = LinearScaling<Scalar_, FragmentMultiplyAdd<Scalar_, float/*accumulator type*/> >,
117  typename ThreadGemmShape_ = Shape<8, 8, 8>,
119  int kScalarsPerLdgA_ = 1,
121  int kScalarsPerLdgB_ = 1,
123  typename Index_ = int,
125  typename GemmConfig_ =
126  Fp16SgemmConfig<OutputTile_,
127  ThreadGemmShape_,
128  ScalarA_,
129  ScalarB_,
130  ScalarC_,
131  ScalarD_,
132  kScalarsPerLdgA_,
133  kScalarsPerLdgB_>,
135  typename GemmEpilogueTraits_ =
138  // The layout for A.
139  kLayoutA_,
140  // The layout for B.
141  kLayoutB_,
142  // The config.
143  GemmConfig_,
144  // The epilogue.
145  GemmEpilogue<GemmEpilogueTraits_>,
146  // The index.
147  Index_> {};
148 
150 
151 } // namespace gemm
152 } // namespace cutlass
Definition: convert.h:33
+Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are permitted
5  * provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright notice, this list of
7  * conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
12  * to endorse or promote products derived from this software without specific prior written
13  * permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  **************************************************************************************************/
29 #pragma once
30 
31 #include "cutlass/gemm/gemm.h"
38 
39 namespace cutlass {
40 namespace gemm {
41 
43 
44 template <
46  typename OutputTile_,
48  typename ThreadGemmShape_,
50  typename ScalarA_,
52  typename ScalarB_,
54  typename ScalarC_,
56  typename ScalarD_,
58  int kScalarsPerLdgA_ = 1,
60  int kScalarsPerLdgB_ = 1>
61 struct Fp16SgemmConfig : public GemmConfig<
63  ScalarA_,
65  ScalarB_,
67  ScalarC_,
69  ScalarD_,
71  OutputTile_,
73  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, ScalarA_, ScalarB_, float /*for sgemm accum is float*/>,
75  kScalarsPerLdgA_,
77  kScalarsPerLdgA_,
79  4,
81  kScalarsPerLdgB_,
83  kScalarsPerLdgB_,
85  4,
87  1,
89  4,
91  1,
93  2> {};
94 
96 
97 template <
99  MatrixLayout::Kind kLayoutA_,
101  MatrixLayout::Kind kLayoutB_,
103  typename OutputTile_ = Shape<8, 128, 128>,
105  typename ScalarA_ = half,
107  typename ScalarB_ = half,
109  typename ScalarC_ = half,
111  typename ScalarD_ = half,
113  typename Scalar_ = half,
115  typename EpilogueFunctor_ = LinearScaling<Scalar_, FragmentMultiplyAdd<Scalar_, float/*accumulator type*/> >,
117  typename ThreadGemmShape_ = Shape<8, 8, 8>,
119  int kScalarsPerLdgA_ = 1,
121  int kScalarsPerLdgB_ = 1,
123  typename Index_ = int,
125  typename GemmConfig_ =
126  Fp16SgemmConfig<OutputTile_,
127  ThreadGemmShape_,
128  ScalarA_,
129  ScalarB_,
130  ScalarC_,
131  ScalarD_,
132  kScalarsPerLdgA_,
133  kScalarsPerLdgB_>,
135  typename GemmEpilogueTraits_ =
138  // The layout for A.
139  kLayoutA_,
140  // The layout for B.
141  kLayoutB_,
142  // The config.
143  GemmConfig_,
144  // The epilogue.
145  GemmEpilogue<GemmEpilogueTraits_>,
146  // The index.
147  Index_> {};
148 
150 
151 } // namespace gemm
152 } // namespace cutlass
Definition: convert.h:33
Defines iterators for efficiently loading and storing to global memory.
Defines structural properties of complete GEMM computation.
+
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
Implements the epilogue phase of the GEMM kernel that efficiently updates global memory with the comp...
Defines iterators for efficiently loading and storing tiles to and from shared memory.
Definition: gemm_config.h:76
A Shape implementing Layout Concept describing the dimensions of a cube.
Definition: shape.h:64
-
Definition: gemm_epilogue_traits.h:323
+
Definition: gemm_epilogue_traits.h:340
Definition: fp16_sgemm_traits.h:61
-
Kind
Enumeration defining fundamental contiguous layouts.
Definition: matrix_traits.h:159
Template implementing matrix multiply-add operations on fragments.
Functor to compute linear combination of fragments.
Definition: linear_scaling.h:51
Implements a software-pipelined efficient GEMM.
Defines structural properties of the GEMM epilogue.
Definition: fp16_sgemm_traits.h:137
-
Definition: gemm_traits.h:650
+
Definition: gemm_traits.h:773
Definition: fragment_multiply_add.h:41
diff --git a/docs/fragment_8h.html b/docs/fragment_8h.html index 687dfdc8..b0846413 100644 --- a/docs/fragment_8h.html +++ b/docs/fragment_8h.html @@ -116,7 +116,7 @@ Namespaces
diff --git a/docs/fragment_8h_source.html b/docs/fragment_8h_source.html index f7d23656..863120c6 100644 --- a/docs/fragment_8h_source.html +++ b/docs/fragment_8h_source.html @@ -135,7 +135,7 @@ $(function() { diff --git a/docs/fragment__multiply__add_8h.html b/docs/fragment__multiply__add_8h.html index 107cfee7..7384df3f 100644 --- a/docs/fragment__multiply__add_8h.html +++ b/docs/fragment__multiply__add_8h.html @@ -103,7 +103,7 @@ Namespaces diff --git a/docs/fragment__multiply__add_8h_source.html b/docs/fragment__multiply__add_8h_source.html index 1d4c4f7f..b8a6dad0 100644 --- a/docs/fragment__multiply__add_8h_source.html +++ b/docs/fragment__multiply__add_8h_source.html @@ -95,7 +95,7 @@ $(function() { diff --git a/docs/functions.html b/docs/functions.html index bdde612a..31aa3e4f 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -120,14 +120,18 @@ $(function() { , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int > +
  • add_batch_offset() +: cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ > +, cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ > +
  • add_pointer_offset() : cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ > -, cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > +, cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > -, cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > -, cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > -, cutlass::ZipTileIterator< First_, Second_ > +, cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > +, cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > +, cutlass::ZipTileIterator< First_, Second_ >
  • Additive : cutlass::Identity @@ -144,18 +148,19 @@ $(function() { : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > , cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::Params , cutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ >::Params +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params
  • at() : cutlass::ConstPredicateTileAdapter< PredicateVector_, Iterations_ > -, cutlass::Coord< Rank_, Index_ > +, cutlass::Coord< Rank_, Index_ > , cutlass::FragmentConstIterator< Fragment_, Iterations_, AccessType_ > , cutlass::FragmentIterator< Fragment_, Iterations_, AccessType_ > , cutlass::PredicateTileAdapter< PredicateVector_, Iterations_ > , cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ > -, cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +, cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > -, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > -, cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +, cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TrivialPredicateTileAdapter
  • AType @@ -165,7 +170,7 @@ $(function() { diff --git a/docs/functions_0x7e.html b/docs/functions_0x7e.html index 0cb0e345..e65f314d 100644 --- a/docs/functions_0x7e.html +++ b/docs/functions_0x7e.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/functions_b.html b/docs/functions_b.html index 35c2018b..6e6797a7 100644 --- a/docs/functions_b.html +++ b/docs/functions_b.html @@ -108,7 +108,10 @@ $(function() { , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
  • batch() -: cutlass::gemm::GemmCoord +: cutlass::gemm::GemmCoord +
  • +
  • batch_stride +: cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params
  • batch_stride_A : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > @@ -118,9 +121,14 @@ $(function() {
  • batch_stride_C : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > +, cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params
  • batch_stride_D : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > +, cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params +
  • +
  • BatchedReduction() +: cutlass::reduction::BatchedReduction< BatchedReductionTraits_ >
  • begin() : cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ > @@ -131,12 +139,14 @@ $(function() { : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > , cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::Params , cutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ >::Params +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params
  • block : cutlass::KernelLaunchConfiguration
  • BlockSwizzle : cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • bounds : cutlass::RegularTilePredicateFunctor< Delta_ > @@ -154,7 +164,7 @@ $(function() { diff --git a/docs/functions_c.html b/docs/functions_c.html index 0c37a229..f7888aee 100644 --- a/docs/functions_c.html +++ b/docs/functions_c.html @@ -132,7 +132,7 @@ $(function() {
  • ConstIterator() : cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::ConstIterator -, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator +, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator , cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator
  • ConstPredicateTileAdapter() @@ -150,6 +150,7 @@ $(function() {
  • ConstTensorView : cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +, cutlass::TileAllocation< Scalar_, Shape_ >
  • consume_tile() : cutlass::gemm::Gemm< GemmTraits_ > @@ -174,12 +175,12 @@ $(function() {
  • copy() : cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ > , cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ > -, cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ > +, cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ > , cutlass::gemm::SharedStreamPair< StreamA_, StreamB_ > , cutlass::PredicatedTileLoadStream< Iterator_, PredicateFunctor_, Transformer_ > , cutlass::PredicatedTileStoreStream< Iterator_, PredicateFunctor_, Transformer_ > , cutlass::TileLoadStream< Iterator_, Transformer_ > -, cutlass::TileStoreStream< Iterator_, Transformer_ > +, cutlass::TileStoreStream< Iterator_, Transformer_ >
  • count() : cutlass::Coord< Rank_, Index_ > @@ -191,7 +192,7 @@ $(function() { diff --git a/docs/functions_d.html b/docs/functions_d.html index fe6d9c96..a1ccd741 100644 --- a/docs/functions_d.html +++ b/docs/functions_d.html @@ -77,15 +77,27 @@ $(function() {
  • d() : cutlass::TileCoord< Index_ >
  • +
  • d_a +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params +
  • +
  • d_c +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params +
  • +
  • d_d +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params +
  • data() : cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::SharedStorage , cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > -, cutlass::TileAllocation< Scalar_, Shape_ > +, cutlass::TileAllocation< Scalar_, Shape_ >
  • decrement() : cutlass::ZipTileIterator< First_, Second_ >
  • +
  • DefaultBlockSwizzle() +: cutlass::reduction::DefaultBlockSwizzle +
  • deleter_type : cutlass::platform::unique_ptr< T, Deleter >
  • @@ -113,11 +125,14 @@ $(function() { , cutlass::TileTraitsStrideMajor< Tile_, Threads > , cutlass::TileTraitsWarpRake< Tile_, Threads > +
  • DeviceGemm() +: cutlass::gemm::DeviceGemm< DeviceGemmTraits_ > +
  • dhw() : cutlass::TileCoord< Index_ >
  • dot() -: cutlass::Coord< Rank_, Index_ > +: cutlass::Coord< Rank_, Index_ >
  • DType : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > @@ -129,7 +144,7 @@ $(function() { diff --git a/docs/functions_e.html b/docs/functions_e.html index ea9d23f5..821c8de3 100644 --- a/docs/functions_e.html +++ b/docs/functions_e.html @@ -106,7 +106,7 @@ $(function() { diff --git a/docs/functions_enum.html b/docs/functions_enum.html index df8ae39f..ea3e5931 100644 --- a/docs/functions_enum.html +++ b/docs/functions_enum.html @@ -75,7 +75,6 @@ $(function() { , cutlass::GemmOperand , cutlass::Identity , cutlass::IteratorAdvance -, cutlass::MatrixLayout , cutlass::MatrixTransform , cutlass::MemorySpace
  • @@ -83,7 +82,7 @@ $(function() { diff --git a/docs/functions_eval.html b/docs/functions_eval.html index b5312933..2efb7809 100644 --- a/docs/functions_eval.html +++ b/docs/functions_eval.html @@ -94,9 +94,6 @@ $(function() {
  • kC : cutlass::GemmOperand
  • -
  • kColumnMajor -: cutlass::MatrixLayout -
  • kConjugate : cutlass::MatrixTransform
  • @@ -127,9 +124,6 @@ $(function() {
  • kRequiresLoadFence : cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
  • -
  • kRowMajor -: cutlass::MatrixLayout -
  • kScalar : cutlass::FragmentElementType
  • @@ -192,7 +186,7 @@ $(function() { diff --git a/docs/functions_f.html b/docs/functions_f.html index 2deb57d0..69fc9f28 100644 --- a/docs/functions_f.html +++ b/docs/functions_f.html @@ -85,6 +85,9 @@ $(function() {
  • fill() : cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >
  • +
  • first +: cutlass::platform::Pair< T1, T2 > +
  • First : cutlass::ZipConvert< First_, Second_ >
  • @@ -96,13 +99,13 @@ $(function() {
  • first : cutlass::ZipFragment< First_, Second_ > +, cutlass::ZipTensorRef< First_, Second_ >
  • First : cutlass::ZipTensorRef< First_, Second_ >
  • first -: cutlass::ZipTensorRef< First_, Second_ > -, cutlass::ZipTileAllocation< First_, Second_ > +: cutlass::ZipTileAllocation< First_, Second_ >
  • First : cutlass::ZipTileAllocation< First_, Second_ > @@ -116,6 +119,9 @@ $(function() {
  • first : cutlass::ZipTileIterator< First_, Second_ >::Params
  • +
  • first_type +: cutlass::platform::Pair< T1, T2 > +
  • Fragment : cutlass::FragmentConstIterator< Fragment_, Iterations_, AccessType_ > , cutlass::FragmentIterator< Fragment_, Iterations_, AccessType_ > @@ -209,12 +215,25 @@ $(function() {
  • Functor : cutlass::gemm::GemmEpilogueTraitsHelper< GemmConfig_, EpilogueFunctor_, Index_ > +, cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > +
  • +
  • functor +: cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > +
  • +
  • Functor +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > +
  • +
  • functor_caller() +: cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > +
  • +
  • functorParams +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params
  • diff --git a/docs/functions_func.html b/docs/functions_func.html index 4791620a..bf6b82d6 100644 --- a/docs/functions_func.html +++ b/docs/functions_func.html @@ -71,14 +71,18 @@ $(function() {  

    - a -

    diff --git a/docs/functions_func_0x7e.html b/docs/functions_func_0x7e.html index 02cd656d..18b75d7f 100644 --- a/docs/functions_func_0x7e.html +++ b/docs/functions_func_0x7e.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/functions_func_b.html b/docs/functions_func_b.html index 80882b7a..b2ed08fe 100644 --- a/docs/functions_func_b.html +++ b/docs/functions_func_b.html @@ -74,6 +74,9 @@ $(function() {
  • batch() : cutlass::gemm::GemmCoord
  • +
  • BatchedReduction() +: cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > +
  • begin() : cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ > , cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -86,7 +89,7 @@ $(function() { diff --git a/docs/functions_func_c.html b/docs/functions_func_c.html index b8f85b2c..3a8a5beb 100644 --- a/docs/functions_func_c.html +++ b/docs/functions_func_c.html @@ -122,7 +122,7 @@ $(function() {
  • ConstIterator() : cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::ConstIterator -, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator +, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator , cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator
  • ConstPredicateTileAdapter() @@ -160,7 +160,7 @@ $(function() { diff --git a/docs/functions_func_d.html b/docs/functions_func_d.html index dbc7a90c..8a763624 100644 --- a/docs/functions_func_d.html +++ b/docs/functions_func_d.html @@ -78,22 +78,28 @@ $(function() { : cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::SharedStorage , cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > -, cutlass::TileAllocation< Scalar_, Shape_ > +, cutlass::TileAllocation< Scalar_, Shape_ >
  • decrement() : cutlass::ZipTileIterator< First_, Second_ >
  • +
  • DefaultBlockSwizzle() +: cutlass::reduction::DefaultBlockSwizzle +
  • +
  • DeviceGemm() +: cutlass::gemm::DeviceGemm< DeviceGemmTraits_ > +
  • dhw() : cutlass::TileCoord< Index_ >
  • dot() -: cutlass::Coord< Rank_, Index_ > +: cutlass::Coord< Rank_, Index_ >
  • diff --git a/docs/functions_func_e.html b/docs/functions_func_e.html index 10ff8b06..d02645ce 100644 --- a/docs/functions_func_e.html +++ b/docs/functions_func_e.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/functions_func_f.html b/docs/functions_func_f.html index bfd045bd..50e34557 100644 --- a/docs/functions_func_f.html +++ b/docs/functions_func_f.html @@ -86,7 +86,7 @@ $(function() { : cutlass::gemm::SharedStreamPair< StreamA_, StreamB_ >
  • FragmentConstIterator() -: cutlass::FragmentConstIterator< Fragment_, Iterations_, AccessType_ > +: cutlass::FragmentConstIterator< Fragment_, Iterations_, AccessType_ >
  • FragmentIterator() : cutlass::FragmentIterator< Fragment_, Iterations_, AccessType_ > @@ -95,11 +95,14 @@ $(function() { : cutlass::gemm::FragmentMultiplyAdd< ScalarAlphaBeta_, ScalarAccum_, fragMul2 > , cutlass::gemm::FragmentMultiplyAdd< half, half, true >
  • +
  • functor_caller() +: cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > +
  • diff --git a/docs/functions_func_g.html b/docs/functions_func_g.html index b6258df4..81c0c6db 100644 --- a/docs/functions_func_g.html +++ b/docs/functions_func_g.html @@ -84,10 +84,10 @@ $(function() { : cutlass::gemm::GemmEpilogue< GemmEpilogueTraits_ >
  • GemmGlobalIteratorAb() -: cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ > +: cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
  • GemmGlobalIteratorCd() -: cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > +: cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >
  • get() : cutlass::ComputeOffsetFromShape< Shape_ > @@ -105,12 +105,16 @@ $(function() { , cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection >
  • get_deleter() -: cutlass::platform::unique_ptr< T, Deleter > +: cutlass::platform::unique_ptr< T, Deleter >
  • get_grid_layout() : cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection > , cutlass::gemm::IdentityBlockSwizzle , cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection > +, cutlass::reduction::DefaultBlockSwizzle +
  • +
  • get_offset_to_residue() +: cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params
  • get_pointer_offset() : cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -121,16 +125,22 @@ $(function() {
  • get_scalar() : cutlass::detail::ScalarOrPointer< Scalar_ >
  • +
  • get_threadblock_bounds() +: cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection > +, cutlass::gemm::IdentityBlockSwizzle +, cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection > +
  • get_threadblock_offset() : cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection > , cutlass::gemm::IdentityBlockSwizzle , cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection > +, cutlass::reduction::DefaultBlockSwizzle
  • GlobalLoadStream() : cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >
  • GlobalLoadStreamPair() -: cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ > +: cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >
  • good() : cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -140,7 +150,7 @@ $(function() { diff --git a/docs/functions_func_h.html b/docs/functions_func_h.html index 184c449e..a41fbd45 100644 --- a/docs/functions_func_h.html +++ b/docs/functions_func_h.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/functions_func_i.html b/docs/functions_func_i.html index 7c8680ab..ada80695 100644 --- a/docs/functions_func_i.html +++ b/docs/functions_func_i.html @@ -82,7 +82,7 @@ $(function() { : cutlass::gemm::IgemmFloatToInt8Converter< kElements_ >
  • IgemmGlobalIteratorAb() -: cutlass::gemm::IgemmGlobalIteratorAb< TileTraits_, Index_ > +: cutlass::gemm::IgemmGlobalIteratorAb< TileTraits_, Index_ >
  • IgemmInt8ToFloatConverter() : cutlass::gemm::IgemmInt8ToFloatConverter< kElements_ > @@ -129,32 +129,43 @@ $(function() {
  • increment() : cutlass::ZipTileIterator< First_, Second_ >
  • +
  • init_problem() +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params +
  • initialize() : cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params -, cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::Params -, cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params +, cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::Params +, cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params -, cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params +, cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params , cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::Params , cutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ >::Params , cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ > , cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >::Params +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params , cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ >::Params -, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params -, cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params +, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params +, cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
  • initialize_predicates() : cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ > +, cutlass::gemm::IgemmGlobalIteratorAb< TileTraits_, Index_ > , cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > -, cutlass::ZipTileIterator< First_, Second_ > +, cutlass::ZipTileIterator< First_, Second_ >
  • intermediate_fragment() : cutlass::TileLoadStream< Iterator_, Transformer_ > , cutlass::TileStoreStream< Iterator_, Transformer_ >
  • +
  • is_last_partition() +: cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection > +, cutlass::gemm::IdentityBlockSwizzle +, cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection > +
  • is_pointer() : cutlass::detail::ScalarOrPointer< Scalar_ >
  • @@ -162,13 +173,13 @@ $(function() { : cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >
  • Iterator() -: cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::Iterator +: cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::Iterator
  • diff --git a/docs/functions_func_k.html b/docs/functions_func_k.html index ced1e9b6..f1ae4d77 100644 --- a/docs/functions_func_k.html +++ b/docs/functions_func_k.html @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/functions_func_l.html b/docs/functions_func_l.html index 76d84a05..262ae5d8 100644 --- a/docs/functions_func_l.html +++ b/docs/functions_func_l.html @@ -72,18 +72,22 @@ $(function() {

    - l -

    diff --git a/docs/functions_func_m.html b/docs/functions_func_m.html index 97f28656..148399e4 100644 --- a/docs/functions_func_m.html +++ b/docs/functions_func_m.html @@ -81,6 +81,9 @@ $(function() {
  • MatrixCoord() : cutlass::MatrixCoord
  • +
  • mn() +: cutlass::gemm::GemmCoord +
  • move_to_residue() : cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ > , cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ > @@ -102,7 +105,7 @@ $(function() { diff --git a/docs/functions_func_n.html b/docs/functions_func_n.html index 3b16224a..4c49ef61 100644 --- a/docs/functions_func_n.html +++ b/docs/functions_func_n.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/functions_func_o.html b/docs/functions_func_o.html index a7c0b04d..8620e5f6 100644 --- a/docs/functions_func_o.html +++ b/docs/functions_func_o.html @@ -75,10 +75,6 @@ $(function() { : cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >
  • -
  • operator() -: cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator -, cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator -
  • operator &=() : cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >
  • @@ -150,6 +146,8 @@ $(function() { , cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::ConstIterator , cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::Iterator , cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::TrivialIterator +, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator +, cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator , cutlass::TileCoord< Index_ >
  • operator*=() @@ -202,7 +200,7 @@ $(function() { , cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > , cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator -, cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator +, cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator , cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TileCoord< Index_ >
  • @@ -266,7 +264,7 @@ $(function() { , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > , cutlass::Vector< Scalar_, kLanes_ > , cutlass::Vector< bin1_t, kLanes_ > -, cutlass::Vector< half, 1 > +, cutlass::Vector< half, 1 > , cutlass::Vector< half, kLanes_ > , cutlass::Vector< int4_t, kLanes_ > , cutlass::Vector< uint4_t, kLanes_ > @@ -278,7 +276,7 @@ $(function() { diff --git a/docs/functions_func_p.html b/docs/functions_func_p.html index d12a337a..978a122f 100644 --- a/docs/functions_func_p.html +++ b/docs/functions_func_p.html @@ -71,14 +71,18 @@ $(function() {  

    - p -

    diff --git a/docs/functions_func_r.html b/docs/functions_func_r.html index b7f89e82..930f8f9a 100644 --- a/docs/functions_func_r.html +++ b/docs/functions_func_r.html @@ -87,6 +87,9 @@ $(function() {
  • release() : cutlass::platform::unique_ptr< T, Deleter >
  • +
  • required_workspace_memory_in_byte() +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params +
  • reset() : cutlass::platform::unique_ptr< T, Deleter > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -108,11 +111,14 @@ $(function() {
  • RowMajorBlockSwizzle() : cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection >
  • +
  • run() +: cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > +
  • diff --git a/docs/functions_func_s.html b/docs/functions_func_s.html index 68316b6a..d0702e58 100644 --- a/docs/functions_func_s.html +++ b/docs/functions_func_s.html @@ -114,7 +114,7 @@ $(function() { , cutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 > , cutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > -, cutlass::ZipTileIterator< First_, Second_ > +, cutlass::ZipTileIterator< First_, Second_ >
  • store_element() : cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > @@ -150,12 +150,13 @@ $(function() { : cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection > , cutlass::gemm::IdentityBlockSwizzle , cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection > +, cutlass::reduction::DefaultBlockSwizzle
  • diff --git a/docs/functions_func_t.html b/docs/functions_func_t.html index 8521d2da..9acd45c9 100644 --- a/docs/functions_func_t.html +++ b/docs/functions_func_t.html @@ -71,12 +71,12 @@ $(function() {  

    - t -

    diff --git a/docs/functions_func_w.html b/docs/functions_func_w.html index 8cac2ddb..ce2bbf39 100644 --- a/docs/functions_func_w.html +++ b/docs/functions_func_w.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/functions_func_z.html b/docs/functions_func_z.html index 858d93ff..a0bad6bd 100644 --- a/docs/functions_func_z.html +++ b/docs/functions_func_z.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/functions_g.html b/docs/functions_g.html index bb564d1f..d7c01592 100644 --- a/docs/functions_g.html +++ b/docs/functions_g.html @@ -92,10 +92,13 @@ $(function() { : cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >
  • GemmGlobalIteratorAb() -: cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ > +: cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
  • GemmGlobalIteratorCd() -: cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > +: cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > +
  • +
  • GemmParams +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params
  • GemmTileTraitsHelperA : cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ > @@ -105,6 +108,9 @@ $(function() { : cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ > , cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >
  • +
  • GemmTraits +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > +
  • get() : cutlass::ComputeOffsetFromShape< Shape_ > , cutlass::ComputeOffsetFromStrides< Strides_ > @@ -127,6 +133,10 @@ $(function() { : cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection > , cutlass::gemm::IdentityBlockSwizzle , cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection > +, cutlass::reduction::DefaultBlockSwizzle +
  • +
  • get_offset_to_residue() +: cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params
  • get_pointer_offset() : cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -137,10 +147,16 @@ $(function() {
  • get_scalar() : cutlass::detail::ScalarOrPointer< Scalar_ >
  • +
  • get_threadblock_bounds() +: cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection > +, cutlass::gemm::IdentityBlockSwizzle +, cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection > +
  • get_threadblock_offset() : cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection > , cutlass::gemm::IdentityBlockSwizzle , cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection > +, cutlass::reduction::DefaultBlockSwizzle
  • global_to_shared_stream : cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::MainLoopSharedStorage @@ -195,7 +211,7 @@ $(function() { , cutlass::gemm::SimplifiedGemmTraitsHelper< GemmTileTraitsHelperA_, GemmTileTraitsHelperB_, Index_ >
  • GlobalLoadStreamPair() -: cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ > +: cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >
  • GlobalLoadTileTraits : cutlass::gemm::GemmEpilogueTraitsHelper< GemmConfig_, EpilogueFunctor_, Index_ > @@ -256,7 +272,7 @@ $(function() { diff --git a/docs/functions_h.html b/docs/functions_h.html index 1185e332..fe529061 100644 --- a/docs/functions_h.html +++ b/docs/functions_h.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/functions_i.html b/docs/functions_i.html index 3167390c..720a3cb2 100644 --- a/docs/functions_i.html +++ b/docs/functions_i.html @@ -88,7 +88,7 @@ $(function() { : cutlass::gemm::IgemmFloatToInt8Converter< kElements_ >
  • IgemmGlobalIteratorAb() -: cutlass::gemm::IgemmGlobalIteratorAb< TileTraits_, Index_ > +: cutlass::gemm::IgemmGlobalIteratorAb< TileTraits_, Index_ >
  • IgemmInt8ToFloatConverter() : cutlass::gemm::IgemmInt8ToFloatConverter< kElements_ > @@ -116,7 +116,7 @@ $(function() { : cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ > , cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > , cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params -, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params +, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params , cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
  • @@ -126,7 +126,7 @@ $(function() {
  • inc_d() : cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ > , cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > -, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params +, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params , cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
  • @@ -166,8 +166,10 @@ $(function() { , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > , cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ > , cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ > , cutlass::MatrixCoord +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > , cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -179,28 +181,34 @@ $(function() { , cutlass::TileLoadStream< Iterator_, Transformer_ > , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::TileStoreStream< Iterator_, Transformer_ > -, cutlass::ZipTileIterator< First_, Second_ > +, cutlass::ZipTileIterator< First_, Second_ > + +
  • init_problem() +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params
  • initialize() : cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params -, cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::Params -, cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params +, cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::Params +, cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params -, cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params +, cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params , cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::Params , cutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ >::Params , cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ > , cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >::Params +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params , cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ >::Params -, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params +, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params , cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params -, cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params +, cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
  • initialize_predicates() : cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ > +, cutlass::gemm::IgemmGlobalIteratorAb< TileTraits_, Index_ > , cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > -, cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > +, cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::ZipTileIterator< First_, Second_ >
  • InputFragment @@ -225,6 +233,11 @@ $(function() { : cutlass::TileLoadStream< Iterator_, Transformer_ > , cutlass::TileStoreStream< Iterator_, Transformer_ >
  • +
  • is_last_partition() +: cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection > +, cutlass::gemm::IdentityBlockSwizzle +, cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection > +
  • is_pointer() : cutlass::detail::ScalarOrPointer< Scalar_ >
  • @@ -286,13 +299,13 @@ $(function() {
  • iterator : cutlass::TileLoadStream< Iterator_, Transformer_ >::Params -, cutlass::TileStoreStream< Iterator_, Transformer_ >
  • Iterator : cutlass::TileStoreStream< Iterator_, Transformer_ >
  • iterator -: cutlass::TileStoreStream< Iterator_, Transformer_ >::Params +: cutlass::TileStoreStream< Iterator_, Transformer_ > +, cutlass::TileStoreStream< Iterator_, Transformer_ >::Params
  • iterator_c : cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params @@ -304,7 +317,7 @@ $(function() { diff --git a/docs/functions_k.html b/docs/functions_k.html index 6dc0fcc7..3d94e926 100644 --- a/docs/functions_k.html +++ b/docs/functions_k.html @@ -132,9 +132,6 @@ $(function() { : cutlass::MatrixCoord , cutlass::MatrixLayout::ContiguousLayout
  • -
  • kColumnMajor -: cutlass::MatrixLayout -
  • kConjugate : cutlass::MatrixTransform
  • @@ -162,6 +159,8 @@ $(function() {
  • KernelClass : cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • KernelLaunchConfiguration() : cutlass::KernelLaunchConfiguration @@ -201,7 +200,6 @@ $(function() { , cutlass::GemmOperand , cutlass::Identity , cutlass::IteratorAdvance -, cutlass::MatrixLayout , cutlass::MatrixTransform , cutlass::MemorySpace
  • @@ -257,9 +255,11 @@ $(function() {
  • kLayoutA : cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >
  • kLayoutB : cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >
  • km() : cutlass::gemm::GemmCoord @@ -310,6 +310,7 @@ $(function() { : cutlass::Coord< Rank_, Index_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > +, cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
  • kRequiresLoadFence : cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > @@ -324,9 +325,6 @@ $(function() { : cutlass::MatrixCoord , cutlass::MatrixLayout::ContiguousLayout
  • -
  • kRowMajor -: cutlass::MatrixLayout -
  • kScalar : cutlass::FragmentElementType
  • @@ -422,6 +420,7 @@ $(function() { , cutlass::gemm::GemmConfig< ScalarA_, ScalarB_, ScalarC_, ScalarD_, OutputTile_, MultiplyAdd_, kScalarsPerLdgA_, kScalarsPerStsA_, kScalarsPerLdsA_, kScalarsPerLdgB_, kScalarsPerStsB_, kScalarsPerLdsB_, kScalarsPerLdgCAndStgD_, kScalarsPerStsD_, kScalarsPerLdsD_, kStages_, kResidueSeparate_, kResidueInProlog_, kLaunchBounds_ > , cutlass::gemm::GemmSharedLoadTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ > , cutlass::gemm::GemmSharedStoreTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > , cutlass::TileTraitsContiguousMajor< Tile_, Threads > , cutlass::TileTraitsStandard< Tile_, Threads > , cutlass::TileTraitsStrideMajor< Tile_, Threads > @@ -489,7 +488,7 @@ $(function() { diff --git a/docs/functions_l.html b/docs/functions_l.html index 3731f457..d30659ab 100644 --- a/docs/functions_l.html +++ b/docs/functions_l.html @@ -72,18 +72,31 @@ $(function() {

    - l -

    diff --git a/docs/functions_m.html b/docs/functions_m.html index 32e299e6..9f1509e1 100644 --- a/docs/functions_m.html +++ b/docs/functions_m.html @@ -91,6 +91,15 @@ $(function() {
  • MatrixCoord() : cutlass::MatrixCoord
  • +
  • maxInReg +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > +
  • +
  • maxOutReg +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > +
  • +
  • mn() +: cutlass::gemm::GemmCoord +
  • move_to_residue() : cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ > , cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ > @@ -136,7 +145,7 @@ $(function() { diff --git a/docs/functions_n.html b/docs/functions_n.html index 73a3906d..99d10107 100644 --- a/docs/functions_n.html +++ b/docs/functions_n.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/functions_o.html b/docs/functions_o.html index 589b20ce..3c429810 100644 --- a/docs/functions_o.html +++ b/docs/functions_o.html @@ -81,13 +81,12 @@ $(function() {
  • offset_to_residue : cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params
  • +
  • offset_to_residue_last_partition +: cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params +
  • OneDirection : cutlass::gemm::swizzleDirection
  • -
  • operator() -: cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator -, cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator -
  • operator &=() : cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >
  • @@ -159,6 +158,8 @@ $(function() { , cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::ConstIterator , cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::Iterator , cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::TrivialIterator +, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator +, cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator , cutlass::TileCoord< Index_ >
  • operator*=() @@ -217,7 +218,7 @@ $(function() {
  • operator--() : cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::ConstIterator -, cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::Iterator +, cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::Iterator , cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator , cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator , cutlass::ZipTileIterator< First_, Second_ > @@ -256,7 +257,7 @@ $(function() { : cutlass::Coord< Rank_, Index_ >
  • operator=() -: cutlass::detail::ScalarOrPointer< Scalar_ > +: cutlass::detail::ScalarOrPointer< Scalar_ > , cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
  • operator==() @@ -266,17 +267,17 @@ $(function() {
  • operator[]() : cutlass::Coord< Rank_, Index_ > -, cutlass::Fragment< Element_, kElements_, kAlignment_ > +, cutlass::Fragment< Element_, kElements_, kAlignment_ > , cutlass::FragmentConstIterator< Fragment_, Iterations_, AccessType_ > , cutlass::FragmentIterator< Fragment_, Iterations_, AccessType_ > , cutlass::platform::unique_ptr< T, Deleter > , cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ > -, cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > -, cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > +, cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +, cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > , cutlass::Vector< Scalar_, kLanes_ > , cutlass::Vector< bin1_t, kLanes_ > -, cutlass::Vector< half, 1 > -, cutlass::Vector< half, kLanes_ > +, cutlass::Vector< half, 1 > +, cutlass::Vector< half, kLanes_ > , cutlass::Vector< int4_t, kLanes_ > , cutlass::Vector< uint4_t, kLanes_ >
  • @@ -300,12 +301,13 @@ $(function() { , cutlass::gemm::GemmSharedLoadTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ > , cutlass::gemm::GemmSharedStoreTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > diff --git a/docs/functions_p.html b/docs/functions_p.html index 77529224..14475e3c 100644 --- a/docs/functions_p.html +++ b/docs/functions_p.html @@ -71,18 +71,26 @@ $(function() {
    Here is a list of all class members with links to the classes they belong to:

    - p -

    diff --git a/docs/functions_r.html b/docs/functions_r.html index 335de8ee..5275a380 100644 --- a/docs/functions_r.html +++ b/docs/functions_r.html @@ -79,11 +79,23 @@ $(function() {
  • real() : cutlass::platform::complex< T >
  • +
  • reduction_stride +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params +
  • +
  • ReductionParams +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params +
  • +
  • ReductionSize +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > +
  • +
  • ReductionTraits +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > +
  • ref() : cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
  • reference() -: cutlass::TileAllocation< Scalar_, Shape_ > +: cutlass::TileAllocation< Scalar_, Shape_ > , cutlass::ZipTileAllocation< First_, Second_ >
  • registers @@ -99,6 +111,9 @@ $(function() {
  • release() : cutlass::platform::unique_ptr< T, Deleter >
  • +
  • required_workspace_memory_in_byte() +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params +
  • reset() : cutlass::platform::unique_ptr< T, Deleter > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -115,16 +130,19 @@ $(function() { , cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >
  • row() -: cutlass::MatrixCoord +: cutlass::MatrixCoord
  • RowMajorBlockSwizzle() : cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection >
  • +
  • run() +: cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > +
  • diff --git a/docs/functions_s.html b/docs/functions_s.html index 749e7c4f..8834cf32 100644 --- a/docs/functions_s.html +++ b/docs/functions_s.html @@ -98,6 +98,7 @@ $(function() { , cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ > , cutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ > , cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ > , cutlass::TileAllocation< Scalar_, Shape_ > , cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > @@ -117,24 +118,30 @@ $(function() { : cutlass::gemm::Gemm< GemmTraits_ > , cutlass::gemm::GemmConfig< ScalarA_, ScalarB_, ScalarC_, ScalarD_, OutputTile_, MultiplyAdd_, kScalarsPerLdgA_, kScalarsPerStsA_, kScalarsPerLdsA_, kScalarsPerLdgB_, kScalarsPerStsB_, kScalarsPerLdsB_, kScalarsPerLdgCAndStgD_, kScalarsPerStsD_, kScalarsPerLdsD_, kStages_, kResidueSeparate_, kResidueInProlog_, kLaunchBounds_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, ScalarA_, ScalarB_, ScalarC_, kLayout_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • ScalarAccum : cutlass::gemm::FragmentMultiplyAdd< ScalarAlphaBeta_, ScalarAccum_, fragMul2 > , cutlass::gemm::FragmentMultiplyAdd< half, half, true > , cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • ScalarAlphaBeta : cutlass::gemm::FragmentMultiplyAdd< ScalarAlphaBeta_, ScalarAccum_, fragMul2 > , cutlass::gemm::FragmentMultiplyAdd< half, half, true > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • ScalarB : cutlass::gemm::Gemm< GemmTraits_ > , cutlass::gemm::GemmConfig< ScalarA_, ScalarB_, ScalarC_, ScalarD_, OutputTile_, MultiplyAdd_, kScalarsPerLdgA_, kScalarsPerStsA_, kScalarsPerLdsA_, kScalarsPerLdgB_, kScalarsPerStsB_, kScalarsPerLdsB_, kScalarsPerLdgCAndStgD_, kScalarsPerStsD_, kScalarsPerLdsD_, kStages_, kResidueSeparate_, kResidueInProlog_, kLaunchBounds_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, ScalarA_, ScalarB_, ScalarC_, kLayout_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half > @@ -146,10 +153,12 @@ $(function() { , cutlass::gemm::GemmEpilogue< GemmEpilogueTraits_ > , cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, ScalarA_, ScalarB_, ScalarC_, kLayout_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • ScalarD : cutlass::gemm::Gemm< GemmTraits_ > @@ -157,6 +166,8 @@ $(function() { , cutlass::gemm::GemmEpilogue< GemmEpilogueTraits_ > , cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • ScalarEpilogue : cutlass::gemm::Gemm< GemmTraits_ > @@ -173,7 +184,8 @@ $(function() { , cutlass::Vector< half, kLanes_ >
  • second -: cutlass::ZipConvert< First_, Second_ > +: cutlass::platform::Pair< T1, T2 > +, cutlass::ZipConvert< First_, Second_ >
  • Second : cutlass::ZipConvert< First_, Second_ > @@ -203,6 +215,9 @@ $(function() {
  • Second : cutlass::ZipTileIterator< First_, Second_ >
  • +
  • second_type +: cutlass::platform::Pair< T1, T2 > +
  • set() : cutlass::PredicateTileAdapter< PredicateVector_, Iterations_ > , cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::Iterator @@ -334,7 +349,7 @@ $(function() { : cutlass::gemm::SharedStreamPair< StreamA_, StreamB_ >
  • size() -: cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +: cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
  • Skew : cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > @@ -361,13 +376,13 @@ $(function() { , cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +, cutlass::TileAllocation< Scalar_, Shape_ >
  • storage : cutlass::TileAllocation< Scalar_, Shape_ >
  • Storage -: cutlass::TileAllocation< Scalar_, Shape_ > -, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > +: cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
  • StorageCoord : cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -384,7 +399,7 @@ $(function() { , cutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 > , cutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > -, cutlass::ZipTileIterator< First_, Second_ > +, cutlass::ZipTileIterator< First_, Second_ >
  • store_element() : cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > @@ -399,7 +414,7 @@ $(function() { : cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > , cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ > , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > -, cutlass::ZipTileIterator< First_, Second_ > +, cutlass::ZipTileIterator< First_, Second_ >
  • StoreIterator : cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ > @@ -432,8 +447,8 @@ $(function() { , cutlass::MatrixLayout::ContiguousLayout , cutlass::MatrixLayout::RowMajorBlockLinear< BlockRows, BlockColumns > , cutlass::MatrixLayout::RowMajorInterleaved< Interleave > -, cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > -, cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > +, cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +, cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >
  • stride_advance() : cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ > @@ -441,7 +456,7 @@ $(function() {
  • stride_d : cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params -, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params +, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
  • stride_h : cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params @@ -468,6 +483,9 @@ $(function() {
  • SType : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >
  • +
  • SubTile +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > +
  • subview() : cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
  • @@ -478,12 +496,13 @@ $(function() { : cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection > , cutlass::gemm::IdentityBlockSwizzle , cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection > +, cutlass::reduction::DefaultBlockSwizzle diff --git a/docs/functions_t.html b/docs/functions_t.html index 8665a408..bf0cdb29 100644 --- a/docs/functions_t.html +++ b/docs/functions_t.html @@ -74,9 +74,6 @@ $(function() {
  • tensor_stride : cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
  • -
  • TensorArrayRef() -: cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > -
  • TensorCoord : cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > @@ -87,7 +84,7 @@ $(function() { : cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > -, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator +, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator , cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator , cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -106,6 +103,9 @@ $(function() {
  • TensorRefA : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >
  • +
  • TensorRefArray() +: cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +
  • TensorRefB : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >
  • @@ -120,6 +120,7 @@ $(function() {
  • TensorView() : cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +, cutlass::TileAllocation< Scalar_, Shape_ >
  • This_ : cutlass::Fragment< Element_, kElements_, kAlignment_ > @@ -129,7 +130,10 @@ $(function() { , cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ > , cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ > +, cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > , cutlass::ZipFragment< First_, Second_ >
  • thread_offset @@ -201,10 +205,14 @@ $(function() { , cutlass::gemm::IgemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >
  • ThreadShape -: cutlass::TileTraitsContiguousMajor< Tile_, Threads > +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > +, cutlass::TileTraitsContiguousMajor< Tile_, Threads > , cutlass::TileTraitsStrideMajor< Tile_, Threads > , cutlass::TileTraitsWarpRake< Tile_, Threads >
  • +
  • ThreadShapeMultiple2 +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > +
  • ThreadsPerWarp : cutlass::gemm::GemmSharedLoadTileATraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ > , cutlass::gemm::GemmSharedLoadTileBTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ > @@ -239,6 +247,8 @@ $(function() { , cutlass::TileTraitsStandard< Tile_, Threads > , cutlass::TileTraitsStrideMajor< Tile_, Threads > , cutlass::TileTraitsWarpRake< Tile_, Threads > +, cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, bool > +, cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true >
  • TileCoord() : cutlass::TileCoord< Index_ > @@ -269,18 +279,20 @@ $(function() { , cutlass::gemm::GemmSharedLoadTileBTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >
  • Traits -: cutlass::gemm::Gemm< GemmTraits_ > +: cutlass::gemm::DeviceGemm< DeviceGemmTraits_ > +, cutlass::gemm::Gemm< GemmTraits_ > , cutlass::gemm::GemmEpilogue< GemmEpilogueTraits_ > , cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ > +, cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > , cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
  • transform() : cutlass::Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > > -, cutlass::Copy< Fragment_ > +, cutlass::Copy< Fragment_ > , cutlass::gemm::HgemmSwizzle< GlobalIterator_ > -, cutlass::gemm::IgemmFloatToInt8Converter< kElements_ > +, cutlass::gemm::IgemmFloatToInt8Converter< kElements_ > , cutlass::gemm::IgemmInt8ToFloatConverter< kElements_ > , cutlass::gemm::IgemmSwizzle< GlobalIterator_ > , cutlass::ZipConvert< First_, Second_ > @@ -319,13 +331,13 @@ $(function() { , cutlass::gemm::IgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ > , cutlass::gemm::IgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ > , cutlass::gemm::IgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ > +, cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >
  • transformer : cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >
  • Transformer -: cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ > -, cutlass::PredicatedTileLoadStream< Iterator_, PredicateFunctor_, Transformer_ > +: cutlass::PredicatedTileLoadStream< Iterator_, PredicateFunctor_, Transformer_ > , cutlass::PredicatedTileStoreStream< Iterator_, PredicateFunctor_, Transformer_ >
  • transformer @@ -333,13 +345,11 @@ $(function() {
  • Transformer : cutlass::TileLoadStream< Iterator_, Transformer_ > +, cutlass::TileStoreStream< Iterator_, Transformer_ >
  • transformer : cutlass::TileStoreStream< Iterator_, Transformer_ >
  • -
  • Transformer -: cutlass::TileStoreStream< Iterator_, Transformer_ > -
  • TrivialIterator() : cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::TrivialIterator
  • @@ -372,7 +382,7 @@ $(function() { diff --git a/docs/functions_type.html b/docs/functions_type.html index 2e6491fb..98e4bbc3 100644 --- a/docs/functions_type.html +++ b/docs/functions_type.html @@ -124,7 +124,7 @@ $(function() { diff --git a/docs/functions_type_b.html b/docs/functions_type_b.html index 1770402d..f84522a8 100644 --- a/docs/functions_type_b.html +++ b/docs/functions_type_b.html @@ -106,6 +106,7 @@ $(function() {
  • BlockSwizzle : cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • BType : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > @@ -114,7 +115,7 @@ $(function() { diff --git a/docs/functions_type_c.html b/docs/functions_type_c.html index c209e761..fb7e926e 100644 --- a/docs/functions_type_c.html +++ b/docs/functions_type_c.html @@ -88,6 +88,7 @@ $(function() {
  • ConstTensorView : cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +, cutlass::TileAllocation< Scalar_, Shape_ >
  • Coord_t : cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -101,7 +102,7 @@ $(function() { diff --git a/docs/functions_type_d.html b/docs/functions_type_d.html index 45e91ea2..c14d7de1 100644 --- a/docs/functions_type_d.html +++ b/docs/functions_type_d.html @@ -105,7 +105,7 @@ $(function() { diff --git a/docs/functions_type_e.html b/docs/functions_type_e.html index a8826358..737fafa1 100644 --- a/docs/functions_type_e.html +++ b/docs/functions_type_e.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/functions_type_f.html b/docs/functions_type_f.html index 8ba4932b..cbf256a1 100644 --- a/docs/functions_type_f.html +++ b/docs/functions_type_f.html @@ -82,6 +82,9 @@ $(function() { , cutlass::ZipTileAllocation< First_, Second_ > , cutlass::ZipTileIterator< First_, Second_ >
  • +
  • first_type +: cutlass::platform::Pair< T1, T2 > +
  • Fragment : cutlass::FragmentConstIterator< Fragment_, Iterations_, AccessType_ > , cutlass::FragmentIterator< Fragment_, Iterations_, AccessType_ > @@ -142,12 +145,14 @@ $(function() { : cutlass::gemm::GemmEpilogue< GemmEpilogueTraits_ > , cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > , cutlass::gemm::GemmEpilogueTraitsHelper< GemmConfig_, EpilogueFunctor_, Index_ > +, cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • diff --git a/docs/functions_type_g.html b/docs/functions_type_g.html index 05c838d3..8acae28e 100644 --- a/docs/functions_type_g.html +++ b/docs/functions_type_g.html @@ -87,6 +87,9 @@ $(function() { : cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ > , cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ > +
  • GemmTraits +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > +
  • GlobalFragmentC : cutlass::gemm::IgemmEpilogueTraitsHelper< IgemmConfig_, EpilogueFunctor_, Index_ >
  • @@ -186,7 +189,7 @@ $(function() { diff --git a/docs/functions_type_i.html b/docs/functions_type_i.html index 0039f880..e70e707b 100644 --- a/docs/functions_type_i.html +++ b/docs/functions_type_i.html @@ -99,8 +99,10 @@ $(function() { , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > , cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ > , cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ > , cutlass::MatrixCoord +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > , cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -112,7 +114,7 @@ $(function() { , cutlass::TileLoadStream< Iterator_, Transformer_ > , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::TileStoreStream< Iterator_, Transformer_ > -, cutlass::ZipTileIterator< First_, Second_ > +, cutlass::ZipTileIterator< First_, Second_ >
  • InputFragment : cutlass::Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > > @@ -173,7 +175,7 @@ $(function() { diff --git a/docs/functions_type_k.html b/docs/functions_type_k.html index b5e5add5..8bab104f 100644 --- a/docs/functions_type_k.html +++ b/docs/functions_type_k.html @@ -73,12 +73,14 @@ $(function() {

    - k -

    diff --git a/docs/functions_type_l.html b/docs/functions_type_l.html index abda026b..e5d80de7 100644 --- a/docs/functions_type_l.html +++ b/docs/functions_type_l.html @@ -75,16 +75,24 @@ $(function() { : cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >
  • LongIndex -: cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +: cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > +, cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ > +, cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > +, cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ > +, cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > , cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > +, cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > +, cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > +, cutlass::ZipTileIterator< First_, Second_ >
  • diff --git a/docs/functions_type_m.html b/docs/functions_type_m.html index c7639549..7892b940 100644 --- a/docs/functions_type_m.html +++ b/docs/functions_type_m.html @@ -97,7 +97,7 @@ $(function() { diff --git a/docs/functions_type_n.html b/docs/functions_type_n.html index 187630cf..981540c7 100644 --- a/docs/functions_type_n.html +++ b/docs/functions_type_n.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/functions_type_o.html b/docs/functions_type_o.html index d3d71d55..c9e3bd62 100644 --- a/docs/functions_type_o.html +++ b/docs/functions_type_o.html @@ -91,12 +91,13 @@ $(function() { , cutlass::gemm::GemmSharedLoadTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ > , cutlass::gemm::GemmSharedStoreTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > diff --git a/docs/functions_type_p.html b/docs/functions_type_p.html index 9fe8de42..665b29db 100644 --- a/docs/functions_type_p.html +++ b/docs/functions_type_p.html @@ -72,10 +72,12 @@ $(function() {

    - p -

    CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator+= CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator+= ( Index  idx) - + @@ -355,7 +355,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa diff --git a/docs/dgemm__traits_8h_source.html b/docs/dgemm__traits_8h_source.html index d7cdbe52..6b868c25 100644 --- a/docs/dgemm__traits_8h_source.html +++ b/docs/dgemm__traits_8h_source.html @@ -76,9 +76,10 @@ $(function() {
    dgemm_traits.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/gemm/gemm.h"
    37 
    38 namespace cutlass {
    39 namespace gemm {
    40 
    42 
    43 template <
    45  typename OutputTile_,
    47  typename ThreadGemmShape_,
    49  int kScalarsPerLdgA_ = 1,
    51  int kScalarsPerLdgB_ = 1>
    53  : public GemmConfig<
    55  double,
    57  double,
    59  double,
    61  double,
    63  OutputTile_,
    65  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, double, double, double>,
    67  kScalarsPerLdgA_,
    69  kScalarsPerLdgA_,
    71  2,
    73  kScalarsPerLdgB_,
    75  kScalarsPerLdgB_,
    77  2,
    79  1,
    81  2,
    83  1,
    85  2,
    87  false,
    89  false,
    91  false
    92  >{};
    93 
    95 
    96 template <
    98  MatrixLayout::Kind kLayoutA_,
    100  MatrixLayout::Kind kLayoutB_,
    102  typename OutputTile_ = Shape<8, 64, 128>,
    104  typename EpilogueFunctor_ = LinearScaling<double>,
    106  typename ThreadGemmShape_ = Shape<8, 8, 8>,
    108  int kScalarsPerLdgA_ = 1,
    110  int kScalarsPerLdgB_ = 1,
    112  typename Index_ = int,
    114  typename GemmConfig_ =
    117  typename GemmEpilogueTraits_ =
    120  // The layout for A.
    121  kLayoutA_,
    122  // The layout for B.
    123  kLayoutB_,
    124  // The config.
    125  GemmConfig_,
    126  // The epilogue.
    127  GemmEpilogue<GemmEpilogueTraits_>,
    128  // The index.
    129  Index_> {};
    130 
    132 
    133 } // namespace gemm
    134 } // namespace cutlass
    Definition: convert.h:33
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/gemm/gemm.h"
    37 
    38 namespace cutlass {
    39 namespace gemm {
    40 
    42 
    43 template <
    45  typename OutputTile_,
    47  typename ThreadGemmShape_,
    49  int kScalarsPerLdgA_ = 1,
    51  int kScalarsPerLdgB_ = 1>
    53  : public GemmConfig<
    55  double,
    57  double,
    59  double,
    61  double,
    63  OutputTile_,
    65  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, double, double, double>,
    67  kScalarsPerLdgA_,
    69  kScalarsPerLdgA_,
    71  2,
    73  kScalarsPerLdgB_,
    75  kScalarsPerLdgB_,
    77  2,
    79  1,
    81  2,
    83  1,
    85  2,
    87  false,
    89  false,
    91  false
    92  >{};
    93 
    95 
    96 template <
    98  MatrixLayout::Kind kLayoutA_,
    100  MatrixLayout::Kind kLayoutB_,
    102  typename OutputTile_ = Shape<8, 64, 128>,
    104  typename EpilogueFunctor_ = LinearScaling<double>,
    106  typename ThreadGemmShape_ = Shape<8, 8, 8>,
    108  int kScalarsPerLdgA_ = 1,
    110  int kScalarsPerLdgB_ = 1,
    112  typename Index_ = int,
    114  typename GemmConfig_ =
    117  typename GemmEpilogueTraits_ =
    120  // The layout for A.
    121  kLayoutA_,
    122  // The layout for B.
    123  kLayoutB_,
    124  // The config.
    125  GemmConfig_,
    126  // The epilogue.
    127  GemmEpilogue<GemmEpilogueTraits_>,
    128  // The index.
    129  Index_> {};
    130 
    132 
    133 } // namespace gemm
    134 } // namespace cutlass
    Definition: convert.h:33
    Defines iterators for efficiently loading and storing to global memory.
    Defines structural properties of complete GEMM computation.
    +
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    Template implementing matrix multiply-add operations on fragments.
    Implements the epilogue phase of the GEMM kernel that efficiently updates global memory with the comp...
    Defines iterators for efficiently loading and storing tiles to and from shared memory.
    @@ -86,16 +87,15 @@ $(function() {
    Definition: dgemm_traits.h:119
    Definition: dgemm_traits.h:52
    A Shape implementing Layout Concept describing the dimensions of a cube.
    Definition: shape.h:64
    -
    Definition: gemm_epilogue_traits.h:323
    -
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    +
    Definition: gemm_epilogue_traits.h:340
    Functor to compute linear combination of fragments.
    Definition: linear_scaling.h:51
    Implements a software-pipelined efficient GEMM.
    Defines structural properties of the GEMM epilogue.
    -
    Definition: gemm_traits.h:650
    +
    Definition: gemm_traits.h:773
    diff --git a/docs/dir_1417ee5ebebc309c36b7962f26a92c39.html b/docs/dir_1417ee5ebebc309c36b7962f26a92c39.html index 6555e36c..7a5edb36 100644 --- a/docs/dir_1417ee5ebebc309c36b7962f26a92c39.html +++ b/docs/dir_1417ee5ebebc309c36b7962f26a92c39.html @@ -81,6 +81,8 @@ $(function() { Directories
    + +
    CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator- CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator- ( Index  idx) - + @@ -382,7 +382,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa diff --git a/docs/cutlass__math_8h_source.html b/docs/cutlass__math_8h_source.html index 8381f641..0a8f7438 100644 --- a/docs/cutlass__math_8h_source.html +++ b/docs/cutlass__math_8h_source.html @@ -102,7 +102,7 @@ $(function() { diff --git a/docs/debug_8h.html b/docs/debug_8h.html index 81ed9f3c..9c3ddf82 100644 --- a/docs/debug_8h.html +++ b/docs/debug_8h.html @@ -231,7 +231,7 @@ Functions diff --git a/docs/debug_8h_source.html b/docs/debug_8h_source.html index c404b411..0b55ed85 100644 --- a/docs/debug_8h_source.html +++ b/docs/debug_8h_source.html @@ -81,7 +81,7 @@ $(function() { diff --git a/docs/device__gemm_8h.html b/docs/device__gemm_8h.html new file mode 100644 index 00000000..3162bc02 --- /dev/null +++ b/docs/device__gemm_8h.html @@ -0,0 +1,111 @@ + + + + + + + +Cutlass: device_gemm.h File Reference + + + + + + + + + + +
    +
    +
    CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-- CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-- ( ) - + @@ -410,7 +410,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa - - - + + + @@ -124,9 +124,9 @@ Public Member Functions - - - + + +
    CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-- CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-- ( int  ) - + @@ -432,7 +432,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa diff --git a/docs/classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator-members.html b/docs/classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator-members.html index bb387618..6f455b65 100644 --- a/docs/classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator-members.html +++ b/docs/classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator-members.html @@ -80,13 +80,13 @@ $(function() {

    This is the complete list of members for cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator, including all inherited members.

    CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-= CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-= ( Index  idx)
    - + - + @@ -94,7 +94,7 @@ $(function() {
    ConstIterator(TensorRefBatchStrided const &ref, LongIndex offset=0)cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator() constcutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator*() constcutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator+(Index idx)cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator++()cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator++(int)cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator+=(Index idx)cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator-(Index idx)cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator-(ConstIterator const &it)cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator-(ConstIterator const &it)cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator--()cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator--(int)cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    operator-=(Index idx)cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorinline
    diff --git a/docs/classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html b/docs/classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html index c3dbd9df..56780235 100644 --- a/docs/classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html +++ b/docs/classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html @@ -97,9 +97,9 @@ Public Member Functions
    CUTLASS_HOST_DEVICE ConstIterator (TensorRefBatchStrided const &ref, LongIndex offset=0)
     Constructs a ConstIterator from a parent TensorRefBatchStrided. More...
     
    CUTLASS_HOST_DEVICE TensorRefoperator () const
     Obtains a TensorRef pointed to by the iterator. More...
     
    CUTLASS_HOST_DEVICE TensorRef operator* () const
     Obtains a TensorRef pointed to by the iterator. More...
     
    CUTLASS_HOST_DEVICE ConstIteratoroperator++ ()
     Advances the iterator to point to the next tensor. More...
     
    CUTLASS_HOST_DEVICE ConstIteratoroperator-= (Index idx)
     Moves this iterator by (idx) and returns a reference to self. More...
     
    CUTLASS_HOST_DEVICE Stride operator- (ConstIterator const &it)
     Returns the difference in offset between two iterators. More...
     
    CUTLASS_HOST_DEVICE LongIndex operator- (ConstIterator const &it)
     Returns the difference in offset between two iterators. More...
     

    Member Typedef Documentation

    @@ -185,8 +185,8 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa

    Member Function Documentation

    - -

    ◆ operator()

    + +

    ◆ operator*()

    @@ -197,7 +197,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa
    - + @@ -224,7 +224,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa
    CUTLASS_HOST_DEVICE TensorRef* cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator CUTLASS_HOST_DEVICE TensorRef cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator* ( ) const - + @@ -252,7 +252,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa
    CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator+ CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator+ ( Index  idx) - + @@ -279,7 +279,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa diff --git a/docs/clear__accumulators_8h_source.html b/docs/clear__accumulators_8h_source.html index 7c0423a5..dd1cf331 100644 --- a/docs/clear__accumulators_8h_source.html +++ b/docs/clear__accumulators_8h_source.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/complex_8h.html b/docs/complex_8h.html index e94494d2..e8284392 100644 --- a/docs/complex_8h.html +++ b/docs/complex_8h.html @@ -255,7 +255,7 @@ Functions diff --git a/docs/complex_8h_source.html b/docs/complex_8h_source.html index 6270d22d..2fd43e7f 100644 --- a/docs/complex_8h_source.html +++ b/docs/complex_8h_source.html @@ -115,7 +115,7 @@ $(function() { diff --git a/docs/convert_8h.html b/docs/convert_8h.html index cd3bf4bb..50f996db 100644 --- a/docs/convert_8h.html +++ b/docs/convert_8h.html @@ -103,7 +103,7 @@ Namespaces diff --git a/docs/convert_8h_source.html b/docs/convert_8h_source.html index 22ec9d4b..c01fd86d 100644 --- a/docs/convert_8h_source.html +++ b/docs/convert_8h_source.html @@ -94,7 +94,7 @@ $(function() { diff --git a/docs/coord_8h.html b/docs/coord_8h.html index 8bb9bea4..34904184 100644 --- a/docs/coord_8h.html +++ b/docs/coord_8h.html @@ -104,6 +104,22 @@ Namespaces
    CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator++ CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator++ ( ) - + @@ -307,7 +307,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa
    CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator++ CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator++ ( int  ) - + @@ -335,7 +335,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa
    CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator+= CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator+= ( Index  idx) - + @@ -351,8 +351,8 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa - -

    ◆ operator-() [2/2]

    + +

    ◆ operator-() [2/2]

    @@ -363,7 +363,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa
    CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator- CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator- ( Index  idx) - + @@ -391,7 +391,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa - + @@ -1282,7 +1301,7 @@ template<typename First_ , typename Second_ > diff --git a/docs/classcutlass_1_1detail_1_1ScalarOrPointer-members.html b/docs/classcutlass_1_1detail_1_1ScalarOrPointer-members.html index 8da71466..54ab98f8 100644 --- a/docs/classcutlass_1_1detail_1_1ScalarOrPointer-members.html +++ b/docs/classcutlass_1_1detail_1_1ScalarOrPointer-members.html @@ -93,7 +93,7 @@ $(function() {
    CUTLASS_HOST_DEVICE Stride cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator- CUTLASS_HOST_DEVICE LongIndex cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator- ( ConstIterator const &  it) - + @@ -418,7 +418,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa - - - + + + + + + @@ -208,9 +211,9 @@ Public Member Functions - - - + + +
    CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-- CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-- ( ) - + @@ -446,7 +446,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa
    CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-- CUTLASS_HOST_DEVICE ConstIterator cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-- ( int  ) - + @@ -468,7 +468,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa diff --git a/docs/classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4-members.html b/docs/classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4-members.html index 8af74ab9..08d71e30 100644 --- a/docs/classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4-members.html +++ b/docs/classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4-members.html @@ -116,7 +116,7 @@ $(function() {
    CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-= CUTLASS_HOST_DEVICE ConstIterator& cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator::operator-= ( Index  idx)
    diff --git a/docs/classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html b/docs/classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html index 2dfd10c9..f7c3277b 100644 --- a/docs/classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html +++ b/docs/classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html @@ -1084,7 +1084,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ , typename Index_ , diff --git a/docs/classcutlass_1_1TensorView-members.html b/docs/classcutlass_1_1TensorView-members.html index 9f5c3253..8e919b4f 100644 --- a/docs/classcutlass_1_1TensorView-members.html +++ b/docs/classcutlass_1_1TensorView-members.html @@ -136,7 +136,7 @@ $(function() {
    diff --git a/docs/classcutlass_1_1TensorView.html b/docs/classcutlass_1_1TensorView.html index 276d1077..91ee6e7e 100644 --- a/docs/classcutlass_1_1TensorView.html +++ b/docs/classcutlass_1_1TensorView.html @@ -1082,7 +1082,7 @@ template<typename Storage_ , int Rank_ = 4, typename MapFunc_ = IdentityTens diff --git a/docs/classcutlass_1_1ZipTileIterator-members.html b/docs/classcutlass_1_1ZipTileIterator-members.html index 6de74a49..4b1707b7 100644 --- a/docs/classcutlass_1_1ZipTileIterator-members.html +++ b/docs/classcutlass_1_1ZipTileIterator-members.html @@ -79,13 +79,13 @@ $(function() {

    This is the complete list of members for cutlass::ZipTileIterator< First_, Second_ >, including all inherited members.

    - + - - + + - + @@ -94,30 +94,31 @@ $(function() { - - - - - - - + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + +
    add_pointer_offset(Index offset)cutlass::ZipTileIterator< First_, Second_ >inline
    add_pointer_offset(LongIndex offset)cutlass::ZipTileIterator< First_, Second_ >inline
    decrement(int count=1)cutlass::ZipTileIterator< First_, Second_ >inline
    First typedefcutlass::ZipTileIterator< First_, Second_ >
    firstcutlass::ZipTileIterator< First_, Second_ >
    firstcutlass::ZipTileIterator< First_, Second_ >
    First typedefcutlass::ZipTileIterator< First_, Second_ >
    Fragment typedefcutlass::ZipTileIterator< First_, Second_ >
    increment(int count=1)cutlass::ZipTileIterator< First_, Second_ >inline
    Index typedefcutlass::ZipTileIterator< First_, Second_ >
    Index typedefcutlass::ZipTileIterator< First_, Second_ >
    initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))cutlass::ZipTileIterator< First_, Second_ >inline
    initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)cutlass::ZipTileIterator< First_, Second_ >inline
    load(Fragment &fragment) constcutlass::ZipTileIterator< First_, Second_ >inline
    load_post_increment(Fragment &fragment)cutlass::ZipTileIterator< First_, Second_ >inline
    load_post_increment(Fragment &fragment, Coord< 4 > const &offset)cutlass::ZipTileIterator< First_, Second_ >inline
    load_post_increment(Fragment &fragment, PredicateIterator pred_it)cutlass::ZipTileIterator< First_, Second_ >inline
    operator++()cutlass::ZipTileIterator< First_, Second_ >inline
    operator+=(int count)cutlass::ZipTileIterator< First_, Second_ >inline
    operator+=(Coord< 3 > const &offset)cutlass::ZipTileIterator< First_, Second_ >inline
    operator--()cutlass::ZipTileIterator< First_, Second_ >inline
    operator-=(int count)cutlass::ZipTileIterator< First_, Second_ >inline
    PredicateVector typedefcutlass::ZipTileIterator< First_, Second_ >
    secondcutlass::ZipTileIterator< First_, Second_ >
    LongIndex typedefcutlass::ZipTileIterator< First_, Second_ >
    operator++()cutlass::ZipTileIterator< First_, Second_ >inline
    operator+=(int count)cutlass::ZipTileIterator< First_, Second_ >inline
    operator+=(Coord< 3 > const &offset)cutlass::ZipTileIterator< First_, Second_ >inline
    operator--()cutlass::ZipTileIterator< First_, Second_ >inline
    operator-=(int count)cutlass::ZipTileIterator< First_, Second_ >inline
    PredicateVector typedefcutlass::ZipTileIterator< First_, Second_ >
    Second typedefcutlass::ZipTileIterator< First_, Second_ >
    store(Fragment const &fragment) constcutlass::ZipTileIterator< First_, Second_ >inline
    store(Fragment const &fragment, Coord< 4 > const &offset) constcutlass::ZipTileIterator< First_, Second_ >inline
    store(Fragment const &fragment, PredicateIterator pred_it) constcutlass::ZipTileIterator< First_, Second_ >inline
    store_post_increment(Fragment const &fragment)cutlass::ZipTileIterator< First_, Second_ >inline
    store_post_increment(Fragment const &fragment, Coord< 4 > const &offset)cutlass::ZipTileIterator< First_, Second_ >inline
    store_post_increment(Fragment const &fragment, PredicateIterator pred_it)cutlass::ZipTileIterator< First_, Second_ >inline
    TensorRef typedefcutlass::ZipTileIterator< First_, Second_ >
    ZipTileIterator()cutlass::ZipTileIterator< First_, Second_ >inline
    ZipTileIterator(Params const &_params, Coord< 3 > const &threadblock_offset=make_Coord(0, 0, 0))cutlass::ZipTileIterator< First_, Second_ >inline
    ZipTileIterator(First const &_first, Second const &_second)cutlass::ZipTileIterator< First_, Second_ >inline
    ZipTileIterator(TensorRef const &ref)cutlass::ZipTileIterator< First_, Second_ >inline
    ZipTileIterator(Params const &_params, TensorRef const &ref)cutlass::ZipTileIterator< First_, Second_ >inline
    secondcutlass::ZipTileIterator< First_, Second_ >
    store(Fragment const &fragment) constcutlass::ZipTileIterator< First_, Second_ >inline
    store(Fragment const &fragment, Coord< 4 > const &offset) constcutlass::ZipTileIterator< First_, Second_ >inline
    store(Fragment const &fragment, PredicateIterator pred_it) constcutlass::ZipTileIterator< First_, Second_ >inline
    store_post_increment(Fragment const &fragment)cutlass::ZipTileIterator< First_, Second_ >inline
    store_post_increment(Fragment const &fragment, Coord< 4 > const &offset)cutlass::ZipTileIterator< First_, Second_ >inline
    store_post_increment(Fragment const &fragment, PredicateIterator pred_it)cutlass::ZipTileIterator< First_, Second_ >inline
    TensorRef typedefcutlass::ZipTileIterator< First_, Second_ >
    ZipTileIterator()cutlass::ZipTileIterator< First_, Second_ >inline
    ZipTileIterator(Params const &_params, Coord< 3 > const &threadblock_offset=make_Coord(0, 0, 0))cutlass::ZipTileIterator< First_, Second_ >inline
    ZipTileIterator(First const &_first, Second const &_second)cutlass::ZipTileIterator< First_, Second_ >inline
    ZipTileIterator(TensorRef const &ref)cutlass::ZipTileIterator< First_, Second_ >inline
    ZipTileIterator(Params const &_params, TensorRef const &ref)cutlass::ZipTileIterator< First_, Second_ >inline
    diff --git a/docs/classcutlass_1_1ZipTileIterator.html b/docs/classcutlass_1_1ZipTileIterator.html index 7cf7a392..7329dcbb 100644 --- a/docs/classcutlass_1_1ZipTileIterator.html +++ b/docs/classcutlass_1_1ZipTileIterator.html @@ -108,9 +108,12 @@ Public Types
    typedef First::PredicateVector PredicateVector
     Predicate vector. More...
     
    typedef First::Index Index
     Index type. More...
     
    typedef platform::Pair< typename First::Index, typename Second::Index > Index
     Index type. More...
     
    typedef platform::Pair< typename First::LongIndex, typename Second::LongIndex > LongIndex
     Long index type. More...
     
    typedef ZipTensorRef< typename First::TensorRef, typename Second::TensorRef > TensorRef
     Tensor reference. More...
     
    CUTLASS_DEVICE ZipTileIteratoroperator-= (int count)
     Decrements to previous tile. More...
     
    CUTLASS_DEVICE void add_pointer_offset (Index offset)
     Adds an offset to both iterators. More...
     
    CUTLASS_DEVICE void add_pointer_offset (LongIndex offset)
     Adds an offset to both iterators. More...
     
    @@ -254,8 +257,8 @@ template<typename First_ , typename Second_ > - -

    ◆ Index

    + +

    ◆ Index

    @@ -263,7 +266,23 @@ template<typename First_ , typename Second_ >
    template<typename First_ , typename Second_ >

    Public Attributes

    - + + +
    typedef First::Index cutlass::ZipTileIterator< First_, Second_ >::Indextypedef platform::Pair<typename First::Index, typename Second::Index> cutlass::ZipTileIterator< First_, Second_ >::Index
    +
    + +
    + + +

    ◆ LongIndex

    + +
    +
    +
    +template<typename First_ , typename Second_ >
    + + +
    typedef platform::Pair<typename First::LongIndex, typename Second::LongIndex> cutlass::ZipTileIterator< First_, Second_ >::LongIndex
    @@ -489,8 +508,8 @@ template<typename First_ , typename Second_ >

    Member Function Documentation

    - -

    ◆ add_pointer_offset()

    + +

    ◆ add_pointer_offset()

    @@ -503,7 +522,7 @@ template<typename First_ , typename Second_ >
    CUTLASS_DEVICE void cutlass::ZipTileIterator< First_, Second_ >::add_pointer_offset (Index LongIndex  offset)
    diff --git a/docs/classcutlass_1_1detail_1_1ScalarOrPointer.html b/docs/classcutlass_1_1detail_1_1ScalarOrPointer.html index 6a28c38f..07e17a04 100644 --- a/docs/classcutlass_1_1detail_1_1ScalarOrPointer.html +++ b/docs/classcutlass_1_1detail_1_1ScalarOrPointer.html @@ -426,7 +426,7 @@ template<typename Scalar_> diff --git a/docs/classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params-members.html b/docs/classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params-members.html index 323b1406..1b568278 100644 --- a/docs/classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params-members.html +++ b/docs/classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params-members.html @@ -90,7 +90,7 @@ $(function() {
    diff --git a/docs/classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html b/docs/classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html index 5fc5d05e..92e64717 100644 --- a/docs/classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html +++ b/docs/classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html @@ -381,7 +381,7 @@ template<typename GemmDesc_ > diff --git a/docs/classcutlass_1_1platform_1_1complex-members.html b/docs/classcutlass_1_1platform_1_1complex-members.html index 3e19742e..6b93e921 100644 --- a/docs/classcutlass_1_1platform_1_1complex-members.html +++ b/docs/classcutlass_1_1platform_1_1complex-members.html @@ -92,7 +92,7 @@ $(function() {
    diff --git a/docs/classcutlass_1_1platform_1_1complex.html b/docs/classcutlass_1_1platform_1_1complex.html index 672fef7e..2d6ae080 100644 --- a/docs/classcutlass_1_1platform_1_1complex.html +++ b/docs/classcutlass_1_1platform_1_1complex.html @@ -405,7 +405,7 @@ template<typename T> diff --git a/docs/classcutlass_1_1platform_1_1unique__ptr-members.html b/docs/classcutlass_1_1platform_1_1unique__ptr-members.html index 1242de68..69263c7d 100644 --- a/docs/classcutlass_1_1platform_1_1unique__ptr-members.html +++ b/docs/classcutlass_1_1platform_1_1unique__ptr-members.html @@ -98,7 +98,7 @@ $(function() {
    diff --git a/docs/classcutlass_1_1platform_1_1unique__ptr.html b/docs/classcutlass_1_1platform_1_1unique__ptr.html index 625e790b..d3e6a15a 100644 --- a/docs/classcutlass_1_1platform_1_1unique__ptr.html +++ b/docs/classcutlass_1_1platform_1_1unique__ptr.html @@ -546,7 +546,7 @@ template<class T, class Deleter = default_delete<T>> diff --git a/docs/classes.html b/docs/classes.html index 6a517312..7d4b9866 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -75,113 +75,116 @@ $(function() {
    a | b | c | d | e | f | g | h | i | k | l | m | n | p | r | s | t | u | v | w | z
    - - - - - - - - - + + + + + + + - - - - - - - - - - + + + + + + + + + + + + - - - + + + + + + - - - - - + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + + - - - - - - - - + + + - + + + + + - - - + + +
      a  
    -
    GemmConfig (cutlass::gemm)   IgemmTraitsHelper (cutlass::gemm)   LinearScalingDevicePtr::Params (cutlass::gemm)   Store< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 > (cutlass)   
    GemmCoord (cutlass::gemm)   IgemmTransformerA (cutlass::gemm)   GlobalLoadStream::Params (cutlass::gemm)   Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 > (cutlass)   
    aligned_chunk (cutlass::platform)   GemmDesc (cutlass::gemm)   IgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ > (cutlass::gemm)   SharedStreamPair::Params (cutlass::gemm)   Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 > (cutlass)   
    aligned_storage (cutlass::platform)   GemmEpilogue (cutlass::gemm)   IgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ > (cutlass::gemm)   WmmaGemmGlobalIteratorCd::Params (cutlass::gemm)   Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 > (cutlass)   
    AlignedStruct (cutlass)   GemmEpilogueTraits (cutlass::gemm)   IgemmTransformerB (cutlass::gemm)   ZipTileIterator::Params (cutlass)   Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 > (cutlass)   
    alignment_of (cutlass::platform)   GemmEpilogueTraitsHelper (cutlass::gemm)   IgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ > (cutlass::gemm)   GemmTraits::Params (cutlass::gemm)   Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > (cutlass)   
    alignment_of< const value_t > (cutlass::platform)   GemmGlobalIteratorAb (cutlass::gemm)   IgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ > (cutlass::gemm)   LinearScaling::Params (cutlass::gemm)   GemmEpilogueTraits::StreamSharedStorage (cutlass::gemm)   
    alignment_of< const volatile value_t > (cutlass::platform)   GemmGlobalIteratorCd (cutlass::gemm)   int4_t (cutlass)   GemmGlobalIteratorAb::Params (cutlass::gemm)   TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::StrideVector (cutlass)   
    alignment_of< double2 > (cutlass::platform)   GemmGlobalTileCdTraits (cutlass::gemm)   integral_constant (cutlass::platform)   GlobalLoadStreamPair::Params (cutlass::gemm)   swizzleDirection (cutlass::gemm)   
    alignment_of< double4 > (cutlass::platform)   GemmGlobalTileTraits (cutlass::gemm)   is_arithmetic (cutlass::platform)   GemmGlobalIteratorCd::Params (cutlass::gemm)   
      t  
    +
    GemmConfig (cutlass::gemm)   IgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ > (cutlass::gemm)   SharedStreamPair::Params (cutlass::gemm)   Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 > (cutlass)   
    GemmCoord (cutlass::gemm)   IgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ > (cutlass::gemm)   GlobalLoadStream::Params (cutlass::gemm)   Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 > (cutlass)   
    aligned_chunk (cutlass::platform)   GemmDesc (cutlass::gemm)   IgemmTransformerB (cutlass::gemm)   ZipTileIterator::Params (cutlass)   Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 > (cutlass)   
    aligned_storage (cutlass::platform)   GemmEpilogue (cutlass::gemm)   IgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ > (cutlass::gemm)   GlobalLoadStreamPair::Params (cutlass::gemm)   Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > (cutlass)   
    AlignedStruct (cutlass)   GemmEpilogueTraits (cutlass::gemm)   IgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ > (cutlass::gemm)   GemmTraits::Params (cutlass::gemm)   GemmEpilogueTraits::StreamSharedStorage (cutlass::gemm)   
    alignment_of (cutlass::platform)   GemmEpilogueTraitsHelper (cutlass::gemm)   int4_t (cutlass)   LinearScaling::Params (cutlass::gemm)   TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::StrideVector (cutlass)   
    alignment_of< const value_t > (cutlass::platform)   GemmGlobalIteratorAb (cutlass::gemm)   integral_constant (cutlass::platform)   SplitkPIGemmTraits::Params (cutlass::gemm)   swizzleDirection (cutlass::gemm)   
    alignment_of< const volatile value_t > (cutlass::platform)   GemmGlobalIteratorCd (cutlass::gemm)   is_arithmetic (cutlass::platform)   BatchedReductionTraits::Params (cutlass::reduction)   
      t  
    alignment_of< float4 > (cutlass::platform)   GemmMultiplicandTraits (cutlass::gemm)   is_base_of (cutlass::platform)   GemmEpilogueTraits::Params (cutlass::gemm)   
    alignment_of< int4 > (cutlass::platform)   GemmOperand (cutlass)   is_base_of_helper (cutlass::platform)   TileIteratorBase::Params (cutlass)   TensorRef (cutlass)   
    alignment_of< long4 > (cutlass::platform)   GemmOperandTraitsAb (cutlass::gemm)   is_floating_point (cutlass::platform)   TileLoadIterator::Params (cutlass)   TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > (cutlass)   
    alignment_of< longlong2 > (cutlass::platform)   GemmSharedLoadTileATraits (cutlass::gemm)   is_fundamental (cutlass::platform)   TileStoreIterator::Params (cutlass)   TensorRefArray (cutlass)   
    alignment_of< longlong4 > (cutlass::platform)   GemmSharedLoadTileBTraits (cutlass::gemm)   is_integral (cutlass::platform)   TileLoadStream::Params (cutlass)   TensorRefBatchStrided (cutlass)   
    alignment_of< uint4 > (cutlass::platform)   GemmSharedLoadTileDTraits (cutlass::gemm)   is_integral< char > (cutlass::platform)   TileStoreStream::Params (cutlass)   TensorView (cutlass)   
    alignment_of< ulong4 > (cutlass::platform)   GemmSharedStoreTileAbTraits (cutlass::gemm)   is_integral< const T > (cutlass::platform)   SharedLoadStream::Params (cutlass::gemm)   ThreadMultiplyAdd (cutlass::gemm)   
    alignment_of< ulonglong2 > (cutlass::platform)   GemmSharedStoreTileDTraits (cutlass::gemm)   is_integral< const volatile T > (cutlass::platform)   plus (cutlass::platform)   ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float > (cutlass::gemm)   
    alignment_of< ulonglong4 > (cutlass::platform)   GemmSharedStoreWithSkewTileAbTraits (cutlass::gemm)   is_integral< int > (cutlass::platform)   PredicatedTileLoadStream (cutlass)   ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half > (cutlass::gemm)   
    alignment_of< volatile value_t > (cutlass::platform)   GemmTileTraitsHelperA (cutlass::gemm)   is_integral< long > (cutlass::platform)   PredicatedTileStoreStream (cutlass)   ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int > (cutlass::gemm)   
    alignment_of< double2 > (cutlass::platform)   GemmGlobalTileCdTraits (cutlass::gemm)   is_base_of (cutlass::platform)   GemmGlobalIteratorAb::Params (cutlass::gemm)   
    alignment_of< double4 > (cutlass::platform)   GemmGlobalTileTraits (cutlass::gemm)   is_base_of_helper (cutlass::platform)   GemmGlobalIteratorCd::Params (cutlass::gemm)   TensorRef (cutlass)   
    alignment_of< float4 > (cutlass::platform)   GemmMultiplicandTraits (cutlass::gemm)   is_floating_point (cutlass::platform)   GemmEpilogueTraits::Params (cutlass::gemm)   TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > (cutlass)   
    alignment_of< int4 > (cutlass::platform)   GemmOperand (cutlass)   is_fundamental (cutlass::platform)   TileIteratorBase::Params (cutlass)   TensorRefArray (cutlass)   
    alignment_of< long4 > (cutlass::platform)   GemmOperandTraitsAb (cutlass::gemm)   is_integral (cutlass::platform)   TileLoadIterator::Params (cutlass)   TensorRefBatchStrided (cutlass)   
    alignment_of< longlong2 > (cutlass::platform)   GemmSharedLoadTileATraits (cutlass::gemm)   is_integral< char > (cutlass::platform)   TileStoreIterator::Params (cutlass)   TensorView (cutlass)   
    alignment_of< longlong4 > (cutlass::platform)   GemmSharedLoadTileBTraits (cutlass::gemm)   is_integral< const T > (cutlass::platform)   TileLoadStream::Params (cutlass)   ThreadMultiplyAdd (cutlass::gemm)   
    alignment_of< uint4 > (cutlass::platform)   GemmSharedLoadTileDTraits (cutlass::gemm)   is_integral< const volatile T > (cutlass::platform)   TileStoreStream::Params (cutlass)   ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float > (cutlass::gemm)   
    alignment_of< ulong4 > (cutlass::platform)   GemmSharedStoreTileAbTraits (cutlass::gemm)   is_integral< int > (cutlass::platform)   plus (cutlass::platform)   ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half > (cutlass::gemm)   
    alignment_of< ulonglong2 > (cutlass::platform)   GemmSharedStoreTileDTraits (cutlass::gemm)   is_integral< long > (cutlass::platform)   PredicatedTileLoadStream (cutlass)   ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int > (cutlass::gemm)   
    alignment_of< ulonglong4 > (cutlass::platform)   GemmSharedStoreWithSkewTileAbTraits (cutlass::gemm)   is_integral< long long > (cutlass::platform)   PredicatedTileStoreStream (cutlass)   GemmSharedLoadTileBTraits::ThreadOffset (cutlass::gemm)   
    alignment_of< volatile value_t > (cutlass::platform)   GemmTileTraitsHelperA (cutlass::gemm)   is_integral< short > (cutlass::platform)   PredicateTileAdapter (cutlass)   GemmGlobalTileCdTraits::ThreadOffset (cutlass::gemm)   
      b  
    -
    GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ > (cutlass::gemm)   is_integral< long long > (cutlass::platform)   PredicateTileAdapter (cutlass)   GemmSharedStoreTileAbTraits::ThreadOffset (cutlass::gemm)   
    GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ > (cutlass::gemm)   is_integral< short > (cutlass::platform)   TileLoadStream::PredicateVector (cutlass)   WmmaGemmGlobalIteratorCdTraits::ThreadOffset (cutlass::gemm)   
    bin1_t (cutlass)   GemmTileTraitsHelperB (cutlass::gemm)   is_integral< signed char > (cutlass::platform)   PredicateVector (cutlass)   GemmGlobalTileCdTraits::ThreadOffset (cutlass::gemm)   
    bool_constant (cutlass::platform)   GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ > (cutlass::gemm)   is_integral< unsigned char > (cutlass::platform)   TileStoreStream::PredicateVector (cutlass)   GemmSharedLoadTileATraits::ThreadOffset (cutlass::gemm)   
    GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ > (cutlass::gemm)   is_integral< signed char > (cutlass::platform)   PredicateVector (cutlass)   HgemmCrosswiseGlobalTileTraits::ThreadOffset (cutlass::gemm)   
    GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ > (cutlass::gemm)   is_integral< unsigned char > (cutlass::platform)   TileStoreStream::PredicateVector (cutlass)   GemmSharedStoreWithSkewTileAbTraits::ThreadOffset (cutlass::gemm)   
    BatchedReduction (cutlass::reduction)   GemmTileTraitsHelperB (cutlass::gemm)   is_integral< unsigned int > (cutlass::platform)   TileLoadStream::PredicateVector (cutlass)   WmmaGemmGlobalIteratorCdTraits::ThreadOffset (cutlass::gemm)   
    BatchedReductionTraits (cutlass::reduction)   GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ > (cutlass::gemm)   is_integral< unsigned long > (cutlass::platform)   ProjectOperand (cutlass::gemm)   GemmGlobalTileTraits::ThreadOffset (cutlass::gemm)   
    bin1_t (cutlass)   GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ > (cutlass::gemm)   is_integral< unsigned long long > (cutlass::platform)   ProjectOperand< GemmOperand::kA, Kstrided > (cutlass::gemm)   GemmSharedLoadTileDTraits::ThreadOffset (cutlass::gemm)   
    bool_constant (cutlass::platform)   GemmTraits (cutlass::gemm)   is_integral< unsigned short > (cutlass::platform)   ProjectOperand< GemmOperand::kB, Kstrided > (cutlass::gemm)   GemmSharedStoreTileDTraits::ThreadOffset (cutlass::gemm)   
      c  
    -
    GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ > (cutlass::gemm)   is_integral< unsigned int > (cutlass::platform)   ProjectOperand (cutlass::gemm)   GemmSharedStoreWithSkewTileAbTraits::ThreadOffset (cutlass::gemm)   
    GemmTraits (cutlass::gemm)   is_integral< unsigned long > (cutlass::platform)   ProjectOperand< GemmOperand::kA, Kstrided > (cutlass::gemm)   IgemmGlobalTileTraits::ThreadOffset (cutlass::gemm)   
    ClearAccumulators (cutlass::gemm)   GetExtent (cutlass::gemm)   is_integral< unsigned long long > (cutlass::platform)   ProjectOperand< GemmOperand::kB, Kstrided > (cutlass::gemm)   GemmSharedLoadTileBTraits::ThreadOffset (cutlass::gemm)   
    MatrixLayout::ColumnMajor (cutlass)   GetExtent< GemmOperand::kA, Tile_ > (cutlass::gemm)   is_integral< unsigned short > (cutlass::platform)   ProjectOperand< GemmOperand::kC, true > (cutlass::gemm)   GemmGlobalTileTraits::ThreadOffset (cutlass::gemm)   
    MatrixLayout::ColumnMajorBlockLinear (cutlass)   GetExtent< GemmOperand::kB, Tile_ > (cutlass::gemm)   is_integral< volatile T > (cutlass::platform)   ProjectOperand< GemmOperand::kD, true > (cutlass::gemm)   GemmSharedLoadTileDTraits::ThreadOffset (cutlass::gemm)   
    ColumnMajorBlockSwizzle (cutlass::gemm)   GlobalLoadStream (cutlass::gemm)   is_pointer (cutlass::platform)   
      r  
    +
    GetExtent (cutlass::gemm)   is_integral< volatile T > (cutlass::platform)   ProjectOperand< GemmOperand::kC, true > (cutlass::gemm)   GemmSharedLoadTileATraits::ThreadOffset (cutlass::gemm)   
    GetExtent< GemmOperand::kA, Tile_ > (cutlass::gemm)   is_pointer (cutlass::platform)   ProjectOperand< GemmOperand::kD, true > (cutlass::gemm)   GemmSharedStoreTileAbTraits::ThreadOffset (cutlass::gemm)   
    ClearAccumulators (cutlass::gemm)   GetExtent< GemmOperand::kB, Tile_ > (cutlass::gemm)   is_pointer_helper (cutlass::platform)   
      r  
    TileTraitsWarpRake::ThreadOffset (cutlass)   
    MatrixLayout::ColumnMajorInterleaved (cutlass)   GlobalLoadStreamPair (cutlass::gemm)   is_pointer_helper (cutlass::platform)   GemmSharedStoreTileDTraits::ThreadOffset (cutlass::gemm)   
    complex (cutlass::platform)   greater (cutlass::platform)   is_pointer_helper< T * > (cutlass::platform)   RegularTilePredicateFunctor (cutlass)   HgemmCrosswiseGlobalTileTraits::ThreadOffset (cutlass::gemm)   
    ComputeOffsetFromShape (cutlass)   
      h  
    -
    is_pow2 (cutlass)   remove_const (cutlass::platform)   TileAllocation (cutlass)   
    ComputeOffsetFromStrides (cutlass)   is_same (cutlass::platform)   remove_const< const T > (cutlass::platform)   TileCoord (cutlass)   
    ComputeThreadOffsetFromStrides (cutlass)   HgemmConfig (cutlass::gemm)   is_same< A, A > (cutlass::platform)   remove_cv (cutlass::platform)   TiledThreadOffset (cutlass)   
    ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, 1 >, Shape< 1, S_h_, S_w_, 1 > > (cutlass)   HgemmCrosswiseGlobalTileTraits (cutlass::gemm)   is_trivially_copyable (cutlass::platform)   remove_volatile (cutlass::platform)   TileIteratorBase (cutlass)   
    ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, T_c_ >, Shape< 1, S_h_, S_w_, S_c_ > > (cutlass)   HgemmSwizzle (cutlass::gemm)   is_void (cutlass::platform)   remove_volatile< volatile T > (cutlass::platform)   TileLoadIterator (cutlass)   
    conditional (cutlass::platform)   HgemmTileTraitsHelperA (cutlass::gemm)   is_volatile (cutlass::platform)   ReshapeThreads (cutlass::gemm)   TileLoadStream (cutlass)   
    conditional< false, T, F > (cutlass::platform)   HgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ > (cutlass::gemm)   is_volatile< volatile T > (cutlass::platform)   ReshapeThreads< Tile_, Threads_, true > (cutlass::gemm)   TileStoreIterator (cutlass)   
    PredicateVector::ConstIterator (cutlass)   HgemmTileTraitsHelperB (cutlass::gemm)   PredicateVector::Iterator (cutlass)   ReshapeTile (cutlass)   TileStoreStream (cutlass)   
    TensorRefBatchStrided::ConstIterator (cutlass)   HgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ > (cutlass::gemm)   IteratorAdvance (cutlass)   ReshapeTile< Tile_, kAccessSize_, true > (cutlass)   TileTraits (cutlass)   
    TensorRefArray::ConstIterator (cutlass)   HgemmTraits (cutlass::gemm)   
      k  
    -
    MatrixLayout::RowMajor (cutlass)   TileTraitsContiguousMajor (cutlass)   
    ConstPredicateTileAdapter (cutlass)   HgemmTraitsHelper (cutlass::gemm)   MatrixLayout::RowMajorBlockLinear (cutlass)   TileTraitsStandard (cutlass)   
    MatrixLayout::ContiguousLayout (cutlass)   HgemmTransformerA (cutlass::gemm)   KernelLaunchConfiguration (cutlass)   RowMajorBlockSwizzle (cutlass::gemm)   TileTraitsStrideMajor (cutlass)   
    Convert (cutlass)   HgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ > (cutlass::gemm)   
      l  
    -
    MatrixLayout::RowMajorInterleaved (cutlass)   TileTraitsWarpRake (cutlass)   
    Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > > (cutlass)   HgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ > (cutlass::gemm)   
      s  
    -
    PredicateVector::TrivialIterator (cutlass)   
    Coord (cutlass)   HgemmTransformerB (cutlass::gemm)   Launch (cutlass::gemm)   TrivialPredicateTileAdapter (cutlass)   
    Copy (cutlass)   HgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ > (cutlass::gemm)   Launch< Gemm, false > (cutlass::gemm)   ScalarIO (cutlass)   
      u  
    +
    ColumnMajor (cutlass::MatrixLayout)   GlobalLoadStream (cutlass::gemm)   is_pointer_helper< T * > (cutlass::platform)   IgemmGlobalTileTraits::ThreadOffset (cutlass::gemm)   
    ColumnMajorBlockLinear (cutlass::MatrixLayout)   GlobalLoadStreamPair (cutlass::gemm)   is_pow2 (cutlass)   RegularTilePredicateFunctor (cutlass)   TileAllocation (cutlass)   
    ColumnMajorBlockSwizzle (cutlass::gemm)   greater (cutlass::platform)   is_same (cutlass::platform)   remove_const (cutlass::platform)   TileCoord (cutlass)   
    ColumnMajorInterleaved (cutlass::MatrixLayout)   
      h  
    +
    is_same< A, A > (cutlass::platform)   remove_const< const T > (cutlass::platform)   TiledThreadOffset (cutlass)   
    complex (cutlass::platform)   is_trivially_copyable (cutlass::platform)   remove_cv (cutlass::platform)   TileIteratorBase (cutlass)   
    ComputeOffsetFromShape (cutlass)   HgemmConfig (cutlass::gemm)   is_void (cutlass::platform)   remove_volatile (cutlass::platform)   TileLoadIterator (cutlass)   
    ComputeOffsetFromStrides (cutlass)   HgemmCrosswiseGlobalTileTraits (cutlass::gemm)   is_volatile (cutlass::platform)   remove_volatile< volatile T > (cutlass::platform)   TileLoadStream (cutlass)   
    ComputeThreadOffsetFromStrides (cutlass)   HgemmSwizzle (cutlass::gemm)   is_volatile< volatile T > (cutlass::platform)   ReshapeThreads (cutlass::gemm)   TileStoreIterator (cutlass)   
    ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, 1 >, Shape< 1, S_h_, S_w_, 1 > > (cutlass)   HgemmTileTraitsHelperA (cutlass::gemm)   PredicateVector::Iterator (cutlass)   ReshapeThreads< Tile_, Threads_, true > (cutlass::gemm)   TileStoreStream (cutlass)   
    ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, T_c_ >, Shape< 1, S_h_, S_w_, S_c_ > > (cutlass)   HgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ > (cutlass::gemm)   IteratorAdvance (cutlass)   ReshapeTile (cutlass)   TileTraits (cutlass)   
    conditional (cutlass::platform)   HgemmTileTraitsHelperB (cutlass::gemm)   
      k  
    +
    ReshapeTile< Tile_, kAccessSize_, true > (cutlass)   TileTraitsContiguousMajor (cutlass)   
    conditional< false, T, F > (cutlass::platform)   HgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ > (cutlass::gemm)   RowMajor (cutlass::MatrixLayout)   TileTraitsStandard (cutlass)   
    PredicateVector::ConstIterator (cutlass)   HgemmTraits (cutlass::gemm)   KernelLaunchConfiguration (cutlass)   RowMajorBlockLinear (cutlass::MatrixLayout)   TileTraitsStrideMajor (cutlass)   
    TensorRefBatchStrided::ConstIterator (cutlass)   HgemmTraitsHelper (cutlass::gemm)   
      l  
    +
    RowMajorBlockSwizzle (cutlass::gemm)   TileTraitsWarpRake (cutlass)   
    TensorRefArray::ConstIterator (cutlass)   HgemmTransformerA (cutlass::gemm)   RowMajorInterleaved (cutlass::MatrixLayout)   PredicateVector::TrivialIterator (cutlass)   
    ConstPredicateTileAdapter (cutlass)   HgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ > (cutlass::gemm)   Launch (cutlass::gemm)   
      s  
    +
    TrivialPredicateTileAdapter (cutlass)   
    ContiguousLayout (cutlass::MatrixLayout)   HgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ > (cutlass::gemm)   Launch< Gemm, false > (cutlass::gemm)   
      u  
    +
    Convert (cutlass)   HgemmTransformerB (cutlass::gemm)   less (cutlass::platform)   ScalarIO (cutlass)   
    Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > > (cutlass)   HgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ > (cutlass::gemm)   LinearScaling (cutlass::gemm)   ScalarOrPointer (cutlass::detail)   uint4_t (cutlass)   
    Coord (cutlass)   HgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ > (cutlass::gemm)   LinearScalingDevicePtr (cutlass::gemm)   SgemmConfig (cutlass::gemm)   unique_ptr (cutlass::platform)   
    Copy (cutlass)   
      i  
    +
    Load (cutlass)   SgemmLBTraits (cutlass::gemm)   
      v  
      d  
    -
    HgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ > (cutlass::gemm)   less (cutlass::platform)   ScalarOrPointer (cutlass::detail)   
      i  
    -
    LinearScaling (cutlass::gemm)   SgemmConfig (cutlass::gemm)   uint4_t (cutlass)   
    DebugType   LinearScalingDevicePtr (cutlass::gemm)   SgemmLBTraits (cutlass::gemm)   unique_ptr (cutlass::platform)   
    DebugValue   Identity (cutlass)   Load (cutlass)   SgemmTraits (cutlass::gemm)   
      v  
    -
    default_delete (cutlass::platform)   IdentityBlockSwizzle (cutlass::gemm)   Load< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 > (cutlass)   Shape (cutlass)   
    default_delete< T[]> (cutlass::platform)   IdentityTensorMapFunc (cutlass)   Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 > (cutlass)   ShapeAdd (cutlass)   Vector (cutlass)   
    DgemmConfig (cutlass::gemm)   IgemmConfig (cutlass::gemm)   Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 > (cutlass)   ShapeCount (cutlass)   Vector< bin1_t, kLanes_ > (cutlass)   
    DgemmTraits (cutlass::gemm)   IgemmConfig< OutputTile_, int8_t, ThreadGemmShape_ > (cutlass::gemm)   Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 > (cutlass)   ShapeDiv (cutlass)   Vector< half, 1 > (cutlass)   
    divide_assert (cutlass)   IgemmEpilogue (cutlass::gemm)   Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 > (cutlass)   ShapeDivCeiling (cutlass)   Vector< half, kLanes_ > (cutlass)   
    is_base_of_helper::dummy (cutlass::platform)   IgemmEpilogue< GemmEpilogueTraits_, true > (cutlass::gemm)   Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > (cutlass)   ShapeMax (cutlass)   Vector< int4_t, kLanes_ > (cutlass)   
    DumpType (cutlass)   IgemmEpilogueScalar (cutlass::gemm)   Load< Vector< bin1_t, 32 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > (cutlass)   ShapeMin (cutlass)   Vector< uint4_t, kLanes_ > (cutlass)   
    Load< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 > (cutlass)   SgemmTraits (cutlass::gemm)   
    Identity (cutlass)   Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 > (cutlass)   Shape (cutlass)   Vector (cutlass)   
    DebugType   IdentityBlockSwizzle (cutlass::gemm)   Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 > (cutlass)   ShapeAdd (cutlass)   Vector< bin1_t, kLanes_ > (cutlass)   
    DebugValue   IdentityTensorMapFunc (cutlass)   Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 > (cutlass)   ShapeCount (cutlass)   Vector< half, 1 > (cutlass)   
    default_delete (cutlass::platform)   IgemmConfig (cutlass::gemm)   Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 > (cutlass)   ShapeDiv (cutlass)   Vector< half, kLanes_ > (cutlass)   
    default_delete< T[]> (cutlass::platform)   IgemmConfig< OutputTile_, int8_t, ThreadGemmShape_ > (cutlass::gemm)   Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > (cutlass)   ShapeDivCeiling (cutlass)   Vector< int4_t, kLanes_ > (cutlass)   
    DefaultBlockSwizzle (cutlass::reduction)   IgemmEpilogue (cutlass::gemm)   Load< Vector< bin1_t, 32 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > (cutlass)   ShapeMax (cutlass)   Vector< uint4_t, kLanes_ > (cutlass)   
    DeviceGemm (cutlass::gemm)   IgemmEpilogue< GemmEpilogueTraits_, true > (cutlass::gemm)   Load< Vector< int4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > (cutlass)   ShapeMin (cutlass)   Vectorize (cutlass)   
    DgemmConfig (cutlass::gemm)   IgemmEpilogueScalar (cutlass::gemm)   Load< Vector< uint4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > (cutlass)   ShapeMul (cutlass)   Vectorize< Vector< bin1_t, 32 >, kLanes_ > (cutlass)   
    DgemmTraits (cutlass::gemm)   IgemmEpilogueScalar< int > (cutlass::gemm)   log2_down (cutlass)   ShapeScale (cutlass)   Vectorize< Vector< int4_t, 8 >, kLanes_ > (cutlass)   
    divide_assert (cutlass)   IgemmEpilogueTraits (cutlass::gemm)   log2_down< N, 1, Count > (cutlass)   ShapeStrides (cutlass)   Vectorize< Vector< uint4_t, 8 >, kLanes_ > (cutlass)   
    is_base_of_helper::dummy (cutlass::platform)   IgemmEpilogueTraitsHelper (cutlass::gemm)   log2_up (cutlass)   ShapeSub (cutlass)   VectorTraits (cutlass)   
    DumpType (cutlass)   IgemmFloatToInt8Converter (cutlass::gemm)   log2_up< N, 1, Count > (cutlass)   SharedLoadStream (cutlass::gemm)   VectorTraits< Vector< T, Lanes > > (cutlass)   
      e  
    -
    IgemmEpilogueScalar< int > (cutlass::gemm)   Load< Vector< int4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > (cutlass)   ShapeMul (cutlass)   Vectorize (cutlass)   
    IgemmEpilogueTraits (cutlass::gemm)   Load< Vector< uint4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size > (cutlass)   ShapeScale (cutlass)   Vectorize< Vector< bin1_t, 32 >, kLanes_ > (cutlass)   
    enable_if (cutlass::platform)   IgemmEpilogueTraitsHelper (cutlass::gemm)   log2_down (cutlass)   ShapeStrides (cutlass)   Vectorize< Vector< int4_t, 8 >, kLanes_ > (cutlass)   
    enable_if< false, T > (cutlass::platform)   IgemmFloatToInt8Converter (cutlass::gemm)   log2_down< N, 1, Count > (cutlass)   ShapeSub (cutlass)   Vectorize< Vector< uint4_t, 8 >, kLanes_ > (cutlass)   
    Extent (cutlass)   IgemmGlobalIteratorAb (cutlass::gemm)   log2_up (cutlass)   SharedLoadStream (cutlass::gemm)   VectorTraits (cutlass)   
    Extent< Vector< T, Lanes > > (cutlass)   IgemmGlobalLoadTransformer (cutlass::gemm)   log2_up< N, 1, Count > (cutlass)   GemmEpilogueTraits::SharedStorage (cutlass::gemm)   VectorTraits< Vector< T, Lanes > > (cutlass)   
    Extent< Vector< T, Lanes > const > (cutlass)   IgemmGlobalLoadTransformer< Fragment< int8_t, kElements_ >, float > (cutlass::gemm)   
      m  
    -
    GlobalLoadStreamPair::SharedStorage (cutlass::gemm)   VectorTraits< Vector< T, Lanes > const > (cutlass)   
    IgemmGlobalIteratorAb (cutlass::gemm)   
      m  
    +
    ClearAccumulators::SharedStorage (cutlass::gemm)   VectorTraits< Vector< T, Lanes > const > (cutlass)   
    IgemmGlobalLoadTransformer (cutlass::gemm)   GlobalLoadStream::SharedStorage (cutlass::gemm)   
      w  
    +
    enable_if (cutlass::platform)   IgemmGlobalLoadTransformer< Fragment< int8_t, kElements_ >, float > (cutlass::gemm)   GemmTraits::MainLoopSharedStorage (cutlass::gemm)   GemmEpilogueTraits::SharedStorage (cutlass::gemm)   
    enable_if< false, T > (cutlass::platform)   IgemmGlobalStoreTransformer (cutlass::gemm)   MatrixCoord (cutlass)   GemmTraits::SharedStorage (cutlass::gemm)   WmmaGemmGlobalIteratorCd (cutlass::gemm)   
    Extent (cutlass)   IgemmGlobalStoreTransformer< float, Fragment< int8_t, kElements_ > > (cutlass::gemm)   MatrixTransform (cutlass)   GlobalLoadStreamPair::SharedStorage (cutlass::gemm)   WmmaGemmGlobalIteratorCdTraits (cutlass::gemm)   
    Extent< Vector< T, Lanes > > (cutlass)   IgemmGlobalTileTraits (cutlass::gemm)   Max (cutlass)   SharedStreamPair (cutlass::gemm)   WmmaReshapeTile (cutlass)   
    Extent< Vector< T, Lanes > const > (cutlass)   IgemmInt8ToFloatConverter (cutlass::gemm)   MemorySpace (cutlass)   SimplifiedGemmEpilogueTraits (cutlass::gemm)   WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true > (cutlass)   
      f  
    -
    IgemmGlobalStoreTransformer (cutlass::gemm)   GemmTraits::SharedStorage (cutlass::gemm)   
      w  
    +
    IgemmSharedStoreTransformer (cutlass::gemm)   Min (cutlass)   SimplifiedGemmTraits (cutlass::gemm)   
      z  
    IgemmGlobalStoreTransformer< float, Fragment< int8_t, kElements_ > > (cutlass::gemm)   GemmTraits::MainLoopSharedStorage (cutlass::gemm)   GlobalLoadStream::SharedStorage (cutlass::gemm)   
    Fp16SgemmConfig (cutlass::gemm)   IgemmGlobalTileTraits (cutlass::gemm)   MatrixCoord (cutlass)   ClearAccumulators::SharedStorage (cutlass::gemm)   WmmaGemmGlobalIteratorCd (cutlass::gemm)   
    Fp16SgemmSgemmTraits (cutlass::gemm)   IgemmInt8ToFloatConverter (cutlass::gemm)   MatrixLayout (cutlass)   SharedStreamPair (cutlass::gemm)   WmmaGemmGlobalIteratorCdTraits (cutlass::gemm)   
    Fragment (cutlass)   IgemmSharedStoreTransformer (cutlass::gemm)   MatrixTransform (cutlass)   SimplifiedGemmEpilogueTraits (cutlass::gemm)   
      z  
    -
    FragmentConstIterator (cutlass)   IgemmSwizzle (cutlass::gemm)   Max (cutlass)   SimplifiedGemmTraits (cutlass::gemm)   
    FragmentElementType (cutlass)   IgemmTileTraitsHelperA (cutlass::gemm)   MemorySpace (cutlass)   SimplifiedGemmTraitsHelper (cutlass::gemm)   ZipConvert (cutlass)   
    FragmentIterator (cutlass)   IgemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_, Index_ > (cutlass::gemm)   Min (cutlass)   sqrt_est (cutlass)   ZipFragment (cutlass)   
    FragmentMultiplyAdd (cutlass::gemm)   IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ > (cutlass::gemm)   
      n  
    +
    IgemmSwizzle (cutlass::gemm)   
      n  
    +
    SimplifiedGemmTraitsHelper (cutlass::gemm)   
    Fp16SgemmConfig (cutlass::gemm)   IgemmTileTraitsHelperA (cutlass::gemm)   SplitkPIGemmTraits (cutlass::gemm)   ZipConvert (cutlass)   
    Fp16SgemmSgemmTraits (cutlass::gemm)   IgemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_, Index_ > (cutlass::gemm)   nullptr_t (cutlass::platform)   sqrt_est (cutlass)   ZipFragment (cutlass)   
    Fragment (cutlass)   IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ > (cutlass::gemm)   
      p  
    StorageType (cutlass)   ZipTensorRef (cutlass)   
    FragmentMultiplyAdd< half, half, true > (cutlass::gemm)   IgemmTileTraitsHelperB (cutlass::gemm)   StorageType< 1 > (cutlass)   ZipTileAllocation (cutlass)   
    FragmentConstIterator (cutlass)   IgemmTileTraitsHelperB (cutlass::gemm)   StorageType< 1 > (cutlass)   ZipTileAllocation (cutlass)   
    FragmentElementType (cutlass)   IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ > (cutlass::gemm)   alignment_of::pad (cutlass::platform)   StorageType< 2 > (cutlass)   ZipTileIterator (cutlass)   
    FragmentIterator (cutlass)   IgemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_, Index_ > (cutlass::gemm)   Pair (cutlass::platform)   StorageType< 4 > (cutlass)   
    FragmentMultiplyAdd (cutlass::gemm)   IgemmTraits (cutlass::gemm)   SharedLoadStream::Params (cutlass::gemm)   Store (cutlass)   
    FragmentMultiplyAdd< half, half, true > (cutlass::gemm)   IgemmTraitsHelper (cutlass::gemm)   LinearScalingDevicePtr::Params (cutlass::gemm)   Store< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 > (cutlass)   
      g  
    -
    IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ > (cutlass::gemm)   nullptr_t (cutlass::platform)   StorageType< 2 > (cutlass)   ZipTileIterator (cutlass)   
    IgemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_, Index_ > (cutlass::gemm)   
      p  
    -
    StorageType< 4 > (cutlass)   
    Gemm (cutlass::gemm)   IgemmTraits (cutlass::gemm)   Store (cutlass)   
    alignment_of::pad (cutlass::platform)   
    IgemmTransformerA (cutlass::gemm)   WmmaGemmGlobalIteratorCd::Params (cutlass::gemm)   Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 > (cutlass)   
    Gemm (cutlass::gemm)   
    a | b | c | d | e | f | g | h | i | k | l | m | n | p | r | s | t | u | v | w | z
    diff --git a/docs/clear__accumulators_8h.html b/docs/clear__accumulators_8h.html index cd8f6307..ecf63424 100644 --- a/docs/clear__accumulators_8h.html +++ b/docs/clear__accumulators_8h.html @@ -104,7 +104,7 @@ Namespaces
    + + + + + + + + + + + + + + + + @@ -123,7 +139,7 @@ Functions diff --git a/docs/coord_8h_source.html b/docs/coord_8h_source.html index b0e2162c..7f5edf9c 100644 --- a/docs/coord_8h_source.html +++ b/docs/coord_8h_source.html @@ -76,15 +76,17 @@ $(function() {
    coord.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    29 #pragma once
    30 
    31 #include "cutlass/cutlass.h"
    32 #include "cutlass/util/platform.h"
    33 
    34 namespace cutlass {
    35 
    37 
    39 struct Identity {
    42  enum Kind { Additive = 0, Multiplicative = 1 };
    43 };
    44 
    46 
    48 template <int Rank_, typename Index_ = int>
    49 struct Coord {
    50  //
    51  // Type and constant definitions
    52  //
    53 
    55  static int const kRank = Rank_;
    56 
    58  static int const N = Rank_;
    59 
    61  typedef Index_ Index;
    62 
    63  //
    64  // Data members
    65  //
    66 
    69 
    70  //
    71  // Methods
    72  //
    73 
    76  Coord(Index value = 0) {
    77  for (int i = 0; i < kRank; ++i) {
    78  idx[i] = value;
    79  }
    80  }
    81 
    84  Coord(Index _idx[]) {
    85  for (int i = 0; i < kRank; ++i) {
    86  idx[i] = _idx[i];
    87  }
    88  }
    89 
    92  Coord(Coord<kRank> const &coord) {
    93  for (int i = 0; i < kRank; ++i) {
    94  idx[i] = coord[i];
    95  }
    96  }
    97 
    100  template <int Slice>
    102  Coord<Slice> slice(int start = 0, Index identity = 0) const {
    103  Coord<Slice> result;
    104  for (int i = 0; i < Slice; ++i) {
    105  if (i + start < kRank) {
    106  slice[i] = idx[i + start];
    107  }
    108  else {
    109  slice[i] = identity;
    110  }
    111  }
    112  return result;
    113  }
    114 
    117  operator bool() const {
    118  for (int i = 0; i < kRank; ++i) {
    119  if (idx[i]) {
    120  return true;
    121  }
    122  }
    123  return false;
    124  }
    125 
    128  bool operator!() const {
    129  for (int i = 0; i < kRank; ++i) {
    130  if (idx[i]) {
    131  return false;
    132  }
    133  }
    134  return true;
    135  }
    136 
    139  Coord operator+(Coord const& b) const {
    140  Coord c;
    141  for (int i = 0; i < kRank; ++i) {
    142  c.idx[i] = idx[i] + b.idx[i];
    143  }
    144  return c;
    145  }
    146 
    149  Coord operator-(Coord const& b) const {
    150  Coord c;
    151  for (int i = 0; i < kRank; ++i) {
    152  c.idx[i] = idx[i] - b.idx[i];
    153  }
    154  return c;
    155  }
    156 
    159  Coord operator*(Coord const& b) const {
    160  Coord c;
    161  for (int i = 0; i < kRank; ++i) {
    162  c.idx[i] = idx[i] * b.idx[i];
    163  }
    164  return c;
    165  }
    166 
    169  Coord operator/(Coord const& b) const {
    170  Coord c;
    171  for (int i = 0; i < kRank; ++i) {
    172  c.idx[i] = idx[i] / b.idx[i];
    173  }
    174  return c;
    175  }
    176 
    179  Coord& operator+=(Coord const& b) {
    180  for (int i = 0; i < kRank; ++i) {
    181  idx[i] += b.idx[i];
    182  }
    183  return *this;
    184  }
    185 
    188  Coord& operator-=(Coord const& b) {
    189  for (int i = 0; i < kRank; ++i) {
    190  idx[i] -= b.idx[i];
    191  }
    192  return *this;
    193  }
    194 
    197  Coord& operator*=(Coord const& b) {
    198  for (int i = 0; i < kRank; ++i) {
    199  idx[i] *= b.idx[i];
    200  }
    201  return *this;
    202  }
    203 
    206  Coord& operator/=(Coord const& b) {
    207  for (int i = 0; i < kRank; ++i) {
    208  idx[i] /= b.idx[i];
    209  }
    210  return *this;
    211  }
    212 
    214  CUTLASS_HOST_DEVICE Index& operator[](int dim) { return idx[dim]; }
    215 
    217  CUTLASS_HOST_DEVICE Index const& operator[](int dim) const { return idx[dim]; }
    218 
    220  template <typename T>
    221  CUTLASS_HOST_DEVICE T dot(Coord const& b, T sum) const {
    222  for (int i = 0; i < kRank; ++i) {
    223  sum += idx[i] * b.idx[i];
    224  }
    225  return sum;
    226  }
    227 
    229  template <typename T>
    230  CUTLASS_HOST_DEVICE T dot(Coord const& b) const {
    231  T sum = T(0);
    232  for (int i = 0; i < kRank; ++i) {
    233  sum += idx[i] * b.idx[i];
    234  }
    235  return sum;
    236  }
    237 
    239  template <int Dim>
    241  return idx[Dim];
    242  }
    243 
    246  Index& at(int dim) { return idx[dim]; }
    247 
    249  template <int Dim>
    250  CUTLASS_HOST_DEVICE Index const& at() const {
    251  return idx[Dim];
    252  }
    253 
    256  Index const& at(int dim) const { return idx[dim]; }
    257 
    260  bool operator==(Coord<kRank> const& b) const {
    261  bool equal = true;
    262  for (int i = 0; equal && i < kRank; ++i) {
    263  equal = (idx[i] == b.idx[i]);
    264  }
    265  return equal;
    266  }
    267 
    270  bool operator!=(Coord<kRank> const& b) const { return !(*this == b); }
    271 
    275  for (int i = 0; i < kRank; ++i) {
    276  idx[i] = __NV_STD_MAX(__NV_STD_MIN(idx[i], max.idx[i]), min.idx[i]);
    277  }
    278  return *this;
    279  }
    280 
    283  Index count() const {
    284  Index product = idx[0];
    285  for (int i = 1; i < kRank; ++i) {
    286  product *= idx[i];
    287  }
    288  return product;
    289  }
    290 
    293  bool operator<(Coord<kRank> const &b) const {
    294  for (int i = 0; i < kRank; ++i) {
    295  if (!(idx[i] < b[i])) {
    296  return false;
    297  }
    298  }
    299  return true;
    300  }
    301 
    304  bool operator<=(Coord<kRank> const &b) const {
    305  for (int i = 0; i < kRank; ++i) {
    306  if (!(idx[i] <= b[i])) {
    307  return false;
    308  }
    309  }
    310  return true;
    311  }
    312 };
    313 
    315 
    319  int values[1] = {_0};
    320  return Coord<1>(values);
    321 }
    322 
    325 Coord<2> make_Coord(int _0, int _1) {
    326  int values[2] = {_0, _1};
    327  return Coord<2>(values);
    328 }
    329 
    332 Coord<3> make_Coord(int _0, int _1, int _2) {
    333  int values[3] = {_0, _1, _2};
    334  return Coord<3>(values);
    335 }
    336 
    339 Coord<4> make_Coord(int _0, int _1, int _2, int _3) {
    340  int values[4] = {_0, _1, _2, _3};
    341  return Coord<4>(values);
    342 }
    343 
    345 
    346 template <typename Shape_>
    348  return make_Coord(Shape_::kD, Shape_::kH, Shape_::kW);
    349 }
    350 
    352 
    353 } // namespace cutlass
    Describes identity elements.
    Definition: coord.h:39
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    29 #pragma once
    30 
    31 #include "cutlass/cutlass.h"
    32 #include "cutlass/util/platform.h"
    33 
    34 namespace cutlass {
    35 
    37 
    39 struct Identity {
    42  enum Kind { Additive = 0, Multiplicative = 1 };
    43 };
    44 
    46 
    48 template <int Rank_, typename Index_ = int>
    49 struct Coord {
    50  //
    51  // Type and constant definitions
    52  //
    53 
    55  static int const kRank = Rank_;
    56 
    58  static int const N = Rank_;
    59 
    61  typedef Index_ Index;
    62 
    63  //
    64  // Data members
    65  //
    66 
    69 
    70  //
    71  // Methods
    72  //
    73 
    76  Coord(Index value = 0) {
    77  for (int i = 0; i < kRank; ++i) {
    78  idx[i] = value;
    79  }
    80  }
    81 
    84  Coord(Index _idx[]) {
    85  for (int i = 0; i < kRank; ++i) {
    86  idx[i] = _idx[i];
    87  }
    88  }
    89 
    92  Coord(Coord<kRank> const &coord) {
    93  for (int i = 0; i < kRank; ++i) {
    94  idx[i] = coord[i];
    95  }
    96  }
    97 
    100  template <int Slice>
    102  Coord<Slice> slice(int start = 0, Index identity = 0) const {
    103  Coord<Slice> result;
    104  for (int i = 0; i < Slice; ++i) {
    105  if (i + start < kRank) {
    106  slice[i] = idx[i + start];
    107  }
    108  else {
    109  slice[i] = identity;
    110  }
    111  }
    112  return result;
    113  }
    114 
    117  operator bool() const {
    118  for (int i = 0; i < kRank; ++i) {
    119  if (idx[i]) {
    120  return true;
    121  }
    122  }
    123  return false;
    124  }
    125 
    128  bool operator!() const {
    129  for (int i = 0; i < kRank; ++i) {
    130  if (idx[i]) {
    131  return false;
    132  }
    133  }
    134  return true;
    135  }
    136 
    139  Coord operator+(Coord const& b) const {
    140  Coord c;
    141  for (int i = 0; i < kRank; ++i) {
    142  c.idx[i] = idx[i] + b.idx[i];
    143  }
    144  return c;
    145  }
    146 
    149  Coord operator-(Coord const& b) const {
    150  Coord c;
    151  for (int i = 0; i < kRank; ++i) {
    152  c.idx[i] = idx[i] - b.idx[i];
    153  }
    154  return c;
    155  }
    156 
    159  Coord operator*(Coord const& b) const {
    160  Coord c;
    161  for (int i = 0; i < kRank; ++i) {
    162  c.idx[i] = idx[i] * b.idx[i];
    163  }
    164  return c;
    165  }
    166 
    169  Coord operator/(Coord const& b) const {
    170  Coord c;
    171  for (int i = 0; i < kRank; ++i) {
    172  c.idx[i] = idx[i] / b.idx[i];
    173  }
    174  return c;
    175  }
    176 
    179  Coord& operator+=(Coord const& b) {
    180  for (int i = 0; i < kRank; ++i) {
    181  idx[i] += b.idx[i];
    182  }
    183  return *this;
    184  }
    185 
    188  Coord& operator-=(Coord const& b) {
    189  for (int i = 0; i < kRank; ++i) {
    190  idx[i] -= b.idx[i];
    191  }
    192  return *this;
    193  }
    194 
    197  Coord& operator*=(Coord const& b) {
    198  for (int i = 0; i < kRank; ++i) {
    199  idx[i] *= b.idx[i];
    200  }
    201  return *this;
    202  }
    203 
    206  Coord& operator/=(Coord const& b) {
    207  for (int i = 0; i < kRank; ++i) {
    208  idx[i] /= b.idx[i];
    209  }
    210  return *this;
    211  }
    212 
    214  CUTLASS_HOST_DEVICE Index& operator[](int dim) { return idx[dim]; }
    215 
    217  CUTLASS_HOST_DEVICE Index const& operator[](int dim) const { return idx[dim]; }
    218 
    220  template <typename T>
    221  CUTLASS_HOST_DEVICE T dot(Coord const& b, T sum) const {
    222  for (int i = 0; i < kRank; ++i) {
    223  sum += idx[i] * b.idx[i];
    224  }
    225  return sum;
    226  }
    227 
    229  template <typename T>
    230  CUTLASS_HOST_DEVICE T dot(Coord const& b) const {
    231  T sum = T(0);
    232  for (int i = 0; i < kRank; ++i) {
    233  sum += idx[i] * b.idx[i];
    234  }
    235  return sum;
    236  }
    237 
    239  template <int Dim>
    241  return idx[Dim];
    242  }
    243 
    246  Index& at(int dim) { return idx[dim]; }
    247 
    249  template <int Dim>
    250  CUTLASS_HOST_DEVICE Index const& at() const {
    251  return idx[Dim];
    252  }
    253 
    256  Index const& at(int dim) const { return idx[dim]; }
    257 
    260  bool operator==(Coord<kRank> const& b) const {
    261  bool equal = true;
    262  for (int i = 0; equal && i < kRank; ++i) {
    263  equal = (idx[i] == b.idx[i]);
    264  }
    265  return equal;
    266  }
    267 
    270  bool operator!=(Coord<kRank> const& b) const { return !(*this == b); }
    271 
    275  for (int i = 0; i < kRank; ++i) {
    276  idx[i] = __NV_STD_MAX(__NV_STD_MIN(idx[i], max.idx[i]), min.idx[i]);
    277  }
    278  return *this;
    279  }
    280 
    283  Index count() const {
    284  Index product = idx[0];
    285  for (int i = 1; i < kRank; ++i) {
    286  product *= idx[i];
    287  }
    288  return product;
    289  }
    290 
    293  bool operator<(Coord<kRank> const &b) const {
    294  for (int i = 0; i < kRank; ++i) {
    295  if (!(idx[i] < b[i])) {
    296  return false;
    297  }
    298  }
    299  return true;
    300  }
    301 
    304  bool operator<=(Coord<kRank> const &b) const {
    305  for (int i = 0; i < kRank; ++i) {
    306  if (!(idx[i] <= b[i])) {
    307  return false;
    308  }
    309  }
    310  return true;
    311  }
    312 };
    313 
    315 
    317 template <typename T, int Rank, typename Index>
    321  for (int i = 0; i < Rank; ++i) {
    322  coord[i] *= s;
    323  }
    324  return coord;
    325 }
    326 
    328 template <typename T, int Rank, typename Index>
    332  for (int i = 0; i < Rank; ++i) {
    333  coord[i] *= s;
    334  }
    335  return coord;
    336 }
    337 
    339 template <typename T, int Rank, typename Index>
    343  for (int i = 0; i < Rank; ++i) {
    344  coord[i] = s / coord[i];
    345  }
    346  return coord;
    347 }
    348 
    350 template <typename T, int Rank, typename Index>
    354  for (int i = 0; i < Rank; ++i) {
    355  coord[i] /= s;
    356  }
    357  return coord;
    358 }
    359 
    361 //
    362 // Integer-valued make_Coord
    363 //
    365 
    369  int values[1] = {_0};
    370  return Coord<1>(values);
    371 }
    372 
    375 Coord<2> make_Coord(int _0, int _1) {
    376  int values[2] = {_0, _1};
    377  return Coord<2>(values);
    378 }
    379 
    382 Coord<3> make_Coord(int _0, int _1, int _2) {
    383  int values[3] = {_0, _1, _2};
    384  return Coord<3>(values);
    385 }
    386 
    389 Coord<4> make_Coord(int _0, int _1, int _2, int _3) {
    390  int values[4] = {_0, _1, _2, _3};
    391  return Coord<4>(values);
    392 }
    393 
    395 
    396 template <typename Shape_>
    398  return make_Coord(Shape_::kD, Shape_::kH, Shape_::kW);
    399 }
    400 
    402 
    403 } // namespace cutlass
    Describes identity elements.
    Definition: coord.h:39
    CUTLASS_HOST_DEVICE constexpr const T & max(const T &a, const T &b)
    std::max
    Definition: platform.h:215
    +
    #define CUTLASS_PRAGMA_UNROLL
    Definition: performance_tuning.h:35
    Definition: convert.h:33
    CUTLASS_HOST_DEVICE Coord operator-(Coord const &b) const
    Element-wise subtraction.
    Definition: coord.h:149
    +
    CUTLASS_HOST_DEVICE Coord< Rank, Index > operator*(T s, Coord< Rank, Index > coord)
    Scalar multiplication.
    Definition: coord.h:319
    CUTLASS_HOST_DEVICE Index const & at(int dim) const
    Access via index; may limit unrolling potential.
    Definition: coord.h:256
    CUTLASS_HOST_DEVICE Index const & operator[](int dim) const
    Member access operator.
    Definition: coord.h:217
    CUTLASS_HOST_DEVICE Coord operator/(Coord const &b) const
    Element-wise division.
    Definition: coord.h:169
    CUTLASS_HOST_DEVICE Index & operator[](int dim)
    Member access operator.
    Definition: coord.h:214
    -
    CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
    Helper to make a 2-element coordinate.
    Definition: coord.h:318
    +
    CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
    Helper to make a 2-element coordinate.
    Definition: coord.h:368
    static int const kRank
    Number of elements in Coord.
    Definition: coord.h:55
    Index_ Index
    Index type used to store elements.
    Definition: coord.h:61
    CUTLASS_HOST_DEVICE Coord & operator*=(Coord const &b)
    In-place multiplication.
    Definition: coord.h:197
    @@ -93,7 +95,7 @@ $(function() {
    CUTLASS_HOST_DEVICE Index count() const
    Returns the product of all elements.
    Definition: coord.h:283
    CUTLASS_HOST_DEVICE Coord operator*(Coord const &b) const
    Element-wise multiplication.
    Definition: coord.h:159
    Kind
    Definition: coord.h:42
    -
    CUTLASS_HOST_DEVICE Coord< 3 > make_Coord_from_shape()
    Definition: coord.h:347
    +
    CUTLASS_HOST_DEVICE Coord< 3 > make_Coord_from_shape()
    Definition: coord.h:397
    CUTLASS_HOST_DEVICE bool operator==(Coord< kRank > const &b) const
    Determines if two Coord<> objects are equal.
    Definition: coord.h:260
    static int const N
    Number of elements in Coord, aliased for compatibility.
    Definition: coord.h:58
    #define __NV_STD_MAX(a, b)
    Select maximum(a, b)
    Definition: platform.h:163
    @@ -109,6 +111,7 @@ $(function() {
    Definition: coord.h:42
    CUTLASS_HOST_DEVICE Coord< Slice > slice(int start=0, Index identity=0) const
    Definition: coord.h:102
    Statically-sized array specifying Coords within a tensor.
    Definition: coord.h:49
    +
    CUTLASS_HOST_DEVICE Coord< Rank, Index > operator/(T s, Coord< Rank, Index > coord)
    Scalar division.
    Definition: coord.h:341
    CUTLASS_HOST_DEVICE Index const & at() const
    Gets the index of a given Coord element.
    Definition: coord.h:250
    CUTLASS_HOST_DEVICE T dot(Coord const &b, T sum) const
    Computes the dot product of two Coord instances.
    Definition: coord.h:221
    CUTLASS_HOST_DEVICE Coord(Index value=0)
    Default ctor initializes uniformly.
    Definition: coord.h:76
    @@ -123,7 +126,7 @@ $(function() {
    diff --git a/docs/core__io_8h.html b/docs/core__io_8h.html index 2f50d785..1b6084fe 100644 --- a/docs/core__io_8h.html +++ b/docs/core__io_8h.html @@ -134,7 +134,7 @@ Functions
    diff --git a/docs/core__io_8h_source.html b/docs/core__io_8h_source.html index 21b79011..ecc2425c 100644 --- a/docs/core__io_8h_source.html +++ b/docs/core__io_8h_source.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/cutlass_8h.html b/docs/cutlass_8h.html index 419c9123..f8d76268 100644 --- a/docs/cutlass_8h.html +++ b/docs/cutlass_8h.html @@ -84,7 +84,8 @@ $(function() {

    Basic include for CUTLASS macros. More...

    - +

    Go to the source code of this file.

    Functions

    template<typename T , int Rank, typename Index >
    CUTLASS_HOST_DEVICE Coord< Rank, Index > cutlass::operator* (T s, Coord< Rank, Index > coord)
     Scalar multiplication. More...
     
    template<typename T , int Rank, typename Index >
    CUTLASS_HOST_DEVICE Coord< Rank, Index > cutlass::operator* (Coord< Rank, Index > coord, T s)
     Scalar multiplication. More...
     
    template<typename T , int Rank, typename Index >
    CUTLASS_HOST_DEVICE Coord< Rank, Index > cutlass::operator/ (T s, Coord< Rank, Index > coord)
     Scalar division. More...
     
    template<typename T , int Rank, typename Index >
    CUTLASS_HOST_DEVICE Coord< Rank, Index > cutlass::operator/ (Coord< Rank, Index > coord, T s)
     Scalar division. More...
     
    CUTLASS_HOST_DEVICE Coord< 1 > cutlass::make_Coord (int _0)
     Helper to make a 2-element coordinate. More...
     
    Macros - + - + @@ -113,12 +114,6 @@ Macros - - - - - -

    @@ -103,9 +104,9 @@ Namespaces

    #define CUTLASS_MAJOR   1
     
    #define CUTLASS_MINOR   0
    #define CUTLASS_MINOR   2
     
    #define CUTLASS_PATCH   1
    #define CUTLASS_PATCH   0
     
    #define CUTLASS_VERSION   ((CUTLASS_MAJOR)*100 + (CUTLASS_MINOR)*10 + CUTLASS_PATCH)
     
     
    #define CUTLASS_ASSERT(x)   assert(x)
     
    #define CUTLASS_PRAGMA_UNROLL
     
    #define CUTLASS_PRAGMA_NO_UNROLL
     
    #define CUTLASS_GEMM_LOOP   CUTLASS_PRAGMA_NO_UNROLL
     
    @@ -143,20 +138,6 @@ Functions

    Functions

    -
    - - -

    ◆ CUTLASS_GEMM_LOOP

    - -
    -
    - - - - -
    #define CUTLASS_GEMM_LOOP   CUTLASS_PRAGMA_NO_UNROLL
    -
    -
    @@ -194,7 +175,7 @@ Functions
    - +
    #define CUTLASS_MINOR   0#define CUTLASS_MINOR   2
    @@ -208,35 +189,7 @@ Functions
    - - -
    #define CUTLASS_PATCH   1
    -
    - -
    - - -

    ◆ CUTLASS_PRAGMA_NO_UNROLL

    - -
    -
    - - - - -
    #define CUTLASS_PRAGMA_NO_UNROLL
    -
    - -
    -
    - -

    ◆ CUTLASS_PRAGMA_UNROLL

    - -
    -
    - - - +
    #define CUTLASS_PRAGMA_UNROLL#define CUTLASS_PATCH   0
    @@ -281,7 +234,7 @@ template<typename T >
    diff --git a/docs/cutlass_8h_source.html b/docs/cutlass_8h_source.html index 9c9fb2b2..181c77ec 100644 --- a/docs/cutlass_8h_source.html +++ b/docs/cutlass_8h_source.html @@ -76,14 +76,15 @@ $(function() {
    cutlass.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    25 
    30 #pragma once
    31 
    33 
    34 #define CUTLASS_MAJOR 1
    35 #define CUTLASS_MINOR 0
    36 #define CUTLASS_PATCH 1
    37 #define CUTLASS_VERSION ((CUTLASS_MAJOR)*100 + (CUTLASS_MINOR)*10 + CUTLASS_PATCH)
    38 
    39 #ifdef __NVCC__
    40 #define CUTLASS_HOST_DEVICE __forceinline__ __device__ __host__
    41 #define CUTLASS_DEVICE __forceinline__ __device__
    42 #elif defined(__CUDACC_RTC__)
    43 #define CUTLASS_HOST_DEVICE __forceinline__ __device__
    44 #define CUTLASS_DEVICE __forceinline__ __device__
    45 #else
    46 #define CUTLASS_HOST_DEVICE
    47 // CUTLASS_DEVICE is an error if not compiling device code
    48 #endif
    49 
    50 #define CUTLASS_ASSERT(x) assert(x)
    51 
    52 // CUTLASS_PRAGMA_(UNROLL|NO_UNROLL) optimization directives for the CUDA compiler.
    53 #if defined(__CUDA_ARCH__)
    54 #if defined(_MSC_VER)
    55 #define CUTLASS_PRAGMA_UNROLL __pragma("unroll")
    56 #define CUTLASS_PRAGMA_NO_UNROLL __pragma("unroll 1")
    57 #else
    58 #define CUTLASS_PRAGMA_UNROLL _Pragma("unroll")
    59 #define CUTLASS_PRAGMA_NO_UNROLL _Pragma("unroll 1")
    60 #endif
    61 #else
    62 #define CUTLASS_PRAGMA_UNROLL
    63 #define CUTLASS_PRAGMA_NO_UNROLL
    64 #endif
    65 
    66 #define CUTLASS_GEMM_LOOP CUTLASS_PRAGMA_NO_UNROLL
    67 
    68 // A small helper class to dump a type at compile time
    69 // Usage:: DumpType<Class>::Class
    70 template <typename T>
    71 struct DebugType {};
    72 
    73 template <typename T>
    74 void DebugTypeFunc(T const& t) {
    75  T::t;
    76 }
    77 
    78 // A small helper class to dump a compile time constant at compile time
    79 // Usage: DumpValue<Class::kConstant>::kConstant
    80 template <int Value>
    81 struct DebugValue {};
    82 
    83 namespace cutlass {
    84 
    86 static const int kWarpSize = 32;
    87 
    88 } // namespace cutlass
    89 
    Definition: convert.h:33
    -
    Definition: cutlass.h:81
    -
    Definition: cutlass.h:71
    -
    void DebugTypeFunc(T const &t)
    Definition: cutlass.h:74
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    25 
    30 #pragma once
    31 
    33 
    34 #define CUTLASS_MAJOR 1
    35 #define CUTLASS_MINOR 2
    36 #define CUTLASS_PATCH 0
    37 #define CUTLASS_VERSION ((CUTLASS_MAJOR)*100 + (CUTLASS_MINOR)*10 + CUTLASS_PATCH)
    38 
    39 #ifdef __NVCC__
    40 #define CUTLASS_HOST_DEVICE __forceinline__ __device__ __host__
    41 #define CUTLASS_DEVICE __forceinline__ __device__
    42 #elif defined(__CUDACC_RTC__)
    43 #define CUTLASS_HOST_DEVICE __forceinline__ __device__
    44 #define CUTLASS_DEVICE __forceinline__ __device__
    45 #else
    46 #define CUTLASS_HOST_DEVICE
    47 // CUTLASS_DEVICE is an error if not compiling device code
    48 #endif
    49 
    50 #define CUTLASS_ASSERT(x) assert(x)
    51 
    53 
    54 // A small helper class to dump a type at compile time
    55 // Usage:: DumpType<Class>::Class
    56 template <typename T>
    57 struct DebugType {};
    58 
    59 template <typename T>
    60 void DebugTypeFunc(T const& t) {
    61  T::t;
    62 }
    63 
    64 // A small helper class to dump a compile time constant at compile time
    65 // Usage: DumpValue<Class::kConstant>::kConstant
    66 template <int Value>
    67 struct DebugValue {};
    68 
    69 namespace cutlass {
    70 
    72 static const int kWarpSize = 32;
    73 
    74 } // namespace cutlass
    75 
    Definition: convert.h:33
    +
    Definition: cutlass.h:67
    + +
    Definition: cutlass.h:57
    +
    void DebugTypeFunc(T const &t)
    Definition: cutlass.h:60
    diff --git a/docs/cutlass__math_8h.html b/docs/cutlass__math_8h.html index c4dbc54b..b5494f96 100644 --- a/docs/cutlass__math_8h.html +++ b/docs/cutlass__math_8h.html @@ -134,7 +134,7 @@ Functions
    + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    + + + + + + + + + +
    +
    + + +
    + +
    + + + +
    + +
    +
    device_gemm.h File Reference
    +
    +
    + +

    device level GEMM implemented by more than one kernels. +More...

    +
    #include <cuda.h>
    +#include "cutlass/coord.h"
    +#include "cutlass/util/platform.h"
    +
    +

    Go to the source code of this file.

    + + + + +

    +Classes

    struct  cutlass::gemm::DeviceGemm< DeviceGemmTraits_ >
     
    + + + + + +

    +Namespaces

     cutlass
     
     cutlass::gemm
     
    +
    + + + + diff --git a/docs/device__gemm_8h_source.html b/docs/device__gemm_8h_source.html new file mode 100644 index 00000000..b40e95db --- /dev/null +++ b/docs/device__gemm_8h_source.html @@ -0,0 +1,95 @@ + + + + + + + +Cutlass: device_gemm.h Source File + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    device_gemm.h
    +
    +
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2 * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3 *
    4 * Redistribution and use in source and binary forms, with or without modification, are permitted
    5 * provided that the following conditions are met:
    6 * * Redistributions of source code must retain the above copyright notice, this list of
    7 * conditions and the following disclaimer.
    8 * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9 * conditions and the following disclaimer in the documentation and/or other materials
    10 * provided with the distribution.
    11 * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12 * to endorse or promote products derived from this software without specific prior written
    13 * permission.
    14 *
    15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21 * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23 *
    24 **************************************************************************************************/
    28 #pragma once
    29 
    30 #if !defined(__CUDACC_RTC__)
    31 #include <cuda.h>
    32 #endif
    33 
    34 #include "cutlass/coord.h"
    35 #include "cutlass/util/platform.h"
    36 namespace cutlass {
    37 namespace gemm {
    38 
    39 template<typename DeviceGemmTraits_ >
    40 struct DeviceGemm {
    42  typedef DeviceGemmTraits_ Traits;
    44  typedef typename Traits::Params Params;
    45 
    47 #if !defined(__CUDACC_RTC__)
    48  static __host__ cudaError_t launch(Params const& params) {
    50  Traits::GemmTraits::KernelClass::launch(params.GemmParams);
    51  cudaError_t err = cudaGetLastError();
    52  if (err != cudaSuccess)
    53  return err;
    54  Traits::ReductionTraits::KernelClass::launch(params.ReductionParams);
    55  return cudaGetLastError();
    56  }
    57 #endif
    58 
    62 
    64  CUTLASS_DEVICE DeviceGemm() {}
    65 };
    66 } // namespace device_gemm
    67 } // namespace cutalss
    DeviceGemmTraits_ Traits
    The Traits.
    Definition: device_gemm.h:42
    +
    Definition: convert.h:33
    +
    A Coord is a coordinate of arbitrary rank into a tensor or matrix.
    +
    Definition: device_gemm.h:40
    +
    Traits::Params Params
    Use the params object defined in traits.
    Definition: device_gemm.h:44
    +
    C++ features that may be otherwise unimplemented for CUDA device functions.
    +
    CUTLASS_DEVICE DeviceGemm()
    Ctor.
    Definition: device_gemm.h:64
    +
    static __host__ cudaError_t launch(Params const &params)
    Support for NVRTC.
    Definition: device_gemm.h:49
    +
    + + + + diff --git a/docs/device__gemm__traits_8h.html b/docs/device__gemm__traits_8h.html new file mode 100644 index 00000000..daee4a84 --- /dev/null +++ b/docs/device__gemm__traits_8h.html @@ -0,0 +1,113 @@ + + + + + + + +Cutlass: device_gemm_traits.h File Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    device_gemm_traits.h File Reference
    +
    +
    +
    #include <assert.h>
    +#include "cutlass/gemm/device_gemm.h"
    +#include "cutlass/matrix_traits.h"
    +#include "cutlass/gemm/gemm_desc.h"
    +#include "tools/util/type_traits.h"
    +#include <iostream>
    +
    +

    Go to the source code of this file.

    + + + + + + +

    +Classes

    struct  cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >
     
    struct  cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params
     
    + + + + + +

    +Namespaces

     cutlass
     
     cutlass::gemm
     
    +
    + + + + diff --git a/docs/device__gemm__traits_8h_source.html b/docs/device__gemm__traits_8h_source.html new file mode 100644 index 00000000..2f57f301 --- /dev/null +++ b/docs/device__gemm__traits_8h_source.html @@ -0,0 +1,133 @@ + + + + + + + +Cutlass: device_gemm_traits.h Source File + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    device_gemm_traits.h
    +
    +
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2 * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3 *
    4 * Redistribution and use in source and binary forms, with or without modification, are permitted
    5 * provided that the following conditions are met:
    6 * * Redistributions of source code must retain the above copyright notice, this list of
    7 * conditions and the following disclaimer.
    8 * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9 * conditions and the following disclaimer in the documentation and/or other materials
    10 * provided with the distribution.
    11 * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12 * to endorse or promote products derived from this software without specific prior written
    13 * permission.
    14 *
    15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21 * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23 *
    24 **************************************************************************************************/
    25 #pragma once
    26 #include <assert.h>
    28 #include "cutlass/matrix_traits.h"
    29 #include "cutlass/gemm/gemm_desc.h"
    30 #include "tools/util/type_traits.h"
    31 #include <iostream>
    32 
    33 namespace cutlass {
    34 namespace gemm {
    35 
    36 template <
    38  typename GemmTraits_,
    40  typename ReductionTraits_
    41 >
    43  typedef GemmTraits_ GemmTraits;
    44  typedef ReductionTraits_ ReductionTraits;
    47 
    49  typedef typename GemmTraits::Index Index;
    51  typedef typename ReductionTraits::ScalarAlphaBeta Scalar;
    53  typedef typename GemmTraits::ScalarA ScalarA;
    55  typedef typename GemmTraits::ScalarB ScalarB;
    57  typedef typename GemmTraits::ScalarD ScalarAccum;
    59  typedef typename ReductionTraits::ScalarC ScalarC;
    61  typedef typename ReductionTraits::ScalarD ScalarD;
    66 
    67  struct Params {
    70 
    80  typename ReductionTraits::Params ReductionParams;
    81 
    83  Params() :
    84  workspace_size(0),
    85  problem_size_initialized(false) {}
    88  Index n_,
    89  Index k_
    90  ):
    91  problem_size(k_, n_, m_, 1),
    92  workspace_size(0),
    94 
    95  }
    96 
    99  Index n_,
    100  Index k_){
    101  problem_size = GemmCoord(k_, n_, m_, 1);
    103  }
    104 
    105  int initialize(Scalar alpha_,
    106  ScalarA const* d_a_,
    107  Index lda_,
    108  ScalarB const* d_b_,
    109  Index ldb_,
    110  Scalar beta_,
    111  ScalarC const* d_c_,
    112  Index ldc_,
    113  ScalarD* d_d_,
    114  Index ldd_,
    115  ScalarAccum *workspace_ptr_) {
    116 
    117  workspace_ptr = workspace_ptr_;
    118 
    119  //call GemmTraits (first kernel) param
    120  //for the first kernel A is A, B is B, C and D are workspace
    121  //alpha is one, beta is zero, partitionK_count is reductionTraits::reductionSize
    123  typename GemmTraits::ScalarB,
    124  typename GemmTraits::ScalarC,
    125  typename GemmTraits::ScalarD,
    126  typename GemmTraits::Epilogue::Scalar>
    127  desc(
    128  problem_size,
    129  typename cutlass::TypeTraits<typename GemmTraits::Epilogue::Scalar>::host_type(1.0f), /*alpha*/
    132  typename cutlass::TypeTraits<typename GemmTraits::Epilogue::Scalar>::host_type(0.0f), /*beta*/
    133  TensorRef<typename GemmTraits::ScalarC const, 2>(workspace_ptr, problem_size.m()), /*m = ldc, workspace is not transposed and is packed*/
    134  TensorRef<typename GemmTraits::ScalarD, 2>(workspace_ptr, problem_size.m()) /*m = ldd, workspace is not transposed and is packed*/
    135  );
    136  GemmParams.initialize(desc, ReductionTraits::ReductionSize);
    137 
    138 
    139  //call batched reduction (second kernel) param
    140  ReductionParams.initialize(problem_size.m(), /*m*/
    141  problem_size.n(), /*n*/
    142  alpha_, /*alpha*/
    143  beta_, /*beta*/
    144  problem_size.n() * problem_size.m() /*reduction_stride*/,
    146  problem_size.m(),
    147  d_c_,
    148  ldc_,
    149  d_d_,
    150  ldd_);
    151 
    152  return 0;
    153  }
    154 
    155  // workspace will be used to store D (output) from the first gemm kernel (not D of the entire gemm)
    156  // note typedef typename GemmTraits::ScalarD ScalarAccum;
    157  // workspace of size of M * N * Reduction
    159  assert(problem_size_initialized == true);
    160  workspace_size = problem_size.n() * problem_size.m() * ReductionTraits::ReductionSize * static_cast<int>(sizeof(ScalarAccum));
    161  return workspace_size;
    162  }
    163 
    164 
    165  };
    166 
    167 };
    168 
    169 } // namespace device_gemm
    170 } // namespace cutalss
    GEMM problem description.
    Definition: gemm_desc.h:50
    +
    int initialize(Scalar alpha_, ScalarA const *d_a_, Index lda_, ScalarB const *d_b_, Index ldb_, Scalar beta_, ScalarC const *d_c_, Index ldc_, ScalarD *d_d_, Index ldd_, ScalarAccum *workspace_ptr_)
    Definition: device_gemm_traits.h:105
    +
    GemmTraits::ScalarB ScalarB
    Definition: device_gemm_traits.h:55
    +
    Definition: convert.h:33
    +
    Definition: device_gemm_traits.h:67
    +
    Epilogue::ScalarD ScalarD
    Definition: gemm_traits.h:394
    +
    CUTLASS_HOST_DEVICE Index const & n() const
    Returns the GEMM N coordinate.
    Definition: gemm_coord.h:97
    +
    Definition: device_gemm.h:40
    +
    Definition: gemm_coord.h:43
    +
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    +
    GlobalLoadStreamA_::Scalar ScalarA
    The scalar for A.
    Definition: gemm_traits.h:374
    +
    Params()
    ctor
    Definition: device_gemm_traits.h:83
    +
    bool problem_size_initialized
    Check if params are init.
    Definition: device_gemm_traits.h:72
    +
    Epilogue::ScalarC ScalarC
    The scalars in the epilogue.
    Definition: gemm_traits.h:393
    +
    ReductionTraits::Params ReductionParams
    The Params for the second kernel.
    Definition: device_gemm_traits.h:80
    +
    Definition: device_gemm_traits.h:42
    +
    Parameters object constructable on the host.
    Definition: gemm_traits.h:416
    +
    static MatrixLayout::Kind const kLayoutB
    The layout of B. can be deduced from the layout set in batched gemm.
    Definition: device_gemm_traits.h:65
    +
    GemmTraits::Index Index
    Definition: device_gemm_traits.h:49
    +
    int workspace_size
    Definition: device_gemm_traits.h:76
    +
    ReductionTraits::ScalarAlphaBeta Scalar
    Definition: device_gemm_traits.h:51
    +
    GemmTraits::Params GemmParams
    The Params for the first kernel.
    Definition: device_gemm_traits.h:78
    +
    Implements a software-pipelined efficient GEMM.
    +
    GemmTraits::ScalarA ScalarA
    Definition: device_gemm_traits.h:53
    +
    Definition: tensor_ref.h:131
    +
    CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const &desc)
    Initialize the parameters.
    Definition: gemm_traits.h:435
    +
    device level GEMM implemented by more than one kernels.
    +
    GlobalLoadStreamB_::Scalar ScalarB
    The scalar for B.
    Definition: gemm_traits.h:381
    +
    ReductionTraits_ ReductionTraits
    Definition: device_gemm_traits.h:44
    +
    GemmTraits_ GemmTraits
    Definition: device_gemm_traits.h:43
    +
    SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > This_
    Definition: device_gemm_traits.h:45
    +
    cutlass::gemm::DeviceGemm< This_ > KernelClass
    Definition: device_gemm_traits.h:46
    +
    GemmTraits::ScalarD ScalarAccum
    Definition: device_gemm_traits.h:57
    +
    Index_ Index
    The index.
    Definition: gemm_traits.h:399
    +
    int required_workspace_memory_in_byte()
    Definition: device_gemm_traits.h:158
    +
    CUTLASS_HOST_DEVICE Index const & m() const
    Returns the GEMM M coordinate.
    Definition: gemm_coord.h:89
    +
    static MatrixLayout::Kind const kLayoutA
    The layout of A.
    Definition: gemm_traits.h:372
    +
    static MatrixLayout::Kind const kLayoutA
    The layout of A. can be deduced from the layout set in batched gemm.
    Definition: device_gemm_traits.h:63
    +
    Defines properties of matrices used to denote layout and operands to GEMM kernels.
    +
    GemmCoord problem_size
    The dimensions of the GEMM in K, N, M order.
    Definition: device_gemm_traits.h:69
    +
    Params(Index m_, Index n_, Index k_)
    ctor
    Definition: device_gemm_traits.h:87
    +
    void init_problem(Index m_, Index n_, Index k_)
    init problem is needed if using default ctor
    Definition: device_gemm_traits.h:98
    +
    ReductionTraits::ScalarD ScalarD
    Definition: device_gemm_traits.h:61
    +
    ScalarAccum * workspace_ptr
    The pointer to workspace memory.
    Definition: device_gemm_traits.h:74
    +
    static MatrixLayout::Kind const kLayoutB
    The layout of B.
    Definition: gemm_traits.h:379
    +
    ReductionTraits::ScalarC ScalarC
    Definition: device_gemm_traits.h:59
    +
    + + + + diff --git a/docs/dgemm__traits_8h.html b/docs/dgemm__traits_8h.html index ac6d33b0..b5c3dbe9 100644 --- a/docs/dgemm__traits_8h.html +++ b/docs/dgemm__traits_8h.html @@ -109,7 +109,7 @@ Namespaces
    directory  gemm
     
    directory  reduction
     
    directory  util
     
    @@ -168,7 +170,7 @@ Files diff --git a/docs/dir_18d6a367a3982a494d65599933fc67a3.html b/docs/dir_18d6a367a3982a494d65599933fc67a3.html index b606ad3e..1383521a 100644 --- a/docs/dir_18d6a367a3982a494d65599933fc67a3.html +++ b/docs/dir_18d6a367a3982a494d65599933fc67a3.html @@ -82,6 +82,11 @@ Files + + + + + @@ -172,8 +177,8 @@ Files - - + + @@ -194,7 +199,7 @@ Files diff --git a/docs/dir_c5917a9a879e9a6c73eaf5237444ab84.html b/docs/dir_c5917a9a879e9a6c73eaf5237444ab84.html index 9011cf40..944547ae 100644 --- a/docs/dir_c5917a9a879e9a6c73eaf5237444ab84.html +++ b/docs/dir_c5917a9a879e9a6c73eaf5237444ab84.html @@ -89,6 +89,11 @@ Files + + + + + @@ -96,7 +101,7 @@ Files diff --git a/docs/dir_f34d74b5ae2b711d395109410c5aafb1.html b/docs/dir_f34d74b5ae2b711d395109410c5aafb1.html new file mode 100644 index 00000000..5d0130ac --- /dev/null +++ b/docs/dir_f34d74b5ae2b711d395109410c5aafb1.html @@ -0,0 +1,100 @@ + + + + + + + +Cutlass: reduction Directory Reference + + + + + + + + + + +
    +
    +
    file  clear_accumulators.h [code]
     Defines abstractions for efficiently clearing accumulator tiles.
     
    file  device_gemm.h [code]
     device level GEMM implemented by more than one kernels.
     
    file  device_gemm_traits.h [code]
     
    file  dgemm_traits.h [code]
     Defines structural traits of double-precision GEMM.
     
    file  thread_multiply_add.h [code]
     Template implementing matrix multiply-add operations on fragments.
     
    file  threadblock_swizzle.h [code]
     Defies functors for mapping blockIdx to partitions of the GEMM computation.
    file  gemm/threadblock_swizzle.h [code]
     Defies functors for mapping blockIdx to partitions of the GEMM computation.
     
    file  wmma_gemm_epilogue_traits.h [code]
     Defines structural properties of WMMA GEMM's epilogue phase.
     
    file  numeric_types.h [code]
     
    file  pair.h [code]
     Defines a pair<>
     
    file  performance_tuning.h [code]
     
    file  platform.h [code]
     C++ features that may be otherwise unimplemented for CUDA device functions.
     
    + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    + + + + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    reduction Directory Reference
    +
    +
    + + + + + + + + + + + +

    +Files

    file  batched_reduction.h [code]
     Implements a software-pipelined efficient batched reduction. D = alpha * Reduction(A) + beta * C.
     
    file  batched_reduction_traits.h [code]
     Defines structural properties of complete batched reduction. D = alpha * Reduction(A) + beta * C.
     
    file  reduction/threadblock_swizzle.h [code]
     Defies functors for mapping blockIdx to partitions of the batched reduction computation.
     
    +
    + + + + diff --git a/docs/files.html b/docs/files.html index 10195209..35202535 100644 --- a/docs/files.html +++ b/docs/files.html @@ -74,80 +74,87 @@ $(function() {
    Here is a list of all files with brief descriptions:
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     clear_accumulators.hDefines abstractions for efficiently clearing accumulator tiles
     complex.h
     convert.hDefines conversion operations among Fragments of different base type
     coord.hA Coord is a coordinate of arbitrary rank into a tensor or matrix
     core_io.hHelpers for printing cutlass/core objects
     cutlass.hBasic include for CUTLASS macros
     cutlass_math.hMath utilities
     debug.hDebugging and logging functionality
     dgemm_traits.hDefines structural traits of double-precision GEMM
     fp16_sgemm_multiply_add.hTemplate implementing matrix multiply-add operations on fragments
     fp16_sgemm_traits.hDefies structural properties of single-precision GEMM where any number of the input/output could be fp16 or fp32. The accumulator type stays in fp32
     fragment.hDefines Fragment, a statically-sized array for storing parts of matrices within a thread's registers
     fragment_multiply_add.hDefines multiply-add operations on fragments within a thread
     gemm.hImplements a software-pipelined efficient GEMM
     gemm_config.hDefines properties of GEMM computation that impose some constraints on caller
     gemm_coord.hGemmCoord is a structure derived from Coord<4> that specifies a location within the coordinate system of a GEMM problem
     gemm_desc.hImplements a software-pipelined efficient GEMM
     gemm_epilogue.hImplements the epilogue phase of the GEMM kernel that efficiently updates global memory with the computed matrix product
     gemm_epilogue_traits.hDefines structural properties of the GEMM epilogue
     gemm_global_stream.hImplements efficient loading of the thread block-level tile from global memory and storing to shared memory
     gemm_global_tile.hDefines iterators for efficiently loading and storing to global memory
     gemm_operand.hDefines constant expressions for mapping GEMM problem size and strides onto pitch-linear memory
     gemm_shared_stream.hDefines abstractions for managing loading and storing fragments to shared memory in the efficient GEMM pipeline
     gemm_shared_tile.hDefines iterators for efficiently loading and storing tiles to and from shared memory
     gemm_stream_pair.hDefines a pair of GEMM tile streams
     gemm_traits.hDefines structural properties of complete GEMM computation
     hgemm_global_tile.hTile traits used to construct global tile iterator for HGEMM. This is intended to partition the thread block-level tile into 2D subtiles loaded by the threads and facilitate memory accesses larger than 16 bits
     hgemm_multiply_add.hSpecialization implementing multiply-add operation on half-precision floating point fragments
     hgemm_swizzle.hTransposes a tile of 16b elements. Used by HGEMM to construct a K-strided layout in shared memory for multiplicands
     hgemm_traits.hDefies structural properties of half-precision GEMM computation
     igemm_epilogue.hDefines the epilogue phase of the GEMM computation for IGEMM, supporting integer and floating-point output matrix formats
     igemm_global_tile.hImplements tile iterators to partition the thread block tile into 2D subtiles and efficiently load each. Applies permute transformation to construct 'interleaved K-strided' data layout in which 4-element dot products from the same K index are arranged in consecutive locations within shared memory
     igemm_multiply_add.hImplements matrix multiply accumulate operation of 8-bit integer data using DP4A instruction
     igemm_swizzle.hTransposes a fragment of data containing packed 8-bit integer elements
     igemm_traits.hDefies structural properties of mixed-precision integer GEMM. Multiplicands are assumed to be packed 8bit integers, accumulators are assumed to be 32b signed integers, and output formats vary
     iterator_access.hFree functions for loading and storing to implementations of tile iteartor concepts
     kernel_launch.hDefines structures and helpers to launch CUDA kernels within CUTLASS
     linear_scaling.hImplements the BLAS linear scaling function alpha*AB + beta*C
     linear_scaling_device_ptr.hImplements the BLAS linear scaling function alpha*AB + beta*C
     load_store.hDefines abstractions for efficiently loading and storing vectors to memory
     matrix_traits.hDefines properties of matrices used to denote layout and operands to GEMM kernels
     numeric_types.h
     platform.hC++ features that may be otherwise unimplemented for CUDA device functions
     predicate_vector.hDefines container classes and iterators for managing a statically sized vector of boolean predicates
     reshape_tile.hDefines a type for restructuring a tile
     scalar_or_pointer.hImplements the BLAS linear scaling function alpha*AB + beta*C
     sgemm_traits.hDefies structural properties of single-precision GEMM
     shape.hDefines Shape implementing the Layout concept for representing a 4D hypercube of objects
     tensor_ref.hDefines a structure containing strides, bounds, and a pointer to tensor data
     tensor_ref_collection.hIntroduces TensorRefCollection concept and defines TensorRefBatch and TensorRefArray
     tensor_view.hDefines a structure containing strides and a pointer to tensor data
     thread_multiply_add.hTemplate implementing matrix multiply-add operations on fragments
     threadblock_swizzle.hDefies functors for mapping blockIdx to partitions of the GEMM computation
     tile_allocation.hDefines a fragment based on a Shape<> template
     tile_coord.hDefines a coordinate used for the CUTLASS 4-D tile structure
     tile_iterator.hDefines the Tile Traits concept and iterators for loading and storing to tiles efficiently
     tile_stream.hImplements the tile stream concept, composing an iterator with a transformation. Offers split-phase semantics, separating the initiation of an asynchronous memory operation with a fence forcing it to complete
     tile_traits_standard.hDefines tile traits for several tile partitioning arrangements of threads expected to achieve efficient streaming performance
     vector.hDefines a 1D vector of elements held in the registers of each thread
     wmma_gemm_epilogue_traits.hDefines structural properties of WMMA GEMM's epilogue phase
     wmma_gemm_global_tile.hDefines tile iterator traits for loading thread block-level tile from global memory
     wmma_gemm_multiply_add.hImplements warp-level matrix multiply-accumulate operation using CUDA WMMA API
     wmma_gemm_shared_tile.hDefines iterator traits for efficiently loading and storing fragment to and from shared memory, specialized for WMMA GEMM
     wmma_gemm_traits.hDefies structural properties of GEMM targeting WMMA API in CUDA
     wmma_matrix.hAbstractions for loading and storing matrices using the CUDA WMMA API
     zip_fragment.hModels a pair of fragments
     zip_tensor_ref.hDefines a structure containing a pair of TensorRef-like objects
     zip_tile_iterator.hConstructs an iterator that owns two tile iterator instances
     batched_reduction.hImplements a software-pipelined efficient batched reduction. D = alpha * Reduction(A) + beta * C
     batched_reduction_traits.hDefines structural properties of complete batched reduction. D = alpha * Reduction(A) + beta * C
     clear_accumulators.hDefines abstractions for efficiently clearing accumulator tiles
     complex.h
     convert.hDefines conversion operations among Fragments of different base type
     coord.hA Coord is a coordinate of arbitrary rank into a tensor or matrix
     core_io.hHelpers for printing cutlass/core objects
     cutlass.hBasic include for CUTLASS macros
     cutlass_math.hMath utilities
     debug.hDebugging and logging functionality
     device_gemm.hDevice level GEMM implemented by more than one kernels
     device_gemm_traits.h
     dgemm_traits.hDefines structural traits of double-precision GEMM
     fp16_sgemm_multiply_add.hTemplate implementing matrix multiply-add operations on fragments
     fp16_sgemm_traits.hDefies structural properties of single-precision GEMM where any number of the input/output could be fp16 or fp32. The accumulator type stays in fp32
     fragment.hDefines Fragment, a statically-sized array for storing parts of matrices within a thread's registers
     fragment_multiply_add.hDefines multiply-add operations on fragments within a thread
     gemm.hImplements a software-pipelined efficient GEMM
     gemm_config.hDefines properties of GEMM computation that impose some constraints on caller
     gemm_coord.hGemmCoord is a structure derived from Coord<4> that specifies a location within the coordinate system of a GEMM problem
     gemm_desc.hImplements a software-pipelined efficient GEMM
     gemm_epilogue.hImplements the epilogue phase of the GEMM kernel that efficiently updates global memory with the computed matrix product
     gemm_epilogue_traits.hDefines structural properties of the GEMM epilogue
     gemm_global_stream.hImplements efficient loading of the thread block-level tile from global memory and storing to shared memory
     gemm_global_tile.hDefines iterators for efficiently loading and storing to global memory
     gemm_operand.hDefines constant expressions for mapping GEMM problem size and strides onto pitch-linear memory
     gemm_shared_stream.hDefines abstractions for managing loading and storing fragments to shared memory in the efficient GEMM pipeline
     gemm_shared_tile.hDefines iterators for efficiently loading and storing tiles to and from shared memory
     gemm_stream_pair.hDefines a pair of GEMM tile streams
     gemm_traits.hDefines structural properties of complete GEMM computation
     hgemm_global_tile.hTile traits used to construct global tile iterator for HGEMM. This is intended to partition the thread block-level tile into 2D subtiles loaded by the threads and facilitate memory accesses larger than 16 bits
     hgemm_multiply_add.hSpecialization implementing multiply-add operation on half-precision floating point fragments
     hgemm_swizzle.hTransposes a tile of 16b elements. Used by HGEMM to construct a K-strided layout in shared memory for multiplicands
     hgemm_traits.hDefies structural properties of half-precision GEMM computation
     igemm_epilogue.hDefines the epilogue phase of the GEMM computation for IGEMM, supporting integer and floating-point output matrix formats
     igemm_global_tile.hImplements tile iterators to partition the thread block tile into 2D subtiles and efficiently load each. Applies permute transformation to construct 'interleaved K-strided' data layout in which 4-element dot products from the same K index are arranged in consecutive locations within shared memory
     igemm_multiply_add.hImplements matrix multiply accumulate operation of 8-bit integer data using DP4A instruction
     igemm_swizzle.hTransposes a fragment of data containing packed 8-bit integer elements
     igemm_traits.hDefies structural properties of mixed-precision integer GEMM. Multiplicands are assumed to be packed 8bit integers, accumulators are assumed to be 32b signed integers, and output formats vary
     iterator_access.hFree functions for loading and storing to implementations of tile iteartor concepts
     kernel_launch.hDefines structures and helpers to launch CUDA kernels within CUTLASS
     linear_scaling.hImplements the BLAS linear scaling function alpha*AB + beta*C
     linear_scaling_device_ptr.hImplements the BLAS linear scaling function alpha*AB + beta*C
     load_store.hDefines abstractions for efficiently loading and storing vectors to memory
     matrix_traits.hDefines properties of matrices used to denote layout and operands to GEMM kernels
     numeric_types.h
     pair.hDefines a pair<>
     performance_tuning.h
     platform.hC++ features that may be otherwise unimplemented for CUDA device functions
     predicate_vector.hDefines container classes and iterators for managing a statically sized vector of boolean predicates
     reshape_tile.hDefines a type for restructuring a tile
     scalar_or_pointer.hImplements the BLAS linear scaling function alpha*AB + beta*C
     sgemm_traits.hDefies structural properties of single-precision GEMM
     shape.hDefines Shape implementing the Layout concept for representing a 4D hypercube of objects
     tensor_ref.hDefines a structure containing strides, bounds, and a pointer to tensor data
     tensor_ref_collection.hIntroduces TensorRefCollection concept and defines TensorRefBatch and TensorRefArray
     tensor_view.hDefines a structure containing strides and a pointer to tensor data
     thread_multiply_add.hTemplate implementing matrix multiply-add operations on fragments
     gemm/threadblock_swizzle.hDefies functors for mapping blockIdx to partitions of the GEMM computation
     reduction/threadblock_swizzle.hDefies functors for mapping blockIdx to partitions of the batched reduction computation
     tile_allocation.hDefines a fragment based on a Shape<> template
     tile_coord.hDefines a coordinate used for the CUTLASS 4-D tile structure
     tile_iterator.hDefines the Tile Traits concept and iterators for loading and storing to tiles efficiently
     tile_stream.hImplements the tile stream concept, composing an iterator with a transformation. Offers split-phase semantics, separating the initiation of an asynchronous memory operation with a fence forcing it to complete
     tile_traits_standard.hDefines tile traits for several tile partitioning arrangements of threads expected to achieve efficient streaming performance
     vector.hDefines a 1D vector of elements held in the registers of each thread
     wmma_gemm_epilogue_traits.hDefines structural properties of WMMA GEMM's epilogue phase
     wmma_gemm_global_tile.hDefines tile iterator traits for loading thread block-level tile from global memory
     wmma_gemm_multiply_add.hImplements warp-level matrix multiply-accumulate operation using CUDA WMMA API
     wmma_gemm_shared_tile.hDefines iterator traits for efficiently loading and storing fragment to and from shared memory, specialized for WMMA GEMM
     wmma_gemm_traits.hDefies structural properties of GEMM targeting WMMA API in CUDA
     wmma_matrix.hAbstractions for loading and storing matrices using the CUDA WMMA API
     zip_fragment.hModels a pair of fragments
     zip_tensor_ref.hDefines a structure containing a pair of TensorRef-like objects
     zip_tile_iterator.hConstructs an iterator that owns two tile iterator instances
    diff --git a/docs/fp16__sgemm__multiply__add_8h.html b/docs/fp16__sgemm__multiply__add_8h.html index deff050e..1dbc9a6e 100644 --- a/docs/fp16__sgemm__multiply__add_8h.html +++ b/docs/fp16__sgemm__multiply__add_8h.html @@ -103,7 +103,7 @@ Namespaces
    + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    + + + + + + + + + + +
    +
    + + +
    + +
    + + + + + + diff --git a/docs/functions_type_s.html b/docs/functions_type_s.html index 159cb8c7..c57d0ac3 100644 --- a/docs/functions_type_s.html +++ b/docs/functions_type_s.html @@ -98,6 +98,7 @@ $(function() { , cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ > , cutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ > , cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ > , cutlass::TileAllocation< Scalar_, Shape_ > , cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > @@ -117,24 +118,30 @@ $(function() { : cutlass::gemm::Gemm< GemmTraits_ > , cutlass::gemm::GemmConfig< ScalarA_, ScalarB_, ScalarC_, ScalarD_, OutputTile_, MultiplyAdd_, kScalarsPerLdgA_, kScalarsPerStsA_, kScalarsPerLdsA_, kScalarsPerLdgB_, kScalarsPerStsB_, kScalarsPerLdsB_, kScalarsPerLdgCAndStgD_, kScalarsPerStsD_, kScalarsPerLdsD_, kStages_, kResidueSeparate_, kResidueInProlog_, kLaunchBounds_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, ScalarA_, ScalarB_, ScalarC_, kLayout_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • ScalarAccum : cutlass::gemm::FragmentMultiplyAdd< ScalarAlphaBeta_, ScalarAccum_, fragMul2 > , cutlass::gemm::FragmentMultiplyAdd< half, half, true > , cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • ScalarAlphaBeta : cutlass::gemm::FragmentMultiplyAdd< ScalarAlphaBeta_, ScalarAccum_, fragMul2 > , cutlass::gemm::FragmentMultiplyAdd< half, half, true > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • ScalarB : cutlass::gemm::Gemm< GemmTraits_ > , cutlass::gemm::GemmConfig< ScalarA_, ScalarB_, ScalarC_, ScalarD_, OutputTile_, MultiplyAdd_, kScalarsPerLdgA_, kScalarsPerStsA_, kScalarsPerLdsA_, kScalarsPerLdgB_, kScalarsPerStsB_, kScalarsPerLdsB_, kScalarsPerLdgCAndStgD_, kScalarsPerStsD_, kScalarsPerLdsD_, kStages_, kResidueSeparate_, kResidueInProlog_, kLaunchBounds_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, ScalarA_, ScalarB_, ScalarC_, kLayout_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half > @@ -146,10 +153,12 @@ $(function() { , cutlass::gemm::GemmEpilogue< GemmEpilogueTraits_ > , cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, ScalarA_, ScalarB_, ScalarC_, kLayout_ > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half > , cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • ScalarD : cutlass::gemm::Gemm< GemmTraits_ > @@ -157,6 +166,8 @@ $(function() { , cutlass::gemm::GemmEpilogue< GemmEpilogueTraits_ > , cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
  • ScalarEpilogue : cutlass::gemm::Gemm< GemmTraits_ > @@ -168,6 +179,9 @@ $(function() { , cutlass::ZipTileAllocation< First_, Second_ > , cutlass::ZipTileIterator< First_, Second_ >
  • +
  • second_type +: cutlass::platform::Pair< T1, T2 > +
  • Shape : cutlass::gemm::GemmMultiplicandTraits< ThreadBlockTile_, Usage, Layout > , cutlass::ShapeAdd< A_, B_ > @@ -307,11 +321,14 @@ $(function() {
  • SType : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >
  • +
  • SubTile +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > +
  • diff --git a/docs/functions_type_t.html b/docs/functions_type_t.html index 9d29b5bc..03cc71aa 100644 --- a/docs/functions_type_t.html +++ b/docs/functions_type_t.html @@ -79,7 +79,7 @@ $(function() {
  • TensorRef : cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ > -, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator +, cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator , cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > , cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator , cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > @@ -107,6 +107,9 @@ $(function() {
  • TensorRefD : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >
  • +
  • TensorView +: cutlass::TileAllocation< Scalar_, Shape_ > +
  • This_ : cutlass::Fragment< Element_, kElements_, kAlignment_ > , cutlass::FragmentConstIterator< Fragment_, Iterations_, AccessType_ > @@ -115,7 +118,10 @@ $(function() { , cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ > , cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > , cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > +, cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ > , cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ > +, cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > , cutlass::ZipFragment< First_, Second_ >
  • ThreadBlockTile @@ -169,7 +175,8 @@ $(function() { , cutlass::gemm::IgemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >
  • ThreadShape -: cutlass::TileTraitsContiguousMajor< Tile_, Threads > +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > +, cutlass::TileTraitsContiguousMajor< Tile_, Threads > , cutlass::TileTraitsStrideMajor< Tile_, Threads > , cutlass::TileTraitsWarpRake< Tile_, Threads >
  • @@ -207,6 +214,8 @@ $(function() { , cutlass::TileTraitsStandard< Tile_, Threads > , cutlass::TileTraitsStrideMajor< Tile_, Threads > , cutlass::TileTraitsWarpRake< Tile_, Threads > +, cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, bool > +, cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true >
  • TileWithoutSkew : cutlass::gemm::GemmSharedLoadTileATraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ > @@ -222,9 +231,11 @@ $(function() { , cutlass::gemm::GemmSharedLoadTileBTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >
  • Traits -: cutlass::gemm::Gemm< GemmTraits_ > +: cutlass::gemm::DeviceGemm< DeviceGemmTraits_ > +, cutlass::gemm::Gemm< GemmTraits_ > , cutlass::gemm::GemmEpilogue< GemmEpilogueTraits_ > , cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ > +, cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > , cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > , cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > @@ -284,7 +295,7 @@ $(function() { diff --git a/docs/functions_type_v.html b/docs/functions_type_v.html index 392148b3..743ccd82 100644 --- a/docs/functions_type_v.html +++ b/docs/functions_type_v.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/functions_type_w.html b/docs/functions_type_w.html index 2806ad02..5accbe58 100644 --- a/docs/functions_type_w.html +++ b/docs/functions_type_w.html @@ -82,7 +82,7 @@ $(function() { diff --git a/docs/functions_type_y.html b/docs/functions_type_y.html index 1793ec48..72e176fd 100644 --- a/docs/functions_type_y.html +++ b/docs/functions_type_y.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/functions_u.html b/docs/functions_u.html index d3ac4dab..cdf2c4c7 100644 --- a/docs/functions_u.html +++ b/docs/functions_u.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/functions_v.html b/docs/functions_v.html index 72381435..ef126fcc 100644 --- a/docs/functions_v.html +++ b/docs/functions_v.html @@ -119,11 +119,14 @@ $(function() {
  • VectorizedTile : cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >
  • +
  • view() +: cutlass::TileAllocation< Scalar_, Shape_ > +
  • diff --git a/docs/functions_vars.html b/docs/functions_vars.html index ffc55d8e..1763335a 100644 --- a/docs/functions_vars.html +++ b/docs/functions_vars.html @@ -85,12 +85,13 @@ $(function() {
  • alpha : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > , cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::Params +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params
  • diff --git a/docs/functions_vars_b.html b/docs/functions_vars_b.html index 5a07b030..b838556b 100644 --- a/docs/functions_vars_b.html +++ b/docs/functions_vars_b.html @@ -74,6 +74,9 @@ $(function() {
  • B : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >
  • +
  • batch_stride +: cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params +
  • batch_stride_A : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >
  • @@ -82,13 +85,16 @@ $(function() {
  • batch_stride_C : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > +, cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params
  • batch_stride_D : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > +, cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params
  • beta : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > , cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::Params +, cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params
  • block : cutlass::KernelLaunchConfiguration @@ -103,7 +109,7 @@ $(function() { diff --git a/docs/functions_vars_c.html b/docs/functions_vars_c.html index 271a2dbe..94bb8a46 100644 --- a/docs/functions_vars_c.html +++ b/docs/functions_vars_c.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/functions_vars_d.html b/docs/functions_vars_d.html index dc633e8d..aecea3a7 100644 --- a/docs/functions_vars_d.html +++ b/docs/functions_vars_d.html @@ -74,6 +74,15 @@ $(function() {
  • D : cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >
  • +
  • d_a +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params +
  • +
  • d_c +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params +
  • +
  • d_d +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params +
  • dynamic_smem : cutlass::KernelLaunchConfiguration
  • @@ -81,7 +90,7 @@ $(function() { diff --git a/docs/functions_vars_e.html b/docs/functions_vars_e.html index 413436f6..3d54ecc1 100644 --- a/docs/functions_vars_e.html +++ b/docs/functions_vars_e.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/functions_vars_f.html b/docs/functions_vars_f.html index f959f78d..049409fb 100644 --- a/docs/functions_vars_f.html +++ b/docs/functions_vars_f.html @@ -79,7 +79,8 @@ $(function() { , cutlass::TileLoadStream< Iterator_, Transformer_ >
  • first -: cutlass::ZipConvert< First_, Second_ > +: cutlass::platform::Pair< T1, T2 > +, cutlass::ZipConvert< First_, Second_ > , cutlass::ZipFragment< First_, Second_ > , cutlass::ZipTensorRef< First_, Second_ > , cutlass::ZipTileAllocation< First_, Second_ > @@ -89,12 +90,16 @@ $(function() {
  • functor : cutlass::gemm::GemmEpilogue< GemmEpilogueTraits_ > , cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params +, cutlass::reduction::BatchedReduction< BatchedReductionTraits_ > +
  • +
  • functorParams +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params
  • diff --git a/docs/functions_vars_g.html b/docs/functions_vars_g.html index 13c8f617..1a41d408 100644 --- a/docs/functions_vars_g.html +++ b/docs/functions_vars_g.html @@ -71,6 +71,9 @@ $(function() {  

    - g -

    diff --git a/docs/functions_vars_r.html b/docs/functions_vars_r.html index 51923e77..199f0055 100644 --- a/docs/functions_vars_r.html +++ b/docs/functions_vars_r.html @@ -76,6 +76,15 @@ $(function() { , cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ > , cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > +
  • reduction_stride +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params +
  • +
  • ReductionParams +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params +
  • +
  • ReductionSize +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > +
  • registers : cutlass::Vector< Scalar_, kLanes_ > , cutlass::Vector< bin1_t, kLanes_ > @@ -87,7 +96,7 @@ $(function() { diff --git a/docs/functions_vars_s.html b/docs/functions_vars_s.html index 54da9c67..6123c624 100644 --- a/docs/functions_vars_s.html +++ b/docs/functions_vars_s.html @@ -77,7 +77,8 @@ $(function() { , cutlass::Vector< half, kLanes_ >
  • second -: cutlass::ZipConvert< First_, Second_ > +: cutlass::platform::Pair< T1, T2 > +, cutlass::ZipConvert< First_, Second_ > , cutlass::ZipFragment< First_, Second_ > , cutlass::ZipTensorRef< First_, Second_ > , cutlass::ZipTileAllocation< First_, Second_ > @@ -131,7 +132,7 @@ $(function() {
  • stride_d : cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params -, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params +, cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
  • stride_h : cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params @@ -149,7 +150,7 @@ $(function() { diff --git a/docs/functions_vars_t.html b/docs/functions_vars_t.html index 60a3c45e..af6cff83 100644 --- a/docs/functions_vars_t.html +++ b/docs/functions_vars_t.html @@ -86,6 +86,9 @@ $(function() {
  • threadblock_tile : cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::MainLoopSharedStorage
  • +
  • ThreadShapeMultiple2 +: cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ > +
  • transformed : cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >
  • @@ -104,7 +107,7 @@ $(function() { diff --git a/docs/functions_vars_v.html b/docs/functions_vars_v.html index 98e30b73..0d28a02c 100644 --- a/docs/functions_vars_v.html +++ b/docs/functions_vars_v.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/functions_vars_w.html b/docs/functions_vars_w.html new file mode 100644 index 00000000..cf843daf --- /dev/null +++ b/docs/functions_vars_w.html @@ -0,0 +1,89 @@ + + + + + + + +Cutlass: Class Members - Variables + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + + diff --git a/docs/functions_w.html b/docs/functions_w.html index a4c7cfbc..bb7f5f55 100644 --- a/docs/functions_w.html +++ b/docs/functions_w.html @@ -84,11 +84,17 @@ $(function() {
  • WmmaGemmGlobalIteratorCd() : cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ >
  • +
  • workspace_ptr +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params +
  • +
  • workspace_size +: cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params +
  • diff --git a/docs/functions_y.html b/docs/functions_y.html index 5e56a9ab..57ec568e 100644 --- a/docs/functions_y.html +++ b/docs/functions_y.html @@ -78,7 +78,7 @@ $(function() { diff --git a/docs/functions_z.html b/docs/functions_z.html index 36fbd323..8ac34535 100644 --- a/docs/functions_z.html +++ b/docs/functions_z.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/gemm_2threadblock__swizzle_8h.html b/docs/gemm_2threadblock__swizzle_8h.html new file mode 100644 index 00000000..198fdbfd --- /dev/null +++ b/docs/gemm_2threadblock__swizzle_8h.html @@ -0,0 +1,126 @@ + + + + + + + +Cutlass: threadblock_swizzle.h File Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    gemm/threadblock_swizzle.h File Reference
    +
    +
    + +

    Defies functors for mapping blockIdx to partitions of the GEMM computation. +More...

    + +

    Go to the source code of this file.

    + + + + + + + + + + +

    +Classes

    struct  cutlass::gemm::swizzleDirection
     
    struct  cutlass::gemm::IdentityBlockSwizzle
     
    struct  cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >
     
    struct  cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection >
     
    + + + + + +

    +Namespaces

     cutlass
     
     cutlass::gemm
     
    + + + + + + + +

    +Functions

    template<enum swizzleDirection::Kind >
    CUTLASS_DEVICE int cutlass::gemm::getLinearIdx (int groups)
     
    template<>
    CUTLASS_DEVICE int cutlass::gemm::getLinearIdx< swizzleDirection::Boustrophedon > (int groups)
     
    +
    + + + + diff --git a/docs/gemm_2threadblock__swizzle_8h_source.html b/docs/gemm_2threadblock__swizzle_8h_source.html new file mode 100644 index 00000000..cd75e39d --- /dev/null +++ b/docs/gemm_2threadblock__swizzle_8h_source.html @@ -0,0 +1,127 @@ + + + + + + + +Cutlass: threadblock_swizzle.h Source File + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    gemm/threadblock_swizzle.h
    +
    +
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/coord.h"
    32 
    33 namespace cutlass {
    34 namespace gemm {
    35 
    38 };
    39 // helper template function
    40 template <enum swizzleDirection::Kind>
    41 CUTLASS_DEVICE int getLinearIdx(int groups) {
    42  // groupCols is not needed for OneDirection Swizzle
    43  return blockIdx.y * gridDim.x + blockIdx.x;
    44 }
    45 template <>
    46 CUTLASS_DEVICE int getLinearIdx<swizzleDirection::Boustrophedon>(int groups) {
    47  // reverse blockIdx.x for some columns
    48  if ((blockIdx.y / groups) % 2 == 1)
    49  return blockIdx.y * gridDim.x + (gridDim.x - blockIdx.x - 1);
    50  else
    51  return blockIdx.y * gridDim.x + blockIdx.x;
    52 }
    54 
    68 
    70  CUTLASS_DEVICE dim3 swizzle() { return blockIdx; }
    71 
    73  CUTLASS_HOST_DEVICE dim3 get_grid_layout(GemmCoord const &problem_size,
    74  Coord<3> const &OutputTile) {
    75  /*OutputTile and problem_size are both in KNM order*/
    76  dim3 grid;
    77  grid.x = (problem_size.m() + OutputTile[2] - 1) / OutputTile[2];
    78  grid.y = (problem_size.n() + OutputTile[1] - 1) / OutputTile[1];
    79  grid.z = problem_size.batch();
    80  return grid;
    81  }
    82 
    84  CUTLASS_DEVICE Coord<3> get_threadblock_offset(Coord<3> const &OutputTile) {
    85  dim3 block = swizzle();
    86  Coord<3> threadblock_offset =
    87  make_Coord(0, block.y * OutputTile[1], block.x * OutputTile[2]);
    88  return threadblock_offset;
    89  }
    90 
    92  CUTLASS_DEVICE int get_batch_id() {
    93  dim3 block = swizzle();
    94  return block.z;
    95  }
    96 
    98  CUTLASS_DEVICE bool is_last_partition() {
    99  if (get_batch_id() == (gridDim.z - 1))
    100  return true;
    101  else
    102  return false;
    103  }
    104 
    106  CUTLASS_DEVICE Coord<3> get_threadblock_bounds(GemmCoord const &problem_size,
    107  int partitionK_range) {
    108  // every partition except the last one has a smaller range
    109  // partitionK_range is the bounds for every partition except the last one
    110  // the last partition's bounds is the same with problem size
    111  if(is_last_partition())
    112  return problem_size.knm();
    113  else
    114  return make_Coord(partitionK_range, problem_size.n(), problem_size.m());
    115  }
    116 };
    117 
    119 
    120 /*
    121 ColumnMajorBlockSwizzle<1, OneDirection> is equivalent with IdentityBlockSwizzle
    122 groupCols has the effect of controlling the schedulling of thread blocks
    123 settings with different groupCols can contribute to the overall performance by affecting L2 cache
    124 hit rate
    125 
    126 consider a regular thread block mapping btween matrix C and different thread blocks
    127 note that C is column major, and the leading dimension of thread block id is blockIdx.x
    128 
    129 let's look at an example where gridIdx.x = 6, gridIdx.y = 7, gridIdx.z = 1
    130 (blockIdx.x, blockIdx.y)
    131 mapping between threadblockID and C matrix:
    132 -------------------------------------------------------
    133 (0,0) | (0,1) | (0,2) | (0,3) | (0,4) | (0,5) | (0,6) |
    134 -------------------------------------------------------
    135 (1,0) | (1,1) | (1,2) | (1,3) | (1,4) | (1,5) | (1,6) |
    136 -------------------------------------------------------
    137 (2,0) | (2,1) | (2,2) | (2,3) | (2,4) | (2,5) | (2,6) |
    138 -------------------------------------------------------
    139 (3,0) | (3,1) | (3,2) | (3,3) | (3,4) | (3,5) | (3,6) |
    140 -------------------------------------------------------
    141 (4,0) | (4,1) | (4,2) | (4,3) | (4,4) | (4,5) | (4,6) |
    142 -------------------------------------------------------
    143 (5,0) | (5,1) | (5,2) | (5,3) | (5,4) | (5,5) | (5,6) |
    144 -------------------------------------------------------
    145 
    146 A ColumnMajorBlockSwizzle<1, OneDirection> will imply the above order where threadblocks are
    147 launched in a column major
    148 
    149 A ColumnMajorBlockSwizzle<2, OneDirection> swizzles things a little,
    150 -------------------------------------------------------
    151 (0,0) | (3,0) | (0,2) | (3,2) | (0,4) | (3,4) | (0,6) |
    152 -------------------------------------------------------
    153 (0,1) | (3,1) | (0,3) | (3,3) | (0,5) | (3,5) | (1,6) |
    154 -------------------------------------------------------
    155 (1,0) | (4,0) | (1,2) | (4,2) | (1,4) | (4,4) | (2,6) |
    156 -------------------------------------------------------
    157 (1,1) | (4,1) | (1,3) | (4,3) | (1,5) | (4,5) | (3,6) |
    158 -------------------------------------------------------
    159 (2,0) | (5,0) | (2,2) | (5,2) | (2,4) | (5,4) | (4,6) |
    160 -------------------------------------------------------
    161 (2,1) | (5,1) | (2,3) | (5,3) | (2,5) | (5,5) | (5,6) |
    162 -------------------------------------------------------
    163 
    164 so in memory, it would apprear that we work on 2 columns at a time rather than 1
    165 Note that the index here really represent how each block maps to memory
    166 
    167 A ColumnMajorBlockSwizzle<1, Boustrophedon> is similar to ColumnMajorBlockSwizzle<1, OneDirection>
    168 except that every column flips the ordering against the previous one
    169 -------------------------------------------------------
    170 (0,0) | (5,1) | (0,2) | (5,3) | (0,4) | (5,5) | (0,6) |
    171 -------------------------------------------------------
    172 (1,0) | (4,1) | (1,2) | (4,3) | (1,4) | (4,5) | (1,6) |
    173 -------------------------------------------------------
    174 (2,0) | (3,1) | (2,2) | (3,3) | (2,4) | (3,5) | (2,6) |
    175 -------------------------------------------------------
    176 (3,0) | (2,1) | (3,2) | (2,3) | (3,4) | (2,5) | (3,6) |
    177 -------------------------------------------------------
    178 (4,0) | (1,1) | (4,2) | (1,3) | (4,4) | (1,5) | (4,6) |
    179 -------------------------------------------------------
    180 (5,0) | (0,1) | (5,2) | (0,3) | (5,4) | (0,5) | (5,6) |
    181 -------------------------------------------------------
    182 
    183 similarily, A ColumnMajorBlockSwizzle<2, Boustrophedon> looks like
    184 -------------------------------------------------------
    185 (0,0) | (3,0) | (2,3) | (5,3) | (0,4) | (3,4) | (5,6) |
    186 -------------------------------------------------------
    187 (0,1) | (3,1) | (2,2) | (5,2) | (0,5) | (3,5) | (4,6) |
    188 -------------------------------------------------------
    189 (1,0) | (4,0) | (1,3) | (4,3) | (1,4) | (4,4) | (3,6) |
    190 -------------------------------------------------------
    191 (1,1) | (4,1) | (1,2) | (4,2) | (1,5) | (4,5) | (2,6) |
    192 -------------------------------------------------------
    193 (2,0) | (5,0) | (0,3) | (3,3) | (2,4) | (5,4) | (1,6) |
    194 -------------------------------------------------------
    195 (2,1) | (5,1) | (0,2) | (3,2) | (2,5) | (5,5) | (0,6) |
    196 -------------------------------------------------------
    197 
    198 */
    199 
    200 template <int groupCols, enum swizzleDirection::Kind swDirection>
    204 
    206  CUTLASS_DEVICE dim3 swizzle() {
    207  assert(gridDim.z == 1);
    208  int linearIdx = getLinearIdx<swDirection>(groupCols);
    209  dim3 swizzledBlockIdx;
    210  int currGroupCols = groupCols;
    211  int prevGroupCols = groupCols;
    212 
    213  if ((gridDim.y % groupCols != 0) && ((blockIdx.y + (gridDim.y % groupCols)) >= gridDim.y)) {
    214  // last colmuns if gridDim.y is not divisble by groupCols
    215  currGroupCols = gridDim.y % groupCols;
    216  }
    217 
    218  swizzledBlockIdx.x = (linearIdx / currGroupCols) % gridDim.x;
    219  swizzledBlockIdx.y =
    220  linearIdx % currGroupCols + prevGroupCols * (linearIdx / (prevGroupCols * gridDim.x));
    221  swizzledBlockIdx.z = blockIdx.z;
    222 
    223  return swizzledBlockIdx;
    224  }
    225 
    228  Coord<3> const &OutputTile) {
    229  dim3 grid;
    230  grid.x = (problem_size.m() + OutputTile[2] - 1) / OutputTile[2];
    231  grid.y = (problem_size.n() + OutputTile[1] - 1) / OutputTile[1];
    232  grid.z = problem_size.batch();
    233  return grid;
    234  }
    235 
    237  CUTLASS_DEVICE Coord<3> get_threadblock_offset(Coord<3> const &OutputTile) {
    238  dim3 block = swizzle();
    239  Coord<3> threadblock_offset =
    240  make_Coord(0, block.y * OutputTile[1], block.x * OutputTile[2]);
    241  return threadblock_offset;
    242  }
    243 
    245  CUTLASS_DEVICE int get_batch_id() {
    246  dim3 block = swizzle();
    247  return block.z;
    248  }
    249 
    251  CUTLASS_DEVICE bool is_last_partition() {
    252  if (get_batch_id() == (gridDim.z - 1))
    253  return true;
    254  else
    255  return false;
    256  }
    257 
    259  CUTLASS_DEVICE Coord<3> get_threadblock_bounds(GemmCoord const &problem_size,
    260  int partitionK_range) {
    261  // every partition except the last one has a smaller range
    262  // partitionK_range is the bounds for every partition except the last one
    263  // the last partition's bounds is the same with problem size
    264  if (is_last_partition())
    265  return problem_size.knm();
    266  else
    267  return make_Coord(partitionK_range, problem_size.n(), problem_size.m());
    268  }
    269 };
    270 
    272 
    273 /*
    274 
    275 consider a regular thread block mapping btween matrix C and different thread blocks
    276 note that C is column major, and the leading dimension of thread block id is blockIdx.x
    277 
    278 let's look at an example where gridIdx.x = 6, gridIdx.y = 7, gridIdx.z = 1
    279 (blockIdx.x, blockIdx.y)
    280 mapping between threadblockID and C matrix:
    281 -------------------------------------------------------
    282 (0,0) | (0,1) | (0,2) | (0,3) | (0,4) | (0,5) | (0,6) |
    283 -------------------------------------------------------
    284 (1,0) | (1,1) | (1,2) | (1,3) | (1,4) | (1,5) | (1,6) |
    285 -------------------------------------------------------
    286 (2,0) | (2,1) | (2,2) | (2,3) | (2,4) | (2,5) | (2,6) |
    287 -------------------------------------------------------
    288 (3,0) | (3,1) | (3,2) | (3,3) | (3,4) | (3,5) | (3,6) |
    289 -------------------------------------------------------
    290 (4,0) | (4,1) | (4,2) | (4,3) | (4,4) | (4,5) | (4,6) |
    291 -------------------------------------------------------
    292 (5,0) | (5,1) | (5,2) | (5,3) | (5,4) | (5,5) | (5,6) |
    293 -------------------------------------------------------
    294 
    295 A RowMajorBlockSwizzle<1, OneDirection> will effectively transpose the map
    296 
    297 -----------------------------------------------
    298 (0,0) | (1,0) | (2,0) | (3,0) | (4,0) | (5,0) |
    299 -----------------------------------------------
    300 (0,1) | (1,1) | (2,1) | (3,1) | (4,1) | (5,1) |
    301 -----------------------------------------------
    302 (0,2) | (1,2) | (2,2) | (3,2) | (4,2) | (5,2) |
    303 -----------------------------------------------
    304 (0,3) | (1,3) | (2,3) | (3,3) | (4,3) | (5,3) |
    305 -----------------------------------------------
    306 (0,4) | (1,4) | (2,4) | (3,4) | (4,4) | (5,4) |
    307 ---------------------------------------------
    308 (0,5) | (1,5) | (2,5) | (3,5) | (4,5) | (5,5) |
    309 -----------------------------------------------
    310 (0,6) | (1,6) | (2,6) | (3,6) | (4,6) | (5,6) |
    311 -----------------------------------------------
    312 
    313 It would aprear in memory we are working on 1 row at a time
    314 
    315 A ColumnMajorBlockSwizzle<2, OneDirection> swizzles things a little bit more
    316 -----------------------------------------------
    317 (0,0) | (1,3) | (2,0) | (3,3) | (4,0) | (5,3) |
    318 -----------------------------------------------
    319 (1,0) | (0,4) | (3,0) | (2,4) | (5,0) | (4,4) |
    320 -----------------------------------------------
    321 (0,1) | (1,4) | (2,1) | (3,4) | (4,1) | (5,4) |
    322 -----------------------------------------------
    323 (1,1) | (0,5) | (3,1) | (2,5) | (5,1) | (4,5) |
    324 -----------------------------------------------
    325 (0,2) | (1,5) | (2,2) | (3,5) | (4,2) | (5,5) |
    326 ---------------------------------------------
    327 (1,2) | (0,6) | (3,2) | (2,6) | (5,2) | (4,6) |
    328 -----------------------------------------------
    329 (0,3) | (1,6) | (2,3) | (3,6) | (4,3) | (5,6) |
    330 -----------------------------------------------
    331 
    332 so in memory, it would apprear that we work on 2 rows at a time rather than 1 row
    333 Note that the index here really represent how each block maps to memory
    334 
    335 A RowMajorBlockSwizzle<1, Boustrophedon> is similar to RowMajorBlockSwizzle<1, OneDirection>
    336 except that every column flips the ordering against the previous one
    337 
    338 -----------------------------------------------
    339 (0,0) | (1,6) | (2,0) | (3,6) | (4,0) | (5,6) |
    340 -----------------------------------------------
    341 (0,1) | (1,5) | (2,1) | (3,5) | (4,1) | (5,5) |
    342 -----------------------------------------------
    343 (0,2) | (1,4) | (2,2) | (3,4) | (4,2) | (5,4) |
    344 -----------------------------------------------
    345 (0,3) | (1,3) | (2,3) | (3,3) | (4,3) | (5,3) |
    346 -----------------------------------------------
    347 (0,4) | (1,2) | (2,4) | (3,2) | (4,4) | (5,2) |
    348 ---------------------------------------------
    349 (0,5) | (1,1) | (2,5) | (3,1) | (4,5) | (5,1) |
    350 -----------------------------------------------
    351 (0,6) | (1,0) | (2,6) | (3,0) | (4,6) | (5,0) |
    352 -----------------------------------------------
    353 
    354 similarily, A RowMajorBlockSwizzle<2, Boustrophedon> looks like
    355 -----------------------------------------------
    356 (0,0) | (1,3) | (2,3) | (3,6) | (4,0) | (5,3) |
    357 -----------------------------------------------
    358 (1,0) | (0,4) | (3,2) | (2,6) | (5,0) | (4,4) |
    359 -----------------------------------------------
    360 (0,1) | (1,4) | (2,2) | (3,5) | (4,1) | (5,4) |
    361 -----------------------------------------------
    362 (1,1) | (0,5) | (3,1) | (2,5) | (5,1) | (4,5) |
    363 -----------------------------------------------
    364 (0,2) | (1,5) | (2,1) | (3,4) | (4,2) | (5,5) |
    365 ---------------------------------------------
    366 (1,2) | (0,6) | (3,0) | (2,4) | (5,2) | (4,6) |
    367 -----------------------------------------------
    368 (0,3) | (1,6) | (2,0) | (3,3) | (4,3) | (5,6) |
    369 -----------------------------------------------
    370 
    371 */
    372 
    373 template <int groupRows, enum swizzleDirection::Kind swDirection>
    377 
    379  CUTLASS_DEVICE dim3 swizzle() {
    380  assert(gridDim.z == 1);
    381  int linearIdx = getLinearIdx<swDirection>(groupRows);
    382  dim3 swizzledBlockIdx;
    383  int currGroupRows = groupRows;
    384  int prevGroupRows = groupRows;
    385 
    386  if ((gridDim.y % groupRows != 0) && ((blockIdx.y + (gridDim.y % groupRows)) >= gridDim.y)) {
    387  // last columns
    388  currGroupRows = gridDim.y % groupRows;
    389  }
    390 
    391  swizzledBlockIdx.x =
    392  linearIdx % currGroupRows + prevGroupRows * (linearIdx / (prevGroupRows * gridDim.x));
    393  swizzledBlockIdx.y = (linearIdx / currGroupRows) % gridDim.x;
    394  swizzledBlockIdx.z = blockIdx.z;
    395 
    396  return swizzledBlockIdx;
    397  }
    398 
    401  Coord<3> const &OutputTile) {
    402  dim3 grid;
    403  grid.x = (problem_size.n() + OutputTile[1] - 1) / OutputTile[1];
    404  grid.y = (problem_size.m() + OutputTile[2] - 1) / OutputTile[2];
    405  grid.z = problem_size.batch();
    406  return grid;
    407  }
    408 
    410  CUTLASS_DEVICE Coord<3> get_threadblock_offset(Coord<3> const &OutputTile) {
    411  dim3 block = swizzle();
    412  Coord<3> threadblock_offset =
    413  make_Coord(0, block.y * OutputTile[1], block.x * OutputTile[2]);
    414  return threadblock_offset;
    415  }
    416 
    418  CUTLASS_DEVICE int get_batch_id() {
    419  dim3 block = swizzle();
    420  return block.z;
    421  }
    422 
    424  CUTLASS_DEVICE bool is_last_partition() {
    425  if (get_batch_id() == (gridDim.z - 1) )
    426  return true;
    427  else
    428  return false;
    429  }
    430 
    432  CUTLASS_DEVICE Coord<3> get_threadblock_bounds(GemmCoord const &problem_size,
    433  int partitionK_range) {
    434  // every partition except the last one has a smaller range
    435  // partitionK_range is the bounds for every partition except the last one
    436  // the last partition's bounds is the same with problem size
    437  if (is_last_partition())
    438  return problem_size.knm();
    439  else
    440  return make_Coord(partitionK_range, problem_size.n(), problem_size.m());
    441  }
    442 };
    443 
    445 
    446 } // namespace gemm
    447 } // namespace cutlass
    CUTLASS_DEVICE Coord< 3 > get_threadblock_bounds(GemmCoord const &problem_size, int partitionK_range)
    Definition: gemm/threadblock_swizzle.h:432
    +
    Definition: convert.h:33
    +
    CUTLASS_HOST_DEVICE Coord< 3 > knm() const
    Obtains a Coord<3> from GemmCoord.
    Definition: gemm_coord.h:121
    +
    Definition: gemm/threadblock_swizzle.h:37
    +
    CUTLASS_HOST_DEVICE IdentityBlockSwizzle()
    Ctor. aka ColumnMajorBlockSwizzle<1>
    Definition: gemm/threadblock_swizzle.h:67
    +
    CUTLASS_DEVICE int get_batch_id()
    Definition: gemm/threadblock_swizzle.h:92
    +
    CUTLASS_DEVICE Coord< 3 > get_threadblock_offset(Coord< 3 > const &OutputTile)
    Definition: gemm/threadblock_swizzle.h:237
    +
    A Coord is a coordinate of arbitrary rank into a tensor or matrix.
    +
    CUTLASS_HOST_DEVICE Index const & n() const
    Returns the GEMM N coordinate.
    Definition: gemm_coord.h:97
    +
    CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
    Helper to make a 2-element coordinate.
    Definition: coord.h:368
    +
    CUTLASS_DEVICE bool is_last_partition()
    check if at the last partition
    Definition: gemm/threadblock_swizzle.h:424
    +
    Definition: gemm_coord.h:43
    +
    CUTLASS_DEVICE Coord< 3 > get_threadblock_bounds(GemmCoord const &problem_size, int partitionK_range)
    Definition: gemm/threadblock_swizzle.h:106
    +
    Definition: gemm/threadblock_swizzle.h:201
    +
    CUTLASS_DEVICE Coord< 3 > get_threadblock_offset(Coord< 3 > const &OutputTile)
    Definition: gemm/threadblock_swizzle.h:410
    +
    CUTLASS_HOST_DEVICE RowMajorBlockSwizzle()
    Ctor.
    Definition: gemm/threadblock_swizzle.h:376
    +
    CUTLASS_DEVICE int getLinearIdx(int groups)
    Definition: gemm/threadblock_swizzle.h:41
    +
    CUTLASS_DEVICE bool is_last_partition()
    check if at the last partition
    Definition: gemm/threadblock_swizzle.h:98
    +
    CUTLASS_HOST_DEVICE dim3 get_grid_layout(GemmCoord const &problem_size, Coord< 3 > const &OutputTile)
    Definition: gemm/threadblock_swizzle.h:227
    +
    CUTLASS_DEVICE bool is_last_partition()
    check if at the last partition
    Definition: gemm/threadblock_swizzle.h:251
    +
    CUTLASS_HOST_DEVICE dim3 get_grid_layout(GemmCoord const &problem_size, Coord< 3 > const &OutputTile)
    Definition: gemm/threadblock_swizzle.h:400
    +
    CUTLASS_DEVICE dim3 swizzle()
    Swizzle the block index.
    Definition: gemm/threadblock_swizzle.h:70
    +
    CUTLASS_DEVICE int get_batch_id()
    Definition: gemm/threadblock_swizzle.h:245
    +
    Definition: gemm/threadblock_swizzle.h:65
    +
    #define CUTLASS_HOST_DEVICE
    Definition: cutlass.h:46
    +
    CUTLASS_DEVICE Coord< 3 > get_threadblock_offset(Coord< 3 > const &OutputTile)
    get threadblock offset, without considering tha batch dim
    Definition: gemm/threadblock_swizzle.h:84
    +
    CUTLASS_DEVICE int get_batch_id()
    Definition: gemm/threadblock_swizzle.h:418
    + +
    CUTLASS_HOST_DEVICE ColumnMajorBlockSwizzle()
    Ctor.
    Definition: gemm/threadblock_swizzle.h:203
    +
    CUTLASS_DEVICE dim3 swizzle()
    Swizzle the block index.
    Definition: gemm/threadblock_swizzle.h:206
    +
    CUTLASS_HOST_DEVICE Index const & m() const
    Returns the GEMM M coordinate.
    Definition: gemm_coord.h:89
    +
    CUTLASS_DEVICE dim3 swizzle()
    Swizzle the block index.
    Definition: gemm/threadblock_swizzle.h:379
    +
    Definition: gemm/threadblock_swizzle.h:37
    +
    CUTLASS_DEVICE Coord< 3 > get_threadblock_bounds(GemmCoord const &problem_size, int partitionK_range)
    Definition: gemm/threadblock_swizzle.h:259
    +
    CUTLASS_HOST_DEVICE Index const & batch() const
    Returns the GEMM batch coordinate.
    Definition: gemm_coord.h:113
    +
    Kind
    Definition: gemm/threadblock_swizzle.h:37
    +
    Definition: gemm/threadblock_swizzle.h:36
    +
    Definition: gemm/threadblock_swizzle.h:374
    +
    GemmCoord is a structure derived from Coord<4> that specifies a location within the coordinate system...
    +
    CUTLASS_HOST_DEVICE dim3 get_grid_layout(GemmCoord const &problem_size, Coord< 3 > const &OutputTile)
    Definition: gemm/threadblock_swizzle.h:73
    +
    + + + + diff --git a/docs/gemm_8h.html b/docs/gemm_8h.html index 8ca7c7a3..f01f3c6a 100644 --- a/docs/gemm_8h.html +++ b/docs/gemm_8h.html @@ -121,7 +121,7 @@ Functions
    @@ -124,7 +124,7 @@ Namespaces diff --git a/docs/gemm__stream__pair_8h_source.html b/docs/gemm__stream__pair_8h_source.html index 42c1447a..8abff3cf 100644 --- a/docs/gemm__stream__pair_8h_source.html +++ b/docs/gemm__stream__pair_8h_source.html @@ -76,31 +76,33 @@ $(function() {
    gemm_stream_pair.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/convert.h"
    31 #include "cutlass/matrix_traits.h"
    32 #include "cutlass/reshape_tile.h"
    34 #include "cutlass/tile_iterator.h"
    35 
    42 
    43 namespace cutlass {
    44 namespace gemm {
    45 
    47 
    49 template <typename StreamA_, typename StreamB_, bool kResidueInProlog_>
    51  //
    52  // Type definitions
    53  //
    54 
    56  typedef StreamA_ StreamA;
    57 
    59  typedef StreamB_ StreamB;
    60 
    62  struct Params {
    64  typename StreamA::Params stream_a;
    65 
    67  typename StreamB::Params stream_b;
    68 
    71  Params() {}
    72 
    75  Params(typename StreamA::Params const &_params_A, typename StreamB::Params const &_params_B)
    76  : stream_a(_params_A), stream_b(_params_B) {}
    77  };
    78 
    80  typedef typename StreamA::Index Index;
    81 
    83  typedef ZipTileAllocation<typename StreamA::ThreadblockTileStorage,
    84  typename StreamB::ThreadblockTileStorage>
    86 
    89 
    91  struct SharedStorage {
    92  typename StreamA::SharedStorage stream_a;
    93  typename StreamB::SharedStorage stream_b;
    94  };
    95 
    96  //
    97  // Data members
    98  //
    99 
    102 
    105 
    106  //
    107  // Methods
    108  //
    109 
    111  CUTLASS_DEVICE GlobalLoadStreamPair(Params const &params,
    112  SharedStorage &shared_storage,
    113  ThreadblockTileRef const &threadblock_tile_ref,
    114  Coord<3> const &bounds,
    115  Coord<3> const &block_offset = make_Coord(0, 0, 0))
    116  : stream_a(params.stream_a,
    117  shared_storage.stream_a,
    118  threadblock_tile_ref.first,
    119  bounds,
    120  block_offset),
    121  stream_b(params.stream_b,
    122  shared_storage.stream_b,
    123  threadblock_tile_ref.second,
    124  bounds,
    125  block_offset) {}
    126 
    127  CUTLASS_DEVICE
    129  stream_a += offset;
    130  stream_b += offset;
    131  return *this;
    132  }
    133 
    135  CUTLASS_DEVICE void copy() {
    136  stream_a.copy();
    137  stream_b.copy();
    138  }
    139 
    141  CUTLASS_DEVICE void commit() {
    142  stream_a.commit();
    143  stream_b.commit();
    144  }
    145 
    147  CUTLASS_DEVICE void residue(Index k, bool skip_clear = false) {
    148  stream_a.residue(k, skip_clear);
    149  stream_b.residue(k, skip_clear);
    150  }
    151 
    153  CUTLASS_DEVICE void move_to_residue(Index k, Index kTileK) {
    154  if (kResidueInProlog_) {
    155  stream_a.move_to_residue(k, kTileK);
    156  stream_b.move_to_residue(k, kTileK);
    157  } else if (k < kTileK) {
    158  residue(k, true);
    159  }
    160  }
    161 
    163  CUTLASS_DEVICE void rollback(bool kRollback) {
    164  if (kResidueInProlog_ && kRollback) {
    165  stream_a.rollback();
    166  stream_b.rollback();
    167  }
    168  }
    169 };
    170 
    172 template <typename StreamA_, typename StreamB_>
    174  //
    175  // Type definitions
    176  //
    177 
    179  typedef StreamA_ StreamA;
    180 
    182  typedef StreamB_ StreamB;
    183 
    185  struct Params {
    187  typename StreamA::Params stream_a;
    188 
    190  typename StreamB::Params stream_b;
    191  };
    192 
    194  typedef ZipTensorRef<typename StreamA::TensorRef,
    195  typename StreamB::TensorRef >
    197 
    198  //
    199  // Data members
    200  //
    201 
    204 
    207 
    208  //
    209  // Methods
    210  //
    211 
    213  CUTLASS_DEVICE SharedStreamPair(Params const &params, ThreadblockTileRef const &threadblock_tile_ref)
    214  : stream_a(params.stream_a, threadblock_tile_ref.first),
    215  stream_b(params.stream_b, threadblock_tile_ref.second) {}
    216 
    218  CUTLASS_DEVICE void copy(int step) {
    219  stream_a.copy(step);
    220  stream_b.copy(step);
    221  }
    222 
    224  CUTLASS_DEVICE void commit(int step) {
    225  stream_a.commit(step);
    226  stream_b.commit(step);
    227  }
    228 
    230  CUTLASS_DEVICE
    231  typename StreamA::TransformedFragment const &fragment_a(int step) const {
    232  return stream_a.fragment(step);
    233  }
    234 
    236  CUTLASS_DEVICE
    237  typename StreamB::TransformedFragment const &fragment_b(int step) const {
    238  return stream_b.fragment(step);
    239  }
    240 
    242  CUTLASS_DEVICE void inc_stage() {
    243  stream_a.inc_stage();
    244  stream_b.inc_stage();
    245  }
    246 };
    247 
    249 
    250 } // namespace gemm
    251 } // namespace cutlass
    CUTLASS_HOST_DEVICE Params(typename StreamA::Params const &_params_A, typename StreamB::Params const &_params_B)
    Constructs a global load stream pair Params object.
    Definition: gemm_stream_pair.h:75
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/convert.h"
    31 #include "cutlass/matrix_traits.h"
    32 #include "cutlass/reshape_tile.h"
    34 #include "cutlass/tile_iterator.h"
    35 
    42 
    43 namespace cutlass {
    44 namespace gemm {
    45 
    47 
    49 template <typename StreamA_, typename StreamB_, bool kResidueInProlog_>
    51  //
    52  // Type definitions
    53  //
    54 
    56  typedef StreamA_ StreamA;
    57 
    59  typedef StreamB_ StreamB;
    60 
    62  struct Params {
    64  typename StreamA::Params stream_a;
    65 
    67  typename StreamB::Params stream_b;
    68 
    71  Params() {}
    72 
    75  Params(typename StreamA::Params const &_params_A, typename StreamB::Params const &_params_B)
    76  : stream_a(_params_A), stream_b(_params_B) {}
    77  };
    78 
    80  typedef typename StreamA::Index Index;
    81 
    83  typedef ZipTileAllocation<typename StreamA::ThreadblockTileStorage,
    84  typename StreamB::ThreadblockTileStorage>
    86 
    89 
    91  struct SharedStorage {
    92  typename StreamA::SharedStorage stream_a;
    93  typename StreamB::SharedStorage stream_b;
    94  };
    95 
    96  //
    97  // Data members
    98  //
    99 
    102 
    105 
    106  //
    107  // Methods
    108  //
    109 
    111  CUTLASS_DEVICE GlobalLoadStreamPair(Params const &params,
    112  SharedStorage &shared_storage,
    113  ThreadblockTileRef const &threadblock_tile_ref,
    114  Coord<3> const bounds,
    115  Coord<3> const &block_offset = make_Coord(0, 0, 0))
    116  : stream_a(params.stream_a,
    117  shared_storage.stream_a,
    118  threadblock_tile_ref.first,
    119  bounds,
    120  block_offset),
    121  stream_b(params.stream_b,
    122  shared_storage.stream_b,
    123  threadblock_tile_ref.second,
    124  bounds,
    125  block_offset) {}
    126 
    127  CUTLASS_DEVICE
    129  stream_a += offset;
    130  stream_b += offset;
    131  return *this;
    132  }
    133 
    134  CUTLASS_DEVICE
    136  stream_a.add_batch_offset(batch_id);
    137  stream_b.add_batch_offset(batch_id);
    138  return *this;
    139  }
    140 
    142  CUTLASS_DEVICE void copy() {
    143  stream_a.copy();
    144  stream_b.copy();
    145  }
    146 
    148  CUTLASS_DEVICE void commit() {
    149  stream_a.commit();
    150  stream_b.commit();
    151  }
    152 
    154  CUTLASS_DEVICE void residue(Index k, bool skip_clear = false) {
    155  stream_a.residue(k, skip_clear);
    156  stream_b.residue(k, skip_clear);
    157  }
    158 
    160  CUTLASS_DEVICE void move_to_residue(Index k, Index kTileK) {
    161  if (kResidueInProlog_) {
    162  stream_a.move_to_residue(k, kTileK);
    163  stream_b.move_to_residue(k, kTileK);
    164  } else if (k < kTileK) {
    165  residue(k, true);
    166  }
    167  }
    168 
    170  CUTLASS_DEVICE void rollback(bool kRollback) {
    171  if (kResidueInProlog_ && kRollback) {
    172  stream_a.rollback();
    173  stream_b.rollback();
    174  }
    175  }
    176 };
    177 
    179 template <typename StreamA_, typename StreamB_>
    181  //
    182  // Type definitions
    183  //
    184 
    186  typedef StreamA_ StreamA;
    187 
    189  typedef StreamB_ StreamB;
    190 
    192  struct Params {
    194  typename StreamA::Params stream_a;
    195 
    197  typename StreamB::Params stream_b;
    198  };
    199 
    201  typedef ZipTensorRef<typename StreamA::TensorRef,
    202  typename StreamB::TensorRef >
    204 
    205  //
    206  // Data members
    207  //
    208 
    211 
    214 
    215  //
    216  // Methods
    217  //
    218 
    220  CUTLASS_DEVICE SharedStreamPair(Params const &params, ThreadblockTileRef const &threadblock_tile_ref)
    221  : stream_a(params.stream_a, threadblock_tile_ref.first),
    222  stream_b(params.stream_b, threadblock_tile_ref.second) {}
    223 
    225  CUTLASS_DEVICE void copy(int step) {
    226  stream_a.copy(step);
    227  stream_b.copy(step);
    228  }
    229 
    231  CUTLASS_DEVICE void commit(int step) {
    232  stream_a.commit(step);
    233  stream_b.commit(step);
    234  }
    235 
    237  CUTLASS_DEVICE
    238  typename StreamA::TransformedFragment const &fragment_a(int step) const {
    239  return stream_a.fragment(step);
    240  }
    241 
    243  CUTLASS_DEVICE
    244  typename StreamB::TransformedFragment const &fragment_b(int step) const {
    245  return stream_b.fragment(step);
    246  }
    247 
    249  CUTLASS_DEVICE void inc_stage() {
    250  stream_a.inc_stage();
    251  stream_b.inc_stage();
    252  }
    253 };
    254 
    256 
    257 } // namespace gemm
    258 } // namespace cutlass
    CUTLASS_HOST_DEVICE Params(typename StreamA::Params const &_params_A, typename StreamB::Params const &_params_B)
    Constructs a global load stream pair Params object.
    Definition: gemm_stream_pair.h:75
    CUTLASS_DEVICE GlobalLoadStreamPair & operator+=(Coord< 3 > const offset)
    Definition: gemm_stream_pair.h:128
    -
    StreamA_ StreamA
    Stream for A multiplicand.
    Definition: gemm_stream_pair.h:179
    -
    CUTLASS_DEVICE void move_to_residue(Index k, Index kTileK)
    Move to residue.
    Definition: gemm_stream_pair.h:153
    +
    StreamA_ StreamA
    Stream for A multiplicand.
    Definition: gemm_stream_pair.h:186
    +
    CUTLASS_DEVICE void move_to_residue(Index k, Index kTileK)
    Move to residue.
    Definition: gemm_stream_pair.h:160
    Definition: convert.h:33
    StreamB::SharedStorage stream_b
    Definition: gemm_stream_pair.h:93
    +
    CUTLASS_DEVICE GlobalLoadStreamPair & add_batch_offset(int batch_id)
    Definition: gemm_stream_pair.h:135
    Definition: zip_tensor_ref.h:38
    Defines the Tile Traits concept and iterators for loading and storing to tiles efficiently.
    -
    StreamA::Params stream_a
    Definition: gemm_stream_pair.h:187
    +
    StreamA::Params stream_a
    Definition: gemm_stream_pair.h:194
    +
    CUTLASS_DEVICE GlobalLoadStreamPair(Params const &params, SharedStorage &shared_storage, ThreadblockTileRef const &threadblock_tile_ref, Coord< 3 > const bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))
    Ctor.
    Definition: gemm_stream_pair.h:111
    +
    Defies functors for mapping blockIdx to partitions of the GEMM computation.
    Defines a structure containing shared storage for each pair.
    Definition: gemm_stream_pair.h:91
    -
    CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
    Helper to make a 2-element coordinate.
    Definition: coord.h:318
    +
    CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
    Helper to make a 2-element coordinate.
    Definition: coord.h:368
    ZipTileAllocation< typename StreamA::ThreadblockTileStorage, typename StreamB::ThreadblockTileStorage > ThreadblockTileStorage
    Shared memory allocation for threadblock-scoped GEMM tile.
    Definition: gemm_stream_pair.h:85
    -
    CUTLASS_DEVICE void residue(Index k, bool skip_clear=false)
    Execute the residue code.
    Definition: gemm_stream_pair.h:147
    -
    CUTLASS_DEVICE GlobalLoadStreamPair(Params const &params, SharedStorage &shared_storage, ThreadblockTileRef const &threadblock_tile_ref, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))
    Ctor.
    Definition: gemm_stream_pair.h:111
    +
    CUTLASS_DEVICE void residue(Index k, bool skip_clear=false)
    Execute the residue code.
    Definition: gemm_stream_pair.h:154
    ThreadblockTileStorage::TensorRef ThreadblockTileRef
    ZipTensorRef to threadblock tiles.
    Definition: gemm_stream_pair.h:88
    -
    CUTLASS_DEVICE SharedStreamPair(Params const &params, ThreadblockTileRef const &threadblock_tile_ref)
    Construct with the composable structure.
    Definition: gemm_stream_pair.h:213
    +
    CUTLASS_DEVICE SharedStreamPair(Params const &params, ThreadblockTileRef const &threadblock_tile_ref)
    Construct with the composable structure.
    Definition: gemm_stream_pair.h:220
    StreamB_ StreamB
    Stream for B multiplicand.
    Definition: gemm_stream_pair.h:59
    -
    Collect the global load streams for multiplicands.
    Definition: gemm_stream_pair.h:173
    -
    CUTLASS_DEVICE StreamB::TransformedFragment const & fragment_b(int step) const
    The fragment B.
    Definition: gemm_stream_pair.h:237
    +
    Collect the global load streams for multiplicands.
    Definition: gemm_stream_pair.h:180
    +
    CUTLASS_DEVICE StreamB::TransformedFragment const & fragment_b(int step) const
    The fragment B.
    Definition: gemm_stream_pair.h:244
    StreamB::Params stream_b
    Parameters object for StreamB.
    Definition: gemm_stream_pair.h:67
    -
    CUTLASS_DEVICE void rollback(bool kRollback)
    Rollback to beginning of first tile.
    Definition: gemm_stream_pair.h:163
    -
    StreamA stream_a
    The stream for A.
    Definition: gemm_stream_pair.h:203
    -
    CUTLASS_DEVICE StreamA::TransformedFragment const & fragment_a(int step) const
    The fragment A.
    Definition: gemm_stream_pair.h:231
    +
    CUTLASS_DEVICE void rollback(bool kRollback)
    Rollback to beginning of first tile.
    Definition: gemm_stream_pair.h:170
    +
    StreamA stream_a
    The stream for A.
    Definition: gemm_stream_pair.h:210
    +
    CUTLASS_DEVICE StreamA::TransformedFragment const & fragment_a(int step) const
    The fragment A.
    Definition: gemm_stream_pair.h:238
    Collect the global load streams for multiplicands.
    Definition: gemm_stream_pair.h:50
    -
    CUTLASS_DEVICE void copy(int step)
    Trigger the copies from shared memory to registers.
    Definition: gemm_stream_pair.h:218
    +
    CUTLASS_DEVICE void copy(int step)
    Trigger the copies from shared memory to registers.
    Definition: gemm_stream_pair.h:225
    Defines a fragment based on a Shape<> template.
    Parameters object.
    Definition: gemm_stream_pair.h:62
    Defines a type for restructuring a tile.
    @@ -108,25 +110,24 @@ $(function() {
    Defines abstractions for efficiently clearing accumulator tiles.
    StreamA_ StreamA
    Stream for A multiplicand.
    Definition: gemm_stream_pair.h:56
    StreamA stream_a
    Stream for A multiplicand.
    Definition: gemm_stream_pair.h:101
    -
    ZipTensorRef< typename StreamA::TensorRef, typename StreamB::TensorRef > ThreadblockTileRef
    Shared memory allocation for threadblock-scoped GEMM tile.
    Definition: gemm_stream_pair.h:196
    +
    ZipTensorRef< typename StreamA::TensorRef, typename StreamB::TensorRef > ThreadblockTileRef
    Shared memory allocation for threadblock-scoped GEMM tile.
    Definition: gemm_stream_pair.h:203
    StreamA::Index Index
    Assumes the A stream defines the index type.
    Definition: gemm_stream_pair.h:80
    -
    Manages a pair of tile allocations as if they are one allocation.
    Definition: tile_allocation.h:100
    +
    Manages a pair of tile allocations as if they are one allocation.
    Definition: tile_allocation.h:125
    #define CUTLASS_HOST_DEVICE
    Definition: cutlass.h:46
    Defines properties of GEMM computation that impose some constraints on caller.
    CUTLASS_HOST_DEVICE Params()
    Default constructor.
    Definition: gemm_stream_pair.h:71
    -
    StreamB_ StreamB
    Stream for B multiplicand.
    Definition: gemm_stream_pair.h:182
    +
    StreamB_ StreamB
    Stream for B multiplicand.
    Definition: gemm_stream_pair.h:189
    StreamA::SharedStorage stream_a
    Definition: gemm_stream_pair.h:92
    -
    CUTLASS_DEVICE void commit(int step)
    Commit the data.
    Definition: gemm_stream_pair.h:224
    +
    CUTLASS_DEVICE void commit(int step)
    Commit the data.
    Definition: gemm_stream_pair.h:231
    -
    CUTLASS_DEVICE void commit()
    Commit the data.
    Definition: gemm_stream_pair.h:141
    +
    CUTLASS_DEVICE void commit()
    Commit the data.
    Definition: gemm_stream_pair.h:148
    Implements efficient loading of the thread block-level tile from global memory and storing to shared ...
    -
    StreamB stream_b
    The stream for B.
    Definition: gemm_stream_pair.h:206
    -
    CUTLASS_DEVICE void inc_stage()
    Increment the stage.
    Definition: gemm_stream_pair.h:242
    -
    Parameters object passed to load iterators.
    Definition: gemm_stream_pair.h:185
    -
    StreamB::Params stream_b
    Definition: gemm_stream_pair.h:190
    -
    Defies functors for mapping blockIdx to partitions of the GEMM computation.
    +
    StreamB stream_b
    The stream for B.
    Definition: gemm_stream_pair.h:213
    +
    CUTLASS_DEVICE void inc_stage()
    Increment the stage.
    Definition: gemm_stream_pair.h:249
    +
    Parameters object passed to load iterators.
    Definition: gemm_stream_pair.h:192
    +
    StreamB::Params stream_b
    Definition: gemm_stream_pair.h:197
    Defines properties of matrices used to denote layout and operands to GEMM kernels.
    -
    CUTLASS_DEVICE void copy()
    Trigger the copies from shared memory to registers.
    Definition: gemm_stream_pair.h:135
    +
    CUTLASS_DEVICE void copy()
    Trigger the copies from shared memory to registers.
    Definition: gemm_stream_pair.h:142
    StreamA::Params stream_a
    Parameters object for StreamA.
    Definition: gemm_stream_pair.h:64
    Defines abstractions for managing loading and storing fragments to shared memory in the efficient GEM...
    StreamB stream_b
    Stream for B multiplicand.
    Definition: gemm_stream_pair.h:104
    @@ -134,7 +135,7 @@ $(function() {
    diff --git a/docs/gemm__traits_8h.html b/docs/gemm__traits_8h.html index 26a1c6ba..86210c13 100644 --- a/docs/gemm__traits_8h.html +++ b/docs/gemm__traits_8h.html @@ -95,7 +95,7 @@ $(function() { #include "cutlass/gemm/gemm_global_stream.h"
    #include "cutlass/gemm/gemm_operand.h"
    #include "cutlass/gemm/gemm_shared_stream.h"
    -#include "cutlass/gemm/threadblock_swizzle.h"
    +#include "cutlass/gemm/threadblock_swizzle.h"
    #include "cutlass/gemm/gemm.h"

    Go to the source code of this file.

    @@ -139,7 +139,7 @@ Namespaces diff --git a/docs/gemm__traits_8h_source.html b/docs/gemm__traits_8h_source.html index 274bc086..9b82161b 100644 --- a/docs/gemm__traits_8h_source.html +++ b/docs/gemm__traits_8h_source.html @@ -76,11 +76,11 @@ $(function() {
    gemm_traits.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/convert.h"
    31 #include "cutlass/matrix_traits.h"
    32 #include "cutlass/reshape_tile.h"
    34 #include "cutlass/tile_iterator.h"
    35 #include "cutlass/kernel_launch.h"
    36 
    39 #include "cutlass/gemm/gemm_desc.h"
    45 #include "cutlass/gemm/gemm.h"
    46 namespace cutlass {
    47 namespace gemm {
    48 
    50 
    51 template <enum MatrixLayout::Kind, typename GemmConfig_>
    53 
    55 
    56 template <typename GemmConfig_>
    57 struct GemmTileTraitsHelperA<MatrixLayout::kColumnMajor, GemmConfig_> {
    60 
    62  typedef typename GemmConfig_::ScalarA Scalar;
    64  typedef typename GemmConfig_::MultiplyAdd::ScalarA MultiplyAddScalar;
    65 
    67  typedef GemmGlobalTileTraits<
    68  // That's A.
    70  // A is column-major.
    72  // The pointer is float const.
    73  Scalar const,
    74  // The tile has size KxM in GEMM's terminology.
    76  // The threads are distributed as warps x 32 (the traits may reorganize).
    78  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
    79  GemmConfig_::kScalarsPerLdgA>
    81 
    84  // The pointer is float.
    86  // The tile has size KxM in GEMM's terminology.
    87  Shape<GemmConfig_::kStages,
    88  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    89  GemmConfig_::OutputTile::kW * GemmConfig_::InstructionShape::kD>,
    90  // The threads are distributed as warps x 32 (the traits may reorganize).
    92  // The number of scalars per STS (STS.32 or STS.128, etc).
    93  GemmConfig_::kScalarsPerStsA>
    95 
    98  // The pointer is float const.
    99  MultiplyAddScalar const,
    100  // The output tile size.
    101  typename GemmConfig_::OutputTile,
    102  // The number of warps.
    103  typename GemmConfig_::Warps,
    104  // The number of threads per warp.
    105  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    106  // The shape of the FMA instruction.
    107  typename GemmConfig_::InstructionShape,
    108  // The number of stages.
    109  GemmConfig_::kStages,
    110  // The number of scalars per LDS.
    111  GemmConfig_::kScalarsPerLdsA,
    112  // The skew.
    113  0>
    115 };
    116 
    118 
    119 template <typename GemmConfig_>
    120 struct GemmTileTraitsHelperA<MatrixLayout::kRowMajor, GemmConfig_> {
    123 
    125  typedef typename GemmConfig_::ScalarA Scalar;
    127  typedef typename GemmConfig_::MultiplyAdd::ScalarA MultiplyAddScalar;
    128 
    130  typedef GemmGlobalTileTraits<
    131  // That's A.
    133  // A is row-major.
    135  // The pointer is float const.
    136  Scalar const,
    137  // The tile has size MxK in GEMM's terminology.
    139  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    140  Shape<1, GemmConfig_::kThreads / GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD>,
    141  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
    142  GemmConfig_::kScalarsPerLdgA>
    144 
    146  static int const kScalarsIn4B = sizeof(MultiplyAddScalar) > 4 ? 1 : 4 / sizeof(MultiplyAddScalar);
    148  static int const kSkewA = 128 / sizeof(MultiplyAddScalar) / GemmConfig_::kScalarsPerStsA /
    149  GlobalTileTraits::Threads::kW * kScalarsIn4B;
    150 
    153  // The pointer is float.
    155  // The tile has size KxM in GEMM's terminology.
    156  Shape<GemmConfig_::kStages,
    157  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    158  GemmConfig_::OutputTile::kW * GemmConfig_::InstructionShape::kD>,
    159  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    160  typename GlobalTileTraits::Threads,
    161  // The number of scalars per STS.
    162  GemmConfig_::kScalarsPerStsA,
    163  // The skew to avoid bank conflicts added in the tile W dimension.
    164  kSkewA<GemmConfig_::kScalarsPerLdsA ? GemmConfig_::kScalarsPerLdsA : kSkewA>
    165  SharedStoreTileTraits;
    166 
    169  // The pointer is float const.
    170  MultiplyAddScalar const,
    171  // The output tile size.
    172  typename GemmConfig_::OutputTile,
    173  // The number of warps.
    174  typename GemmConfig_::Warps,
    175  // The number of threads per warp.
    176  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    177  // The shape of the FMA instruction.
    178  typename GemmConfig_::InstructionShape,
    179  // The number of stages.
    180  GemmConfig_::kStages,
    181  // The number of scalars per LDS.
    182  GemmConfig_::kScalarsPerLdsA,
    183  // The skew.
    184  SharedStoreTileTraits::kSkew>
    185  SharedLoadTileTraits;
    186 };
    187 
    189 
    190 template <enum MatrixLayout::Kind, typename GemmConfig_>
    192 
    194 
    195 template <typename GemmConfig_>
    196 struct GemmTileTraitsHelperB<MatrixLayout::kColumnMajor, GemmConfig_> {
    199 
    201  typedef typename GemmConfig_::ScalarB Scalar;
    203  typedef typename GemmConfig_::MultiplyAdd::ScalarB MultiplyAddScalar;
    204 
    206  typedef GemmGlobalTileTraits<
    207  // That's B.
    209  // B is column-major.
    211  // The pointer is float const.
    212  Scalar const,
    213  // The tile has size MxK in GEMM's terminology.
    215  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    216  Shape<1, GemmConfig_::kThreads / GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD>,
    217  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
    218  GemmConfig_::kScalarsPerLdgB>
    220 
    222  static int const kScalarsIn4B = sizeof(MultiplyAddScalar) > 4 ? 1 : 4 / sizeof(MultiplyAddScalar);
    224  static int const kSkewB = 128 / sizeof(MultiplyAddScalar) / GemmConfig_::kScalarsPerStsB /
    225  GlobalTileTraits::Threads::kW * kScalarsIn4B;
    226 
    229  // The pointer is float.
    231  // The tile has size KxN in GEMM's terminology.
    232  Shape<GemmConfig_::kStages,
    233  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    234  GemmConfig_::OutputTile::kH * GemmConfig_::InstructionShape::kD>,
    235  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    236  typename GlobalTileTraits::Threads,
    237  // The number of scalars per STS.
    238  GemmConfig_::kScalarsPerStsB,
    239  // The skew to avoid bank conflicts added in the tile W dimension.
    240  kSkewB<GemmConfig_::kScalarsPerLdsB ? GemmConfig_::kScalarsPerLdsB : kSkewB>
    241  SharedStoreTileTraits;
    242 
    245  // The pointer is float const.
    246  MultiplyAddScalar const,
    247  // The output tile size.
    248  typename GemmConfig_::OutputTile,
    249  // The number of warps.
    250  typename GemmConfig_::Warps,
    251  // The number of threads per warp.
    252  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    253  // The shape of the FMA instruction.
    254  typename GemmConfig_::InstructionShape,
    255  // The number of stages.
    256  GemmConfig_::kStages,
    257  // The number of scalars per LDS.
    258  GemmConfig_::kScalarsPerLdsB,
    259  // The skew.
    260  SharedStoreTileTraits::kSkew>
    261  SharedLoadTileTraits;
    262 };
    263 
    265 
    266 template <typename GemmConfig_>
    267 struct GemmTileTraitsHelperB<MatrixLayout::kRowMajor, GemmConfig_> {
    270 
    272  typedef typename GemmConfig_::ScalarB Scalar;
    274  typedef typename GemmConfig_::MultiplyAdd::ScalarB MultiplyAddScalar;
    275 
    277  typedef GemmGlobalTileTraits<
    278  // That's B.
    280  // B is row-major.
    282  // The pointer is float const.
    283  Scalar const,
    284  // The tile has size KxN in GEMM's terminology.
    286  // The threads are distributed as warps x 32 (the traits may reorganize).
    288  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
    289  GemmConfig_::kScalarsPerLdgB>
    291 
    294  // The pointer is float.
    296  // The tile has size KxN in GEMM's terminology.
    297  Shape<GemmConfig_::kStages,
    298  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    299  GemmConfig_::OutputTile::kH * GemmConfig_::InstructionShape::kD>,
    300  // The threads are distributed as warps x 32 (the traits may reorganize).
    301  typename GlobalTileTraits::Threads,
    302  // The number of scalars per STS (STS.32 or STS.128, etc).
    303  GemmConfig_::kScalarsPerStsB>
    305 
    308  // The pointer is float const.
    309  MultiplyAddScalar const,
    310  // The output tile size.
    311  typename GemmConfig_::OutputTile,
    312  // The number of warps.
    313  typename GemmConfig_::Warps,
    314  // The number of threads per warp.
    315  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    316  // The shape of the FMA instruction.
    317  typename GemmConfig_::InstructionShape,
    318  // The number of stages.
    319  GemmConfig_::kStages,
    320  // The number of scalars per LDS.
    321  GemmConfig_::kScalarsPerLdsB,
    322  // The skew.
    323  0>
    325 };
    326 
    328 
    329 template <
    331  typename GemmConfig_,
    333  typename GlobalLoadStreamA_,
    335  typename GlobalLoadStreamB_,
    337  typename SharedLoadStreamA_,
    339  typename SharedLoadStreamB_,
    341  typename Epilogue_,
    343  typename BlockSwizzle_ = IdentityBlockSwizzle,
    345  typename Index_ = int,
    348 
    349 struct GemmTraits {
    351  typedef GemmTraits<GemmConfig_,
    352  GlobalLoadStreamA_,
    353  GlobalLoadStreamB_,
    354  SharedLoadStreamA_,
    355  SharedLoadStreamB_,
    356  Epilogue_,
    357  BlockSwizzle_,
    358  Index_,
    359  ClearAccumulators_> This_;
    360 
    363 
    365  typedef GemmConfig_ GemmConfig;
    368 
    370  typedef GlobalLoadStreamA_ GlobalLoadStreamA;
    372  static MatrixLayout::Kind const kLayoutA = GlobalLoadStreamA::kLayout;
    374  typedef typename GlobalLoadStreamA_::Scalar ScalarA;
    375 
    377  typedef GlobalLoadStreamB_ GlobalLoadStreamB;
    379  static MatrixLayout::Kind const kLayoutB = GlobalLoadStreamB::kLayout;
    381  typedef typename GlobalLoadStreamB_::Scalar ScalarB;
    382 
    384  typedef SharedLoadStreamA_ SharedLoadStreamA;
    386  typedef SharedLoadStreamB_ SharedLoadStreamB;
    387 
    391  typedef Epilogue_ Epilogue;
    393  typedef typename Epilogue::ScalarC ScalarC;
    394  typedef typename Epilogue::ScalarD ScalarD;
    395 
    397  typedef BlockSwizzle_ BlockSwizzle;
    399  typedef Index_ Index;
    401  typedef ClearAccumulators_ ClearAccumulators;
    402 
    408 
    411 
    414 
    417 
    420 
    423 
    426 
    428  typename Epilogue::Params epilogue;
    429 
    431  template <typename GemmDesc_>
    432  CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const& desc) {
    433  // Set the problem size.
    434  problem_size = desc.problem_size;
    435 
    436  // Compute grid dimensions
    437  BlockSwizzle block_swizzle;
    438  this->block = dim3(GemmConfig::kThreads);
    439  this->grid = block_swizzle.get_grid_layout(
    440  problem_size,
    441  make_Coord_from_shape<OutputTile>());
    442 
    443  // Compute offset to residue.
    444  Index gemm_k = problem_size[0];
    445  Index offset_to_residue = (gemm_k % OutputTile::kD) ? gemm_k - (gemm_k % OutputTile::kD) : 0;
    446 
    447  // Initialize parameters objects for
    448  int error_code = global_to_shared_stream.stream_a.initialize(
    449  desc.A.data(),
    450  desc.batch_stride_A,
    451  desc.A.leading_dim(),
    452  offset_to_residue
    453  );
    454  if (error_code) {
    455  return error_code;
    456  }
    457 
    458  error_code = global_to_shared_stream.stream_b.initialize(
    459  desc.B.data(),
    460  desc.batch_stride_B,
    461  desc.B.leading_dim(),
    462  offset_to_residue
    463  );
    464 
    465  if (error_code) {
    466  return error_code;
    467  }
    468 
    469  // The epilogue.
    470  return epilogue.initialize(desc);
    471  }
    472 
    475  Index n,
    476  Index k,
    477  typename Epilogue::Scalar alpha,
    478  ScalarA const* d_a,
    479  Index lda,
    480  ScalarB const* d_b,
    481  Index ldb,
    482  typename Epilogue::Scalar beta,
    483  ScalarC const* d_c,
    484  Index ldc,
    485  ScalarD* d_d,
    486  Index ldd) {
    488  GemmCoord(k, n, m, 1),
    489  alpha,
    490  TensorRef<ScalarA const, 2>(d_a, lda),
    491  TensorRef<ScalarB const, 2>(d_b, ldb),
    492  beta,
    493  TensorRef<ScalarC const, 2>(d_c, ldc),
    494  TensorRef<ScalarD, 2>(d_d, ldd)
    495  );
    496 
    497  return this->initialize(desc);
    498  }
    499 
    502  Index n,
    503  Index k,
    504  typename Epilogue::Scalar alpha,
    505  ScalarA const* d_a,
    506  Index lda,
    507  long long int batch_stride_A,
    508  ScalarB const* d_b,
    509  Index ldb,
    510  long long int batch_stride_B,
    511  typename Epilogue::Scalar beta,
    512  ScalarC const* d_c,
    513  Index ldc,
    514  long long int batch_stride_C,
    515  ScalarD* d_d,
    516  Index ldd,
    517  long long int batch_stride_D,
    518  Index batch_count) {
    519 
    521  GemmCoord(k, n, m, batch_count),
    522  alpha,
    523  TensorRef<ScalarA const, 2>(d_a, lda),
    524  batch_stride_A,
    525  TensorRef<ScalarB const, 2>(d_b, ldb),
    526  batch_stride_B,
    527  beta,
    528  TensorRef<ScalarC const, 2>(d_c, ldc),
    529  batch_stride_C,
    530  TensorRef<ScalarD, 2>(d_d, ldd),
    531  batch_stride_D
    532  );
    533 
    534  return this->initialize(desc);
    535  }
    536  };
    537 
    538  // The storage for the main loop + prologue.
    542 
    545 
    548  };
    549 
    552  // The storage for the main loop.
    554  // The storage for the epilogue.
    555  typename Epilogue::SharedStorage epilogue;
    556  };
    557 
    559  static CUTLASS_DEVICE void shared_load_fence(bool in_loop) {
    560  if (SharedLoadStreamA::Iterator::kRequiresLoadFence ||
    561  SharedLoadStreamB::Iterator::kRequiresLoadFence) {
    562  __syncthreads();
    563  }
    564  }
    565 
    567  static CUTLASS_DEVICE void shared_store_fence(bool in_loop) {
    568  __syncthreads();
    569  }
    570 };
    571 
    573 
    574 template <typename GemmTileTraitsHelperA_, typename GemmTileTraitsHelperB_, typename Index_>
    582  typedef TileStoreIterator<typename GemmTileTraitsHelperA_::SharedStoreTileTraits,
    583  typename GemmTileTraitsHelperA_::SharedStoreTileTraits::Scalar,
    593 
    600  typedef TileStoreIterator<typename GemmTileTraitsHelperB_::SharedStoreTileTraits,
    601  typename GemmTileTraitsHelperB_::SharedStoreTileTraits::Scalar,
    611 
    613  typedef TileLoadIterator<typename GemmTileTraitsHelperA_::SharedLoadTileTraits,
    614  typename GemmTileTraitsHelperA_::Scalar,
    621  typedef TileLoadIterator<typename GemmTileTraitsHelperB_::SharedLoadTileTraits,
    622  typename GemmTileTraitsHelperB_::Scalar,
    628 };
    629 
    631 
    632 template <
    634  MatrixLayout::Kind kLayoutA_,
    636  MatrixLayout::Kind kLayoutB_,
    638  typename GemmConfig_,
    640  typename Epilogue_,
    642  typename Index_ = int,
    643  // The configuration for the A matrix.
    644  typename GemmTileTraitsHelperA_ = GemmTileTraitsHelperA<kLayoutA_, GemmConfig_>,
    645  // The configuration for the B matrix.
    646  typename GemmTileTraitsHelperB_ = GemmTileTraitsHelperB<kLayoutB_, GemmConfig_>,
    647  // The helper class to create the streams and iterators.
    648  typename Helper_ =
    651  // The config.
    652  GemmConfig_,
    653  // The stream to load A from global memory to shared memory.
    654  typename Helper_::GlobalLoadStreamA,
    655  // The stream to load B from global memory to shared memory.
    656  typename Helper_::GlobalLoadStreamB,
    657  // The stream to load A from shared memory.
    658  typename Helper_::SharedLoadStreamA,
    659  // The stream to load B from shared memory.
    660  typename Helper_::SharedLoadStreamB,
    661  // The epilogue.
    662  Epilogue_,
    663  // The block swizzle to reorganize the grid.
    664  IdentityBlockSwizzle,
    665  // The index.
    666  Index_,
    667  // The tool used to clear accumulators.
    668  ClearAccumulators<typename GemmConfig_::Accumulators::Element> > {
    669 };
    670 
    672 
    673 } // namespace gemm
    674 } // namespace cutlass
    Epilogue::SharedStorage epilogue
    Definition: gemm_traits.h:555
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/convert.h"
    31 #include "cutlass/matrix_traits.h"
    32 #include "cutlass/reshape_tile.h"
    34 #include "cutlass/tile_iterator.h"
    35 #include "cutlass/kernel_launch.h"
    36 
    39 #include "cutlass/gemm/gemm_desc.h"
    45 #include "cutlass/gemm/gemm.h"
    46 namespace cutlass {
    47 namespace gemm {
    48 
    50 
    51 template <enum MatrixLayout::Kind, typename GemmConfig_>
    53 
    55 
    56 template <typename GemmConfig_>
    57 struct GemmTileTraitsHelperA<MatrixLayout::kColumnMajor, GemmConfig_> {
    60 
    62  typedef typename GemmConfig_::ScalarA Scalar;
    64  typedef typename GemmConfig_::MultiplyAdd::ScalarA MultiplyAddScalar;
    65 
    67  typedef GemmGlobalTileTraits<
    68  // That's A.
    70  // A is column-major.
    72  // The pointer is float const.
    73  Scalar const,
    74  // The tile has size KxM in GEMM's terminology.
    76  // The threads are distributed as warps x 32 (the traits may reorganize).
    78  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
    79  GemmConfig_::kScalarsPerLdgA>
    81 
    84  // The pointer is float.
    86  // The tile has size KxM in GEMM's terminology.
    87  Shape<GemmConfig_::kStages,
    88  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    89  GemmConfig_::OutputTile::kW * GemmConfig_::InstructionShape::kD>,
    90  // The threads are distributed as warps x 32 (the traits may reorganize).
    92  // The number of scalars per STS (STS.32 or STS.128, etc).
    93  GemmConfig_::kScalarsPerStsA>
    95 
    98  // The pointer is float const.
    99  MultiplyAddScalar const,
    100  // The output tile size.
    101  typename GemmConfig_::OutputTile,
    102  // The number of warps.
    103  typename GemmConfig_::Warps,
    104  // The number of threads per warp.
    105  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    106  // The shape of the FMA instruction.
    107  typename GemmConfig_::InstructionShape,
    108  // The number of stages.
    109  GemmConfig_::kStages,
    110  // The number of scalars per LDS.
    111  GemmConfig_::kScalarsPerLdsA,
    112  // The skew.
    113  0>
    115 };
    116 
    118 
    119 template <typename GemmConfig_>
    120 struct GemmTileTraitsHelperA<MatrixLayout::kRowMajor, GemmConfig_> {
    123 
    125  typedef typename GemmConfig_::ScalarA Scalar;
    127  typedef typename GemmConfig_::MultiplyAdd::ScalarA MultiplyAddScalar;
    128 
    130  typedef GemmGlobalTileTraits<
    131  // That's A.
    133  // A is row-major.
    135  // The pointer is float const.
    136  Scalar const,
    137  // The tile has size MxK in GEMM's terminology.
    139  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    140  Shape<1, GemmConfig_::kThreads / GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD>,
    141  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
    142  GemmConfig_::kScalarsPerLdgA>
    144 
    146  static int const kScalarsIn4B = sizeof(MultiplyAddScalar) > 4 ? 1 : 4 / sizeof(MultiplyAddScalar);
    148  static int const kSkewA = 128 / sizeof(MultiplyAddScalar) / GemmConfig_::kScalarsPerStsA /
    149  GlobalTileTraits::Threads::kW * kScalarsIn4B;
    150 
    153  // The pointer is float.
    155  // The tile has size KxM in GEMM's terminology.
    156  Shape<GemmConfig_::kStages,
    157  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    158  GemmConfig_::OutputTile::kW * GemmConfig_::InstructionShape::kD>,
    159  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    160  typename GlobalTileTraits::Threads,
    161  // The number of scalars per STS.
    162  GemmConfig_::kScalarsPerStsA,
    163  // The skew to avoid bank conflicts added in the tile W dimension.
    164  kSkewA<GemmConfig_::kScalarsPerLdsA ? GemmConfig_::kScalarsPerLdsA : kSkewA>
    165  SharedStoreTileTraits;
    166 
    169  // The pointer is float const.
    170  MultiplyAddScalar const,
    171  // The output tile size.
    172  typename GemmConfig_::OutputTile,
    173  // The number of warps.
    174  typename GemmConfig_::Warps,
    175  // The number of threads per warp.
    176  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    177  // The shape of the FMA instruction.
    178  typename GemmConfig_::InstructionShape,
    179  // The number of stages.
    180  GemmConfig_::kStages,
    181  // The number of scalars per LDS.
    182  GemmConfig_::kScalarsPerLdsA,
    183  // The skew.
    184  SharedStoreTileTraits::kSkew>
    185  SharedLoadTileTraits;
    186 };
    187 
    189 
    190 template <enum MatrixLayout::Kind, typename GemmConfig_>
    192 
    194 
    195 template <typename GemmConfig_>
    196 struct GemmTileTraitsHelperB<MatrixLayout::kColumnMajor, GemmConfig_> {
    199 
    201  typedef typename GemmConfig_::ScalarB Scalar;
    203  typedef typename GemmConfig_::MultiplyAdd::ScalarB MultiplyAddScalar;
    204 
    206  typedef GemmGlobalTileTraits<
    207  // That's B.
    209  // B is column-major.
    211  // The pointer is float const.
    212  Scalar const,
    213  // The tile has size MxK in GEMM's terminology.
    215  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    216  Shape<1, GemmConfig_::kThreads / GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD>,
    217  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
    218  GemmConfig_::kScalarsPerLdgB>
    220 
    222  static int const kScalarsIn4B = sizeof(MultiplyAddScalar) > 4 ? 1 : 4 / sizeof(MultiplyAddScalar);
    224  static int const kSkewB = 128 / sizeof(MultiplyAddScalar) / GemmConfig_::kScalarsPerStsB /
    225  GlobalTileTraits::Threads::kW * kScalarsIn4B;
    226 
    229  // The pointer is float.
    231  // The tile has size KxN in GEMM's terminology.
    232  Shape<GemmConfig_::kStages,
    233  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    234  GemmConfig_::OutputTile::kH * GemmConfig_::InstructionShape::kD>,
    235  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    236  typename GlobalTileTraits::Threads,
    237  // The number of scalars per STS.
    238  GemmConfig_::kScalarsPerStsB,
    239  // The skew to avoid bank conflicts added in the tile W dimension.
    240  kSkewB<GemmConfig_::kScalarsPerLdsB ? GemmConfig_::kScalarsPerLdsB : kSkewB>
    241  SharedStoreTileTraits;
    242 
    245  // The pointer is float const.
    246  MultiplyAddScalar const,
    247  // The output tile size.
    248  typename GemmConfig_::OutputTile,
    249  // The number of warps.
    250  typename GemmConfig_::Warps,
    251  // The number of threads per warp.
    252  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    253  // The shape of the FMA instruction.
    254  typename GemmConfig_::InstructionShape,
    255  // The number of stages.
    256  GemmConfig_::kStages,
    257  // The number of scalars per LDS.
    258  GemmConfig_::kScalarsPerLdsB,
    259  // The skew.
    260  SharedStoreTileTraits::kSkew>
    261  SharedLoadTileTraits;
    262 };
    263 
    265 
    266 template <typename GemmConfig_>
    267 struct GemmTileTraitsHelperB<MatrixLayout::kRowMajor, GemmConfig_> {
    270 
    272  typedef typename GemmConfig_::ScalarB Scalar;
    274  typedef typename GemmConfig_::MultiplyAdd::ScalarB MultiplyAddScalar;
    275 
    277  typedef GemmGlobalTileTraits<
    278  // That's B.
    280  // B is row-major.
    282  // The pointer is float const.
    283  Scalar const,
    284  // The tile has size KxN in GEMM's terminology.
    286  // The threads are distributed as warps x 32 (the traits may reorganize).
    288  // The number of scalars per LDG (LDG.32 or LDG.128, etc).
    289  GemmConfig_::kScalarsPerLdgB>
    291 
    294  // The pointer is float.
    296  // The tile has size KxN in GEMM's terminology.
    297  Shape<GemmConfig_::kStages,
    298  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    299  GemmConfig_::OutputTile::kH * GemmConfig_::InstructionShape::kD>,
    300  // The threads are distributed as warps x 32 (the traits may reorganize).
    301  typename GlobalTileTraits::Threads,
    302  // The number of scalars per STS (STS.32 or STS.128, etc).
    303  GemmConfig_::kScalarsPerStsB>
    305 
    308  // The pointer is float const.
    309  MultiplyAddScalar const,
    310  // The output tile size.
    311  typename GemmConfig_::OutputTile,
    312  // The number of warps.
    313  typename GemmConfig_::Warps,
    314  // The number of threads per warp.
    315  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    316  // The shape of the FMA instruction.
    317  typename GemmConfig_::InstructionShape,
    318  // The number of stages.
    319  GemmConfig_::kStages,
    320  // The number of scalars per LDS.
    321  GemmConfig_::kScalarsPerLdsB,
    322  // The skew.
    323  0>
    325 };
    326 
    328 
    329 template <
    331  typename GemmConfig_,
    333  typename GlobalLoadStreamA_,
    335  typename GlobalLoadStreamB_,
    337  typename SharedLoadStreamA_,
    339  typename SharedLoadStreamB_,
    341  typename Epilogue_,
    343  typename BlockSwizzle_ = IdentityBlockSwizzle,
    345  typename Index_ = int,
    348 
    349 struct GemmTraits {
    351  typedef GemmTraits<GemmConfig_,
    352  GlobalLoadStreamA_,
    353  GlobalLoadStreamB_,
    354  SharedLoadStreamA_,
    355  SharedLoadStreamB_,
    356  Epilogue_,
    357  BlockSwizzle_,
    358  Index_,
    359  ClearAccumulators_> This_;
    360 
    363 
    365  typedef GemmConfig_ GemmConfig;
    368 
    370  typedef GlobalLoadStreamA_ GlobalLoadStreamA;
    372  static MatrixLayout::Kind const kLayoutA = GlobalLoadStreamA::kLayout;
    374  typedef typename GlobalLoadStreamA_::Scalar ScalarA;
    375 
    377  typedef GlobalLoadStreamB_ GlobalLoadStreamB;
    379  static MatrixLayout::Kind const kLayoutB = GlobalLoadStreamB::kLayout;
    381  typedef typename GlobalLoadStreamB_::Scalar ScalarB;
    382 
    384  typedef SharedLoadStreamA_ SharedLoadStreamA;
    386  typedef SharedLoadStreamB_ SharedLoadStreamB;
    387 
    391  typedef Epilogue_ Epilogue;
    393  typedef typename Epilogue::ScalarC ScalarC;
    394  typedef typename Epilogue::ScalarD ScalarD;
    395 
    397  typedef BlockSwizzle_ BlockSwizzle;
    399  typedef Index_ Index;
    401  typedef ClearAccumulators_ ClearAccumulators;
    402 
    408 
    411 
    414 
    417 
    420 
    423 
    426 
    429 
    431  typename Epilogue::Params epilogue;
    432 
    434  template <typename GemmDesc_>
    435  CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const& desc) {
    436  // Set the problem size.
    437  problem_size = desc.problem_size;
    438 
    439  // there is no partitionK in the default case
    441  // Compute grid dimensions
    442  BlockSwizzle block_swizzle;
    443  this->block = dim3(GemmConfig::kThreads);
    444  this->grid = block_swizzle.get_grid_layout(
    445  problem_size,
    446  make_Coord_from_shape<OutputTile>());
    447 
    448  // Compute offset to residue.
    449  // partitionK_range <= problem_size[0]
    450  Index gemm_k = problem_size[0];
    451  Index offset_to_residue_last_partition = (gemm_k % OutputTile::kD) ? gemm_k - (gemm_k % OutputTile::kD) : 0;
    452  Index offset_to_residue = (partitionK_range % OutputTile::kD) ? partitionK_range - (partitionK_range % OutputTile::kD) : 0;
    453 
    454  // Initialize parameters objects for
    455  int error_code = global_to_shared_stream.stream_a.initialize(
    456  desc.A.data(),
    457  desc.batch_stride_A,
    458  desc.A.leading_dim(),
    459  offset_to_residue,
    460  offset_to_residue_last_partition
    461  );
    462  if (error_code) {
    463  return error_code;
    464  }
    465 
    466  error_code = global_to_shared_stream.stream_b.initialize(
    467  desc.B.data(),
    468  desc.batch_stride_B,
    469  desc.B.leading_dim(),
    470  offset_to_residue,
    471  offset_to_residue_last_partition
    472  );
    473 
    474  if (error_code) {
    475  return error_code;
    476  }
    477 
    478  // The epilogue.
    479  return epilogue.initialize(desc);
    480  }
    481 
    484  Index n,
    485  Index k,
    486  typename Epilogue::Scalar alpha,
    487  ScalarA const* d_a,
    488  Index lda,
    489  ScalarB const* d_b,
    490  Index ldb,
    491  typename Epilogue::Scalar beta,
    492  ScalarC const* d_c,
    493  Index ldc,
    494  ScalarD* d_d,
    495  Index ldd) {
    497  GemmCoord(k, n, m, 1),
    498  alpha,
    499  TensorRef<ScalarA const, 2>(d_a, lda),
    500  TensorRef<ScalarB const, 2>(d_b, ldb),
    501  beta,
    502  TensorRef<ScalarC const, 2>(d_c, ldc),
    503  TensorRef<ScalarD, 2>(d_d, ldd)
    504  );
    505 
    506  return this->initialize(desc);
    507  }
    508 
    511  Index n,
    512  Index k,
    513  typename Epilogue::Scalar alpha,
    514  ScalarA const* d_a,
    515  Index lda,
    516  long long int batch_stride_A,
    517  ScalarB const* d_b,
    518  Index ldb,
    519  long long int batch_stride_B,
    520  typename Epilogue::Scalar beta,
    521  ScalarC const* d_c,
    522  Index ldc,
    523  long long int batch_stride_C,
    524  ScalarD* d_d,
    525  Index ldd,
    526  long long int batch_stride_D,
    527  Index batch_count) {
    529  GemmCoord(k, n, m, batch_count),
    530  alpha,
    531  TensorRef<ScalarA const, 2>(d_a, lda),
    532  batch_stride_A,
    533  TensorRef<ScalarB const, 2>(d_b, ldb),
    534  batch_stride_B,
    535  beta,
    536  TensorRef<ScalarC const, 2>(d_c, ldc),
    537  batch_stride_C,
    538  TensorRef<ScalarD, 2>(d_d, ldd),
    539  batch_stride_D
    540  );
    541 
    542  return this->initialize(desc);
    543  }
    544 
    546  template <typename GemmDesc_>
    547  CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const& partitonK_desc, Index partitionK_count_) {
    548  // partitionK GEMM is a specialized batched stried gemm with different K ranges per batch
    549  // the problem_size of each batch is (lastK_size, n, m)
    550  // add more comments here
    551  // the k range for every batch excpet the last one
    552  //assert(partitionK_count_ > 0);
    553  partitionK_range = partitonK_desc.problem_size.k() / partitionK_count_;
    554  // the k range of the last batch
    555  // int lastK_range = (partitonK_desc.problem_size.k() % partitionK_range) + partitionK_range;
    556  int lastK_range = partitonK_desc.problem_size.k() - partitionK_range * (partitionK_count_ - 1);
    557  int k_size = lastK_range;
    558  int lda = partitonK_desc.A.stride(0);
    559  int ldb = partitonK_desc.B.stride(0);
    560  int ldc = partitonK_desc.C.stride(0);
    561  int ldd = partitonK_desc.D.stride(0);
    562  int n = partitonK_desc.problem_size.n();
    563 
    564 
    565  long long int batch_stride_A = (kLayoutA == cutlass::MatrixLayout::kColumnMajor) ? lda * partitionK_range : partitionK_range;
    566  long long int batch_stride_B = (kLayoutB == cutlass::MatrixLayout::kColumnMajor) ? partitionK_range : partitionK_range * ldb;
    567  long long int batch_stride_C = ldc * n;
    568  long long int batch_stride_D = ldd * n;
    569 
    571  //we pass lastK_size as per batch K. there is also a range that will match partitionK_size
    572  GemmCoord(k_size, partitonK_desc.problem_size.n(), partitonK_desc.problem_size.m(), partitionK_count_),
    573  partitonK_desc.alpha,
    574  partitonK_desc.A,
    575  batch_stride_A,
    576  partitonK_desc.B,
    577  batch_stride_B,
    578  partitonK_desc.beta,
    579  partitonK_desc.C,
    580  batch_stride_C,
    581  partitonK_desc.D,
    582  batch_stride_D
    583  );
    584 
    585  // Set the problem size.
    586  problem_size = desc.problem_size;
    587 
    588  // Compute grid dimensions
    589  BlockSwizzle block_swizzle;
    590  this->block = dim3(GemmConfig::kThreads);
    591  this->grid = block_swizzle.get_grid_layout(
    592  problem_size,
    593  make_Coord_from_shape<OutputTile>());
    594 
    595  // Compute offset to residue.
    596  // partitionK_range <= problem_size[0]
    597  Index gemm_k = problem_size[0];
    598  Index offset_to_residue_last_partition = (gemm_k % OutputTile::kD) ? gemm_k - (gemm_k % OutputTile::kD) : 0;
    599  Index offset_to_residue = (partitionK_range % OutputTile::kD) ? partitionK_range - (partitionK_range % OutputTile::kD) : 0;
    600 
    601  // Initialize parameters objects for
    602  int error_code = global_to_shared_stream.stream_a.initialize(
    603  desc.A.data(),
    604  desc.batch_stride_A,
    605  desc.A.leading_dim(),
    606  offset_to_residue,
    607  offset_to_residue_last_partition
    608  );
    609  if (error_code) {
    610  return error_code;
    611  }
    612 
    613  error_code = global_to_shared_stream.stream_b.initialize(
    614  desc.B.data(),
    615  desc.batch_stride_B,
    616  desc.B.leading_dim(),
    617  offset_to_residue,
    618  offset_to_residue_last_partition
    619  );
    620 
    621  if (error_code) {
    622  return error_code;
    623  }
    624 
    625  // The epilogue.
    626  return epilogue.initialize(desc);
    627  }
    628 
    629 
    632  Index n,
    633  Index k,
    634  typename Epilogue::Scalar alpha,
    635  ScalarA const* d_a,
    636  Index lda,
    637  ScalarB const* d_b,
    638  Index ldb,
    639  typename Epilogue::Scalar beta,
    640  ScalarC const* d_c,
    641  Index ldc,
    642  ScalarD* d_d,
    643  Index ldd,
    644  Index partitionK_count_) {
    645 
    647  GemmCoord(k, n, m, 1),
    648  alpha,
    649  TensorRef<ScalarA const, 2>(d_a, lda),
    650  TensorRef<ScalarB const, 2>(d_b, ldb),
    651  beta,
    652  TensorRef<ScalarC const, 2>(d_c, ldc),
    653  TensorRef<ScalarD, 2>(d_d, ldd)
    654  );
    655 
    656 
    657  return this->initialize(desc, partitionK_count_);
    658  }
    659  };
    660 
    661  // The storage for the main loop + prologue.
    665 
    668 
    671  };
    672 
    675  // The storage for the main loop.
    677  // The storage for the epilogue.
    678  typename Epilogue::SharedStorage epilogue;
    679  };
    680 
    682  static CUTLASS_DEVICE void shared_load_fence(bool in_loop) {
    683  if (SharedLoadStreamA::Iterator::kRequiresLoadFence ||
    684  SharedLoadStreamB::Iterator::kRequiresLoadFence) {
    685  __syncthreads();
    686  }
    687  }
    688 
    690  static CUTLASS_DEVICE void shared_store_fence(bool in_loop) {
    691  __syncthreads();
    692  }
    693 };
    694 
    696 
    697 template <typename GemmTileTraitsHelperA_, typename GemmTileTraitsHelperB_, typename Index_>
    705  typedef TileStoreIterator<typename GemmTileTraitsHelperA_::SharedStoreTileTraits,
    706  typename GemmTileTraitsHelperA_::SharedStoreTileTraits::Scalar,
    716 
    723  typedef TileStoreIterator<typename GemmTileTraitsHelperB_::SharedStoreTileTraits,
    724  typename GemmTileTraitsHelperB_::SharedStoreTileTraits::Scalar,
    734 
    736  typedef TileLoadIterator<typename GemmTileTraitsHelperA_::SharedLoadTileTraits,
    737  typename GemmTileTraitsHelperA_::Scalar,
    744  typedef TileLoadIterator<typename GemmTileTraitsHelperB_::SharedLoadTileTraits,
    745  typename GemmTileTraitsHelperB_::Scalar,
    751 };
    752 
    754 
    755 template <
    757  MatrixLayout::Kind kLayoutA_,
    759  MatrixLayout::Kind kLayoutB_,
    761  typename GemmConfig_,
    763  typename Epilogue_,
    765  typename Index_ = int,
    766  // The configuration for the A matrix.
    767  typename GemmTileTraitsHelperA_ = GemmTileTraitsHelperA<kLayoutA_, GemmConfig_>,
    768  // The configuration for the B matrix.
    769  typename GemmTileTraitsHelperB_ = GemmTileTraitsHelperB<kLayoutB_, GemmConfig_>,
    770  // The helper class to create the streams and iterators.
    771  typename Helper_ =
    774  // The config.
    775  GemmConfig_,
    776  // The stream to load A from global memory to shared memory.
    777  typename Helper_::GlobalLoadStreamA,
    778  // The stream to load B from global memory to shared memory.
    779  typename Helper_::GlobalLoadStreamB,
    780  // The stream to load A from shared memory.
    781  typename Helper_::SharedLoadStreamA,
    782  // The stream to load B from shared memory.
    783  typename Helper_::SharedLoadStreamB,
    784  // The epilogue.
    785  Epilogue_,
    786  // The block swizzle to reorganize the grid.
    787  IdentityBlockSwizzle,
    788  // The index.
    789  Index_,
    790  // The tool used to clear accumulators.
    791  ClearAccumulators<typename GemmConfig_::Accumulators::Element> > {
    792 };
    793 
    795 
    796 } // namespace gemm
    797 } // namespace cutlass
    Epilogue::SharedStorage epilogue
    Definition: gemm_traits.h:678
    GEMM problem description.
    Definition: gemm_desc.h:50
    GlobalLoadStreamA_ GlobalLoadStreamA
    The stream to load A from global memory to shared memory.
    Definition: gemm_traits.h:370
    GlobalStoreIteratorD::Scalar ScalarD
    The scalar for D.
    Definition: gemm_epilogue.h:85
    -
    GlobalLoadStream< GemmOperand::kA, GlobalLoadIteratorA, SharedStoreIteratorA, GlobalTransformerA > GlobalLoadStreamA
    The stream to load A from global memory to shared memory.
    Definition: gemm_traits.h:592
    +
    GlobalLoadStream< GemmOperand::kA, GlobalLoadIteratorA, SharedStoreIteratorA, GlobalTransformerA > GlobalLoadStreamA
    The stream to load A from global memory to shared memory.
    Definition: gemm_traits.h:715
    Definition: load_store.h:41
    SharedLoadStreamA_ SharedLoadStreamA
    The iterator for A to load from shared memory.
    Definition: gemm_traits.h:384
    Definition: convert.h:33
    @@ -88,57 +88,63 @@ $(function() {
    GlobalLoadStreamB_ GlobalLoadStreamB
    The stream to load B from global memory to shared memory.
    Definition: gemm_traits.h:377
    static int const kThreads
    The numnber of threads.
    Definition: gemm_config.h:103
    -
    TileStoreIterator< typename GemmTileTraitsHelperA_::SharedStoreTileTraits, typename GemmTileTraitsHelperA_::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedStoreIteratorA
    The iterator to store A to shared memory.
    Definition: gemm_traits.h:586
    +
    TileStoreIterator< typename GemmTileTraitsHelperA_::SharedStoreTileTraits, typename GemmTileTraitsHelperA_::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedStoreIteratorA
    The iterator to store A to shared memory.
    Definition: gemm_traits.h:709
    Defines the Tile Traits concept and iterators for loading and storing to tiles efficiently.
    Epilogue::ScalarD ScalarD
    Definition: gemm_traits.h:394
    -
    CUTLASS_HOST_DEVICE int initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, ScalarB const *d_b, Index ldb, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, ScalarD *d_d, Index ldd)
    Helper to construct a GEMM params using a BLAS-like API.
    Definition: gemm_traits.h:474
    -
    The storage in shared memory.
    Definition: gemm_traits.h:551
    -
    SharedLoadStream< SharedLoadIteratorB > SharedLoadStreamB
    The stream to load B from shared memory.
    Definition: gemm_traits.h:627
    +
    CUTLASS_HOST_DEVICE int initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, ScalarB const *d_b, Index ldb, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, ScalarD *d_d, Index ldd)
    Helper to construct a GEMM params using a BLAS-like API.
    Definition: gemm_traits.h:483
    +
    The storage in shared memory.
    Definition: gemm_traits.h:674
    +
    SharedLoadStream< SharedLoadIteratorB > SharedLoadStreamB
    The stream to load B from shared memory.
    Definition: gemm_traits.h:750
    Definition: gemm_global_tile.h:70
    +
    TensorRefA A
    The source matrix A.
    Definition: gemm_desc.h:96
    +
    Defies functors for mapping blockIdx to partitions of the GEMM computation.
    +
    GemmCoord problem_size
    The dimensions of the GEMM.
    Definition: gemm_desc.h:90
    Defines a structure containing shared storage for each pair.
    Definition: gemm_stream_pair.h:91
    -
    GlobalLoadStream< GemmOperand::kB, GlobalLoadIteratorB, SharedStoreIteratorB, GlobalTransformerB > GlobalLoadStreamB
    The stream to load B from global memory to shared memory.
    Definition: gemm_traits.h:610
    +
    GlobalLoadStream< GemmOperand::kB, GlobalLoadIteratorB, SharedStoreIteratorB, GlobalTransformerB > GlobalLoadStreamB
    The stream to load B from global memory to shared memory.
    Definition: gemm_traits.h:733
    GemmConfig_::ScalarB Scalar
    The input scalar.
    Definition: gemm_traits.h:201
    GemmSharedStoreTileAbTraits< MultiplyAddScalar, Shape< GemmConfig_::kStages, GemmConfig_::OutputTile::kD/GemmConfig_::InstructionShape::kD, GemmConfig_::OutputTile::kH *GemmConfig_::InstructionShape::kD >, typename GlobalTileTraits::Threads, GemmConfig_::kScalarsPerStsB > SharedStoreTileTraits
    The traits class to build the iterator to store data to shared memory for B^T.
    Definition: gemm_traits.h:304
    Definition: gemm_coord.h:43
    GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ > This_
    This traits.
    Definition: gemm_traits.h:359
    SharedLoadStreamB_ SharedLoadStreamB
    The iterator for B to load from shared memory.
    Definition: gemm_traits.h:386
    +
    int partitionK_range
    The K range for every partition except the last one.
    Definition: gemm_traits.h:422
    Defines structures and helpers to launch CUDA kernels within CUTLASS.
    +
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    GlobalLoadStreamPair< GlobalLoadStreamA, GlobalLoadStreamB, GemmConfig::kResidueInProlog > GlobalLoadStream
    Assemble the global load streams for A/B.
    Definition: gemm_traits.h:407
    GemmGlobalTileTraits< GemmOperand::kB, MatrixLayout::kColumnMajor, Scalar const, Shape< 1, GemmConfig_::OutputTile::kH, GemmConfig_::OutputTile::kD >, Shape< 1, GemmConfig_::kThreads/GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD >, GemmConfig_::kScalarsPerLdgB > GlobalTileTraits
    The traits class to build the iterator to load data from global memory for B^N.
    Definition: gemm_traits.h:219
    Definition: convert.h:69
    -
    ThreadblockTileStorage threadblock_tile
    Stores the threadblock tile.
    Definition: gemm_traits.h:541
    -
    SharedLoadStream< SharedLoadIteratorA > SharedLoadStreamA
    The stream to load A from shared memory.
    Definition: gemm_traits.h:619
    +
    ThreadblockTileStorage threadblock_tile
    Stores the threadblock tile.
    Definition: gemm_traits.h:664
    +
    SharedLoadStream< SharedLoadIteratorA > SharedLoadStreamA
    The stream to load A from shared memory.
    Definition: gemm_traits.h:742
    Definition: gemm_shared_tile.h:38
    +
    TensorRefB B
    The source matrix B.
    Definition: gemm_desc.h:102
    GemmSharedLoadTileATraits< MultiplyAddScalar const, typename GemmConfig_::OutputTile, typename GemmConfig_::Warps, typename GemmConfig_::MultiplyAdd::ThreadsPerWarp, typename GemmConfig_::InstructionShape, GemmConfig_::kStages, GemmConfig_::kScalarsPerLdsA, 0 > SharedLoadTileTraits
    The traits class to build the iterator to load from shared memory for A^N.
    Definition: gemm_traits.h:114
    Epilogue_ Epilogue
    The epilogue.
    Definition: gemm_traits.h:391
    GlobalLoadStreamA_::Scalar ScalarA
    The scalar for A.
    Definition: gemm_traits.h:374
    Definition: tile_iterator.h:65
    GemmGlobalTileTraits< GemmOperand::kA, MatrixLayout::kColumnMajor, Scalar const, Shape< 1, GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kW >, Shape< 1, ShapeCount< typename GemmConfig_::Warps >::kCount, GemmConfig_::kWarpSize >, GemmConfig_::kScalarsPerLdgA > GlobalTileTraits
    The traits class to build the iterator to load data from global memory for A^N.
    Definition: gemm_traits.h:80
    -
    GlobalLoadStream::Params global_to_shared_stream
    Parameters object for the global load stream.
    Definition: gemm_traits.h:422
    +
    GlobalLoadStream::Params global_to_shared_stream
    Parameters object for the global load stream.
    Definition: gemm_traits.h:425
    GemmConfig_::ScalarA Scalar
    The input scalar.
    Definition: gemm_traits.h:62
    Definition: gemm_shared_tile.h:200
    Definition: gemm_global_tile.h:163
    Epilogue::ScalarC ScalarC
    The scalars in the epilogue.
    Definition: gemm_traits.h:393
    GemmConfig::MultiplyAdd MultiplyAdd
    The multiply-add functor.
    Definition: gemm_traits.h:389
    -
    static CUTLASS_DEVICE void shared_load_fence(bool in_loop)
    The memory fence for shared loads.
    Definition: gemm_traits.h:559
    +
    static CUTLASS_DEVICE void shared_load_fence(bool in_loop)
    The memory fence for shared loads.
    Definition: gemm_traits.h:682
    GemmConfig_ GemmConfig
    The configuration.
    Definition: gemm_traits.h:365
    Definition: gemm_global_stream.h:52
    Definition: gemm_traits.h:191
    Definition: clear_accumulators.h:38
    Parameters object constructable on the host.
    Definition: gemm_traits.h:416
    -
    Collect the global load streams for multiplicands.
    Definition: gemm_stream_pair.h:173
    -
    Copy< typename GlobalLoadIteratorB::Fragment > GlobalTransformerB
    The data converter for B before storing to shared memory.
    Definition: gemm_traits.h:598
    +
    Collect the global load streams for multiplicands.
    Definition: gemm_stream_pair.h:180
    +
    Copy< typename GlobalLoadIteratorB::Fragment > GlobalTransformerB
    The data converter for B before storing to shared memory.
    Definition: gemm_traits.h:721
    GemmConfig_::ScalarB Scalar
    The input scalar.
    Definition: gemm_traits.h:272
    StreamB::Params stream_b
    Parameters object for StreamB.
    Definition: gemm_stream_pair.h:67
    +
    long long batch_stride_A
    batch stride for A operand
    Definition: gemm_desc.h:99
    Definition: gemm.h:92
    -
    Defines data layouts of various matrix formats usable by TensorRef and other classes.
    Definition: matrix_traits.h:156
    -
    GemmGlobalIteratorAb< typename GemmTileTraitsHelperB_::GlobalTileTraits, Index_ > GlobalLoadIteratorB
    The global iterator to load B from global memory.
    Definition: gemm_traits.h:596
    +
    GemmGlobalIteratorAb< typename GemmTileTraitsHelperB_::GlobalTileTraits, Index_ > GlobalLoadIteratorB
    The global iterator to load B from global memory.
    Definition: gemm_traits.h:719
    static bool const kResidueInProlog
    If true, residue is computed in the prologue.
    Definition: gemm_config.h:136
    -
    An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
    Definition: tile_iterator.h:399
    - +
    An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
    Definition: tile_iterator.h:402
    + +
    CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const &partitonK_desc, Index partitionK_count_)
    Helper to construct a partitionedK GEMM params.
    Definition: gemm_traits.h:547
    Collect the global load streams for multiplicands.
    Definition: gemm_stream_pair.h:50
    MultiplyAdd_ MultiplyAdd
    The functor to do D = A*B + C.
    Definition: gemm_config.h:90
    -
    Definition: matrix_traits.h:159
    Defines a fragment based on a Shape<> template.
    Structure containing the basic launch configuration of a CUDA kernel.
    Definition: kernel_launch.h:38
    ClearAccumulators_ ClearAccumulators
    Clear the accumulators.
    Definition: gemm_traits.h:401
    @@ -149,17 +155,18 @@ $(function() {
    Defines constant expressions for mapping GEMM problem size and strides onto pitch-linear memory...
    GemmCoord problem_size
    GEMM problem size.
    Definition: gemm_traits.h:419
    Implements a software-pipelined efficient GEMM.
    -
    CUTLASS_HOST_DEVICE int initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, long long int batch_stride_A, ScalarB const *d_b, Index ldb, long long int batch_stride_B, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, long long int batch_stride_C, ScalarD *d_d, Index ldd, long long int batch_stride_D, Index batch_count)
    Helper to construct a batched GEMM params.
    Definition: gemm_traits.h:501
    +
    CUTLASS_HOST_DEVICE int initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, long long int batch_stride_A, ScalarB const *d_b, Index ldb, long long int batch_stride_B, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, long long int batch_stride_C, ScalarD *d_d, Index ldd, long long int batch_stride_D, Index batch_count)
    Helper to construct a batched GEMM params.
    Definition: gemm_traits.h:510
    Defines abstractions for efficiently clearing accumulator tiles.
    Definition: tensor_ref.h:131
    SharedStreamPair< SharedLoadStreamA, SharedLoadStreamB > SharedStream
    Assemble the shared load streams for A/B.
    Definition: gemm_traits.h:413
    -
    static CUTLASS_DEVICE void shared_store_fence(bool in_loop)
    The memory fence for shared stores.
    Definition: gemm_traits.h:567
    +
    static CUTLASS_DEVICE void shared_store_fence(bool in_loop)
    The memory fence for shared stores.
    Definition: gemm_traits.h:690
    GemmConfig_::ScalarA Scalar
    The input scalar.
    Definition: gemm_traits.h:125
    -
    Manages a pair of tile allocations as if they are one allocation.
    Definition: tile_allocation.h:100
    +
    CUTLASS_HOST_DEVICE int initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, ScalarB const *d_b, Index ldb, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, ScalarD *d_d, Index ldd, Index partitionK_count_)
    Helper to construct a partitionedK GEMM params.
    Definition: gemm_traits.h:631
    +
    Manages a pair of tile allocations as if they are one allocation.
    Definition: tile_allocation.h:125
    Definition: gemm_traits.h:52
    -
    CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const &desc)
    Initialize the parameters.
    Definition: gemm_traits.h:432
    +
    CUTLASS_HOST_DEVICE int initialize(GemmDesc_ const &desc)
    Initialize the parameters.
    Definition: gemm_traits.h:435
    Definition: matrix_traits.h:357
    -
    Definition: threadblock_swizzle.h:65
    +
    Definition: gemm/threadblock_swizzle.h:65
    GemmSharedStoreTileAbTraits< MultiplyAddScalar, Shape< GemmConfig_::kStages, GemmConfig_::OutputTile::kD/GemmConfig_::InstructionShape::kD, GemmConfig_::OutputTile::kW *GemmConfig_::InstructionShape::kD >, typename GlobalTileTraits::Threads, GemmConfig_::kScalarsPerStsA > SharedStoreTileTraits
    The traits class to build the iterator to store data to shared memory for A^N.
    Definition: gemm_traits.h:94
    GemmConfig_::MultiplyAdd::ScalarB MultiplyAddScalar
    The scalar stored in shared memory.
    Definition: gemm_traits.h:274
    GemmConfig_::MultiplyAdd::ScalarB MultiplyAddScalar
    The scalar stored in shared memory.
    Definition: gemm_traits.h:203
    @@ -168,52 +175,52 @@ $(function() {
    Defines properties of GEMM computation that impose some constraints on caller.
    Definition: gemm_traits.h:349
    A Shape implementing Layout Concept describing the dimensions of a cube.
    Definition: shape.h:64
    +
    Definition: matrix_traits.h:159
    cutlass::gemm::Gemm< This_ > KernelClass
    The struct that consumes this Traits.
    Definition: gemm_traits.h:362
    -
    SharedStream::Params shared_stream
    Parameters object for the shared load stream.
    Definition: gemm_traits.h:425
    +
    Definition: matrix_traits.h:159
    +
    SharedStream::Params shared_stream
    Parameters object for the shared load stream.
    Definition: gemm_traits.h:428
    ReshapeThreads< VectorizedTile, Threads_ >::Threads Threads
    The threads shape.
    Definition: gemm_global_tile.h:88
    +
    long long batch_stride_B
    batch stride for B operand
    Definition: gemm_desc.h:105
    BlockSwizzle_ BlockSwizzle
    The block swizzle to reorganize the grid.
    Definition: gemm_traits.h:397
    -
    TileLoadIterator< typename GemmTileTraitsHelperA_::SharedLoadTileTraits, typename GemmTileTraitsHelperA_::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorA
    The iterator to load A from shared memory.
    Definition: gemm_traits.h:617
    -
    Definition: matrix_traits.h:159
    -
    TileLoadIterator< typename GemmTileTraitsHelperB_::SharedLoadTileTraits, typename GemmTileTraitsHelperB_::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorB
    The iterator to load B from shared memory.
    Definition: gemm_traits.h:625
    +
    TileLoadIterator< typename GemmTileTraitsHelperA_::SharedLoadTileTraits, typename GemmTileTraitsHelperA_::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorA
    The iterator to load A from shared memory.
    Definition: gemm_traits.h:740
    +
    TileLoadIterator< typename GemmTileTraitsHelperB_::SharedLoadTileTraits, typename GemmTileTraitsHelperB_::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedLoadIteratorB
    The iterator to load B from shared memory.
    Definition: gemm_traits.h:748
    GlobalLoadStream::ThreadblockTileStorage ThreadblockTileStorage
    Memory needed to store the threadblock-scoped GEMM tile.
    Definition: gemm_traits.h:410
    dim3 block
    CUDA threablock dimensions.
    Definition: kernel_launch.h:44
    GlobalLoadIteratorC::Scalar ScalarC
    The scalar for C.
    Definition: gemm_epilogue.h:83
    Index_ Index
    The index.
    Definition: gemm_traits.h:399
    GemmConfig_::MultiplyAdd::ScalarA MultiplyAddScalar
    The scalar stored in shared memory.
    Definition: gemm_traits.h:64
    -
    TileStoreIterator< typename GemmTileTraitsHelperB_::SharedStoreTileTraits, typename GemmTileTraitsHelperB_::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedStoreIteratorB
    The iterator to store B to shared memory.
    Definition: gemm_traits.h:604
    -
    Epilogue::Params epilogue
    The params for the epilogue.
    Definition: gemm_traits.h:428
    -
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    +
    TileStoreIterator< typename GemmTileTraitsHelperB_::SharedStoreTileTraits, typename GemmTileTraitsHelperB_::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > SharedStoreIteratorB
    The iterator to store B to shared memory.
    Definition: gemm_traits.h:727
    +
    Epilogue::Params epilogue
    The params for the epilogue.
    Definition: gemm_traits.h:431
    Defines a pair of GEMM tile streams.
    The shared storage.
    Definition: clear_accumulators.h:40
    Implements efficient loading of the thread block-level tile from global memory and storing to shared ...
    -
    MainLoopSharedStorage main_loop
    Definition: gemm_traits.h:553
    +
    MainLoopSharedStorage main_loop
    Definition: gemm_traits.h:676
    static MatrixLayout::Kind const kLayoutA
    The layout of A.
    Definition: gemm_traits.h:372
    dim3 grid
    CUDA grid dimensions.
    Definition: kernel_launch.h:41
    Definition: matrix_traits.h:357
    -
    GlobalLoadStream::SharedStorage global_to_shared_stream
    Storage for GEMM global stream.
    Definition: gemm_traits.h:544
    -
    Parameters object passed to load iterators.
    Definition: gemm_stream_pair.h:185
    -
    Defies functors for mapping blockIdx to partitions of the GEMM computation.
    -
    Definition: gemm_traits.h:575
    +
    GlobalLoadStream::SharedStorage global_to_shared_stream
    Storage for GEMM global stream.
    Definition: gemm_traits.h:667
    +
    Parameters object passed to load iterators.
    Definition: gemm_stream_pair.h:192
    +
    Definition: gemm_traits.h:698
    Implements a software-pipelined efficient GEMM.
    -
    GemmGlobalIteratorAb< typename GemmTileTraitsHelperA_::GlobalTileTraits, Index_ > GlobalLoadIteratorA
    The global iterator to load A from global memory.
    Definition: gemm_traits.h:578
    +
    GemmGlobalIteratorAb< typename GemmTileTraitsHelperA_::GlobalTileTraits, Index_ > GlobalLoadIteratorA
    The global iterator to load A from global memory.
    Definition: gemm_traits.h:701
    GemmConfig::OutputTile OutputTile
    The output tile.
    Definition: gemm_traits.h:367
    Defines properties of matrices used to denote layout and operands to GEMM kernels.
    -
    Copy< typename GlobalLoadIteratorA::Fragment > GlobalTransformerA
    The data converter for A before storing to shared memory.
    Definition: gemm_traits.h:580
    +
    Copy< typename GlobalLoadIteratorA::Fragment > GlobalTransformerA
    The data converter for A before storing to shared memory.
    Definition: gemm_traits.h:703
    GemmSharedLoadTileBTraits< MultiplyAddScalar const, typename GemmConfig_::OutputTile, typename GemmConfig_::Warps, typename GemmConfig_::MultiplyAdd::ThreadsPerWarp, typename GemmConfig_::InstructionShape, GemmConfig_::kStages, GemmConfig_::kScalarsPerLdsB, 0 > SharedLoadTileTraits
    The traits class to build the iterator to load from shared memory for B^T.
    Definition: gemm_traits.h:324
    -
    ClearAccumulators::SharedStorage clear
    Storage for clearing accumulators.
    Definition: gemm_traits.h:547
    +
    ClearAccumulators::SharedStorage clear
    Storage for clearing accumulators.
    Definition: gemm_traits.h:670
    StreamA::Params stream_a
    Parameters object for StreamA.
    Definition: gemm_stream_pair.h:64
    GemmGlobalTileTraits< GemmOperand::kB, MatrixLayout::kRowMajor, Scalar const, Shape< 1, GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kH >, Shape< 1, ShapeCount< typename GemmConfig_::Warps >::kCount, GemmConfig_::kWarpSize >, GemmConfig_::kScalarsPerLdgB > GlobalTileTraits
    The traits class to build the iterator to load data from global memory for B^T.
    Definition: gemm_traits.h:290
    Defines abstractions for managing loading and storing fragments to shared memory in the efficient GEM...
    Defines conversion operations among Fragments of different base type.
    -
    Definition: gemm_traits.h:650
    +
    Definition: gemm_traits.h:773
    OutputTile_ OutputTile
    The tile.
    Definition: gemm_config.h:88
    static MatrixLayout::Kind const kLayoutB
    The layout of B.
    Definition: gemm_traits.h:379
    -
    An iterator implementing Tile Store Iterator Concept for storing a tile to memory.
    Definition: tile_iterator.h:836
    +
    An iterator implementing Tile Store Iterator Concept for storing a tile to memory.
    Definition: tile_iterator.h:841
    GemmConfig_::MultiplyAdd::ScalarA MultiplyAddScalar
    The scalar stored in shared memory.
    Definition: gemm_traits.h:127
    diff --git a/docs/globals.html b/docs/globals.html index 9cc3adf2..e61c4daa 100644 --- a/docs/globals.html +++ b/docs/globals.html @@ -103,7 +103,7 @@ $(function() { : cutlass.h
  • CUTLASS_GEMM_LOOP -: cutlass.h +: performance_tuning.h
  • CUTLASS_HOST_DEVICE : cutlass.h @@ -117,11 +117,14 @@ $(function() {
  • CUTLASS_PATCH : cutlass.h
  • +
  • CUTLASS_PERFORMANCE_TUNING_H +: performance_tuning.h +
  • CUTLASS_PRAGMA_NO_UNROLL -: cutlass.h +: performance_tuning.h
  • CUTLASS_PRAGMA_UNROLL -: cutlass.h +: performance_tuning.h
  • CUTLASS_VERSION : cutlass.h @@ -142,7 +145,7 @@ $(function() {
  • diff --git a/docs/globals_defs.html b/docs/globals_defs.html index 38302140..828feeb8 100644 --- a/docs/globals_defs.html +++ b/docs/globals_defs.html @@ -103,7 +103,7 @@ $(function() { : cutlass.h
  • CUTLASS_GEMM_LOOP -: cutlass.h +: performance_tuning.h
  • CUTLASS_HOST_DEVICE : cutlass.h @@ -117,11 +117,14 @@ $(function() {
  • CUTLASS_PATCH : cutlass.h
  • +
  • CUTLASS_PERFORMANCE_TUNING_H +: performance_tuning.h +
  • CUTLASS_PRAGMA_NO_UNROLL -: cutlass.h +: performance_tuning.h
  • CUTLASS_PRAGMA_UNROLL -: cutlass.h +: performance_tuning.h
  • CUTLASS_VERSION : cutlass.h @@ -139,7 +142,7 @@ $(function() { diff --git a/docs/globals_func.html b/docs/globals_func.html index 5a282439..c8dfed21 100644 --- a/docs/globals_func.html +++ b/docs/globals_func.html @@ -76,7 +76,7 @@ $(function() { diff --git a/docs/group__IdentityBlockSwizzle.html b/docs/group__IdentityBlockSwizzle.html index e201fdcc..81d66c14 100644 --- a/docs/group__IdentityBlockSwizzle.html +++ b/docs/group__IdentityBlockSwizzle.html @@ -76,7 +76,7 @@ $(function() { diff --git a/docs/group__fragment__concept.html b/docs/group__fragment__concept.html index 11f0b210..d0436d8d 100644 --- a/docs/group__fragment__concept.html +++ b/docs/group__fragment__concept.html @@ -97,7 +97,7 @@ Classes diff --git a/docs/group__fragment__iterator__concept.html b/docs/group__fragment__iterator__concept.html index e08d36e4..2433000f 100644 --- a/docs/group__fragment__iterator__concept.html +++ b/docs/group__fragment__iterator__concept.html @@ -91,7 +91,7 @@ Classes diff --git a/docs/group__layout__concept.html b/docs/group__layout__concept.html index 66a82881..a4943d05 100644 --- a/docs/group__layout__concept.html +++ b/docs/group__layout__concept.html @@ -100,7 +100,7 @@ Classes diff --git a/docs/group__predicate__iterator__concept.html b/docs/group__predicate__iterator__concept.html index 9c3b7108..b1306e68 100644 --- a/docs/group__predicate__iterator__concept.html +++ b/docs/group__predicate__iterator__concept.html @@ -98,7 +98,7 @@ Classes diff --git a/docs/group__predicate__tile__adapter.html b/docs/group__predicate__tile__adapter.html index 8ab28fed..07d28ca4 100644 --- a/docs/group__predicate__tile__adapter.html +++ b/docs/group__predicate__tile__adapter.html @@ -80,7 +80,7 @@ $(function() { diff --git a/docs/group__predicate__vector__concept.html b/docs/group__predicate__vector__concept.html index cf4fd5b2..d7947510 100644 --- a/docs/group__predicate__vector__concept.html +++ b/docs/group__predicate__vector__concept.html @@ -92,7 +92,7 @@ Classes diff --git a/docs/group__tile__load__iterator__concept.html b/docs/group__tile__load__iterator__concept.html index edc49281..8b9a6d4e 100644 --- a/docs/group__tile__load__iterator__concept.html +++ b/docs/group__tile__load__iterator__concept.html @@ -96,7 +96,7 @@ Classes diff --git a/docs/group__tile__store__iterator__concept.html b/docs/group__tile__store__iterator__concept.html index 992a7ca3..e5ada861 100644 --- a/docs/group__tile__store__iterator__concept.html +++ b/docs/group__tile__store__iterator__concept.html @@ -96,7 +96,7 @@ Classes diff --git a/docs/group__tile__traits__concept.html b/docs/group__tile__traits__concept.html index 6c051696..5edcdccb 100644 --- a/docs/group__tile__traits__concept.html +++ b/docs/group__tile__traits__concept.html @@ -93,7 +93,7 @@ Classes diff --git a/docs/hgemm__global__tile_8h.html b/docs/hgemm__global__tile_8h.html index 0b2e247f..6f745eea 100644 --- a/docs/hgemm__global__tile_8h.html +++ b/docs/hgemm__global__tile_8h.html @@ -107,7 +107,7 @@ Namespaces diff --git a/docs/hgemm__global__tile_8h_source.html b/docs/hgemm__global__tile_8h_source.html index 8d7e02f6..cdca5c9e 100644 --- a/docs/hgemm__global__tile_8h_source.html +++ b/docs/hgemm__global__tile_8h_source.html @@ -76,13 +76,14 @@ $(function() {
    hgemm_global_tile.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    30 #pragma once
    31 
    32 #include "cutlass/coord.h"
    34 #include "cutlass/matrix_traits.h"
    35 #include "cutlass/reshape_tile.h"
    36 
    37 namespace cutlass {
    38 namespace gemm {
    39 
    41 
    42 template <GemmOperand::Kind kOperand_,
    43  MatrixLayout::Kind kLayout_,
    44  typename Scalar_,
    45  typename Tile_,
    46  typename Threads_,
    47  int kAccessSize_>
    49  // Which GEMM operand?
    50  kOperand_,
    51  // The layout.
    52  kLayout_,
    53  // The scalar.
    54  Scalar_,
    55  // The tile.
    56  Tile_,
    57  // The threads.
    58  Threads_,
    59  // The number of scalars per LDG/STG.
    60  kAccessSize_> {
    64  typedef typename Base::Threads Threads;
    70  typedef Shape<Base::VectorizedTile::kH / Base::Threads::kH / 2,
    71  2,
    72  Base::VectorizedTile::kW / Base::Threads::kW,
    73  Base::VectorizedTile::kC / Base::kAccessSize>
    76  struct ThreadOffset {
    78  Coord<4> operator()() const {
    79  int thread_offset_h = threadIdx.x / Threads::kW * ThreadsDelta::kH;
    80  int thread_offset_w = threadIdx.x % Threads::kW * ThreadsDelta::kW;
    81 
    82  return make_Coord(0, thread_offset_h, thread_offset_w, 0);
    83  }
    84  };
    85 };
    86 
    88 
    89 } // namespace gemm
    90 } // namespace cutlass
    Shape< Base::VectorizedTile::kH/Base::Threads::kH/2, 2, Base::VectorizedTile::kW/Base::Threads::kW, Base::VectorizedTile::kC/Base::kAccessSize > Iterations
    The number of iterations needed to load/store the tile.
    Definition: hgemm_global_tile.h:74
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    30 #pragma once
    31 
    32 #include "cutlass/coord.h"
    34 #include "cutlass/matrix_traits.h"
    35 #include "cutlass/reshape_tile.h"
    36 
    37 namespace cutlass {
    38 namespace gemm {
    39 
    41 
    42 template <GemmOperand::Kind kOperand_,
    43  MatrixLayout::Kind kLayout_,
    44  typename Scalar_,
    45  typename Tile_,
    46  typename Threads_,
    47  int kAccessSize_>
    49  // Which GEMM operand?
    50  kOperand_,
    51  // The layout.
    52  kLayout_,
    53  // The scalar.
    54  Scalar_,
    55  // The tile.
    56  Tile_,
    57  // The threads.
    58  Threads_,
    59  // The number of scalars per LDG/STG.
    60  kAccessSize_> {
    64  typedef typename Base::Threads Threads;
    70  typedef Shape<Base::VectorizedTile::kH / Base::Threads::kH / 2,
    71  2,
    72  Base::VectorizedTile::kW / Base::Threads::kW,
    73  Base::VectorizedTile::kC / Base::kAccessSize>
    76  struct ThreadOffset {
    78  Coord<4> operator()() const {
    79  int thread_offset_h = threadIdx.x / Threads::kW * ThreadsDelta::kH;
    80  int thread_offset_w = threadIdx.x % Threads::kW * ThreadsDelta::kW;
    81 
    82  return make_Coord(0, thread_offset_h, thread_offset_w, 0);
    83  }
    84  };
    85 };
    86 
    88 
    89 } // namespace gemm
    90 } // namespace cutlass
    Shape< Base::VectorizedTile::kH/Base::Threads::kH/2, 2, Base::VectorizedTile::kW/Base::Threads::kW, Base::VectorizedTile::kC/Base::kAccessSize > Iterations
    The number of iterations needed to load/store the tile.
    Definition: hgemm_global_tile.h:74
    Definition: convert.h:33
    Defines iterators for efficiently loading and storing to global memory.
    Definition: gemm_global_tile.h:70
    A Coord is a coordinate of arbitrary rank into a tensor or matrix.
    -
    CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
    Helper to make a 2-element coordinate.
    Definition: coord.h:318
    +
    CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
    Helper to make a 2-element coordinate.
    Definition: coord.h:368
    Shape< 1, 2, Base::VectorizedTile::kC > ThreadsDelta
    The threads strides.
    Definition: hgemm_global_tile.h:66
    +
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    Base::Threads Threads
    The threads.
    Definition: hgemm_global_tile.h:64
    static int const kH
    The height of the cube.
    Definition: shape.h:68
    CUTLASS_HOST_DEVICE Coord< 4 > operator()() const
    Definition: hgemm_global_tile.h:78
    @@ -95,7 +96,6 @@ $(function() {
    ReshapeThreads< VectorizedTile, Threads_ >::Threads Threads
    The threads shape.
    Definition: gemm_global_tile.h:88
    static int const kW
    The width of the cube.
    Definition: shape.h:70
    -
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    static int const kAccessSize
    The number of scalars per LDG/STG.
    Definition: gemm_global_tile.h:80
    Computes the thread offset in (H, W) based on thread ID.
    Definition: hgemm_global_tile.h:76
    Kind
    Definition: matrix_traits.h:357
    @@ -103,7 +103,7 @@ $(function() {
    diff --git a/docs/hgemm__multiply__add_8h.html b/docs/hgemm__multiply__add_8h.html index 41ba8db9..7a2e17dd 100644 --- a/docs/hgemm__multiply__add_8h.html +++ b/docs/hgemm__multiply__add_8h.html @@ -103,7 +103,7 @@ Namespaces
    diff --git a/docs/hgemm__multiply__add_8h_source.html b/docs/hgemm__multiply__add_8h_source.html index 40e849bf..0f7e2711 100644 --- a/docs/hgemm__multiply__add_8h_source.html +++ b/docs/hgemm__multiply__add_8h_source.html @@ -100,7 +100,7 @@ $(function() { diff --git a/docs/hgemm__swizzle_8h.html b/docs/hgemm__swizzle_8h.html index 93938799..653444e4 100644 --- a/docs/hgemm__swizzle_8h.html +++ b/docs/hgemm__swizzle_8h.html @@ -102,7 +102,7 @@ Namespaces diff --git a/docs/hgemm__swizzle_8h_source.html b/docs/hgemm__swizzle_8h_source.html index d882c10f..3491ddfc 100644 --- a/docs/hgemm__swizzle_8h_source.html +++ b/docs/hgemm__swizzle_8h_source.html @@ -92,7 +92,7 @@ $(function() { diff --git a/docs/hgemm__traits_8h.html b/docs/hgemm__traits_8h.html index bb8e72d9..91417523 100644 --- a/docs/hgemm__traits_8h.html +++ b/docs/hgemm__traits_8h.html @@ -135,7 +135,7 @@ Namespaces diff --git a/docs/hgemm__traits_8h_source.html b/docs/hgemm__traits_8h_source.html index db1554c8..152d9200 100644 --- a/docs/hgemm__traits_8h_source.html +++ b/docs/hgemm__traits_8h_source.html @@ -76,7 +76,7 @@ $(function() {
    hgemm_traits.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/convert.h"
    31 #include "cutlass/reshape_tile.h"
    32 
    33 #include "cutlass/gemm/gemm.h"
    42 
    43 namespace cutlass {
    44 namespace gemm {
    45 
    47 
    48 template <
    50  typename OutputTile_,
    52  typename ThreadGemmShape_,
    54  int kScalarsPerLdgA_ = 2,
    56  int kScalarsPerLdgB_ = 2>
    57 struct HgemmConfig : public GemmConfig<
    59  half,
    61  half,
    63  half,
    65  half,
    67  OutputTile_,
    69  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, half, half, half>,
    71  kScalarsPerLdgA_,
    73  kScalarsPerLdgA_,
    75  8,
    77  kScalarsPerLdgB_,
    79  kScalarsPerLdgB_,
    81  8,
    83  2,
    85  8,
    87  2,
    89  2,
    91  false,
    93  true,
    95  false
    96  > {};
    97 
    99 
    100 template <enum MatrixLayout::Kind kLayout_, typename Iterator_>
    102 
    103 template <typename Iterator_>
    104 struct HgemmTransformerA<MatrixLayout::kColumnMajor, Iterator_> {
    106 };
    107 
    108 template <typename Iterator_>
    109 struct HgemmTransformerA<MatrixLayout::kRowMajor, Iterator_> {
    111 };
    112 
    114 
    115 template <enum MatrixLayout::Kind kLayout_, typename Iterator_>
    117 
    118 template <typename Iterator_>
    119 struct HgemmTransformerB<MatrixLayout::kRowMajor, Iterator_> {
    121 };
    122 
    123 template <typename Iterator_>
    124 struct HgemmTransformerB<MatrixLayout::kColumnMajor, Iterator_> {
    126 };
    127 
    129 
    130 template <enum MatrixLayout::Kind kLayout_, typename GemmConfig_>
    131 struct HgemmTileTraitsHelperA : public GemmTileTraitsHelperA<kLayout_, GemmConfig_> {};
    132 
    134 
    135 template <typename GemmConfig_>
    136 struct HgemmTileTraitsHelperA<MatrixLayout::kRowMajor, GemmConfig_>
    137  : public GemmTileTraitsHelperA<MatrixLayout::kRowMajor, GemmConfig_> {
    140 
    144  // The layout.
    146  // The pointer.
    147  half const,
    148  // The tile has size MxK in GEMM's terminology.
    150  // The threads are distributed as (threads / K ) x K (the traits may reorganize).
    151  Shape<1, GemmConfig_::kThreads / GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD>,
    152  // The number of scalars per LDG (LDG.32 or LDG.128, etc)
    153  GemmConfig_::kScalarsPerLdgA>
    155 
    156  static int const kSkewA = 128 / sizeof(half) / GlobalTileTraits::Threads::kW / 2;
    157 
    160  // The pointer.
    161  half,
    162  // The tile has size KxM in GEMM's terminology.
    163  Shape<GemmConfig_::kStages,
    164  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    165  GemmConfig_::OutputTile::kW * GemmConfig_::InstructionShape::kD>,
    166  // The threads are distributed as warps x 32(the traits may reorganize).
    167  typename GlobalTileTraits::Threads,
    168  // The number of scalars per STS (STS.32 or STS.128, etc).
    169  2,
    170  // The skew to avoid bank conflicts added in the tile W dimension.
    171  kSkewA<GemmConfig_::kScalarsPerLdsA ? GemmConfig_::kScalarsPerLdsA : kSkewA>
    172  SharedStoreTileTraits;
    173 
    176  // The pointer.
    177  half const,
    178  // The output tile size.
    179  typename GemmConfig_::OutputTile,
    180  // The number of warps.
    181  typename GemmConfig_::Warps,
    182  // The number of threads per warp.
    183  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    184  // The shape of the FMA instruction.
    185  typename GemmConfig_::InstructionShape,
    186  // The number of stages.
    187  GemmConfig_::kStages,
    188  // The number of scalars per LDS.
    189  8,
    190  // The skew.
    191  SharedStoreTileTraits::kSkew>
    192  SharedLoadTileTraits;
    193 };
    194 
    196 
    197 template <enum MatrixLayout::Kind kLayout_, typename GemmConfig_>
    198 struct HgemmTileTraitsHelperB : public GemmTileTraitsHelperB<kLayout_, GemmConfig_> {};
    199 
    201 
    202 template <typename GemmConfig_>
    203 struct HgemmTileTraitsHelperB<MatrixLayout::kColumnMajor, GemmConfig_>
    204  : public GemmTileTraitsHelperB<MatrixLayout::kColumnMajor, GemmConfig_> {
    207 
    211  // The layout.
    213  // The pointer.
    214  half const,
    215  // The tile has size KxN in GEMM's terminology.
    217  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    218  Shape<1, GemmConfig_::kThreads / GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD>,
    219  // The number of scalars per LDG (LDG.32 or LDG.128, etc)
    220  GemmConfig_::kScalarsPerLdgB>
    222 
    223  static int const kSkewB = 128 / sizeof(half) / GlobalTileTraits::Threads::kW / 2;
    224 
    227  // The pointer.
    228  half,
    229  // The tile has size KxN in GEMM's terminology.
    230  Shape<GemmConfig_::kStages,
    231  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    232  GemmConfig_::OutputTile::kH * GemmConfig_::InstructionShape::kD>,
    233  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    234  typename GlobalTileTraits::Threads,
    235  // The number of scalars per STS (STS.32 or STS.128, etc).
    236  2,
    237  // The skew to avoid bank conflicts added in the tile W dimension.
    238  kSkewB<GemmConfig_::kScalarsPerLdsB ? GemmConfig_::kScalarsPerLdsB : kSkewB>
    239  SharedStoreTileTraits;
    240 
    243  // The pointer.
    244  half const,
    245  // The output tile size.
    246  typename GemmConfig_::OutputTile,
    247  // The number of warps.
    248  typename GemmConfig_::Warps,
    249  // The number of threads per warp.
    250  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    251  // The shape of the FMA instruction.
    252  typename GemmConfig_::InstructionShape,
    253  // The number of stages.
    254  GemmConfig_::kStages,
    255  // The number of scalars per LDS.
    256  8,
    257  // The skew.
    258  SharedStoreTileTraits::kSkew>
    259  SharedLoadTileTraits;
    260 };
    261 
    263 
    264 template <
    266  MatrixLayout::Kind kLayoutA_,
    268  MatrixLayout::Kind kLayoutB_,
    270  typename OutputTile_,
    272  typename EpilogueFunctor_,
    274  typename ThreadGemmShape_,
    276  int kScalarsPerLdgA_ = 2,
    278  int kScalarsPerLdgB_ = 2,
    280  typename Index_ = int>
    288 
    293  typedef typename HgemmTransformerA<GemmTileTraitsHelperA::kLayout,
    296  typedef TileStoreIterator<typename GemmTileTraitsHelperA::SharedStoreTileTraits,
    297  typename GemmTileTraitsHelperA::SharedStoreTileTraits::Scalar,
    307 
    311  // The default transformer for B.
    312  typedef typename HgemmTransformerB<GemmTileTraitsHelperB::kLayout,
    315  typedef TileStoreIterator<typename GemmTileTraitsHelperB::SharedStoreTileTraits,
    316  typename GemmTileTraitsHelperB::SharedStoreTileTraits::Scalar,
    326 
    328  typedef TileLoadIterator<typename GemmTileTraitsHelperA::SharedLoadTileTraits,
    329  typename GemmTileTraitsHelperA::SharedLoadTileTraits::Scalar,
    336  typedef TileLoadIterator<typename GemmTileTraitsHelperB::SharedLoadTileTraits,
    337  typename GemmTileTraitsHelperB::SharedLoadTileTraits::Scalar,
    343 
    348 
    353 };
    354 
    356 
    357 template <
    359  MatrixLayout::Kind kLayoutA_,
    361  MatrixLayout::Kind kLayoutB_,
    363  typename OutputTile_ = Shape<8, 128, 128>,
    365  typename EpilogueFunctor_ = LinearScaling<half>,
    367  typename ThreadGemmShape_ = Shape<8, 8, 16>,
    369  int kScalarsPerLdgA_ = 2,
    371  int kScalarsPerLdgB_ = 2,
    373  typename Index_ = int,
    375  typename Helper_ = HgemmTraitsHelper<kLayoutA_,
    376  kLayoutB_,
    377  OutputTile_,
    378  EpilogueFunctor_,
    379  ThreadGemmShape_,
    380  kScalarsPerLdgA_,
    381  kScalarsPerLdgB_,
    382  Index_> >
    383 struct HgemmTraits : public GemmTraits<
    384  // The config.
    385  typename Helper_::GemmConfig,
    386  // The stream to load A from global memory to shared memory.
    387  typename Helper_::GlobalLoadStreamA,
    388  // The stream to load B from global memory to shared memory.
    389  typename Helper_::GlobalLoadStreamB,
    390  // The stream to load A from shared memory.
    391  typename Helper_::SharedLoadStreamA,
    392  // The stream to load B from shared memory.
    393  typename Helper_::SharedLoadStreamB,
    394  // The epilogue.
    395  typename Helper_::Epilogue,
    396  // The block swizzle to reorganize the grid.
    397  IdentityBlockSwizzle,
    398  // The index.
    399  Index_,
    400  // The tool used to clear accumulators.
    401  typename Helper_::ClearAccumulators> {};
    402 
    404 
    405 } // namespace gemm
    406 } // namespace cutlass
    SharedLoadStream< SharedLoadIteratorB > SharedLoadStreamB
    The stream to load B from shared memory.
    Definition: hgemm_traits.h:342
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/convert.h"
    31 #include "cutlass/reshape_tile.h"
    32 
    33 #include "cutlass/gemm/gemm.h"
    42 
    43 namespace cutlass {
    44 namespace gemm {
    45 
    47 
    48 template <
    50  typename OutputTile_,
    52  typename ThreadGemmShape_,
    54  int kScalarsPerLdgA_ = 2,
    56  int kScalarsPerLdgB_ = 2>
    57 struct HgemmConfig : public GemmConfig<
    59  half,
    61  half,
    63  half,
    65  half,
    67  OutputTile_,
    69  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, half, half, half>,
    71  kScalarsPerLdgA_,
    73  kScalarsPerLdgA_,
    75  8,
    77  kScalarsPerLdgB_,
    79  kScalarsPerLdgB_,
    81  8,
    83  2,
    85  8,
    87  2,
    89  2,
    91  false,
    93  true,
    95  false
    96  > {};
    97 
    99 
    100 template <enum MatrixLayout::Kind kLayout_, typename Iterator_>
    102 
    103 template <typename Iterator_>
    104 struct HgemmTransformerA<MatrixLayout::kColumnMajor, Iterator_> {
    106 };
    107 
    108 template <typename Iterator_>
    109 struct HgemmTransformerA<MatrixLayout::kRowMajor, Iterator_> {
    111 };
    112 
    114 
    115 template <enum MatrixLayout::Kind kLayout_, typename Iterator_>
    117 
    118 template <typename Iterator_>
    119 struct HgemmTransformerB<MatrixLayout::kRowMajor, Iterator_> {
    121 };
    122 
    123 template <typename Iterator_>
    124 struct HgemmTransformerB<MatrixLayout::kColumnMajor, Iterator_> {
    126 };
    127 
    129 
    130 template <enum MatrixLayout::Kind kLayout_, typename GemmConfig_>
    131 struct HgemmTileTraitsHelperA : public GemmTileTraitsHelperA<kLayout_, GemmConfig_> {};
    132 
    134 
    135 template <typename GemmConfig_>
    136 struct HgemmTileTraitsHelperA<MatrixLayout::kRowMajor, GemmConfig_>
    137  : public GemmTileTraitsHelperA<MatrixLayout::kRowMajor, GemmConfig_> {
    140 
    144  // The layout.
    146  // The pointer.
    147  half const,
    148  // The tile has size MxK in GEMM's terminology.
    150  // The threads are distributed as (threads / K ) x K (the traits may reorganize).
    151  Shape<1, GemmConfig_::kThreads / GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD>,
    152  // The number of scalars per LDG (LDG.32 or LDG.128, etc)
    153  GemmConfig_::kScalarsPerLdgA>
    155 
    156  static int const kSkewA = 128 / sizeof(half) / GlobalTileTraits::Threads::kW / 2;
    157 
    160  // The pointer.
    161  half,
    162  // The tile has size KxM in GEMM's terminology.
    163  Shape<GemmConfig_::kStages,
    164  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    165  GemmConfig_::OutputTile::kW * GemmConfig_::InstructionShape::kD>,
    166  // The threads are distributed as warps x 32(the traits may reorganize).
    167  typename GlobalTileTraits::Threads,
    168  // The number of scalars per STS (STS.32 or STS.128, etc).
    169  2,
    170  // The skew to avoid bank conflicts added in the tile W dimension.
    171  kSkewA<GemmConfig_::kScalarsPerLdsA ? GemmConfig_::kScalarsPerLdsA : kSkewA>
    172  SharedStoreTileTraits;
    173 
    176  // The pointer.
    177  half const,
    178  // The output tile size.
    179  typename GemmConfig_::OutputTile,
    180  // The number of warps.
    181  typename GemmConfig_::Warps,
    182  // The number of threads per warp.
    183  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    184  // The shape of the FMA instruction.
    185  typename GemmConfig_::InstructionShape,
    186  // The number of stages.
    187  GemmConfig_::kStages,
    188  // The number of scalars per LDS.
    189  8,
    190  // The skew.
    191  SharedStoreTileTraits::kSkew>
    192  SharedLoadTileTraits;
    193 };
    194 
    196 
    197 template <enum MatrixLayout::Kind kLayout_, typename GemmConfig_>
    198 struct HgemmTileTraitsHelperB : public GemmTileTraitsHelperB<kLayout_, GemmConfig_> {};
    199 
    201 
    202 template <typename GemmConfig_>
    203 struct HgemmTileTraitsHelperB<MatrixLayout::kColumnMajor, GemmConfig_>
    204  : public GemmTileTraitsHelperB<MatrixLayout::kColumnMajor, GemmConfig_> {
    207 
    211  // The layout.
    213  // The pointer.
    214  half const,
    215  // The tile has size KxN in GEMM's terminology.
    217  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    218  Shape<1, GemmConfig_::kThreads / GemmConfig_::OutputTile::kD, GemmConfig_::OutputTile::kD>,
    219  // The number of scalars per LDG (LDG.32 or LDG.128, etc)
    220  GemmConfig_::kScalarsPerLdgB>
    222 
    223  static int const kSkewB = 128 / sizeof(half) / GlobalTileTraits::Threads::kW / 2;
    224 
    227  // The pointer.
    228  half,
    229  // The tile has size KxN in GEMM's terminology.
    230  Shape<GemmConfig_::kStages,
    231  GemmConfig_::OutputTile::kD / GemmConfig_::InstructionShape::kD,
    232  GemmConfig_::OutputTile::kH * GemmConfig_::InstructionShape::kD>,
    233  // The threads are distributed as (threads / K) x K (the traits may reorganize).
    234  typename GlobalTileTraits::Threads,
    235  // The number of scalars per STS (STS.32 or STS.128, etc).
    236  2,
    237  // The skew to avoid bank conflicts added in the tile W dimension.
    238  kSkewB<GemmConfig_::kScalarsPerLdsB ? GemmConfig_::kScalarsPerLdsB : kSkewB>
    239  SharedStoreTileTraits;
    240 
    243  // The pointer.
    244  half const,
    245  // The output tile size.
    246  typename GemmConfig_::OutputTile,
    247  // The number of warps.
    248  typename GemmConfig_::Warps,
    249  // The number of threads per warp.
    250  typename GemmConfig_::MultiplyAdd::ThreadsPerWarp,
    251  // The shape of the FMA instruction.
    252  typename GemmConfig_::InstructionShape,
    253  // The number of stages.
    254  GemmConfig_::kStages,
    255  // The number of scalars per LDS.
    256  8,
    257  // The skew.
    258  SharedStoreTileTraits::kSkew>
    259  SharedLoadTileTraits;
    260 };
    261 
    263 
    264 template <
    266  MatrixLayout::Kind kLayoutA_,
    268  MatrixLayout::Kind kLayoutB_,
    270  typename OutputTile_,
    272  typename EpilogueFunctor_,
    274  typename ThreadGemmShape_,
    276  int kScalarsPerLdgA_ = 2,
    278  int kScalarsPerLdgB_ = 2,
    280  typename Index_ = int>
    288 
    293  typedef typename HgemmTransformerA<GemmTileTraitsHelperA::kLayout,
    296  typedef TileStoreIterator<typename GemmTileTraitsHelperA::SharedStoreTileTraits,
    297  typename GemmTileTraitsHelperA::SharedStoreTileTraits::Scalar,
    307 
    311  // The default transformer for B.
    312  typedef typename HgemmTransformerB<GemmTileTraitsHelperB::kLayout,
    315  typedef TileStoreIterator<typename GemmTileTraitsHelperB::SharedStoreTileTraits,
    316  typename GemmTileTraitsHelperB::SharedStoreTileTraits::Scalar,
    326 
    328  typedef TileLoadIterator<typename GemmTileTraitsHelperA::SharedLoadTileTraits,
    329  typename GemmTileTraitsHelperA::SharedLoadTileTraits::Scalar,
    336  typedef TileLoadIterator<typename GemmTileTraitsHelperB::SharedLoadTileTraits,
    337  typename GemmTileTraitsHelperB::SharedLoadTileTraits::Scalar,
    343 
    348 
    353 };
    354 
    356 
    357 template <
    359  MatrixLayout::Kind kLayoutA_,
    361  MatrixLayout::Kind kLayoutB_,
    363  typename OutputTile_ = Shape<8, 128, 128>,
    365  typename EpilogueFunctor_ = LinearScaling<half>,
    367  typename ThreadGemmShape_ = Shape<8, 8, 16>,
    369  int kScalarsPerLdgA_ = 2,
    371  int kScalarsPerLdgB_ = 2,
    373  typename Index_ = int,
    375  typename Helper_ = HgemmTraitsHelper<kLayoutA_,
    376  kLayoutB_,
    377  OutputTile_,
    378  EpilogueFunctor_,
    379  ThreadGemmShape_,
    380  kScalarsPerLdgA_,
    381  kScalarsPerLdgB_,
    382  Index_> >
    383 struct HgemmTraits : public GemmTraits<
    384  // The config.
    385  typename Helper_::GemmConfig,
    386  // The stream to load A from global memory to shared memory.
    387  typename Helper_::GlobalLoadStreamA,
    388  // The stream to load B from global memory to shared memory.
    389  typename Helper_::GlobalLoadStreamB,
    390  // The stream to load A from shared memory.
    391  typename Helper_::SharedLoadStreamA,
    392  // The stream to load B from shared memory.
    393  typename Helper_::SharedLoadStreamB,
    394  // The epilogue.
    395  typename Helper_::Epilogue,
    396  // The block swizzle to reorganize the grid.
    397  IdentityBlockSwizzle,
    398  // The index.
    399  Index_,
    400  // The tool used to clear accumulators.
    401  typename Helper_::ClearAccumulators> {};
    402 
    404 
    405 } // namespace gemm
    406 } // namespace cutlass
    SharedLoadStream< SharedLoadIteratorB > SharedLoadStreamB
    The stream to load B from shared memory.
    Definition: hgemm_traits.h:342
    GemmGlobalIteratorAb< typename GemmTileTraitsHelperB::GlobalTileTraits, Index_ > GlobalLoadIteratorB
    The iterator to load B from global memory.
    Definition: hgemm_traits.h:310
    Definition: load_store.h:41
    HgemmSwizzle< Iterator_ > Transformer
    Definition: hgemm_traits.h:125
    @@ -92,6 +92,7 @@ $(function() {
    Definition: hgemm_traits.h:101
    GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ > Base
    The base config.
    Definition: hgemm_traits.h:206
    GemmEpilogue< GemmEpilogueTraits > Epilogue
    The epilogue.
    Definition: hgemm_traits.h:352
    +
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    Convert< typename Iterator_::Fragment, typename Iterator_::Fragment > Transformer
    Definition: hgemm_traits.h:105
    GlobalLoadStream< GemmOperand::kA, GlobalLoadIteratorA, SharedStoreIteratorA, GlobalTransformerA > GlobalLoadStreamA
    The stream to load A from global memory to shared memory.
    Definition: hgemm_traits.h:306
    Definition: hgemm_traits.h:383
    @@ -106,12 +107,10 @@ $(function() {
    Definition: gemm_traits.h:191
    Definition: hgemm_traits.h:131
    HgemmTileTraitsHelperA< kLayoutA_, GemmConfig > GemmTileTraitsHelperA
    The GEMM config for A.
    Definition: hgemm_traits.h:285
    -
    Defines data layouts of various matrix formats usable by TensorRef and other classes.
    Definition: matrix_traits.h:156
    Definition: hgemm_traits.h:116
    GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ > Base
    The base config.
    Definition: hgemm_traits.h:139
    -
    An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
    Definition: tile_iterator.h:399
    +
    An iterator implementing Tile Load Iterator Concept for loading a tile from memory.
    Definition: tile_iterator.h:402
    Defines iterators for efficiently loading and storing tiles to and from shared memory.
    -
    Definition: matrix_traits.h:159
    Definition: gemm_shared_stream.h:45
    HgemmTransformerB< GemmTileTraitsHelperB::kLayout, GlobalLoadIteratorB >::Transformer GlobalTransformerB
    Definition: hgemm_traits.h:313
    @@ -129,11 +128,11 @@ $(function() {
    HgemmTileTraitsHelperB< kLayoutB_, GemmConfig > GemmTileTraitsHelperB
    The GEMM config for B.
    Definition: hgemm_traits.h:287
    Definition: hgemm_global_tile.h:48
    A Shape implementing Layout Concept describing the dimensions of a cube.
    Definition: shape.h:64
    -
    Definition: gemm_epilogue_traits.h:323
    +
    Definition: matrix_traits.h:159
    +
    Definition: gemm_epilogue_traits.h:340
    +
    Definition: matrix_traits.h:159
    ReshapeThreads< VectorizedTile, Threads_ >::Threads Threads
    The threads shape.
    Definition: gemm_global_tile.h:88
    Template performing matrix multiply-add operation within a thread.
    Definition: thread_multiply_add.h:44
    -
    Definition: matrix_traits.h:159
    -
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    GemmGlobalIteratorAb< typename GemmTileTraitsHelperA::GlobalTileTraits, Index_ > GlobalLoadIteratorA
    The iterator to load A from global memory.
    Definition: hgemm_traits.h:291
    Definition: hgemm_traits.h:281
    @@ -152,11 +151,11 @@ $(function() {
    Defines conversion operations among Fragments of different base type.
    Convert< typename Iterator_::Fragment, typename Iterator_::Fragment > Transformer
    Definition: hgemm_traits.h:120
    Definition: hgemm_traits.h:57
    -
    An iterator implementing Tile Store Iterator Concept for storing a tile to memory.
    Definition: tile_iterator.h:836
    +
    An iterator implementing Tile Store Iterator Concept for storing a tile to memory.
    Definition: tile_iterator.h:841
    diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 865698e5..8e83d89f 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -94,389 +94,398 @@ $(function() {
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Ccutlass::platform::alignment_of< ulong4 >
     Ccutlass::platform::alignment_of< ulonglong2 >
     Ccutlass::platform::alignment_of< ulonglong4 >
     Ccutlass::bin1_t
     Ccutlass::gemm::ClearAccumulators< Scalar_, kLanes_ >
     Ccutlass::MatrixLayout::ColumnMajorMapping function for column-major matrices
     Ccutlass::MatrixLayout::ColumnMajorBlockLinear< BlockRows, BlockColumns >
     Ccutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >
     Ccutlass::MatrixLayout::ColumnMajorInterleaved< Interleave >
     Ccutlass::platform::complex< T >
     Ccutlass::ComputeOffsetFromShape< Shape_ >Compute the offset for the given coordinates in a cube
     Ccutlass::ComputeOffsetFromStrides< Strides_ >Compute the offset for the given coordinates in a cube
     Ccutlass::ComputeThreadOffsetFromStrides< Threads_, Strides_ >Decompose threadId.x into coordinate of a cube whose dimensions are specified by Threads_. Afterwards compute the offset of those coordinates using Strides_
     Ccutlass::ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, 1 >, Shape< 1, S_h_, S_w_, 1 > >Specialization for D=1 and C=1
     Ccutlass::ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, T_c_ >, Shape< 1, S_h_, S_w_, S_c_ > >Specialization for D=1
     Ccutlass::platform::conditional< B, T, F >Std::conditional (true specialization)
     Ccutlass::platform::conditional< false, T, F >Std::conditional (false specialization)
     Ccutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::ConstIteratorA const iterator implementing Predicate Iterator Concept enabling sequential read-only access to prediactes
     Ccutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorConstant iterator over tensors implied by TensorRefBatchStrided
     Ccutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorTensorRefIterator over TensorRef objects in TensorRefArray
     Ccutlass::ConstPredicateTileAdapter< PredicateVector_, Iterations_ >Adapter to enable random access to predicates via logical coordinate within a tile
     Ccutlass::MatrixLayout::ContiguousLayout
     Ccutlass::Convert< InputFragment_, OutputFragment_ >
     Ccutlass::Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > >
     Ccutlass::Coord< Rank_, Index_ >Statically-sized array specifying Coords within a tensor
     Ccutlass::Coord< 2, int >
     Ccutlass::Coord< 3 >
     Ccutlass::Coord< 4 >
     Ccutlass::Coord< 4, Index_ >
     Ccutlass::Coord< 4, int >
     Ccutlass::Coord< kStorageRank - 1 >
     Ccutlass::Copy< Fragment_ >
     CDebugType< T >
     CDebugValue< Value >
     Ccutlass::platform::default_delete< T >Default deleter
     Ccutlass::platform::default_delete< T[]>Partial specialization for deleting array types
     Ccutlass::divide_assert< Dividend, Divisor >
     Ccutlass::platform::is_base_of_helper< BaseT, DerivedT >::dummy< B, D >
     Ccutlass::DumpType< T >
     Ccutlass::platform::enable_if< C, T >Std::enable_if (true specialization)
     Ccutlass::platform::enable_if< false, T >Std::enable_if (false specialization)
     Ccutlass::Extent< T >Returns the extent of a scalar or vector
     Ccutlass::Extent< Vector< T, Lanes > >Returns the number of lanes of a vector if need be
     Ccutlass::Extent< Vector< T, Lanes > const >Returns the number of lanes of a vector if need be
     Ccutlass::FragmentConstIterator< Fragment_, Iterations_, AccessType_ >
     Ccutlass::FragmentElementTypeSpecifies whether iterator storage fragment consists of Scalar values or WMMA matrix
     Ccutlass::FragmentIterator< Fragment_, Iterations_, AccessType_ >A template defining Fragment Iterator Concept
     Ccutlass::gemm::FragmentMultiplyAdd< ScalarAlphaBeta_, ScalarAccum_, fragMul2 >
     Ccutlass::gemm::FragmentMultiplyAdd< half, half, true >
     Ccutlass::gemm::Gemm< GemmTraits_ >
     Ccutlass::gemm::GemmConfig< ScalarA_, ScalarB_, ScalarC_, ScalarD_, OutputTile_, MultiplyAdd_, kScalarsPerLdgA_, kScalarsPerStsA_, kScalarsPerLdsA_, kScalarsPerLdgB_, kScalarsPerStsB_, kScalarsPerLdsB_, kScalarsPerLdgCAndStgD_, kScalarsPerStsD_, kScalarsPerLdsD_, kStages_, kResidueSeparate_, kResidueInProlog_, kLaunchBounds_ >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >GEMM problem description
     Ccutlass::gemm::GemmEpilogue< GemmEpilogueTraits_ >
     Ccutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >
     Ccutlass::gemm::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_ >
     Ccutlass::gemm::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_ >
     Ccutlass::gemm::GemmEpilogueTraitsHelper< GemmConfig_, EpilogueFunctor_, Index_ >
     Ccutlass::gemm::GemmEpilogueTraitsHelper< IgemmConfig_, EpilogueFunctor_, Index_ >
     Ccutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >
     Ccutlass::gemm::GemmGlobalTileTraits< GemmOperand::kC, MatrixLayout::kColumnMajor, Scalar_, Tile_, Threads_, kAccessSize_ >
     Ccutlass::gemm::GemmMultiplicandTraits< ThreadBlockTile_, Usage, Layout >
     Ccutlass::GemmOperandGemm operand - D = A * B + C
     Ccutlass::gemm::GemmOperandTraitsAb< kOperand_, kLayout_ >Helper to describe attributes of GEMM matrix operands
     Ccutlass::gemm::GemmSharedLoadTileATraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >
     Ccutlass::gemm::GemmSharedLoadTileBTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >
     Ccutlass::gemm::GemmSharedLoadTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ >
     Ccutlass::gemm::GemmSharedStoreTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_ >
     Ccutlass::gemm::GemmSharedStoreTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ >
     Ccutlass::gemm::GemmSharedStoreWithSkewTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_, kSkew_ >
     Ccutlass::gemm::GemmTileTraitsHelperA< Kind, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperA< kLayout_, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperB< Kind, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperB< kLayout_, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >
     Ccutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >
     Ccutlass::gemm::GemmTraits< GemmConfig_, Helper_::GlobalLoadStreamA, Helper_::GlobalLoadStreamB, Helper_::SharedLoadStreamA, Helper_::SharedLoadStreamB, Epilogue_, IdentityBlockSwizzle, Index_, ClearAccumulators< GemmConfig_::Accumulators::Element > >
     Ccutlass::gemm::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 > >
     Ccutlass::gemm::GemmTraits< Helper_::GemmConfig, Helper_::GlobalLoadStreamA, Helper_::GlobalLoadStreamB, Helper_::SharedLoadStreamA, Helper_::SharedLoadStreamB, Helper_::Epilogue, IdentityBlockSwizzle, Index_, Helper_::ClearAccumulators >
     Ccutlass::gemm::GetExtent< kOperand_, Tile_ >
     Ccutlass::gemm::GetExtent< GemmOperand::kA, Tile_ >
     Ccutlass::gemm::GetExtent< GemmOperand::kB, Tile_ >
     Ccutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >
     Ccutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >Collect the global load streams for multiplicands
     Ccutlass::platform::greater< T >Std::greater
     Ccutlass::gemm::HgemmSwizzle< GlobalIterator_ >
     Ccutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >
     Ccutlass::gemm::HgemmTransformerA< kLayout_, Iterator_ >
     Ccutlass::gemm::HgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >
     Ccutlass::gemm::HgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >
     Ccutlass::gemm::HgemmTransformerB< kLayout_, Iterator_ >
     Ccutlass::gemm::HgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >
     Ccutlass::gemm::HgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >
     Ccutlass::IdentityDescribes identity elements
     Ccutlass::gemm::IdentityBlockSwizzle
     Ccutlass::IdentityTensorMapFunc< Rank >
     Ccutlass::IdentityTensorMapFunc< Rank_ >
     Ccutlass::gemm::IgemmEpilogueScalar< ScalarD_ >
     Ccutlass::gemm::IgemmEpilogueScalar< int >
     Ccutlass::gemm::IgemmFloatToInt8Converter< kElements_ >
     Ccutlass::gemm::IgemmGlobalLoadTransformer< InputFragment_, OutputScalar_ >
     Ccutlass::gemm::IgemmGlobalLoadTransformer< Fragment< int8_t, kElements_ >, float >
     Ccutlass::gemm::IgemmGlobalStoreTransformer< InputScalar_, OutputFragment_ >
     Ccutlass::gemm::IgemmGlobalStoreTransformer< float, Fragment< int8_t, kElements_ > >
     Ccutlass::gemm::IgemmInt8ToFloatConverter< kElements_ >
     Ccutlass::gemm::IgemmSharedStoreTransformer< InputScalar_, OutputFragment_ >
     Ccutlass::gemm::IgemmSwizzle< GlobalIterator_ >
     Ccutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >
     Ccutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >
     Ccutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >
     Ccutlass::gemm::IgemmTransformerA< kLayout_, Iterator_ >
     Ccutlass::gemm::IgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >
     Ccutlass::gemm::IgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >
     Ccutlass::gemm::IgemmTransformerB< kLayout_, Iterator_ >
     Ccutlass::gemm::IgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >
     Ccutlass::gemm::IgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >
     Ccutlass::int4_t
     Ccutlass::platform::integral_constant< value_t, V >Std::integral_constant
     Ccutlass::platform::integral_constant< bool, V >
     Ccutlass::platform::integral_constant< bool,(is_arithmetic< T >::value||is_void< T >::value||is_same< nullptr_t, remove_cv< T >::type >::value)>
     Ccutlass::platform::integral_constant< bool,(is_base_of_helper< remove_cv< BaseT >::type, remove_cv< DerivedT >::type >::value)||(is_same< remove_cv< BaseT >::type, remove_cv< DerivedT >::type >::value)>
     Ccutlass::platform::integral_constant< bool,(is_fundamental< T >::value||is_pointer< T >::value)>
     Ccutlass::platform::integral_constant< bool,(is_integral< T >::value||is_floating_point< T >::value)>
     Ccutlass::platform::integral_constant< bool,(is_same< float, remove_cv< T >::type >::value||is_same< double, remove_cv< T >::type >::value)>
     Ccutlass::platform::integral_constant< bool,(N &(N - 1))==0 >
     Ccutlass::platform::is_base_of_helper< BaseT, DerivedT >Helper for std::is_base_of
     Ccutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::IteratorAn iterator implementing Predicate Iterator Concept enabling sequential read and write access to predicates
     Ccutlass::IteratorAdvanceSpecifies dimension in which post-increment accesses advance
     Ccutlass::KernelLaunchConfigurationStructure containing the basic launch configuration of a CUDA kernel
     Ccutlass::gemm::Launch< Gemm, WithLaunchBounds >Partial specialization for launching the GEMM kernel with or without launch bounds
     Ccutlass::gemm::Launch< Gemm, false >Partial specialization for launching the GEMM kernel with or without launch bounds
     Ccutlass::platform::less< T >Std::less
     Ccutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >Functor to compute linear combination of fragments
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, kFragmentElementType, FragmentElement_, kStride, size >
     Ccutlass::Load< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 >
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 >Partial specialization for 16b loads
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 >
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 >
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 >
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size >
     Ccutlass::Load< Vector< bin1_t, 32 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size >
     Ccutlass::Load< Vector< int4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size >
     Ccutlass::Load< Vector< uint4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size >
     Ccutlass::log2_down< N, CurrentVal, Count >
     Ccutlass::log2_down< N, 1, Count >
     Ccutlass::log2_up< N, CurrentVal, Count >
     Ccutlass::log2_up< N, 1, Count >
     Ccutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::MainLoopSharedStorage
     Ccutlass::MatrixLayoutDefines data layouts of various matrix formats usable by TensorRef and other classes
     Ccutlass::MatrixTransformTransformation applied to matrix operands
     Ccutlass::Max< A, B >
     Ccutlass::MemorySpaceEnum to specify which memory space data resides in
     Ccutlass::Min< A, B >
     Ccutlass::platform::nullptr_tStd::nullptr_t
     Ccutlass::platform::alignment_of< value_t >::pad
     Ccutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ >::ParamsThe parameters
     Ccutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::ParamsThe params
     Ccutlass::gemm::SharedStreamPair< StreamA_, StreamB_ >::ParamsParameters object passed to load iterators
     Ccutlass::ZipTileIterator< First_, Second_ >::ParamsParams object
     Ccutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::ParamsThe parameters
     Ccutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::ParamsParameters object
     Ccutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::ParamsThe params
     Ccutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::ParamsThe params
     Ccutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::ParamsParameters to the iterator
     Ccutlass::TileLoadStream< Iterator_, Transformer_ >::ParamsParameters object used to construct generic load stream
     Ccutlass::TileStoreStream< Iterator_, Transformer_ >::ParamsParameters used to construct the stream
     Ccutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >::ParamsThe params
     Ccutlass::platform::plus< T >Platform::plus
     Ccutlass::PredicateTileAdapter< PredicateVector_, Iterations_ >Adapter to enable random access to predicates via logical coordinate within a tile
     Ccutlass::TileLoadStream< Iterator_, Transformer_ >::PredicateVectorEmpty predicate vector struct
     Ccutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >Statically sized array of bits implementing
     Ccutlass::TileStoreStream< Iterator_, Transformer_ >::PredicateVectorEmpty predicate vector struct
     Ccutlass::PredicateVector< Base::Iterations::kW >
     Ccutlass::PredicateVector< ShapeCount< typename Base::Iterations >::kCount >
     Ccutlass::gemm::ProjectOperand< operand, Kstrided >
     Ccutlass::gemm::ProjectOperand< GemmOperand::kA, Kstrided >Project A operand - (0, K, M)
     Ccutlass::gemm::ProjectOperand< GemmOperand::kB, Kstrided >Project B operand - (0, K, N)
     Ccutlass::gemm::ProjectOperand< GemmOperand::kC, true >Project C operand - (0, N, M)
     Ccutlass::gemm::ProjectOperand< GemmOperand::kD, true >Project D operand - (0, N, M)
     Ccutlass::RegularTilePredicateFunctor< Delta_ >Functor computing a predicate given the logical position of an access
     Ccutlass::platform::remove_const< T >Std::remove_const (non-const specialization)
     Ccutlass::platform::remove_const< const T >Std::remove_const (const specialization)
     Ccutlass::platform::remove_cv< T >Std::remove_cv
     Ccutlass::platform::remove_volatile< T >Std::remove_volatile (non-volatile specialization)
     Ccutlass::platform::remove_volatile< volatile T >Std::remove_volatile (volatile specialization)
     Ccutlass::gemm::ReshapeThreads< Tile_, Threads_, bool >
     Ccutlass::gemm::ReshapeThreads< Tile_, Threads_, true >
     Ccutlass::ReshapeTile< Tile_, kAccessSize_, bool >
     Ccutlass::ReshapeTile< Tile_, kAccessSize_, true >
     Ccutlass::MatrixLayout::RowMajorMapping function for row-major matrices
     Ccutlass::MatrixLayout::RowMajorBlockLinear< BlockRows, BlockColumns >
     Ccutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection >
     Ccutlass::MatrixLayout::RowMajorInterleaved< Interleave >
     Ccutlass::ScalarIO< T >Helper to enable formatted printing of CUTLASS scalar types to an ostream
     Ccutlass::detail::ScalarOrPointer< Scalar_ >
     Ccutlass::detail::ScalarOrPointer< Scalar >
     Ccutlass::Shape< kD_, kH_, kW_, kC_ >A Shape implementing Layout Concept describing the dimensions of a cube
     Ccutlass::ShapeAdd< A_, B_ >
     Ccutlass::ShapeCount< Shape >Compute derived counted of a Layout Concept based class
     Ccutlass::ShapeDiv< A_, B_ >
     Ccutlass::ShapeDivCeiling< A_, B_ >
     Ccutlass::ShapeMax< A_, B_ >
     Ccutlass::ShapeMin< A_, B_ >
     Ccutlass::ShapeMul< A_, B_ >
     Ccutlass::ShapeScale< A_, kScale_ >
     Ccutlass::ShapeStrides< Shape_, elementsPerAccess >
     Ccutlass::ShapeSub< A_, B_ >
     Ccutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >
     Ccutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::SharedStorageThe shared memory to swizzle the data in the epilogue
     Ccutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::SharedStorageDefines a structure containing shared storage for each pair
     Ccutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::SharedStorageThe storage in shared memory
     Ccutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::SharedStorage
     Ccutlass::gemm::ClearAccumulators< Scalar_, kLanes_ >::SharedStorageThe shared storage
     Ccutlass::gemm::SharedStreamPair< StreamA_, StreamB_ >Collect the global load streams for multiplicands
     Ccutlass::gemm::SimplifiedGemmTraitsHelper< GemmTileTraitsHelperA_, GemmTileTraitsHelperB_, Index_ >
     Ccutlass::sqrt_est< N >
     Ccutlass::StorageType< alignment >
     Ccutlass::StorageType< 1 >
     Ccutlass::StorageType< 2 >
     Ccutlass::StorageType< 4 >
     Ccutlass::StorageType< kAlignment_ >
     Ccutlass::StorageType< sizeof(Scalar)>
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, kFragmentElementType, FragmentElement_, kStride, size >
     Ccutlass::Store< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 >
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 >
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 >
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 >
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 >
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size >
     Ccutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::StreamSharedStorageThe shared memory storage to exchange data
     Ccutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::StrideVector
     Ccutlass::gemm::swizzleDirection
     Ccutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
     Ccutlass::TensorRef< AType const, 2 >
     Ccutlass::TensorRef< BType const, 2 >
     Ccutlass::TensorRef< CType const, 2 >
     Ccutlass::TensorRef< DType, 2 >
     Ccutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >Specialization for rank=1 case with no internal StrideVector
     Ccutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
     Ccutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, ScalarA_, ScalarB_, ScalarC_, kLayout_ >Template performing matrix multiply-add operation within a thread
     Ccutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >Template performing matrix multiply-add operation within a thread
     Ccutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >Template performing matrix multiply-add operation within a thread
     Ccutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >Template performing matrix multiply-add operation within a thread
     Ccutlass::gemm::GemmSharedStoreTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_ >::ThreadOffset
     Ccutlass::gemm::WmmaGemmGlobalIteratorCdTraits< Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmGlobalTileCdTraits< Scalar_, Tile_, Threads_, kStrideH_, kAccessSize_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmSharedLoadTileATraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmSharedStoreWithSkewTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_, kSkew_ >::ThreadOffset
     Ccutlass::gemm::IgemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmSharedLoadTileBTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmSharedLoadTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::TileTraitsWarpRake< Tile_, Threads >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmSharedStoreTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::HgemmCrosswiseGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::TileAllocation< Scalar_, Shape_ >Class for storing a tile in memory and accessing it through a tensor ref
     Ccutlass::TiledThreadOffset< ThreadShape >Basic thread offset function computed from a thread shape
     Ccutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >Iterator for accessing a stripmined tile in memory
     Ccutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, Advance_, MemorySpace, Index_, TileTraits_::Scalar, FragmentElementType::kScalar, Shape< 0, 0, 0, 0 > >
     Ccutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
     Ccutlass::TileLoadStream< Iterator_, Transformer_ >Generic stream for loading and transforming fragments
     Ccutlass::TileStoreStream< Iterator_, Transformer_ >Generic stream for transforming and storing fragments
     Ccutlass::TileTraits< Tile_, Delta_, Iterations_, ThreadOffset_, AccessSize >A template defining Tile Traits Concept
     Ccutlass::TileTraitsContiguousMajor< Tile_, Threads >
     Ccutlass::TileTraitsStandard< Tile_, Threads >Chooses 'best' shape to enable warp raking along contiguous dimension if possible
     Ccutlass::TileTraitsStrideMajor< Tile_, Threads >
     Ccutlass::TileTraitsWarpRake< Tile_, Threads >Tiling in which warps rake across the contiguous dimension
     Ccutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::TrivialIteratorIterator that always returns true
     Ccutlass::TrivialPredicateTileAdapterAlways returns true predicate
     Ccutlass::uint4_t
     Ccutlass::platform::unique_ptr< T, Deleter >Std::unique_ptr
     Ccutlass::Vector< Scalar_, kLanes_ >
     Ccutlass::Vector< bin1_t, kLanes_ >Vector definition for 1-bit binary datatype
     Ccutlass::Vector< half, 1 >
     Ccutlass::Vector< half, kLanes_ >
     Ccutlass::Vector< int4_t, kLanes_ >Vector definition for 4-bit signed integer datatype
     Ccutlass::Vector< uint4_t, kLanes_ >Vector definition for 4-bit unsigned integer datatype
     Ccutlass::Vectorize< Element_, kLanes_ >
     Ccutlass::Vectorize< Vector< bin1_t, 32 >, kLanes_ >
     Ccutlass::Vectorize< Vector< int4_t, 8 >, kLanes_ >
     Ccutlass::Vectorize< Vector< uint4_t, 8 >, kLanes_ >
     Ccutlass::VectorTraits< T >Traits describing properties of vectors and scalar-as-vectors
     Ccutlass::VectorTraits< Vector< T, Lanes > >Partial specialization for actual cutlass::Vector
     Ccutlass::VectorTraits< Vector< T, Lanes > const >Partial specialization for actual cutlass::Vector
     Ccutlass::ZipConvert< First_, Second_ >Zips two convert operations
     Ccutlass::ZipFragment< First_, Second_ >A template defining Fragment Concept
     Ccutlass::ZipTensorRef< First_, Second_ >
     Ccutlass::ZipTileAllocation< First_, Second_ >Manages a pair of tile allocations as if they are one allocation
     Ccutlass::ZipTileIterator< First_, Second_ >Constructs an iterator from a pair of iterators
     Ccutlass::reduction::BatchedReduction< BatchedReductionTraits_ >
     Ccutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >
     Ccutlass::bin1_t
     Ccutlass::gemm::ClearAccumulators< Scalar_, kLanes_ >
     Ccutlass::MatrixLayout::ColumnMajorMapping function for column-major matrices
     Ccutlass::MatrixLayout::ColumnMajorBlockLinear< BlockRows, BlockColumns >
     Ccutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >
     Ccutlass::MatrixLayout::ColumnMajorInterleaved< Interleave >
     Ccutlass::platform::complex< T >
     Ccutlass::ComputeOffsetFromShape< Shape_ >Compute the offset for the given coordinates in a cube
     Ccutlass::ComputeOffsetFromStrides< Strides_ >Compute the offset for the given coordinates in a cube
     Ccutlass::ComputeThreadOffsetFromStrides< Threads_, Strides_ >Decompose threadId.x into coordinate of a cube whose dimensions are specified by Threads_. Afterwards compute the offset of those coordinates using Strides_
     Ccutlass::ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, 1 >, Shape< 1, S_h_, S_w_, 1 > >Specialization for D=1 and C=1
     Ccutlass::ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, T_c_ >, Shape< 1, S_h_, S_w_, S_c_ > >Specialization for D=1
     Ccutlass::platform::conditional< B, T, F >Std::conditional (true specialization)
     Ccutlass::platform::conditional< false, T, F >Std::conditional (false specialization)
     Ccutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::ConstIteratorA const iterator implementing Predicate Iterator Concept enabling sequential read-only access to prediactes
     Ccutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorConstant iterator over tensors implied by TensorRefBatchStrided
     Ccutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIteratorTensorRefIterator over TensorRef objects in TensorRefArray
     Ccutlass::ConstPredicateTileAdapter< PredicateVector_, Iterations_ >Adapter to enable random access to predicates via logical coordinate within a tile
     Ccutlass::MatrixLayout::ContiguousLayout
     Ccutlass::Convert< InputFragment_, OutputFragment_ >
     Ccutlass::Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > >
     Ccutlass::Coord< Rank_, Index_ >Statically-sized array specifying Coords within a tensor
     Ccutlass::Coord< 2, int >
     Ccutlass::Coord< 3 >
     Ccutlass::Coord< 4 >
     Ccutlass::Coord< 4, Index_ >
     Ccutlass::Coord< 4, int >
     Ccutlass::Coord< kStorageRank - 1 >
     Ccutlass::Copy< Fragment_ >
     CDebugType< T >
     CDebugValue< Value >
     Ccutlass::platform::default_delete< T >Default deleter
     Ccutlass::platform::default_delete< T[]>Partial specialization for deleting array types
     Ccutlass::reduction::DefaultBlockSwizzle
     Ccutlass::gemm::DeviceGemm< DeviceGemmTraits_ >
     Ccutlass::divide_assert< Dividend, Divisor >
     Ccutlass::platform::is_base_of_helper< BaseT, DerivedT >::dummy< B, D >
     Ccutlass::DumpType< T >
     Ccutlass::platform::enable_if< C, T >Std::enable_if (true specialization)
     Ccutlass::platform::enable_if< false, T >Std::enable_if (false specialization)
     Ccutlass::Extent< T >Returns the extent of a scalar or vector
     Ccutlass::Extent< Vector< T, Lanes > >Returns the number of lanes of a vector if need be
     Ccutlass::Extent< Vector< T, Lanes > const >Returns the number of lanes of a vector if need be
     Ccutlass::FragmentConstIterator< Fragment_, Iterations_, AccessType_ >
     Ccutlass::FragmentElementTypeSpecifies whether iterator storage fragment consists of Scalar values or WMMA matrix
     Ccutlass::FragmentIterator< Fragment_, Iterations_, AccessType_ >A template defining Fragment Iterator Concept
     Ccutlass::gemm::FragmentMultiplyAdd< ScalarAlphaBeta_, ScalarAccum_, fragMul2 >
     Ccutlass::gemm::FragmentMultiplyAdd< half, half, true >
     Ccutlass::gemm::Gemm< GemmTraits_ >
     Ccutlass::gemm::GemmConfig< ScalarA_, ScalarB_, ScalarC_, ScalarD_, OutputTile_, MultiplyAdd_, kScalarsPerLdgA_, kScalarsPerStsA_, kScalarsPerLdsA_, kScalarsPerLdgB_, kScalarsPerStsB_, kScalarsPerLdsB_, kScalarsPerLdgCAndStgD_, kScalarsPerStsD_, kScalarsPerLdsD_, kStages_, kResidueSeparate_, kResidueInProlog_, kLaunchBounds_ >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::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 >
     Ccutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >GEMM problem description
     Ccutlass::gemm::GemmEpilogue< GemmEpilogueTraits_ >
     Ccutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >
     Ccutlass::gemm::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_ >
     Ccutlass::gemm::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_ >
     Ccutlass::gemm::GemmEpilogueTraitsHelper< GemmConfig_, EpilogueFunctor_, Index_ >
     Ccutlass::gemm::GemmEpilogueTraitsHelper< IgemmConfig_, EpilogueFunctor_, Index_ >
     Ccutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >
     Ccutlass::gemm::GemmGlobalTileTraits< GemmOperand::kC, MatrixLayout::kColumnMajor, Scalar_, Tile_, Threads_, kAccessSize_ >
     Ccutlass::gemm::GemmMultiplicandTraits< ThreadBlockTile_, Usage, Layout >
     Ccutlass::GemmOperandGemm operand - D = A * B + C
     Ccutlass::gemm::GemmOperandTraitsAb< kOperand_, kLayout_ >Helper to describe attributes of GEMM matrix operands
     Ccutlass::gemm::GemmSharedLoadTileATraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >
     Ccutlass::gemm::GemmSharedLoadTileBTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >
     Ccutlass::gemm::GemmSharedLoadTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ >
     Ccutlass::gemm::GemmSharedStoreTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_ >
     Ccutlass::gemm::GemmSharedStoreTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ >
     Ccutlass::gemm::GemmSharedStoreWithSkewTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_, kSkew_ >
     Ccutlass::gemm::GemmTileTraitsHelperA< Kind, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperA< kLayout_, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperB< Kind, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperB< kLayout_, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >
     Ccutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >
     Ccutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >
     Ccutlass::gemm::GemmTraits< GemmConfig_, Helper_::GlobalLoadStreamA, Helper_::GlobalLoadStreamB, Helper_::SharedLoadStreamA, Helper_::SharedLoadStreamB, Epilogue_, IdentityBlockSwizzle, Index_, ClearAccumulators< GemmConfig_::Accumulators::Element > >
     Ccutlass::gemm::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 > >
     Ccutlass::gemm::GemmTraits< Helper_::GemmConfig, Helper_::GlobalLoadStreamA, Helper_::GlobalLoadStreamB, Helper_::SharedLoadStreamA, Helper_::SharedLoadStreamB, Helper_::Epilogue, IdentityBlockSwizzle, Index_, Helper_::ClearAccumulators >
     Ccutlass::gemm::GetExtent< kOperand_, Tile_ >
     Ccutlass::gemm::GetExtent< GemmOperand::kA, Tile_ >
     Ccutlass::gemm::GetExtent< GemmOperand::kB, Tile_ >
     Ccutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >
     Ccutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >Collect the global load streams for multiplicands
     Ccutlass::platform::greater< T >Std::greater
     Ccutlass::gemm::HgemmSwizzle< GlobalIterator_ >
     Ccutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >
     Ccutlass::gemm::HgemmTransformerA< kLayout_, Iterator_ >
     Ccutlass::gemm::HgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >
     Ccutlass::gemm::HgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >
     Ccutlass::gemm::HgemmTransformerB< kLayout_, Iterator_ >
     Ccutlass::gemm::HgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >
     Ccutlass::gemm::HgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >
     Ccutlass::IdentityDescribes identity elements
     Ccutlass::gemm::IdentityBlockSwizzle
     Ccutlass::IdentityTensorMapFunc< Rank >
     Ccutlass::IdentityTensorMapFunc< Rank_ >
     Ccutlass::gemm::IgemmEpilogueScalar< ScalarD_ >
     Ccutlass::gemm::IgemmEpilogueScalar< int >
     Ccutlass::gemm::IgemmFloatToInt8Converter< kElements_ >
     Ccutlass::gemm::IgemmGlobalLoadTransformer< InputFragment_, OutputScalar_ >
     Ccutlass::gemm::IgemmGlobalLoadTransformer< Fragment< int8_t, kElements_ >, float >
     Ccutlass::gemm::IgemmGlobalStoreTransformer< InputScalar_, OutputFragment_ >
     Ccutlass::gemm::IgemmGlobalStoreTransformer< float, Fragment< int8_t, kElements_ > >
     Ccutlass::gemm::IgemmInt8ToFloatConverter< kElements_ >
     Ccutlass::gemm::IgemmSharedStoreTransformer< InputScalar_, OutputFragment_ >
     Ccutlass::gemm::IgemmSwizzle< GlobalIterator_ >
     Ccutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >
     Ccutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >
     Ccutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >
     Ccutlass::gemm::IgemmTransformerA< kLayout_, Iterator_ >
     Ccutlass::gemm::IgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >
     Ccutlass::gemm::IgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >
     Ccutlass::gemm::IgemmTransformerB< kLayout_, Iterator_ >
     Ccutlass::gemm::IgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >
     Ccutlass::gemm::IgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >
     Ccutlass::int4_t
     Ccutlass::platform::integral_constant< value_t, V >Std::integral_constant
     Ccutlass::platform::integral_constant< bool, V >
     Ccutlass::platform::integral_constant< bool,(is_arithmetic< T >::value||is_void< T >::value||is_same< nullptr_t, remove_cv< T >::type >::value)>
     Ccutlass::platform::integral_constant< bool,(is_base_of_helper< remove_cv< BaseT >::type, remove_cv< DerivedT >::type >::value)||(is_same< remove_cv< BaseT >::type, remove_cv< DerivedT >::type >::value)>
     Ccutlass::platform::integral_constant< bool,(is_fundamental< T >::value||is_pointer< T >::value)>
     Ccutlass::platform::integral_constant< bool,(is_integral< T >::value||is_floating_point< T >::value)>
     Ccutlass::platform::integral_constant< bool,(is_same< float, remove_cv< T >::type >::value||is_same< double, remove_cv< T >::type >::value)>
     Ccutlass::platform::integral_constant< bool,(N &(N - 1))==0 >
     Ccutlass::platform::is_base_of_helper< BaseT, DerivedT >Helper for std::is_base_of
     Ccutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::IteratorAn iterator implementing Predicate Iterator Concept enabling sequential read and write access to predicates
     Ccutlass::IteratorAdvanceSpecifies dimension in which post-increment accesses advance
     Ccutlass::KernelLaunchConfigurationStructure containing the basic launch configuration of a CUDA kernel
     Ccutlass::gemm::Launch< Gemm, WithLaunchBounds >Partial specialization for launching the GEMM kernel with or without launch bounds
     Ccutlass::gemm::Launch< Gemm, false >Partial specialization for launching the GEMM kernel with or without launch bounds
     Ccutlass::platform::less< T >Std::less
     Ccutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >Functor to compute linear combination of fragments
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, kFragmentElementType, FragmentElement_, kStride, size >
     Ccutlass::Load< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 >
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 >Partial specialization for 16b loads
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 >
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 >
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 >
     Ccutlass::Load< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size >
     Ccutlass::Load< Vector< bin1_t, 32 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size >
     Ccutlass::Load< Vector< int4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size >
     Ccutlass::Load< Vector< uint4_t, 8 >, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size >
     Ccutlass::log2_down< N, CurrentVal, Count >
     Ccutlass::log2_down< N, 1, Count >
     Ccutlass::log2_up< N, CurrentVal, Count >
     Ccutlass::log2_up< N, 1, Count >
     Ccutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::MainLoopSharedStorage
     Ccutlass::MatrixTransformTransformation applied to matrix operands
     Ccutlass::Max< A, B >
     Ccutlass::MemorySpaceEnum to specify which memory space data resides in
     Ccutlass::Min< A, B >
     Ccutlass::platform::nullptr_tStd::nullptr_t
     Ccutlass::platform::alignment_of< value_t >::pad
     Ccutlass::platform::Pair< T1, T2 >Constructs an iterator from a pair of iterators
     Ccutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >::ParamsThe params
     Ccutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ >::ParamsThe parameters
     Ccutlass::gemm::SharedStreamPair< StreamA_, StreamB_ >::ParamsParameters object passed to load iterators
     Ccutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::ParamsThe params
     Ccutlass::ZipTileIterator< First_, Second_ >::ParamsParams object
     Ccutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::ParamsParameters object
     Ccutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::ParamsThe parameters
     Ccutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params
     Ccutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params
     Ccutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::ParamsThe params
     Ccutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::ParamsThe params
     Ccutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::ParamsParameters to the iterator
     Ccutlass::TileLoadStream< Iterator_, Transformer_ >::ParamsParameters object used to construct generic load stream
     Ccutlass::TileStoreStream< Iterator_, Transformer_ >::ParamsParameters used to construct the stream
     Ccutlass::platform::plus< T >Platform::plus
     Ccutlass::PredicateTileAdapter< PredicateVector_, Iterations_ >Adapter to enable random access to predicates via logical coordinate within a tile
     Ccutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >Statically sized array of bits implementing
     Ccutlass::TileStoreStream< Iterator_, Transformer_ >::PredicateVectorEmpty predicate vector struct
     Ccutlass::TileLoadStream< Iterator_, Transformer_ >::PredicateVectorEmpty predicate vector struct
     Ccutlass::PredicateVector< Base::Iterations::kW >
     Ccutlass::PredicateVector< ShapeCount< typename Base::Iterations >::kCount >
     Ccutlass::gemm::ProjectOperand< operand, Kstrided >
     Ccutlass::gemm::ProjectOperand< GemmOperand::kA, Kstrided >Project A operand - (0, K, M)
     Ccutlass::gemm::ProjectOperand< GemmOperand::kB, Kstrided >Project B operand - (0, K, N)
     Ccutlass::gemm::ProjectOperand< GemmOperand::kC, true >Project C operand - (0, N, M)
     Ccutlass::gemm::ProjectOperand< GemmOperand::kD, true >Project D operand - (0, N, M)
     Ccutlass::RegularTilePredicateFunctor< Delta_ >Functor computing a predicate given the logical position of an access
     Ccutlass::platform::remove_const< T >Std::remove_const (non-const specialization)
     Ccutlass::platform::remove_const< const T >Std::remove_const (const specialization)
     Ccutlass::platform::remove_cv< T >Std::remove_cv
     Ccutlass::platform::remove_volatile< T >Std::remove_volatile (non-volatile specialization)
     Ccutlass::platform::remove_volatile< volatile T >Std::remove_volatile (volatile specialization)
     Ccutlass::gemm::ReshapeThreads< Tile_, Threads_, bool >
     Ccutlass::gemm::ReshapeThreads< Tile_, Threads_, true >
     Ccutlass::ReshapeTile< Tile_, kAccessSize_, bool >
     Ccutlass::ReshapeTile< Tile_, kAccessSize_, true >
     Ccutlass::MatrixLayout::RowMajorMapping function for row-major matrices
     Ccutlass::MatrixLayout::RowMajorBlockLinear< BlockRows, BlockColumns >
     Ccutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection >
     Ccutlass::MatrixLayout::RowMajorInterleaved< Interleave >
     Ccutlass::ScalarIO< T >Helper to enable formatted printing of CUTLASS scalar types to an ostream
     Ccutlass::detail::ScalarOrPointer< Scalar_ >
     Ccutlass::detail::ScalarOrPointer< Scalar >
     Ccutlass::Shape< kD_, kH_, kW_, kC_ >A Shape implementing Layout Concept describing the dimensions of a cube
     Ccutlass::ShapeAdd< A_, B_ >
     Ccutlass::ShapeCount< Shape >Compute derived counted of a Layout Concept based class
     Ccutlass::ShapeDiv< A_, B_ >
     Ccutlass::ShapeDivCeiling< A_, B_ >
     Ccutlass::ShapeMax< A_, B_ >
     Ccutlass::ShapeMin< A_, B_ >
     Ccutlass::ShapeMul< A_, B_ >
     Ccutlass::ShapeScale< A_, kScale_ >
     Ccutlass::ShapeStrides< Shape_, elementsPerAccess >
     Ccutlass::ShapeSub< A_, B_ >
     Ccutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >
     Ccutlass::gemm::ClearAccumulators< Scalar_, kLanes_ >::SharedStorageThe shared storage
     Ccutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::SharedStorage
     Ccutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::SharedStorageThe shared memory to swizzle the data in the epilogue
     Ccutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::SharedStorageThe storage in shared memory
     Ccutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::SharedStorageDefines a structure containing shared storage for each pair
     Ccutlass::gemm::SharedStreamPair< StreamA_, StreamB_ >Collect the global load streams for multiplicands
     Ccutlass::gemm::SimplifiedGemmTraitsHelper< GemmTileTraitsHelperA_, GemmTileTraitsHelperB_, Index_ >
     Ccutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >
     Ccutlass::sqrt_est< N >
     Ccutlass::StorageType< alignment >
     Ccutlass::StorageType< 1 >
     Ccutlass::StorageType< 2 >
     Ccutlass::StorageType< 4 >
     Ccutlass::StorageType< kAlignment_ >
     Ccutlass::StorageType< sizeof(Scalar)>
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, kFragmentElementType, FragmentElement_, kStride, size >
     Ccutlass::Store< double, 2, Memory_, FragmentElementType::kScalar, double, kStride, 16 >
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, 1, 2 >
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 16 >
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 4 >
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kScalar, Scalar_, kStride, 8 >
     Ccutlass::Store< Scalar_, kAccessSize, Memory_, FragmentElementType::kWmmaMatrix, FragmentElement_, kStride, size >
     Ccutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::StreamSharedStorageThe shared memory storage to exchange data
     Ccutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::StrideVector
     Ccutlass::gemm::swizzleDirection
     Ccutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
     Ccutlass::TensorRef< AType const, 2 >
     Ccutlass::TensorRef< BType const, 2 >
     Ccutlass::TensorRef< CType const, 2 >
     Ccutlass::TensorRef< DType, 2 >
     Ccutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >Specialization for rank=1 case with no internal StrideVector
     Ccutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
     Ccutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, ScalarA_, ScalarB_, ScalarC_, kLayout_ >Template performing matrix multiply-add operation within a thread
     Ccutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >Template performing matrix multiply-add operation within a thread
     Ccutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >Template performing matrix multiply-add operation within a thread
     Ccutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >Template performing matrix multiply-add operation within a thread
     Ccutlass::gemm::GemmSharedLoadTileBTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmGlobalTileCdTraits< Scalar_, Tile_, Threads_, kStrideH_, kAccessSize_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::HgemmCrosswiseGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmSharedStoreWithSkewTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_, kSkew_ >::ThreadOffset
     Ccutlass::gemm::WmmaGemmGlobalIteratorCdTraits< Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmSharedLoadTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmSharedStoreTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmSharedLoadTileATraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::GemmSharedStoreTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_ >::ThreadOffset
     Ccutlass::TileTraitsWarpRake< Tile_, Threads >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::gemm::IgemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffsetComputes the thread offset in (H, W) based on thread ID
     Ccutlass::TileAllocation< Scalar_, Shape_ >Class for storing a tile in memory and accessing it through a tensor ref
     Ccutlass::TiledThreadOffset< ThreadShape >Basic thread offset function computed from a thread shape
     Ccutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >Iterator for accessing a stripmined tile in memory
     Ccutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, Advance_, MemorySpace, Index_, TileTraits_::Scalar, FragmentElementType::kScalar, Shape< 0, 0, 0, 0 > >
     Ccutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
     Ccutlass::TileLoadStream< Iterator_, Transformer_ >Generic stream for loading and transforming fragments
     Ccutlass::TileStoreStream< Iterator_, Transformer_ >Generic stream for transforming and storing fragments
     Ccutlass::TileTraits< Tile_, Delta_, Iterations_, ThreadOffset_, AccessSize >A template defining Tile Traits Concept
     Ccutlass::TileTraitsContiguousMajor< Tile_, Threads >
     Ccutlass::TileTraitsStandard< Tile_, Threads >Chooses 'best' shape to enable warp raking along contiguous dimension if possible
     Ccutlass::TileTraitsStrideMajor< Tile_, Threads >
     Ccutlass::TileTraitsWarpRake< Tile_, Threads >Tiling in which warps rake across the contiguous dimension
     Ccutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::TrivialIteratorIterator that always returns true
     Ccutlass::TrivialPredicateTileAdapterAlways returns true predicate
     Ccutlass::uint4_t
     Ccutlass::platform::unique_ptr< T, Deleter >Std::unique_ptr
     Ccutlass::Vector< Scalar_, kLanes_ >
     Ccutlass::Vector< bin1_t, kLanes_ >Vector definition for 1-bit binary datatype
     Ccutlass::Vector< half, 1 >
     Ccutlass::Vector< half, kLanes_ >
     Ccutlass::Vector< int4_t, kLanes_ >Vector definition for 4-bit signed integer datatype
     Ccutlass::Vector< uint4_t, kLanes_ >Vector definition for 4-bit unsigned integer datatype
     Ccutlass::Vectorize< Element_, kLanes_ >
     Ccutlass::Vectorize< Vector< bin1_t, 32 >, kLanes_ >
     Ccutlass::Vectorize< Vector< int4_t, 8 >, kLanes_ >
     Ccutlass::Vectorize< Vector< uint4_t, 8 >, kLanes_ >
     Ccutlass::VectorTraits< T >Traits describing properties of vectors and scalar-as-vectors
     Ccutlass::VectorTraits< Vector< T, Lanes > >Partial specialization for actual cutlass::Vector
     Ccutlass::VectorTraits< Vector< T, Lanes > const >Partial specialization for actual cutlass::Vector
     Ccutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, bool >
     Ccutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true >
     Ccutlass::ZipConvert< First_, Second_ >Zips two convert operations
     Ccutlass::ZipFragment< First_, Second_ >A template defining Fragment Concept
     Ccutlass::ZipTensorRef< First_, Second_ >
     Ccutlass::ZipTileAllocation< First_, Second_ >Manages a pair of tile allocations as if they are one allocation
     Ccutlass::ZipTileIterator< First_, Second_ >Constructs an iterator from a pair of iterators
    diff --git a/docs/igemm__epilogue_8h.html b/docs/igemm__epilogue_8h.html index f7332de2..8f6d370e 100644 --- a/docs/igemm__epilogue_8h.html +++ b/docs/igemm__epilogue_8h.html @@ -127,7 +127,7 @@ Namespaces
    struct  cutlass::MatrixCoord
     
    struct  cutlass::MatrixLayout
     Defines data layouts of various matrix formats usable by TensorRef and other classes. More...
     
    struct  cutlass::MatrixLayout::RowMajor
     Mapping function for row-major matrices. More...
     
     cutlass
     
     cutlass::MatrixLayout
     Defines data layouts of various matrix formats usable by TensorRef and other classes.
     
    + + + +

    +Enumerations

    enum  cutlass::MatrixLayout::Kind { cutlass::MatrixLayout::kRowMajor, +cutlass::MatrixLayout::kColumnMajor + }
     Enumeration defining fundamental contiguous layouts. More...
     
    diff --git a/docs/matrix__traits_8h_source.html b/docs/matrix__traits_8h_source.html index 2e78c5a2..128d9e55 100644 --- a/docs/matrix__traits_8h_source.html +++ b/docs/matrix__traits_8h_source.html @@ -76,7 +76,7 @@ $(function() {
    matrix_traits.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/coord.h"
    31 
    32 namespace cutlass {
    33 
    35 
    38 struct MatrixCoord : public Coord<2, int> {
    39 
    41  typedef int Index;
    42 
    45 
    47  static int const kRow = 0;
    48 
    50  static int const kColumn = 1;
    51 
    52  //
    53  // Methods
    54  //
    55 
    59 
    62  MatrixCoord(Coord<2, Index> const &coord): Base(coord) { }
    63 
    67 
    70  Index const & row() const { return this->at(kRow); }
    71 
    74  Index & row() { return this->at(kRow); }
    75 
    78  Index const & column() const { return this->at(kColumn); }
    79 
    82  Index & column() { return this->at(kColumn); }
    83 
    84  //
    85  // Coord operators
    86  //
    87 
    90  MatrixCoord operator+(Base const& b) const {
    91  return MatrixCoord(Base::operator+(b));
    92  }
    93 
    96  MatrixCoord operator-(Base const& b) const {
    97  return MatrixCoord(Base::operator-(b));
    98  }
    99 
    102  MatrixCoord operator*(Base const& b) const {
    103  return MatrixCoord(Base::operator*(b));
    104  }
    105 
    108  MatrixCoord operator/(Base const& b) const {
    109  return MatrixCoord(Base::operator/(b));
    110  }
    111 
    115  Base::operator+=(b);
    116  return *this;
    117  }
    118 
    122  Base::operator-=(b);
    123  return *this;
    124  }
    125 
    129  Base::operator*=(b);
    130  return *this;
    131  }
    132 
    136  Base::operator/=(b);
    137  return *this;
    138  }
    139 };
    140 
    142 
    144 //
    145 // The following define classes satisfying the TensorRefMapFunc concept. These must support the
    146 // following operations, where func is an instance of type TensorRefMapFunc.
    147 //
    148 // Coord<TensorRefMapFunc::kStorageRank> = func(Coord<kRank>);
    149 //
    150 // Though not required to be usable by TensorRef, each of the following also define a helper
    151 // function to map the "leading dimension" to an appropriate stride vector. Implementations
    152 // following this convention should also implement the following static method:
    153 //
    154 // Coord<TensorRefMapFunc::kStorageRank> stride = TensorRefMapFunc::stride(leading_dim);
    155 //
    156 struct MatrixLayout {
    157 
    160 
    161  //
    162  // TensorRefMapFunc definitions for common layouts
    163  //
    164 
    166  struct RowMajor {
    167  static int const kStorageRank = 2;
    171  return coord;
    172  }
    173  };
    174 
    176  struct ColumnMajor {
    177  static int const kStorageRank = 2;
    181  return make_Coord(coord.column(), coord.row());
    182  }
    183  };
    184 
    187  template <int Interleave>
    189 
    191  static int const kStorageRank = 3;
    192 
    194  static int const kInterleave = Interleave;
    195 
    199  return make_Coord(
    200  coord.row() / kInterleave,
    201  coord.column(),
    202  coord.row() % kInterleave
    203  );
    204  }
    205 
    208  static Coord<kStorageRank> stride(int ldm) {
    209  return make_Coord(
    210  ldm * kInterleave,
    211  kInterleave,
    212  1
    213  );
    214  }
    215  };
    216 
    219  template <int Interleave>
    221 
    223  static int const kStorageRank = 3;
    224 
    226  static int const kInterleave = Interleave;
    227 
    231  return make_Coord(
    232  coord.column() / kInterleave,
    233  coord.row(),
    234  coord.column() % kInterleave
    235  );
    236  }
    237 
    240  static Coord<kStorageRank> stride(int ldm) {
    241  return make_Coord(
    242  ldm * kInterleave,
    243  kInterleave,
    244  1
    245  );
    246  }
    247  };
    248 
    253  static int const kStorageRank = 3;
    254 
    256  static int const kRow = 0;
    257 
    259  static int const kColumn = 1;
    260 
    265  return make_Coord(coord.row(), coord.column(), 0);
    266  }
    267 
    271  if (layout == MatrixLayout::kRowMajor) {
    272  return make_Coord(ldm, 1, 1);
    273  }
    274  return make_Coord(1, ldm, 1);
    275  }
    276  };
    277 
    280  template <int BlockRows, int BlockColumns>
    282 
    284  static int const kStorageRank = 4;
    285 
    287  static int const kBlockRows = BlockRows;
    288 
    290  static int const kBlockColumns = BlockColumns;
    291 
    295  return make_Coord(
    296  coord.column() / kBlockColumns,
    297  coord.row() / kBlockRows,
    298  coord.column() % kBlockColumns,
    299  coord.row() % kBlockRows
    300  );
    301  }
    302 
    305  static Coord<kStorageRank> stride(int ldm) {
    306  return make_Coord(
    307  ldm * kBlockRows * kBlockColumns,
    309  kBlockRows,
    310  1
    311  );
    312  }
    313  };
    314 
    317  template <int BlockRows, int BlockColumns>
    319 
    321  static int const kStorageRank = 4;
    322 
    324  static int const kBlockRows = BlockRows;
    325 
    327  static int const kBlockColumns = BlockColumns;
    328 
    332  return make_Coord(
    333  coord.row() / kBlockRows,
    334  coord.column() / kBlockColumns,
    335  coord.row() % kBlockRows,
    336  coord.column() % kBlockColumns
    337  );
    338  }
    339 
    342  static Coord<kStorageRank> stride(int ldm) {
    343  return make_Coord(
    344  ldm * kBlockRows * kBlockColumns,
    347  1
    348  );
    349  }
    350  };
    351 };
    352 
    354 
    356 struct GemmOperand {
    357  enum Kind { kA, kB, kC, kD };
    358 };
    359 
    361 
    364  enum Kind {
    367  };
    368 };
    369 
    371 
    372 } // namespace cutlass
    int Index
    Integer-valued index.
    Definition: matrix_traits.h:41
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/coord.h"
    31 
    32 namespace cutlass {
    33 
    35 
    38 struct MatrixCoord : public Coord<2, int> {
    39 
    41  typedef int Index;
    42 
    45 
    47  static int const kRow = 0;
    48 
    50  static int const kColumn = 1;
    51 
    52  //
    53  // Methods
    54  //
    55 
    59 
    62  MatrixCoord(Coord<2, Index> const &coord): Base(coord) { }
    63 
    67 
    70  Index const & row() const { return this->at(kRow); }
    71 
    74  Index & row() { return this->at(kRow); }
    75 
    78  Index const & column() const { return this->at(kColumn); }
    79 
    82  Index & column() { return this->at(kColumn); }
    83 
    84  //
    85  // Coord operators
    86  //
    87 
    90  MatrixCoord operator+(Base const& b) const {
    91  return MatrixCoord(Base::operator+(b));
    92  }
    93 
    96  MatrixCoord operator-(Base const& b) const {
    97  return MatrixCoord(Base::operator-(b));
    98  }
    99 
    102  MatrixCoord operator*(Base const& b) const {
    103  return MatrixCoord(Base::operator*(b));
    104  }
    105 
    108  MatrixCoord operator/(Base const& b) const {
    109  return MatrixCoord(Base::operator/(b));
    110  }
    111 
    115  Base::operator+=(b);
    116  return *this;
    117  }
    118 
    122  Base::operator-=(b);
    123  return *this;
    124  }
    125 
    129  Base::operator*=(b);
    130  return *this;
    131  }
    132 
    136  Base::operator/=(b);
    137  return *this;
    138  }
    139 };
    140 
    142 
    144 //
    145 // The following define classes satisfying the TensorRefMapFunc concept. These must support the
    146 // following operations, where func is an instance of type TensorRefMapFunc.
    147 //
    148 // Coord<TensorRefMapFunc::kStorageRank> = func(Coord<kRank>);
    149 //
    150 // Though not required to be usable by TensorRef, each of the following also define a helper
    151 // function to map the "leading dimension" to an appropriate stride vector. Implementations
    152 // following this convention should also implement the following static method:
    153 //
    154 // Coord<TensorRefMapFunc::kStorageRank> stride = TensorRefMapFunc::stride(leading_dim);
    155 //
    156 namespace MatrixLayout {
    157 
    160 
    161  //
    162  // TensorRefMapFunc definitions for common layouts
    163  //
    164 
    166  struct RowMajor {
    167  static int const kStorageRank = 2;
    171  return coord;
    172  }
    173  };
    174 
    176  struct ColumnMajor {
    177  static int const kStorageRank = 2;
    181  return make_Coord(coord.column(), coord.row());
    182  }
    183  };
    184 
    187  template <int Interleave>
    189 
    191  static int const kStorageRank = 3;
    192 
    194  static int const kInterleave = Interleave;
    195 
    199  return make_Coord(
    200  coord.row() / kInterleave,
    201  coord.column(),
    202  coord.row() % kInterleave
    203  );
    204  }
    205 
    208  static Coord<kStorageRank> stride(int ldm) {
    209  return make_Coord(
    210  ldm * kInterleave,
    211  kInterleave,
    212  1
    213  );
    214  }
    215  };
    216 
    219  template <int Interleave>
    221 
    223  static int const kStorageRank = 3;
    224 
    226  static int const kInterleave = Interleave;
    227 
    231  return make_Coord(
    232  coord.column() / kInterleave,
    233  coord.row(),
    234  coord.column() % kInterleave
    235  );
    236  }
    237 
    240  static Coord<kStorageRank> stride(int ldm) {
    241  return make_Coord(
    242  ldm * kInterleave,
    243  kInterleave,
    244  1
    245  );
    246  }
    247  };
    248 
    253  static int const kStorageRank = 3;
    254 
    256  static int const kRow = 0;
    257 
    259  static int const kColumn = 1;
    260 
    265  return make_Coord(coord.row(), coord.column(), 0);
    266  }
    267 
    271  if (layout == MatrixLayout::kRowMajor) {
    272  return make_Coord(ldm, 1, 1);
    273  }
    274  return make_Coord(1, ldm, 1);
    275  }
    276  };
    277 
    280  template <int BlockRows, int BlockColumns>
    282 
    284  static int const kStorageRank = 4;
    285 
    287  static int const kBlockRows = BlockRows;
    288 
    290  static int const kBlockColumns = BlockColumns;
    291 
    295  return make_Coord(
    296  coord.column() / kBlockColumns,
    297  coord.row() / kBlockRows,
    298  coord.column() % kBlockColumns,
    299  coord.row() % kBlockRows
    300  );
    301  }
    302 
    305  static Coord<kStorageRank> stride(int ldm) {
    306  return make_Coord(
    307  ldm * kBlockRows * kBlockColumns,
    309  kBlockRows,
    310  1
    311  );
    312  }
    313  };
    314 
    317  template <int BlockRows, int BlockColumns>
    319 
    321  static int const kStorageRank = 4;
    322 
    324  static int const kBlockRows = BlockRows;
    325 
    327  static int const kBlockColumns = BlockColumns;
    328 
    332  return make_Coord(
    333  coord.row() / kBlockRows,
    334  coord.column() / kBlockColumns,
    335  coord.row() % kBlockRows,
    336  coord.column() % kBlockColumns
    337  );
    338  }
    339 
    342  static Coord<kStorageRank> stride(int ldm) {
    343  return make_Coord(
    344  ldm * kBlockRows * kBlockColumns,
    347  1
    348  );
    349  }
    350  };
    351 };
    352 
    354 
    356 struct GemmOperand {
    357  enum Kind { kA, kB, kC, kD };
    358 };
    359 
    361 
    364  enum Kind {
    367  };
    368 };
    369 
    371 
    372 } // namespace cutlass
    int Index
    Integer-valued index.
    Definition: matrix_traits.h:41
    Mapping function for column-major matrices.
    Definition: matrix_traits.h:176
    static int const kBlockColumns
    Interleaving size in columns dimension.
    Definition: matrix_traits.h:327
    Definition: convert.h:33
    @@ -89,12 +89,13 @@ $(function() {
    Definition: matrix_traits.h:281
    Definition: matrix_traits.h:220
    A Coord is a coordinate of arbitrary rank into a tensor or matrix.
    -
    CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
    Helper to make a 2-element coordinate.
    Definition: coord.h:318
    +
    CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
    Helper to make a 2-element coordinate.
    Definition: coord.h:368
    no operation
    Definition: matrix_traits.h:366
    CUTLASS_HOST_DEVICE MatrixCoord & operator/=(Base const &b)
    In-place division.
    Definition: matrix_traits.h:135
    static int const kStorageRank
    Definition: matrix_traits.h:167
    Definition: matrix_traits.h:251
    CUTLASS_HOST_DEVICE Coord< kStorageRank > operator()(MatrixCoord const &coord) const
    Maps (i, j) to (j, i)
    Definition: matrix_traits.h:180
    +
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    Kind
    Definition: matrix_traits.h:364
    Coord< 2, Index > Base
    Base type is a Coord of rank=2.
    Definition: matrix_traits.h:44
    CUTLASS_HOST_DEVICE MatrixCoord operator+(Base const &b) const
    Element-wise addition.
    Definition: matrix_traits.h:90
    @@ -103,9 +104,7 @@ $(function() {
    static int const kRow
    Dimension of rows.
    Definition: matrix_traits.h:256
    static int const kStorageRank
    Definition: matrix_traits.h:177
    static int const kBlockRows
    Interleaving size in rows dimension.
    Definition: matrix_traits.h:287
    -
    Defines data layouts of various matrix formats usable by TensorRef and other classes.
    Definition: matrix_traits.h:156
    static int const kInterleave
    Interleaving size.
    Definition: matrix_traits.h:194
    -
    Definition: matrix_traits.h:159
    CUTLASS_HOST_DEVICE Index const & column() const
    Returns the column of the coordinate.
    Definition: matrix_traits.h:78
    CUTLASS_HOST_DEVICE MatrixCoord(Index row, Index column)
    Helper to construct from a row and column.
    Definition: matrix_traits.h:66
    static CUTLASS_HOST_DEVICE Coord< kStorageRank > stride(int ldm)
    Helper to compute stride vector from leading dimension.
    Definition: matrix_traits.h:208
    @@ -121,19 +120,19 @@ $(function() {
    CUTLASS_HOST_DEVICE Index const & row() const
    Returns the row of the coordinate.
    Definition: matrix_traits.h:70
    CUTLASS_HOST_DEVICE Index & at()
    Gets the index of a given Coord element.
    Definition: coord.h:240
    CUTLASS_HOST_DEVICE Coord & operator/=(Coord const &b)
    In-place division.
    Definition: coord.h:206
    +
    Definition: matrix_traits.h:159
    CUTLASS_HOST_DEVICE MatrixCoord operator-(Base const &b) const
    Element-wise subtraction.
    Definition: matrix_traits.h:96
    CUTLASS_HOST_DEVICE MatrixCoord(Coord< 2, Index > const &coord)
    Constructs from Coord<2>
    Definition: matrix_traits.h:62
    static int const kStorageRank
    Rank of storage n-D array.
    Definition: matrix_traits.h:321
    Statically-sized array specifying Coords within a tensor.
    Definition: coord.h:49
    +
    Definition: matrix_traits.h:159
    Gemm operand - D = A * B + C.
    Definition: matrix_traits.h:356
    static CUTLASS_HOST_DEVICE Coord< kStorageRank > stride(int ldm)
    Helper to compute stride vector from leading dimension.
    Definition: matrix_traits.h:342
    static int const kRow
    Rows dimension.
    Definition: matrix_traits.h:47
    CUTLASS_HOST_DEVICE MatrixCoord & operator-=(Base const &b)
    In-place subtraction.
    Definition: matrix_traits.h:121
    CUTLASS_HOST_DEVICE MatrixCoord operator*(Base const &b) const
    Element-wise multiplication.
    Definition: matrix_traits.h:102
    -
    Definition: matrix_traits.h:159
    static CUTLASS_HOST_DEVICE Coord< kStorageRank > stride(int ldm)
    Helper to compute stride vector from leading dimension.
    Definition: matrix_traits.h:240
    CUTLASS_HOST_DEVICE Coord< kStorageRank > operator()(MatrixCoord const &coord) const
    Definition: matrix_traits.h:264
    -
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    CUTLASS_HOST_DEVICE Index & row()
    Returns the row of the coordinate.
    Definition: matrix_traits.h:74
    static int const kStorageRank
    Rank of storage n-D array.
    Definition: matrix_traits.h:284
    static int const kInterleave
    Interleaving size.
    Definition: matrix_traits.h:226
    @@ -157,7 +156,7 @@ $(function() {
    diff --git a/docs/menudata.js b/docs/menudata.js index dde1bbfe..2adec809 100644 --- a/docs/menudata.js +++ b/docs/menudata.js @@ -35,6 +35,7 @@ var menudata={children:[ {text:"f",url:"namespacemembers.html#index_f"}, {text:"g",url:"namespacemembers.html#index_g"}, {text:"i",url:"namespacemembers.html#index_i"}, +{text:"k",url:"namespacemembers.html#index_k"}, {text:"l",url:"namespacemembers.html#index_l"}, {text:"m",url:"namespacemembers.html#index_m"}, {text:"n",url:"namespacemembers.html#index_n"}, @@ -58,7 +59,9 @@ var menudata={children:[ {text:"p",url:"namespacemembers_func.html#index_p"}, {text:"r",url:"namespacemembers_func.html#index_r"}, {text:"s",url:"namespacemembers_func.html#index_s"}]}, -{text:"Typedefs",url:"namespacemembers_type.html"}]}]}, +{text:"Typedefs",url:"namespacemembers_type.html"}, +{text:"Enumerations",url:"namespacemembers_enum.html"}, +{text:"Enumerator",url:"namespacemembers_eval.html"}]}]}, {text:"Classes",url:"annotated.html",children:[ {text:"Class List",url:"annotated.html"}, {text:"Class Index",url:"classes.html"}, @@ -131,7 +134,8 @@ var menudata={children:[ {text:"r",url:"functions_vars_r.html#index_r"}, {text:"s",url:"functions_vars_s.html#index_s"}, {text:"t",url:"functions_vars_t.html#index_t"}, -{text:"v",url:"functions_vars_v.html#index_v"}]}, +{text:"v",url:"functions_vars_v.html#index_v"}, +{text:"w",url:"functions_vars_w.html#index_w"}]}, {text:"Typedefs",url:"functions_type.html",children:[ {text:"a",url:"functions_type.html#index_a"}, {text:"b",url:"functions_type_b.html#index_b"}, @@ -147,6 +151,7 @@ var menudata={children:[ {text:"n",url:"functions_type_n.html#index_n"}, {text:"o",url:"functions_type_o.html#index_o"}, {text:"p",url:"functions_type_p.html#index_p"}, +{text:"r",url:"functions_type_r.html#index_r"}, {text:"s",url:"functions_type_s.html#index_s"}, {text:"t",url:"functions_type_t.html#index_t"}, {text:"v",url:"functions_type_v.html#index_v"}, diff --git a/docs/modules.html b/docs/modules.html index 8fc90844..1b807aaa 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -89,7 +89,7 @@ $(function() {
    diff --git a/docs/namespacecutlass.html b/docs/namespacecutlass.html index 4fb1ce9a..3184a162 100644 --- a/docs/namespacecutlass.html +++ b/docs/namespacecutlass.html @@ -83,8 +83,13 @@ Namespaces
     
     gemm
     
     MatrixLayout
     Defines data layouts of various matrix formats usable by TensorRef and other classes.
     
     platform
     
     reduction
     
    @@ -192,9 +197,6 @@ Classes - - - @@ -360,6 +362,10 @@ Classes + + + + @@ -377,6 +383,22 @@ Classes

    Classes

     
    struct  MatrixCoord
     
    struct  MatrixLayout
     Defines data layouts of various matrix formats usable by TensorRef and other classes. More...
     
    struct  MatrixTransform
     Transformation applied to matrix operands. More...
     
    struct  VectorTraits< Vector< T, Lanes > const >
     Partial specialization for actual cutlass::Vector. More...
     
    struct  WmmaReshapeTile
     
    struct  WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true >
     
    struct  ZipConvert
     Zips two convert operations. More...
     
    + + + + + + + + + + + + + + + + @@ -425,6 +447,10 @@ Functions + + + + @@ -502,10 +528,30 @@ template<>

    Functions

    template<typename T , int Rank, typename Index >
    CUTLASS_HOST_DEVICE Coord< Rank, Index > operator* (T s, Coord< Rank, Index > coord)
     Scalar multiplication. More...
     
    template<typename T , int Rank, typename Index >
    CUTLASS_HOST_DEVICE Coord< Rank, Index > operator* (Coord< Rank, Index > coord, T s)
     Scalar multiplication. More...
     
    template<typename T , int Rank, typename Index >
    CUTLASS_HOST_DEVICE Coord< Rank, Index > operator/ (T s, Coord< Rank, Index > coord)
     Scalar division. More...
     
    template<typename T , int Rank, typename Index >
    CUTLASS_HOST_DEVICE Coord< Rank, Index > operator/ (Coord< Rank, Index > coord, T s)
     Scalar division. More...
     
    CUTLASS_HOST_DEVICE Coord< 1 > make_Coord (int _0)
     Helper to make a 2-element coordinate. More...
     
    template<typename OutputIterator , typename Fragment >
    CUTLASS_HOST_DEVICE void iterator_store (OutputIterator &iterator, Fragment &fragment)
     
    template<typename TensorRef_ >
    CUTLASS_HOST_DEVICE TensorRefBatchStrided< typename TensorRef_::Storage, TensorRef_::kRank, typename TensorRef_::MapFunc, TensorRef_::kStorageGrank, typename TensorRef_::Index, typename TensorRef_::LongIndex > make_TensorRefBatchStrided (TensorRef_ const &ref, typename TensorRef_::LongIndex batch_stride=0)
     Helper to construct a TensorRefBatchStrided<> object using type deduction. More...
     
    template<typename dividend_t , typename divisor_t >
    CUTLASS_HOST_DEVICE dividend_t round_nearest (dividend_t dividend, divisor_t divisor)
     
    +
    + + +

    ◆ __align__() [2/7]

    + +
    +
    +
    +template<>
    + + + + + + + + +
    struct cutlass::__align__ (64 )
    +
    +
    -

    ◆ __align__() [2/7]

    +

    ◆ __align__() [3/7]

    @@ -525,7 +571,7 @@ template<>
    -

    ◆ __align__() [3/7]

    +

    ◆ __align__() [4/7]

    @@ -545,7 +591,7 @@ template<>
    -

    ◆ __align__() [4/7]

    +

    ◆ __align__() [5/7]

    @@ -565,7 +611,7 @@ template<>
    -

    ◆ __align__() [5/7]

    +

    ◆ __align__() [6/7]

    @@ -585,7 +631,7 @@ template<>
    -

    ◆ __align__() [6/7]

    +

    ◆ __align__() [7/7]

    @@ -602,26 +648,6 @@ template<>
    -
    -
    - -

    ◆ __align__() [7/7]

    - -
    -
    -
    -template<>
    - - - - - - - - -
    struct cutlass::__align__ (64 )
    -
    -
    @@ -959,6 +985,36 @@ template<typename Shape_ >
    +
    + + +

    ◆ make_TensorRefBatchStrided()

    + +
    +
    +
    +template<typename TensorRef_ >
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE TensorRefBatchStrided< typename TensorRef_::Storage, TensorRef_::kRank, typename TensorRef_::MapFunc, TensorRef_::kStorageGrank, typename TensorRef_::Index, typename TensorRef_::LongIndex> cutlass::make_TensorRefBatchStrided (TensorRef_ const & ref,
    typename TensorRef_::LongIndex batch_stride = 0 
    )
    +
    +
    @@ -1089,6 +1145,126 @@ template<typename First , typename Second >
    +
    + + +

    ◆ operator*() [1/2]

    + +
    +
    +
    +template<typename T , int Rank, typename Index >
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE Coord<Rank, Index> cutlass::operator* (s,
    Coord< Rank, Index > coord 
    )
    +
    + +
    +
    + +

    ◆ operator*() [2/2]

    + +
    +
    +
    +template<typename T , int Rank, typename Index >
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE Coord<Rank, Index> cutlass::operator* (Coord< Rank, Index > coord,
    s 
    )
    +
    + +
    +
    + +

    ◆ operator/() [1/2]

    + +
    +
    +
    +template<typename T , int Rank, typename Index >
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE Coord<Rank, Index> cutlass::operator/ (s,
    Coord< Rank, Index > coord 
    )
    +
    + +
    +
    + +

    ◆ operator/() [2/2]

    + +
    +
    +
    +template<typename T , int Rank, typename Index >
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE Coord<Rank, Index> cutlass::operator/ (Coord< Rank, Index > coord,
    s 
    )
    +
    +
    @@ -1383,7 +1559,7 @@ template<typename dividend_t , typename divisor_t > diff --git a/docs/namespacecutlass_1_1MatrixLayout.html b/docs/namespacecutlass_1_1MatrixLayout.html new file mode 100644 index 00000000..4ca5ba23 --- /dev/null +++ b/docs/namespacecutlass_1_1MatrixLayout.html @@ -0,0 +1,140 @@ + + + + + + + +Cutlass: cutlass::MatrixLayout Namespace Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    cutlass::MatrixLayout Namespace Reference
    +
    +
    + +

    Defines data layouts of various matrix formats usable by TensorRef and other classes. +

    + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  ColumnMajor
     Mapping function for column-major matrices. More...
     
    struct  ColumnMajorBlockLinear
     
    struct  ColumnMajorInterleaved
     
    struct  ContiguousLayout
     
    struct  RowMajor
     Mapping function for row-major matrices. More...
     
    struct  RowMajorBlockLinear
     
    struct  RowMajorInterleaved
     
    + + + + +

    +Enumerations

    enum  Kind { kRowMajor, +kColumnMajor + }
     Enumeration defining fundamental contiguous layouts. More...
     
    +

    Enumeration Type Documentation

    + +

    ◆ Kind

    + +
    +
    + + + + +
    enum cutlass::MatrixLayout::Kind
    +
    + + + +
    Enumerator
    kRowMajor 
    kColumnMajor 
    + +
    +
    +
    + + + + diff --git a/docs/namespacecutlass_1_1detail.html b/docs/namespacecutlass_1_1detail.html index 154ce5c4..52deafcc 100644 --- a/docs/namespacecutlass_1_1detail.html +++ b/docs/namespacecutlass_1_1detail.html @@ -87,7 +87,7 @@ Classes diff --git a/docs/namespacecutlass_1_1gemm.html b/docs/namespacecutlass_1_1gemm.html index 1545f43f..8f3ed155 100644 --- a/docs/namespacecutlass_1_1gemm.html +++ b/docs/namespacecutlass_1_1gemm.html @@ -86,6 +86,8 @@ Classes   struct  ColumnMajorBlockSwizzle   +struct  DeviceGemm +  struct  DgemmConfig   struct  DgemmTraits @@ -308,6 +310,8 @@ Classes   struct  SimplifiedGemmTraitsHelper   +struct  SplitkPIGemmTraits +  struct  swizzleDirection   struct  ThreadMultiplyAdd @@ -471,7 +475,7 @@ template<typename T > diff --git a/docs/namespacecutlass_1_1platform.html b/docs/namespacecutlass_1_1platform.html index b62a896a..de61ab14 100644 --- a/docs/namespacecutlass_1_1platform.html +++ b/docs/namespacecutlass_1_1platform.html @@ -225,6 +225,9 @@ Classes struct  nullptr_t  std::nullptr_t More...
      +struct  Pair + Constructs an iterator from a pair of iterators. More...
    +  struct  plus  platform::plus More...
      @@ -409,6 +412,34 @@ Functions CUTLASS_HOST_DEVICE complex< T > sin (complex< T > const &z)  Computes the sin of complex z. More...
      +template<typename T1 , typename T2 > +Pair< T1, T2 > make_Pair (T1 const &first, T2 const &second) + Constructs a pair and deduces types. More...
    +  +template<typename T1 , typename T2 > +CUTLASS_HOST_DEVICE bool operator== (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs) + Equality. More...
    +  +template<typename T1 , typename T2 > +CUTLASS_HOST_DEVICE bool operator!= (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs) + Inequality. More...
    +  +template<typename T1 , typename T2 > +CUTLASS_HOST_DEVICE bool operator< (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs) + Lexical comparison. More...
    +  +template<typename T1 , typename T2 > +CUTLASS_HOST_DEVICE bool operator<= (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs) + Lexical comparison. More...
    +  +template<typename T1 , typename T2 > +CUTLASS_HOST_DEVICE bool operator> (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs) + Lexical comparison. More...
    +  +template<typename T1 , typename T2 > +CUTLASS_HOST_DEVICE bool operator>= (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs) + Lexical comparison. More...
    +  template<typename T > CUTLASS_HOST_DEVICE constexpr const T & min (const T &a, const T &b)  std::min More...
    @@ -530,150 +561,10 @@ template<>
    -
    - - -

    ◆ __align__() [2/13]

    - -
    -
    -
    -template<>
    - - - - - - - - -
    struct cutlass::platform::__align__ ()
    -
    - -
    -
    - -

    ◆ __align__() [3/13]

    - -
    -
    -
    -template<>
    - - - - - - - - -
    struct cutlass::platform::__align__ ()
    -
    - -
    -
    - -

    ◆ __align__() [4/13]

    - -
    -
    -
    -template<>
    - - - - - - - - -
    struct cutlass::platform::__align__ ()
    -
    - -
    -
    - -

    ◆ __align__() [5/13]

    - -
    -
    -
    -template<>
    - - - - - - - - -
    struct cutlass::platform::__align__ (16 )
    -
    - -
    -
    - -

    ◆ __align__() [6/13]

    - -
    -
    -
    -template<>
    - - - - - - - - -
    struct cutlass::platform::__align__ (512 )
    -
    - -
    -
    - -

    ◆ __align__() [7/13]

    - -
    -
    -
    -template<>
    - - - - - - - - -
    struct cutlass::platform::__align__ (32 )
    -
    - -
    -
    - -

    ◆ __align__() [8/13]

    - -
    -
    -
    -template<>
    - - - - - - - - -
    struct cutlass::platform::__align__ (64 )
    -
    -
    -

    ◆ __align__() [9/13]

    +

    ◆ __align__() [2/13]

    @@ -693,7 +584,7 @@ template<>
    -

    ◆ __align__() [10/13]

    +

    ◆ __align__() [3/13]

    @@ -710,10 +601,30 @@ template<>
    +
    + + +

    ◆ __align__() [4/13]

    + +
    +
    +
    +template<>
    + + + + + + + + +
    struct cutlass::platform::__align__ (512 )
    +
    +
    -

    ◆ __align__() [11/13]

    +

    ◆ __align__() [5/13]

    @@ -733,7 +644,7 @@ template<>
    -

    ◆ __align__() [12/13]

    +

    ◆ __align__() [6/13]

    @@ -753,7 +664,7 @@ template<>
    -

    ◆ __align__() [13/13]

    +

    ◆ __align__() [7/13]

    @@ -770,6 +681,126 @@ template<>
    +
    + + +

    ◆ __align__() [8/13]

    + +
    +
    +
    +template<>
    + + + + + + + + +
    struct cutlass::platform::__align__ ()
    +
    + +
    +
    + +

    ◆ __align__() [9/13]

    + +
    +
    +
    +template<>
    + + + + + + + + +
    struct cutlass::platform::__align__ (64 )
    +
    + +
    +
    + +

    ◆ __align__() [10/13]

    + +
    +
    +
    +template<>
    + + + + + + + + +
    struct cutlass::platform::__align__ ()
    +
    + +
    +
    + +

    ◆ __align__() [11/13]

    + +
    +
    +
    +template<>
    + + + + + + + + +
    struct cutlass::platform::__align__ ()
    +
    + +
    +
    + +

    ◆ __align__() [12/13]

    + +
    +
    +
    +template<>
    + + + + + + + + +
    struct cutlass::platform::__align__ (16 )
    +
    + +
    +
    + +

    ◆ __align__() [13/13]

    + +
    +
    +
    +template<>
    + + + + + + + + +
    struct cutlass::platform::__align__ (32 )
    +
    +
    @@ -1022,6 +1053,36 @@ template<typename T >
    +
    + + +

    ◆ make_Pair()

    + +
    +
    +
    +template<typename T1 , typename T2 >
    + + + + + + + + + + + + + + + + + + +
    Pair<T1, T2> cutlass::platform::make_Pair (T1 const & first,
    T2 const & second 
    )
    +
    +
    @@ -1132,10 +1193,40 @@ template<typename T >
    +
    + + +

    ◆ operator!=() [1/3]

    + +
    +
    +
    +template<typename T1 , typename T2 >
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator!= (Pair< T1, T2 > const & lhs,
    Pair< T1, T2 > const & rhs 
    )
    +
    +
    -

    ◆ operator!=() [1/2]

    +

    ◆ operator!=() [2/3]

    @@ -1165,7 +1256,7 @@ template<class T1 , class T2 >
    -

    ◆ operator!=() [2/2]

    +

    ◆ operator!=() [3/3]

    @@ -1582,10 +1673,40 @@ template<typename T >
    +
    + + +

    ◆ operator<() [1/2]

    + +
    +
    +
    +template<typename T1 , typename T2 >
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator< (Pair< T1, T2 > const & lhs,
    Pair< T1, T2 > const & rhs 
    )
    +
    +
    -

    ◆ operator<()

    +

    ◆ operator<() [2/2]

    @@ -1642,10 +1763,40 @@ template<typename T >
    +
    + + +

    ◆ operator<=() [1/2]

    + +
    +
    +
    +template<typename T1 , typename T2 >
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator<= (Pair< T1, T2 > const & lhs,
    Pair< T1, T2 > const & rhs 
    )
    +
    +
    -

    ◆ operator<=()

    +

    ◆ operator<=() [2/2]

    @@ -1672,10 +1823,40 @@ template<class T1 , class T2 >
    +
    + + +

    ◆ operator==() [1/3]

    + +
    +
    +
    +template<typename T1 , typename T2 >
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator== (Pair< T1, T2 > const & lhs,
    Pair< T1, T2 > const & rhs 
    )
    +
    +
    -

    ◆ operator==() [1/2]

    +

    ◆ operator==() [2/3]

    @@ -1705,7 +1886,7 @@ template<typename T >
    -

    ◆ operator==() [2/2]

    +

    ◆ operator==() [3/3]

    @@ -1732,10 +1913,40 @@ template<class T1 , class T2 >
    +
    + + +

    ◆ operator>() [1/2]

    + +
    +
    +
    +template<typename T1 , typename T2 >
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator> (Pair< T1, T2 > const & lhs,
    Pair< T1, T2 > const & rhs 
    )
    +
    +
    -

    ◆ operator>()

    +

    ◆ operator>() [2/2]

    @@ -1762,10 +1973,40 @@ template<class T1 , class T2 >
    +
    + + +

    ◆ operator>=() [1/2]

    + +
    +
    +
    +template<typename T1 , typename T2 >
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator>= (Pair< T1, T2 > const & lhs,
    Pair< T1, T2 > const & rhs 
    )
    +
    +
    -

    ◆ operator>=()

    +

    ◆ operator>=() [2/2]

    @@ -2037,7 +2278,7 @@ template<typename T , typename Deleter >
    diff --git a/docs/namespacecutlass_1_1reduction.html b/docs/namespacecutlass_1_1reduction.html new file mode 100644 index 00000000..275ab211 --- /dev/null +++ b/docs/namespacecutlass_1_1reduction.html @@ -0,0 +1,137 @@ + + + + + + + +Cutlass: cutlass::reduction Namespace Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    cutlass::reduction Namespace Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  BatchedReduction
     
    struct  BatchedReductionTraits
     
    struct  DefaultBlockSwizzle
     
    + + + + +

    +Functions

    template<typename batched_reduction_ >
    __global__ __launch_bounds__ (batched_reduction_::Traits::kThreads, 1) void batched_reduction_kernel(typename batched_reduction_
     
    +

    Function Documentation

    + +

    ◆ __launch_bounds__()

    + +
    +
    +
    +template<typename batched_reduction_ >
    + + + + + + + + + + + + + + + + + + +
    __global__ cutlass::reduction::__launch_bounds__ (batched_reduction_::Traits::kThreads ,
     
    )
    +
    + +
    +
    +
    + + + + diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html index a522eab7..055baa08 100644 --- a/docs/namespacemembers.html +++ b/docs/namespacemembers.html @@ -73,10 +73,11 @@ $(function() {

    - _ -

    @@ -145,7 +146,7 @@ $(function() { : cutlass::platform
  • is_zero() -: cutlass::gemm +: cutlass::gemm
  • iterator_load() : cutlass @@ -156,6 +157,19 @@ $(function() { +

    - k -

    + +

    - l -

    @@ -298,7 +320,7 @@ $(function() { diff --git a/docs/namespacemembers_enum.html b/docs/namespacemembers_enum.html new file mode 100644 index 00000000..abcb046f --- /dev/null +++ b/docs/namespacemembers_enum.html @@ -0,0 +1,84 @@ + + + + + + + +Cutlass: Namespace Members + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + + diff --git a/docs/namespacemembers_eval.html b/docs/namespacemembers_eval.html new file mode 100644 index 00000000..2fa3b7af --- /dev/null +++ b/docs/namespacemembers_eval.html @@ -0,0 +1,87 @@ + + + + + + + +Cutlass: Namespace Members + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + + diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html index 4fa93a9d..d027d163 100644 --- a/docs/namespacemembers_func.html +++ b/docs/namespacemembers_func.html @@ -73,10 +73,11 @@ $(function() {

    - _ -

    @@ -173,9 +174,15 @@ $(function() {
  • make_Coord_from_shape() : cutlass
  • +
  • make_Pair() +: cutlass::platform +
  • make_pair() : cutlass::platform
  • +
  • make_TensorRefBatchStrided() +: cutlass +
  • make_zero() : cutlass
  • @@ -209,7 +216,8 @@ $(function() { : cutlass::platform
  • operator*() -: cutlass::platform +: cutlass +, cutlass::platform
  • operator*=() : cutlass::platform @@ -227,29 +235,30 @@ $(function() { : cutlass::platform
  • operator/() -: cutlass::platform +: cutlass +, cutlass::platform
  • operator/=() : cutlass::platform
  • operator<() -: cutlass::platform +: cutlass::platform
  • operator<<() -: cutlass +: cutlass , cutlass::platform
  • operator<=() -: cutlass::platform +: cutlass::platform
  • operator==() : cutlass::platform
  • operator>() -: cutlass::platform +: cutlass::platform
  • operator>=() -: cutlass::platform +: cutlass::platform
  • @@ -288,7 +297,7 @@ $(function() { diff --git a/docs/namespacemembers_type.html b/docs/namespacemembers_type.html index 29d99bfe..fd9c088e 100644 --- a/docs/namespacemembers_type.html +++ b/docs/namespacemembers_type.html @@ -79,7 +79,7 @@ $(function() { diff --git a/docs/namespaces.html b/docs/namespaces.html index cc874550..7d1f6193 100644 --- a/docs/namespaces.html +++ b/docs/namespaces.html @@ -77,13 +77,15 @@ $(function() {  Ncutlass  Ndetail  Ngemm - Nplatform + NMatrixLayoutDefines data layouts of various matrix formats usable by TensorRef and other classes + Nplatform + Nreduction diff --git a/docs/numeric__types_8h.html b/docs/numeric__types_8h.html index eacdfc9a..40d99572 100644 --- a/docs/numeric__types_8h.html +++ b/docs/numeric__types_8h.html @@ -99,7 +99,7 @@ Namespaces diff --git a/docs/numeric__types_8h_source.html b/docs/numeric__types_8h_source.html index 1d6bc27b..2ca1349d 100644 --- a/docs/numeric__types_8h_source.html +++ b/docs/numeric__types_8h_source.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/pair_8h.html b/docs/pair_8h.html new file mode 100644 index 00000000..02215299 --- /dev/null +++ b/docs/pair_8h.html @@ -0,0 +1,141 @@ + + + + + + + +Cutlass: pair.h File Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pair.h File Reference
    +
    +
    + +

    Defines a pair<> +More...

    + +

    Go to the source code of this file.

    + + + + + +

    +Classes

    struct  cutlass::platform::Pair< T1, T2 >
     Constructs an iterator from a pair of iterators. More...
     
    + + + + + +

    +Namespaces

     cutlass
     
     cutlass::platform
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<typename T1 , typename T2 >
    Pair< T1, T2 > cutlass::platform::make_Pair (T1 const &first, T2 const &second)
     Constructs a pair and deduces types. More...
     
    template<typename T1 , typename T2 >
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator== (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)
     Equality. More...
     
    template<typename T1 , typename T2 >
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator!= (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)
     Inequality. More...
     
    template<typename T1 , typename T2 >
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator< (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)
     Lexical comparison. More...
     
    template<typename T1 , typename T2 >
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator<= (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)
     Lexical comparison. More...
     
    template<typename T1 , typename T2 >
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator> (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)
     Lexical comparison. More...
     
    template<typename T1 , typename T2 >
    CUTLASS_HOST_DEVICE bool cutlass::platform::operator>= (Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)
     Lexical comparison. More...
     
    +
    + + + + diff --git a/docs/pair_8h_source.html b/docs/pair_8h_source.html new file mode 100644 index 00000000..422267bb --- /dev/null +++ b/docs/pair_8h_source.html @@ -0,0 +1,101 @@ + + + + + + + +Cutlass: pair.h Source File + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pair.h
    +
    +
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    25 
    30 #pragma once
    31 
    32 namespace cutlass {
    33 namespace platform {
    34 
    36 
    38 template <typename T1, typename T2>
    39 struct Pair {
    40 
    41  typedef T1 first_type;
    42  typedef T2 second_type;
    43 
    44  //
    45  // Data members
    46  //
    47 
    48  T1 first;
    49  T1 second;
    50 
    51  //
    52  // Methods
    53  //
    54 
    57  Pair() { }
    58 
    61  Pair(T1 const &first_, T2 const &second_): first(first_), second(second_) { }
    62 };
    63 
    65 template <typename T1, typename T2>
    66 Pair<T1, T2> make_Pair(T1 const &first, T2 const &second) {
    67  return Pair<T1, T2>(first, second);
    68 }
    69 
    71 template <typename T1, typename T2>
    73 bool operator==(Pair<T1,T2> const &lhs, Pair<T1,T2> const &rhs) {
    74  return (lhs.first == rhs.first) && (lhs.second == rhs.second);
    75 }
    76 
    78 template <typename T1, typename T2>
    80 bool operator!=(Pair<T1,T2> const &lhs, Pair<T1,T2> const &rhs) {
    81  return !(lhs == rhs);
    82 }
    83 
    85 template <typename T1, typename T2>
    87 bool operator<(Pair<T1,T2> const &lhs, Pair<T1,T2> const &rhs) {
    88  if (lhs.first < rhs.first) {
    89  return true;
    90  }
    91  else if (rhs.first < lhs.first) {
    92  return false;
    93  }
    94  else if (rhs.second < rhs.second) {
    95  return false;
    96  }
    97  return false;
    98 }
    99 
    101 template <typename T1, typename T2>
    103 bool operator<=(Pair<T1,T2> const &lhs, Pair<T1,T2> const &rhs) {
    104  return !(rhs < lhs);
    105 }
    106 
    108 template <typename T1, typename T2>
    110 bool operator>(Pair<T1,T2> const &lhs, Pair<T1,T2> const &rhs) {
    111  return (rhs < lhs);
    112 }
    113 
    115 template <typename T1, typename T2>
    117 bool operator>=(Pair<T1,T2> const &lhs, Pair<T1,T2> const &rhs) {
    118  return !(lhs < rhs);
    119 }
    120 
    122 
    123 } // namespace platform
    124 } // namespace cutlass
    Definition: convert.h:33
    +
    CUTLASS_HOST_DEVICE bool operator==(complex< T > const &lhs, complex< T > const &rhs)
    Equality operator.
    Definition: complex.h:224
    +
    Pair< T1, T2 > make_Pair(T1 const &first, T2 const &second)
    Constructs a pair and deduces types.
    Definition: pair.h:66
    +
    CUTLASS_HOST_DEVICE Pair()
    Default constructor.
    Definition: pair.h:57
    +
    CUTLASS_HOST_DEVICE bool operator>(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)
    Lexical comparison.
    Definition: pair.h:110
    +
    T1 first_type
    Definition: pair.h:41
    +
    T2 second_type
    Definition: pair.h:42
    +
    #define CUTLASS_HOST_DEVICE
    Definition: cutlass.h:46
    +
    T1 second
    Definition: pair.h:49
    +
    CUTLASS_HOST_DEVICE bool operator!=(complex< T > const &lhs, complex< T > const &rhs)
    Inequality operator.
    Definition: complex.h:232
    +
    CUTLASS_HOST_DEVICE Pair(T1 const &first_, T2 const &second_)
    Constructs a pair.
    Definition: pair.h:61
    +
    Constructs an iterator from a pair of iterators.
    Definition: pair.h:39
    +
    T1 first
    Definition: pair.h:48
    +
    CUTLASS_HOST_DEVICE bool operator>=(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)
    Lexical comparison.
    Definition: pair.h:117
    +
    + + + + diff --git a/docs/performance__tuning_8h.html b/docs/performance__tuning_8h.html new file mode 100644 index 00000000..a8812372 --- /dev/null +++ b/docs/performance__tuning_8h.html @@ -0,0 +1,160 @@ + + + + + + + +Cutlass: performance_tuning.h File Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    performance_tuning.h File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + + + +

    +Macros

    #define CUTLASS_PERFORMANCE_TUNING_H
     
    #define CUTLASS_PRAGMA_UNROLL
     
    #define CUTLASS_PRAGMA_NO_UNROLL
     
    #define CUTLASS_GEMM_LOOP   CUTLASS_PRAGMA_NO_UNROLL
     
    +

    Macro Definition Documentation

    + +

    ◆ CUTLASS_GEMM_LOOP

    + +
    +
    + + + + +
    #define CUTLASS_GEMM_LOOP   CUTLASS_PRAGMA_NO_UNROLL
    +
    + +
    +
    + +

    ◆ CUTLASS_PERFORMANCE_TUNING_H

    + +
    +
    + + + + +
    #define CUTLASS_PERFORMANCE_TUNING_H
    +
    + +
    +
    + +

    ◆ CUTLASS_PRAGMA_NO_UNROLL

    + +
    +
    + + + + +
    #define CUTLASS_PRAGMA_NO_UNROLL
    +
    + +
    +
    + +

    ◆ CUTLASS_PRAGMA_UNROLL

    + +
    +
    + + + + +
    #define CUTLASS_PRAGMA_UNROLL
    +
    + +
    +
    +
    + + + + diff --git a/docs/performance__tuning_8h_source.html b/docs/performance__tuning_8h_source.html new file mode 100644 index 00000000..20f73ac8 --- /dev/null +++ b/docs/performance__tuning_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +Cutlass: performance_tuning.h Source File + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    performance_tuning.h
    +
    +
    +Go to the documentation of this file.
    1 /******************************************************************************
    2  * Copyright (c) 2011-2017, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without
    5  * modification, are not permitted.
    6  *
    7  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
    8  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    9  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    10  * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY
    11  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    12  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    13  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    14  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    15  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    16  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    17  *
    18  ******************************************************************************/
    19 
    20 #pragma once
    21 #ifndef CUTLASS_PERFORMANCE_TUNING_H
    22 #define CUTLASS_PERFORMANCE_TUNING_H
    23 
    24 // CUTLASS_PRAGMA_(UNROLL|NO_UNROLL) optimization directives for the CUDA compiler.
    25 
    26 #if defined(__CUDA_ARCH__)
    27 #if defined(_MSC_VER)
    28 #define CUTLASS_PRAGMA_UNROLL __pragma("unroll")
    29 #define CUTLASS_PRAGMA_NO_UNROLL __pragma("unroll 1")
    30 #else
    31 #define CUTLASS_PRAGMA_UNROLL _Pragma("unroll")
    32 #define CUTLASS_PRAGMA_NO_UNROLL _Pragma("unroll 1")
    33 #endif
    34 #else
    35 #define CUTLASS_PRAGMA_UNROLL
    36 #define CUTLASS_PRAGMA_NO_UNROLL
    37 #endif
    38 
    39 #define CUTLASS_GEMM_LOOP CUTLASS_PRAGMA_NO_UNROLL
    40 #endif // CUTLASS_PERFORMANCE_TUNING_H
    + + + + diff --git a/docs/platform_8h.html b/docs/platform_8h.html index a45532dd..68c4f7f5 100644 --- a/docs/platform_8h.html +++ b/docs/platform_8h.html @@ -624,7 +624,7 @@ Functions diff --git a/docs/platform_8h_source.html b/docs/platform_8h_source.html index a3d6f536..90efe961 100644 --- a/docs/platform_8h_source.html +++ b/docs/platform_8h_source.html @@ -76,7 +76,7 @@ $(function() {
    platform.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    25 
    26 #pragma once
    27 
    94 //-----------------------------------------------------------------------------
    95 // Dependencies
    96 //-----------------------------------------------------------------------------
    97 
    98 #include <stdint.h>
    99 
    100 #if !defined(__CUDACC_RTC__)
    101 //-----------------------------------------------------------------------------
    102 // Include STL files that platform provides functionality for
    103 //-----------------------------------------------------------------------------
    104 
    105 #include <algorithm> // Minimum/maximum operations
    106 #include <cstddef> // nullptr_t
    107 #include <functional> // Arithmetic operations
    108 #include <utility> // For methods on std::pair
    109 #if (!defined(_MSC_VER) && (__cplusplus >= 201103L)) || (defined(_MSC_VER) && (_MS_VER >= 1500))
    110 #include <type_traits> // For integral constants, conditional metaprogramming, and type traits
    111 #endif
    112 
    113 #include "cutlass/cutlass.h"
    114 
    115 #endif
    116 
    117 //-----------------------------------------------------------------------------
    118 // OS
    119 //-----------------------------------------------------------------------------
    120 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
    121 #define CUTLASS_OS_WINDOWS
    122 #endif
    123 
    124 /******************************************************************************
    125  * Macros
    126  ******************************************************************************/
    127 //-----------------------------------------------------------------------------
    128 // Keywords
    129 //-----------------------------------------------------------------------------
    130 
    132 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1900))
    133 #ifndef noexcept
    134 #define noexcept
    135 #endif
    136 #ifndef constexpr
    137 #define constexpr
    138 #endif
    139 #endif
    140 
    142 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1310))
    143 #ifndef nullptr
    144 #define nullptr 0
    145 #endif
    146 #endif
    147 
    149 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1600))
    150 #ifndef static_assert
    151 #define __platform_cat_(a, b) a##b
    152 #define __platform_cat(a, b) __platform_cat_(a, b)
    153 #define static_assert(__e, __m) typedef int __platform_cat(AsSeRt, __LINE__)[(__e) ? 1 : -1]
    154 #endif
    155 #endif
    156 
    157 //-----------------------------------------------------------------------------
    158 // Functions
    159 //-----------------------------------------------------------------------------
    160 
    162 #ifndef __NV_STD_MAX
    163 #define __NV_STD_MAX(a, b) (((b) > (a)) ? (b) : (a))
    164 #endif
    165 
    167 #ifndef __NV_STD_MIN
    168 #define __NV_STD_MIN(a, b) (((b) < (a)) ? (b) : (a))
    169 #endif
    170 
    171 /******************************************************************************
    172  * Re-implementations
    173  ******************************************************************************/
    174 namespace cutlass {
    175 namespace platform {
    176 
    177 //-----------------------------------------------------------------------------
    178 // Arithmetic operations, comparisons <functional>
    179 //-----------------------------------------------------------------------------
    180 
    182 template <typename T>
    183 struct plus {
    184  CUTLASS_HOST_DEVICE constexpr T operator()(const T& lhs, const T& rhs) const { return lhs + rhs; }
    185 };
    186 
    188 template <typename T>
    189 struct less {
    190  CUTLASS_HOST_DEVICE constexpr bool operator()(const T& lhs, const T& rhs) const {
    191  return lhs < rhs;
    192  }
    193 };
    194 
    196 template <typename T>
    197 struct greater {
    198  CUTLASS_HOST_DEVICE constexpr bool operator()(const T& lhs, const T& rhs) const {
    199  return lhs > rhs;
    200  }
    201 };
    202 
    203 //-----------------------------------------------------------------------------
    204 // Minimum/maximum operations <algorithm>
    205 //-----------------------------------------------------------------------------
    206 
    208 template <typename T>
    209 CUTLASS_HOST_DEVICE constexpr const T& min(const T& a, const T& b) {
    210  return (b < a) ? b : a;
    211 }
    212 
    214 template <typename T>
    215 CUTLASS_HOST_DEVICE constexpr const T& max(const T& a, const T& b) {
    216  return (a < b) ? b : a;
    217 }
    218 
    219 #if !defined(__CUDACC_RTC__)
    220 //-----------------------------------------------------------------------------
    221 // Methods on std::pair
    222 //-----------------------------------------------------------------------------
    223 
    224 using std::pair;
    225 
    226 template <class T1, class T2>
    227 CUTLASS_HOST_DEVICE constexpr bool operator==(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    228  return (lhs.first == rhs.first) && (lhs.second == rhs.second);
    229 }
    230 
    231 template <class T1, class T2>
    232 CUTLASS_HOST_DEVICE constexpr bool operator!=(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    233  return (lhs.first != rhs.first) && (lhs.second != rhs.second);
    234 }
    235 
    236 template <class T1, class T2>
    237 CUTLASS_HOST_DEVICE constexpr bool operator<(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    238  return (lhs.first < rhs.first) ? true : (rhs.first < lhs.first) ? false
    239  : (lhs.second < rhs.second);
    240 }
    241 
    242 template <class T1, class T2>
    243 CUTLASS_HOST_DEVICE constexpr bool operator<=(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    244  return !(rhs < lhs);
    245 }
    246 
    247 template <class T1, class T2>
    248 CUTLASS_HOST_DEVICE constexpr bool operator>(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    249  return (rhs < lhs);
    250 }
    251 
    252 template <class T1, class T2>
    253 CUTLASS_HOST_DEVICE constexpr bool operator>=(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    254  return !(lhs < rhs);
    255 }
    256 
    257 template <class T1, class T2>
    258 CUTLASS_HOST_DEVICE std::pair<T1, T2> make_pair(T1 t, T2 u) {
    259  std::pair<T1, T2> retval;
    260  retval.first = t;
    261  retval.second = u;
    262  return retval;
    263 }
    264 #endif
    265 
    266 } // namespace platform
    267 
    268 /******************************************************************************
    269  * Implementations of C++ 11/14/17/... STL features
    270  ******************************************************************************/
    271 
    272 namespace platform {
    273 
    274 //-----------------------------------------------------------------------------
    275 // Integral constant helper types <type_traits>
    276 //-----------------------------------------------------------------------------
    277 
    278 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))
    279 
    281 template <typename value_t, value_t V>
    283 
    285 template <typename value_t, value_t V>
    286 struct integral_constant {
    287  static const value_t value = V;
    288 
    289  typedef value_t value_type;
    291 
    292  CUTLASS_HOST_DEVICE operator value_type() const { return value; }
    293 
    294  CUTLASS_HOST_DEVICE const value_type operator()() const { return value; }
    295 };
    296 
    297 #else
    298 
    299 using std::integral_constant;
    300 using std::pair;
    301 
    302 #endif
    303 
    306 
    309 
    310 #if (!defined(_MSC_VER) && (__cplusplus <= 201402L)) || (defined(_MSC_VER) && (_MSC_VER < 1900))
    311 
    313 template <bool V>
    315 
    316 #else
    317 
    318 using std::bool_constant;
    319 
    320 #endif
    321 
    322 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1700))
    323 
    325 struct nullptr_t {};
    326 
    327 #else
    328 
    329 using std::nullptr_t;
    330 
    331 #endif
    332 
    333 //-----------------------------------------------------------------------------
    334 // Conditional metaprogramming <type_traits>
    335 //-----------------------------------------------------------------------------
    336 
    337 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1600))
    338 
    340 template <bool C, typename T = void>
    341 struct enable_if {
    342  typedef T type;
    343 };
    344 
    346 template <typename T>
    347 struct enable_if<false, T> {};
    348 
    350 template <bool B, class T, class F>
    351 struct conditional {
    352  typedef T type;
    353 };
    354 
    356 template <class T, class F>
    357 struct conditional<false, T, F> {
    358  typedef F type;
    359 };
    360 
    361 #else
    362 
    363 using std::enable_if;
    364 using std::conditional;
    365 
    366 #endif
    367 
    368 //-----------------------------------------------------------------------------
    369 // Const/volatility specifiers <type_traits>
    370 //-----------------------------------------------------------------------------
    371 
    372 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))
    373 
    375 template <typename T>
    376 struct remove_const {
    377  typedef T type;
    378 };
    379 
    381 template <typename T>
    382 struct remove_const<const T> {
    383  typedef T type;
    384 };
    385 
    387 template <typename T>
    389  typedef T type;
    390 };
    391 
    393 template <typename T>
    394 struct remove_volatile<volatile T> {
    395  typedef T type;
    396 };
    397 
    399 template <typename T>
    400 struct remove_cv {
    402 };
    403 
    404 #else
    405 
    406 using std::remove_const;
    407 using std::remove_volatile;
    408 using std::remove_cv;
    409 
    410 #endif
    411 
    412 //-----------------------------------------------------------------------------
    413 // Type relationships <type_traits>
    414 //-----------------------------------------------------------------------------
    415 
    416 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))
    417 
    419 template <typename A, typename B>
    420 struct is_same : false_type {};
    421 
    423 template <typename A>
    424 struct is_same<A, A> : true_type {};
    425 
    427 template <typename BaseT, typename DerivedT>
    429  typedef char (&yes)[1];
    430  typedef char (&no)[2];
    431 
    432  template <typename B, typename D>
    433  struct dummy {
    434  CUTLASS_HOST_DEVICE operator B*() const;
    435  CUTLASS_HOST_DEVICE operator D*();
    436  };
    437 
    438  template <typename T>
    439  CUTLASS_HOST_DEVICE static yes check(DerivedT*, T);
    440 
    441  CUTLASS_HOST_DEVICE static no check(BaseT*, int);
    442 
    443  static const bool value = sizeof(check(dummy<BaseT, DerivedT>(), int())) == sizeof(yes);
    444 };
    445 
    447 template <typename BaseT, typename DerivedT>
    449  : integral_constant<bool,
    450  (is_base_of_helper<typename remove_cv<BaseT>::type,
    451  typename remove_cv<DerivedT>::type>::value) ||
    452  (is_same<typename remove_cv<BaseT>::type,
    453  typename remove_cv<DerivedT>::type>::value)> {};
    454 
    455 #else
    456 
    457 using std::is_same;
    458 using std::is_base_of;
    459 
    460 #endif
    461 
    462 //-----------------------------------------------------------------------------
    463 // Type properties <type_traits>
    464 //-----------------------------------------------------------------------------
    465 
    466 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))
    467 
    469 template <typename T>
    471 template <typename T>
    472 struct is_volatile<volatile T> : true_type {};
    473 
    475 template <typename T>
    477 
    479 template <typename T>
    480 struct is_pointer_helper<T*> : true_type {};
    481 
    483 template <typename T>
    484 struct is_pointer : is_pointer_helper<typename remove_cv<T>::type> {};
    485 
    487 template <typename T>
    488 struct is_void : is_same<void, typename remove_cv<T>::type> {};
    489 
    491 template <typename T>
    493 template <>
    494 struct is_integral<char> : true_type {};
    495 template <>
    496 struct is_integral<signed char> : true_type {};
    497 template <>
    498 struct is_integral<unsigned char> : true_type {};
    499 template <>
    500 struct is_integral<short> : true_type {};
    501 template <>
    502 struct is_integral<unsigned short> : true_type {};
    503 template <>
    504 struct is_integral<int> : true_type {};
    505 template <>
    506 struct is_integral<unsigned int> : true_type {};
    507 template <>
    508 struct is_integral<long> : true_type {};
    509 template <>
    510 struct is_integral<unsigned long> : true_type {};
    511 template <>
    512 struct is_integral<long long> : true_type {};
    513 template <>
    514 struct is_integral<unsigned long long> : true_type {};
    515 template <typename T>
    516 struct is_integral<volatile T> : is_integral<T> {};
    517 template <typename T>
    518 struct is_integral<const T> : is_integral<T> {};
    519 template <typename T>
    520 struct is_integral<const volatile T> : is_integral<T> {};
    521 
    523 template <typename T>
    525  : integral_constant<bool,
    526  (is_same<float, typename remove_cv<T>::type>::value ||
    527  is_same<double, typename remove_cv<T>::type>::value)> {};
    528 
    530 template <typename T>
    532  : integral_constant<bool, (is_integral<T>::value || is_floating_point<T>::value)> {};
    533 
    535 template <typename T>
    537  : integral_constant<bool,
    538  (is_arithmetic<T>::value || is_void<T>::value ||
    539  is_same<nullptr_t, typename remove_cv<T>::type>::value)> {};
    540 
    541 #else
    542 
    543 using std::is_volatile;
    544 using std::is_pointer;
    545 using std::is_void;
    546 using std::is_integral;
    547 using std::is_floating_point;
    548 using std::is_arithmetic;
    549 using std::is_fundamental;
    550 
    551 #endif
    552 
    553 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1800)) || \
    554  (defined(__GNUG__) && (__GNUC__ < 5))
    555 
    566 template <typename T>
    568  : integral_constant<bool, (is_fundamental<T>::value || is_pointer<T>::value)> {};
    569 
    570 #else
    571 
    572 using std::is_trivially_copyable;
    573 
    574 #endif
    575 
    576 //-----------------------------------------------------------------------------
    577 // Alignment and layout utilities
    578 //-----------------------------------------------------------------------------
    579 
    580 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))
    581 
    583 template <typename value_t>
    584 struct alignment_of {
    585  struct pad {
    586  value_t val;
    587  char byte;
    588  };
    589 
    590  enum { value = sizeof(pad) - sizeof(value_t) };
    591 };
    592 
    593 #else
    594 
    595 template <typename value_t>
    596 struct alignment_of : std::alignment_of<value_t> {};
    597 
    598 #endif
    599 
    600 /* 16B specializations where 32-bit Win32 host compiler disagrees with device compiler */
    601 template <>
    602 struct alignment_of<int4> {
    603  enum { value = 16 };
    604 };
    605 template <>
    606 struct alignment_of<uint4> {
    607  enum { value = 16 };
    608 };
    609 template <>
    610 struct alignment_of<float4> {
    611  enum { value = 16 };
    612 };
    613 template <>
    614 struct alignment_of<long4> {
    615  enum { value = 16 };
    616 };
    617 template <>
    618 struct alignment_of<ulong4> {
    619  enum { value = 16 };
    620 };
    621 template <>
    622 struct alignment_of<longlong2> {
    623  enum { value = 16 };
    624 };
    625 template <>
    626 struct alignment_of<ulonglong2> {
    627  enum { value = 16 };
    628 };
    629 template <>
    630 struct alignment_of<double2> {
    631  enum { value = 16 };
    632 };
    633 template <>
    634 struct alignment_of<longlong4> {
    635  enum { value = 16 };
    636 };
    637 template <>
    638 struct alignment_of<ulonglong4> {
    639  enum { value = 16 };
    640 };
    641 template <>
    642 struct alignment_of<double4> {
    643  enum { value = 16 };
    644 };
    645 
    646 // Specializations for volatile/const qualified types
    647 template <typename value_t>
    648 struct alignment_of<volatile value_t> : alignment_of<value_t> {};
    649 template <typename value_t>
    650 struct alignment_of<const value_t> : alignment_of<value_t> {};
    651 template <typename value_t>
    652 struct alignment_of<const volatile value_t> : alignment_of<value_t> {};
    653 
    654 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1800))
    655 
    656 template <size_t Align>
    658 template <>
    659 struct __align__(1) aligned_chunk<1> {
    660  uint8_t buff;
    661 };
    662 template <>
    663 struct __align__(2) aligned_chunk<2> {
    664  uint16_t buff;
    665 };
    666 template <>
    667 struct __align__(4) aligned_chunk<4> {
    668  uint32_t buff;
    669 };
    670 template <>
    671 struct __align__(8) aligned_chunk<8> {
    672  uint32_t buff[2];
    673 };
    674 template <>
    675 struct __align__(16) aligned_chunk<16> {
    676  uint32_t buff[4];
    677 };
    678 template <>
    679 struct __align__(32) aligned_chunk<32> {
    680  uint32_t buff[8];
    681 };
    682 template <>
    683 struct __align__(64) aligned_chunk<64> {
    684  uint32_t buff[16];
    685 };
    686 template <>
    687 struct __align__(128) aligned_chunk<128> {
    688  uint32_t buff[32];
    689 };
    690 template <>
    691 struct __align__(256) aligned_chunk<256> {
    692  uint32_t buff[64];
    693 };
    694 template <>
    695 struct __align__(512) aligned_chunk<512> {
    696  uint32_t buff[128];
    697 };
    698 template <>
    699 struct __align__(1024) aligned_chunk<1024> {
    700  uint32_t buff[256];
    701 };
    702 template <>
    703 struct __align__(2048) aligned_chunk<2048> {
    704  uint32_t buff[512];
    705 };
    706 template <>
    707 struct __align__(4096) aligned_chunk<4096> {
    708  uint32_t buff[1024];
    709 };
    710 
    712 template <size_t Len, size_t Align>
    715 };
    716 
    717 #else
    718 
    719 using std::aligned_storage;
    720 
    721 #endif
    722 
    723 #if !defined(__CUDACC_RTC__)
    724 template <typename T>
    727  void operator()(T* ptr) const { delete ptr; }
    728 };
    729 
    731 template <typename T>
    732 struct default_delete<T[]> {
    733  void operator()(T* ptr) const { delete[] ptr; }
    734 };
    735 
    737 template <class T, class Deleter = default_delete<T> >
    738 class unique_ptr {
    739  public:
    740  typedef T* pointer;
    741  typedef T element_type;
    742  typedef Deleter deleter_type;
    743 
    744  private:
    746  pointer _ptr;
    747 
    749  deleter_type _deleter;
    750 
    751  public:
    752  unique_ptr() : _ptr(nullptr) {}
    753  unique_ptr(pointer p) : _ptr(p) {}
    754 
    756  if (_ptr) {
    757  _deleter(_ptr);
    758  }
    759  }
    761  pointer get() const noexcept { return _ptr; }
    762 
    765  pointer p(_ptr);
    766  _ptr = nullptr;
    767  return p;
    768  }
    769 
    772  pointer old_ptr = _ptr;
    773  _ptr = p;
    774  if (old_ptr != nullptr) {
    775  get_deleter()(old_ptr);
    776  }
    777  }
    778 
    780  void swap(unique_ptr& other) noexcept { std::swap(_ptr, other._ptr); }
    781 
    783  Deleter& get_deleter() noexcept { return _deleter; }
    784 
    786  Deleter const& get_deleter() const noexcept { return _deleter; }
    787 
    789  operator bool() const noexcept { return _ptr != nullptr; }
    790 
    792  T& operator*() const { return *_ptr; }
    793 
    795  pointer operator->() const noexcept { return _ptr; }
    796 
    798  T& operator[](size_t i) const { return _ptr[i]; }
    799 };
    800 
    802 template <typename T, typename Deleter>
    804  lhs.swap(rhs);
    805 }
    806 #endif
    807 
    808 }; // namespace platform
    809 }; // namespace cutlass
    static const value_t value
    Definition: platform.h:287
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    25 
    26 #pragma once
    27 
    94 //-----------------------------------------------------------------------------
    95 // Dependencies
    96 //-----------------------------------------------------------------------------
    97 
    98 #include <stdint.h>
    99 
    100 #if !defined(__CUDACC_RTC__)
    101 //-----------------------------------------------------------------------------
    102 // Include STL files that platform provides functionality for
    103 //-----------------------------------------------------------------------------
    104 
    105 #include <algorithm> // Minimum/maximum operations
    106 #include <cstddef> // nullptr_t
    107 #include <functional> // Arithmetic operations
    108 #include <utility> // For methods on std::pair
    109 #if (!defined(_MSC_VER) && (__cplusplus >= 201103L)) || (defined(_MSC_VER) && (_MS_VER >= 1500))
    110 #include <type_traits> // For integral constants, conditional metaprogramming, and type traits
    111 #endif
    112 
    113 #include "cutlass/cutlass.h"
    114 
    115 #endif
    116 
    117 //-----------------------------------------------------------------------------
    118 // OS
    119 //-----------------------------------------------------------------------------
    120 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
    121 #define CUTLASS_OS_WINDOWS
    122 #endif
    123 
    124 /******************************************************************************
    125  * Macros
    126  ******************************************************************************/
    127 //-----------------------------------------------------------------------------
    128 // Keywords
    129 //-----------------------------------------------------------------------------
    130 
    132 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1900))
    133 #ifndef noexcept
    134 #define noexcept
    135 #endif
    136 #ifndef constexpr
    137 #define constexpr
    138 #endif
    139 #endif
    140 
    142 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1310))
    143 #ifndef nullptr
    144 #define nullptr 0
    145 #endif
    146 #endif
    147 
    149 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1600))
    150 #ifndef static_assert
    151 #define __platform_cat_(a, b) a##b
    152 #define __platform_cat(a, b) __platform_cat_(a, b)
    153 #define static_assert(__e, __m) typedef int __platform_cat(AsSeRt, __LINE__)[(__e) ? 1 : -1]
    154 #endif
    155 #endif
    156 
    157 //-----------------------------------------------------------------------------
    158 // Functions
    159 //-----------------------------------------------------------------------------
    160 
    162 #ifndef __NV_STD_MAX
    163 #define __NV_STD_MAX(a, b) (((b) > (a)) ? (b) : (a))
    164 #endif
    165 
    167 #ifndef __NV_STD_MIN
    168 #define __NV_STD_MIN(a, b) (((b) < (a)) ? (b) : (a))
    169 #endif
    170 
    171 /******************************************************************************
    172  * Re-implementations
    173  ******************************************************************************/
    174 namespace cutlass {
    175 namespace platform {
    176 
    177 //-----------------------------------------------------------------------------
    178 // Arithmetic operations, comparisons <functional>
    179 //-----------------------------------------------------------------------------
    180 
    182 template <typename T>
    183 struct plus {
    184  CUTLASS_HOST_DEVICE constexpr T operator()(const T& lhs, const T& rhs) const { return lhs + rhs; }
    185 };
    186 
    188 template <typename T>
    189 struct less {
    190  CUTLASS_HOST_DEVICE constexpr bool operator()(const T& lhs, const T& rhs) const {
    191  return lhs < rhs;
    192  }
    193 };
    194 
    196 template <typename T>
    197 struct greater {
    198  CUTLASS_HOST_DEVICE constexpr bool operator()(const T& lhs, const T& rhs) const {
    199  return lhs > rhs;
    200  }
    201 };
    202 
    203 //-----------------------------------------------------------------------------
    204 // Minimum/maximum operations <algorithm>
    205 //-----------------------------------------------------------------------------
    206 
    208 template <typename T>
    209 CUTLASS_HOST_DEVICE constexpr const T& min(const T& a, const T& b) {
    210  return (b < a) ? b : a;
    211 }
    212 
    214 template <typename T>
    215 CUTLASS_HOST_DEVICE constexpr const T& max(const T& a, const T& b) {
    216  return (a < b) ? b : a;
    217 }
    218 
    219 #if !defined(__CUDACC_RTC__)
    220 //-----------------------------------------------------------------------------
    221 // Methods on std::pair
    222 //-----------------------------------------------------------------------------
    223 
    224 using std::pair;
    225 
    226 template <class T1, class T2>
    227 CUTLASS_HOST_DEVICE constexpr bool operator==(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    228  return (lhs.first == rhs.first) && (lhs.second == rhs.second);
    229 }
    230 
    231 template <class T1, class T2>
    232 CUTLASS_HOST_DEVICE constexpr bool operator!=(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    233  return (lhs.first != rhs.first) && (lhs.second != rhs.second);
    234 }
    235 
    236 template <class T1, class T2>
    237 CUTLASS_HOST_DEVICE constexpr bool operator<(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    238  return (lhs.first < rhs.first) ? true : (rhs.first < lhs.first) ? false
    239  : (lhs.second < rhs.second);
    240 }
    241 
    242 template <class T1, class T2>
    243 CUTLASS_HOST_DEVICE constexpr bool operator<=(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    244  return !(rhs < lhs);
    245 }
    246 
    247 template <class T1, class T2>
    248 CUTLASS_HOST_DEVICE constexpr bool operator>(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    249  return (rhs < lhs);
    250 }
    251 
    252 template <class T1, class T2>
    253 CUTLASS_HOST_DEVICE constexpr bool operator>=(const pair<T1, T2>& lhs, const pair<T1, T2>& rhs) {
    254  return !(lhs < rhs);
    255 }
    256 
    257 template <class T1, class T2>
    258 CUTLASS_HOST_DEVICE std::pair<T1, T2> make_pair(T1 t, T2 u) {
    259  std::pair<T1, T2> retval;
    260  retval.first = t;
    261  retval.second = u;
    262  return retval;
    263 }
    264 #endif
    265 
    266 } // namespace platform
    267 
    268 /******************************************************************************
    269  * Implementations of C++ 11/14/17/... STL features
    270  ******************************************************************************/
    271 
    272 namespace platform {
    273 
    274 //-----------------------------------------------------------------------------
    275 // Integral constant helper types <type_traits>
    276 //-----------------------------------------------------------------------------
    277 
    278 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))
    279 
    281 template <typename value_t, value_t V>
    283 
    285 template <typename value_t, value_t V>
    286 struct integral_constant {
    287  static const value_t value = V;
    288 
    289  typedef value_t value_type;
    291 
    292  CUTLASS_HOST_DEVICE operator value_type() const { return value; }
    293 
    294  CUTLASS_HOST_DEVICE const value_type operator()() const { return value; }
    295 };
    296 
    297 #else
    298 
    299 using std::integral_constant;
    300 using std::pair;
    301 
    302 #endif
    303 
    306 
    309 
    310 #if (!defined(_MSC_VER) && (__cplusplus <= 201402L)) || (defined(_MSC_VER) && (_MSC_VER < 1900))
    311 
    313 template <bool V>
    315 
    316 #else
    317 
    318 using std::bool_constant;
    319 
    320 #endif
    321 
    322 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1700))
    323 
    325 struct nullptr_t {};
    326 
    327 #else
    328 
    329 using std::nullptr_t;
    330 
    331 #endif
    332 
    333 //-----------------------------------------------------------------------------
    334 // Conditional metaprogramming <type_traits>
    335 //-----------------------------------------------------------------------------
    336 
    337 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1600))
    338 
    340 template <bool C, typename T = void>
    341 struct enable_if {
    342  typedef T type;
    343 };
    344 
    346 template <typename T>
    347 struct enable_if<false, T> {};
    348 
    350 template <bool B, class T, class F>
    351 struct conditional {
    352  typedef T type;
    353 };
    354 
    356 template <class T, class F>
    357 struct conditional<false, T, F> {
    358  typedef F type;
    359 };
    360 
    361 #else
    362 
    363 using std::enable_if;
    364 using std::conditional;
    365 
    366 #endif
    367 
    368 //-----------------------------------------------------------------------------
    369 // Const/volatility specifiers <type_traits>
    370 //-----------------------------------------------------------------------------
    371 
    372 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))
    373 
    375 template <typename T>
    376 struct remove_const {
    377  typedef T type;
    378 };
    379 
    381 template <typename T>
    382 struct remove_const<const T> {
    383  typedef T type;
    384 };
    385 
    387 template <typename T>
    389  typedef T type;
    390 };
    391 
    393 template <typename T>
    394 struct remove_volatile<volatile T> {
    395  typedef T type;
    396 };
    397 
    399 template <typename T>
    400 struct remove_cv {
    402 };
    403 
    404 #else
    405 
    406 using std::remove_const;
    407 using std::remove_volatile;
    408 using std::remove_cv;
    409 
    410 #endif
    411 
    412 //-----------------------------------------------------------------------------
    413 // Type relationships <type_traits>
    414 //-----------------------------------------------------------------------------
    415 
    416 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))
    417 
    419 template <typename A, typename B>
    420 struct is_same : false_type {};
    421 
    423 template <typename A>
    424 struct is_same<A, A> : true_type {};
    425 
    427 template <typename BaseT, typename DerivedT>
    429  typedef char (&yes)[1];
    430  typedef char (&no)[2];
    431 
    432  template <typename B, typename D>
    433  struct dummy {
    434  CUTLASS_HOST_DEVICE operator B*() const;
    435  CUTLASS_HOST_DEVICE operator D*();
    436  };
    437 
    438  template <typename T>
    439  CUTLASS_HOST_DEVICE static yes check(DerivedT*, T);
    440 
    441  CUTLASS_HOST_DEVICE static no check(BaseT*, int);
    442 
    443  static const bool value = sizeof(check(dummy<BaseT, DerivedT>(), int())) == sizeof(yes);
    444 };
    445 
    447 template <typename BaseT, typename DerivedT>
    449  : integral_constant<bool,
    450  (is_base_of_helper<typename remove_cv<BaseT>::type,
    451  typename remove_cv<DerivedT>::type>::value) ||
    452  (is_same<typename remove_cv<BaseT>::type,
    453  typename remove_cv<DerivedT>::type>::value)> {};
    454 
    455 #else
    456 
    457 using std::is_same;
    458 using std::is_base_of;
    459 
    460 #endif
    461 
    462 //-----------------------------------------------------------------------------
    463 // Type properties <type_traits>
    464 //-----------------------------------------------------------------------------
    465 
    466 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))
    467 
    469 template <typename T>
    471 template <typename T>
    472 struct is_volatile<volatile T> : true_type {};
    473 
    475 template <typename T>
    477 
    479 template <typename T>
    480 struct is_pointer_helper<T*> : true_type {};
    481 
    483 template <typename T>
    484 struct is_pointer : is_pointer_helper<typename remove_cv<T>::type> {};
    485 
    487 template <typename T>
    488 struct is_void : is_same<void, typename remove_cv<T>::type> {};
    489 
    491 template <typename T>
    493 template <>
    494 struct is_integral<char> : true_type {};
    495 template <>
    496 struct is_integral<signed char> : true_type {};
    497 template <>
    498 struct is_integral<unsigned char> : true_type {};
    499 template <>
    500 struct is_integral<short> : true_type {};
    501 template <>
    502 struct is_integral<unsigned short> : true_type {};
    503 template <>
    504 struct is_integral<int> : true_type {};
    505 template <>
    506 struct is_integral<unsigned int> : true_type {};
    507 template <>
    508 struct is_integral<long> : true_type {};
    509 template <>
    510 struct is_integral<unsigned long> : true_type {};
    511 template <>
    512 struct is_integral<long long> : true_type {};
    513 template <>
    514 struct is_integral<unsigned long long> : true_type {};
    515 template <typename T>
    516 struct is_integral<volatile T> : is_integral<T> {};
    517 template <typename T>
    518 struct is_integral<const T> : is_integral<T> {};
    519 template <typename T>
    520 struct is_integral<const volatile T> : is_integral<T> {};
    521 
    523 template <typename T>
    525  : integral_constant<bool,
    526  (is_same<float, typename remove_cv<T>::type>::value ||
    527  is_same<double, typename remove_cv<T>::type>::value)> {};
    528 
    530 template <typename T>
    532  : integral_constant<bool, (is_integral<T>::value || is_floating_point<T>::value)> {};
    533 
    535 template <typename T>
    537  : integral_constant<bool,
    538  (is_arithmetic<T>::value || is_void<T>::value ||
    539  is_same<nullptr_t, typename remove_cv<T>::type>::value)> {};
    540 
    541 #else
    542 
    543 using std::is_volatile;
    544 using std::is_pointer;
    545 using std::is_void;
    546 using std::is_integral;
    547 using std::is_floating_point;
    548 using std::is_arithmetic;
    549 using std::is_fundamental;
    550 
    551 #endif
    552 
    553 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1800)) || \
    554  (defined(__GNUG__) && (__GNUC__ < 5))
    555 
    566 template <typename T>
    568  : integral_constant<bool, (is_fundamental<T>::value || is_pointer<T>::value)> {};
    569 
    570 #else
    571 
    572 using std::is_trivially_copyable;
    573 
    574 #endif
    575 
    576 //-----------------------------------------------------------------------------
    577 // Alignment and layout utilities
    578 //-----------------------------------------------------------------------------
    579 
    580 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1500))
    581 
    583 template <typename value_t>
    584 struct alignment_of {
    585  struct pad {
    586  value_t val;
    587  char byte;
    588  };
    589 
    590  enum { value = sizeof(pad) - sizeof(value_t) };
    591 };
    592 
    593 #else
    594 
    595 template <typename value_t>
    596 struct alignment_of : std::alignment_of<value_t> {};
    597 
    598 #endif
    599 
    600 /* 16B specializations where 32-bit Win32 host compiler disagrees with device compiler */
    601 template <>
    602 struct alignment_of<int4> {
    603  enum { value = 16 };
    604 };
    605 template <>
    606 struct alignment_of<uint4> {
    607  enum { value = 16 };
    608 };
    609 template <>
    610 struct alignment_of<float4> {
    611  enum { value = 16 };
    612 };
    613 template <>
    614 struct alignment_of<long4> {
    615  enum { value = 16 };
    616 };
    617 template <>
    618 struct alignment_of<ulong4> {
    619  enum { value = 16 };
    620 };
    621 template <>
    622 struct alignment_of<longlong2> {
    623  enum { value = 16 };
    624 };
    625 template <>
    626 struct alignment_of<ulonglong2> {
    627  enum { value = 16 };
    628 };
    629 template <>
    630 struct alignment_of<double2> {
    631  enum { value = 16 };
    632 };
    633 template <>
    634 struct alignment_of<longlong4> {
    635  enum { value = 16 };
    636 };
    637 template <>
    638 struct alignment_of<ulonglong4> {
    639  enum { value = 16 };
    640 };
    641 template <>
    642 struct alignment_of<double4> {
    643  enum { value = 16 };
    644 };
    645 
    646 // Specializations for volatile/const qualified types
    647 template <typename value_t>
    648 struct alignment_of<volatile value_t> : alignment_of<value_t> {};
    649 template <typename value_t>
    650 struct alignment_of<const value_t> : alignment_of<value_t> {};
    651 template <typename value_t>
    652 struct alignment_of<const volatile value_t> : alignment_of<value_t> {};
    653 
    654 #if (!defined(_MSC_VER) && (__cplusplus < 201103L)) || (defined(_MSC_VER) && (_MSC_VER < 1800))
    655 
    656 template <size_t Align>
    658 template <>
    659 struct __align__(1) aligned_chunk<1> {
    660  uint8_t buff;
    661 };
    662 template <>
    663 struct __align__(2) aligned_chunk<2> {
    664  uint16_t buff;
    665 };
    666 template <>
    667 struct __align__(4) aligned_chunk<4> {
    668  uint32_t buff;
    669 };
    670 template <>
    671 struct __align__(8) aligned_chunk<8> {
    672  uint32_t buff[2];
    673 };
    674 template <>
    675 struct __align__(16) aligned_chunk<16> {
    676  uint32_t buff[4];
    677 };
    678 template <>
    679 struct __align__(32) aligned_chunk<32> {
    680  uint32_t buff[8];
    681 };
    682 template <>
    683 struct __align__(64) aligned_chunk<64> {
    684  uint32_t buff[16];
    685 };
    686 template <>
    687 struct __align__(128) aligned_chunk<128> {
    688  uint32_t buff[32];
    689 };
    690 template <>
    691 struct __align__(256) aligned_chunk<256> {
    692  uint32_t buff[64];
    693 };
    694 template <>
    695 struct __align__(512) aligned_chunk<512> {
    696  uint32_t buff[128];
    697 };
    698 template <>
    699 struct __align__(1024) aligned_chunk<1024> {
    700  uint32_t buff[256];
    701 };
    702 template <>
    703 struct __align__(2048) aligned_chunk<2048> {
    704  uint32_t buff[512];
    705 };
    706 template <>
    707 struct __align__(4096) aligned_chunk<4096> {
    708  uint32_t buff[1024];
    709 };
    710 
    712 template <size_t Len, size_t Align>
    715 };
    716 
    717 #else
    718 
    719 using std::aligned_storage;
    720 
    721 #endif
    722 
    723 #if !defined(__CUDACC_RTC__)
    724 template <typename T>
    727  void operator()(T* ptr) const { delete ptr; }
    728 };
    729 
    731 template <typename T>
    732 struct default_delete<T[]> {
    733  void operator()(T* ptr) const { delete[] ptr; }
    734 };
    735 
    737 template <class T, class Deleter = default_delete<T> >
    738 class unique_ptr {
    739  public:
    740  typedef T* pointer;
    741  typedef T element_type;
    742  typedef Deleter deleter_type;
    743 
    744  private:
    746  pointer _ptr;
    747 
    749  deleter_type _deleter;
    750 
    751  public:
    752  unique_ptr() : _ptr(nullptr) {}
    753  unique_ptr(pointer p) : _ptr(p) {}
    754 
    756  if (_ptr) {
    757  _deleter(_ptr);
    758  }
    759  }
    761  pointer get() const noexcept { return _ptr; }
    762 
    765  pointer p(_ptr);
    766  _ptr = nullptr;
    767  return p;
    768  }
    769 
    772  pointer old_ptr = _ptr;
    773  _ptr = p;
    774  if (old_ptr != nullptr) {
    775  get_deleter()(old_ptr);
    776  }
    777  }
    778 
    780  void swap(unique_ptr& other) noexcept { std::swap(_ptr, other._ptr); }
    781 
    783  Deleter& get_deleter() noexcept { return _deleter; }
    784 
    786  Deleter const& get_deleter() const noexcept { return _deleter; }
    787 
    789  operator bool() const noexcept { return _ptr != nullptr; }
    790 
    792  T& operator*() const { return *_ptr; }
    793 
    795  pointer operator->() const noexcept { return _ptr; }
    796 
    798  T& operator[](size_t i) const { return _ptr[i]; }
    799 };
    800 
    802 template <typename T, typename Deleter>
    804  lhs.swap(rhs);
    805 }
    806 #endif
    807 
    808 }; // namespace platform
    809 }; // namespace cutlass
    static const value_t value
    Definition: platform.h:287
    CUTLASS_HOST_DEVICE constexpr const T & max(const T &a, const T &b)
    std::max
    Definition: platform.h:215
    Definition: convert.h:33
    #define constexpr
    Definition: platform.h:137
    @@ -97,10 +97,8 @@ $(function() {
    CUTLASS_HOST_DEVICE bool operator==(complex< T > const &lhs, complex< T > const &rhs)
    Equality operator.
    Definition: complex.h:224
    std::greater
    Definition: platform.h:197
    std::is_void
    Definition: platform.h:488
    -
    CUTLASS_HOST_DEVICE constexpr bool operator>=(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)
    Definition: platform.h:253
    pointer operator->() const noexcept
    Returns a pointer to the managed object.
    Definition: platform.h:795
    T & operator[](size_t i) const
    Array access to managed object.
    Definition: platform.h:798
    -
    CUTLASS_HOST_DEVICE constexpr bool operator>(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)
    Definition: platform.h:248
    void operator()(T *ptr) const
    Definition: platform.h:733
    Default deleter.
    Definition: platform.h:726
    Definition: platform.h:590
    @@ -108,6 +106,7 @@ $(function() {
    Definition: platform.h:585
    std::is_floating_point
    Definition: platform.h:524
    +
    CUTLASS_HOST_DEVICE bool operator>(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)
    Lexical comparison.
    Definition: pair.h:110
    integral_constant< bool, false > false_type
    The type used as a compile-time boolean with false value.
    Definition: platform.h:308
    Deleter const & get_deleter() const noexcept
    Returns the deleter object.
    Definition: platform.h:786
    std::remove_cv
    Definition: platform.h:400
    @@ -153,6 +152,7 @@ $(function() {
    CUTLASS_HOST_DEVICE bool operator!=(complex< T > const &lhs, complex< T > const &rhs)
    Inequality operator.
    Definition: complex.h:232
    void swap(unique_ptr &other) noexcept
    Swaps the managed objects with *this and another unique_ptr.
    Definition: platform.h:780
    static const bool value
    Definition: platform.h:443
    +
    CUTLASS_HOST_DEVICE bool operator>=(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)
    Lexical comparison.
    Definition: pair.h:117
    aligned_chunk< Align > type[Len/sizeof(aligned_chunk< Align >)]
    Definition: platform.h:714
    std::aligned_storage
    Definition: platform.h:713
    std::remove_volatile (non-volatile specialization)
    Definition: platform.h:388
    @@ -165,7 +165,7 @@ $(function() {
    diff --git a/docs/predicate__vector_8h.html b/docs/predicate__vector_8h.html index 612092ed..808ab5bc 100644 --- a/docs/predicate__vector_8h.html +++ b/docs/predicate__vector_8h.html @@ -122,7 +122,7 @@ Namespaces
    diff --git a/docs/predicate__vector_8h_source.html b/docs/predicate__vector_8h_source.html index 3123af79..9d536974 100644 --- a/docs/predicate__vector_8h_source.html +++ b/docs/predicate__vector_8h_source.html @@ -76,10 +76,11 @@ $(function() {
    predicate_vector.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    29 #pragma once
    30 
    31 #include <assert.h>
    32 #include <stdint.h>
    33 
    34 #include "cutlass/cutlass.h"
    35 #include "cutlass/shape.h"
    36 
    37 #include "cutlass/util/platform.h"
    38 
    39 namespace cutlass {
    40 
    42 
    59 
    79 
    95 
    98 template <
    100  int kPredicates_,
    102  int kPredicatesPerByte_ = 4,
    104  int kPredicateStart_ = 0>
    107  static int const kPredicates = kPredicates_;
    108 
    110  static int const kPredicatesPerByte = kPredicatesPerByte_;
    111 
    113  static int const kPredicateStart = kPredicateStart_;
    114 
    115  // Make sure no one tries to put more than 8 bits in a byte :)
    116  static_assert(kPredicatesPerByte <= 8, "kPredicatesPerByte must fit within an actual byte");
    117  // Make sure the "offsetted" bits fit in one byte.
    119  "The offsetted predicates must fit within an actual byte.");
    120 
    122  typedef uint32_t Storage;
    123 
    126 
    128  static int const kWordCount = (kBytes + sizeof(Storage) - 1) / sizeof(Storage);
    129 
    130  private:
    131  //
    132  // Data members
    133  //
    134 
    136  Storage storageData[kWordCount];
    137 
    138  //
    139  // Methods
    140  //
    141 
    143  CUTLASS_HOST_DEVICE void computeStorageOffset(int &word, int &bit, int idx) const {
    145 
    146  int byte = (idx / kPredicatesPerByte);
    147  int bit_offset = (idx % kPredicatesPerByte);
    148 
    149  word = byte / sizeof(Storage);
    150  int byte_offset = (byte % sizeof(Storage));
    151 
    152  bit = byte_offset * 8 + bit_offset + kPredicateStart;
    153  }
    154 
    156  CUTLASS_HOST_DEVICE Storage &storage(int word) {
    157  CUTLASS_ASSERT(word < kWordCount);
    158  return storageData[word];
    159  }
    160 
    162  CUTLASS_HOST_DEVICE Storage const &storage(int word) const {
    163  CUTLASS_ASSERT(word < kWordCount);
    164  return storageData[word];
    165  }
    166 
    167  public:
    168  //
    169  // Iterator
    170  //
    171 
    179  PredicateVector const &vec_;
    180 
    182  int bit_;
    183 
    184  public:
    187  ConstIterator(ConstIterator const &it) : vec_(it.vec_), bit_(it.bit_) {}
    188 
    191  ConstIterator(PredicateVector const &_vec, int _start = 0) : vec_(_vec), bit_(_start) {}
    192 
    196  ++bit_;
    197  return *this;
    198  }
    199 
    203  --bit_;
    204  return *this;
    205  }
    206 
    210  ConstIterator ret(*this);
    211  ret.bit_++;
    212  return ret;
    213  }
    214 
    218  ConstIterator ret(*this);
    219  ret.bit_--;
    220  return ret;
    221  }
    222 
    225  bool operator==(ConstIterator const &it) const { return bit_ == it.bit_; }
    226 
    229  bool operator!=(ConstIterator const &it) const { return bit_ != it.bit_; }
    230 
    233  bool operator*() const { return vec_[bit_]; }
    234  };
    235 
    241  class Iterator {
    243  PredicateVector &vec_;
    244 
    246  int bit_;
    247 
    248  public:
    251  Iterator(Iterator const &it) : vec_(it.vec_), bit_(it.bit_) {}
    252 
    255  Iterator(PredicateVector &_vec, int _start = 0) : vec_(_vec), bit_(_start) {}
    256 
    260  ++bit_;
    261  return *this;
    262  }
    263 
    267  --bit_;
    268  return *this;
    269  }
    270 
    274  Iterator ret(*this);
    275  ret.bit_++;
    276  return ret;
    277  }
    278 
    282  Iterator ret(*this);
    283  ret.bit_--;
    284  return ret;
    285  }
    286 
    289  bool operator==(Iterator const &it) const { return bit_ == it.bit_; }
    290 
    293  bool operator!=(Iterator const &it) const { return bit_ != it.bit_; }
    294 
    297  bool get() { return vec_[bit_]; }
    298 
    301  bool operator*() const { return vec_[bit_]; }
    302 
    305  void set(bool value = true) { vec_.set(bit_, value); }
    306  };
    307 
    313 
    316  TrivialIterator(Iterator const &it) {}
    317 
    321 
    324  TrivialIterator &operator++() { return *this; }
    325 
    328  TrivialIterator operator++(int) { return *this; }
    329 
    332  bool operator*() const { return true; }
    333  };
    334 
    335  public:
    336  //
    337  // Methods
    338  //
    339 
    341  CUTLASS_HOST_DEVICE PredicateVector(bool value = true) { fill(value); }
    342 
    344  CUTLASS_HOST_DEVICE void fill(bool value = true) {
    345  Storage item = (value ? ~Storage(0) : Storage(0));
    346 
    348  for (int i = 0; i < kWordCount; ++i) {
    349  storage(i) = item;
    350  }
    351  }
    352 
    354  CUTLASS_HOST_DEVICE bool operator[](int idx) const { return at(idx); }
    355 
    357  CUTLASS_HOST_DEVICE bool at(int idx) const {
    358  int bit, word;
    359  computeStorageOffset(word, bit, idx);
    360 
    361  return ((storage(word) >> bit) & 1);
    362  }
    363 
    365  CUTLASS_HOST_DEVICE void set(int idx, bool value = true) {
    366  int bit, word;
    367  computeStorageOffset(word, bit, idx);
    368 
    369  Storage disable_mask = (~(Storage(1) << bit));
    370  Storage enable_mask = (Storage(value) << bit);
    371 
    372  storage(word) = ((storage(word) & disable_mask) | enable_mask);
    373  }
    374 
    378  for (int i = 0; i < kWordCount; ++i) {
    379  storage(i) = (storage(i) & predicates.storage(i));
    380  }
    381  return *this;
    382  }
    383 
    387  for (int i = 0; i < kWordCount; ++i) {
    388  storage(i) = (storage(i) | predicates.storage(i));
    389  }
    390  return *this;
    391  }
    392 
    395  Storage mask(0);
    396  for (int byte = 0; byte < sizeof(Storage); ++byte) {
    397  Storage byte_mask = (((1 << kPredicatesPerByte) - 1) << kPredicateStart);
    398  mask |= (byte_mask << (byte * 8));
    399  }
    400  uint32_t result = 0;
    401  for (int word = 0; word < kWordCount; ++word) {
    402  result |= storage(word);
    403  }
    404  return result == 0;
    405  }
    406 
    408  CUTLASS_DEVICE
    409  Iterator begin() { return Iterator(*this); }
    410 
    412  CUTLASS_DEVICE
    413  Iterator end() { return Iterator(*this, kPredicates); }
    414 
    416  CUTLASS_DEVICE
    417  ConstIterator const_begin() const { return ConstIterator(*this); }
    418 
    420  CUTLASS_DEVICE
    421  ConstIterator const_end() const { return ConstIterator(*this, kPredicates); }
    422 };
    423 
    425 
    430 
    432  CUTLASS_HOST_DEVICE bool at(int, int, int, int) const { return true; }
    433 };
    434 
    436 
    438 template <typename PredicateVector_, typename Iterations_>
    441  typedef PredicateVector_ PredicateVector;
    443  typedef Iterations_ Iterations;
    444 
    445  private:
    447  PredicateVector &predicates;
    448 
    449  public:
    451  CUTLASS_DEVICE PredicateTileAdapter(PredicateVector &predicates_) : predicates(predicates_) {}
    452 
    454  CUTLASS_DEVICE bool at(int d, int h, int w, int c) const {
    455  int const bit = ComputeOffsetFromShape<Iterations>::get(d, h, w, c);
    456  return predicates.at(bit);
    457  }
    458 
    460  CUTLASS_DEVICE void set(int d, int h, int w, int c, bool value) {
    461  int const bit = ComputeOffsetFromShape<Iterations>::get(d, h, w, c);
    462  predicates.set(bit, value);
    463  }
    464 };
    465 
    467 
    469 template <typename PredicateVector_, typename Iterations_>
    472  typedef PredicateVector_ PredicateVector;
    474  typedef Iterations_ Iterations;
    475 
    476  private:
    478  PredicateVector const &predicates;
    479 
    480  public:
    482  CUTLASS_DEVICE ConstPredicateTileAdapter(PredicateVector const &predicates_)
    483  : predicates(predicates_) {}
    484 
    486  CUTLASS_DEVICE bool at(int d, int h, int w, int c) const {
    487  int const bit = ComputeOffsetFromShape<Iterations>::get(d, h, w, c);
    488  return predicates.at(bit);
    489  }
    490 };
    491 
    493 
    494 } // namespace cutlass
    CUTLASS_HOST_DEVICE Iterator(PredicateVector &_vec, int _start=0)
    Constructs an iterator from a PredicateVector.
    Definition: predicate_vector.h:255
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    29 #pragma once
    30 
    31 #include <assert.h>
    32 #include <stdint.h>
    33 
    34 #include "cutlass/cutlass.h"
    35 #include "cutlass/shape.h"
    36 
    37 #include "cutlass/util/platform.h"
    38 
    39 namespace cutlass {
    40 
    42 
    59 
    79 
    95 
    98 template <
    100  int kPredicates_,
    102  int kPredicatesPerByte_ = 4,
    104  int kPredicateStart_ = 0>
    107  static int const kPredicates = kPredicates_;
    108 
    110  static int const kPredicatesPerByte = kPredicatesPerByte_;
    111 
    113  static int const kPredicateStart = kPredicateStart_;
    114 
    115  // Make sure no one tries to put more than 8 bits in a byte :)
    116  static_assert(kPredicatesPerByte <= 8, "kPredicatesPerByte must fit within an actual byte");
    117  // Make sure the "offsetted" bits fit in one byte.
    119  "The offsetted predicates must fit within an actual byte.");
    120 
    122  typedef uint32_t Storage;
    123 
    126 
    128  static int const kWordCount = (kBytes + sizeof(Storage) - 1) / sizeof(Storage);
    129 
    130  private:
    131  //
    132  // Data members
    133  //
    134 
    136  Storage storageData[kWordCount];
    137 
    138  //
    139  // Methods
    140  //
    141 
    143  CUTLASS_HOST_DEVICE void computeStorageOffset(int &word, int &bit, int idx) const {
    145 
    146  int byte = (idx / kPredicatesPerByte);
    147  int bit_offset = (idx % kPredicatesPerByte);
    148 
    149  word = byte / sizeof(Storage);
    150  int byte_offset = (byte % sizeof(Storage));
    151 
    152  bit = byte_offset * 8 + bit_offset + kPredicateStart;
    153  }
    154 
    156  CUTLASS_HOST_DEVICE Storage &storage(int word) {
    157  CUTLASS_ASSERT(word < kWordCount);
    158  return storageData[word];
    159  }
    160 
    162  CUTLASS_HOST_DEVICE Storage const &storage(int word) const {
    163  CUTLASS_ASSERT(word < kWordCount);
    164  return storageData[word];
    165  }
    166 
    167  public:
    168  //
    169  // Iterator
    170  //
    171 
    179  PredicateVector const &vec_;
    180 
    182  int bit_;
    183 
    184  public:
    187  ConstIterator(ConstIterator const &it) : vec_(it.vec_), bit_(it.bit_) {}
    188 
    191  ConstIterator(PredicateVector const &_vec, int _start = 0) : vec_(_vec), bit_(_start) {}
    192 
    196  ++bit_;
    197  return *this;
    198  }
    199 
    203  --bit_;
    204  return *this;
    205  }
    206 
    210  ConstIterator ret(*this);
    211  ret.bit_++;
    212  return ret;
    213  }
    214 
    218  ConstIterator ret(*this);
    219  ret.bit_--;
    220  return ret;
    221  }
    222 
    225  bool operator==(ConstIterator const &it) const { return bit_ == it.bit_; }
    226 
    229  bool operator!=(ConstIterator const &it) const { return bit_ != it.bit_; }
    230 
    233  bool operator*() const { return vec_[bit_]; }
    234  };
    235 
    241  class Iterator {
    243  PredicateVector &vec_;
    244 
    246  int bit_;
    247 
    248  public:
    251  Iterator(Iterator const &it) : vec_(it.vec_), bit_(it.bit_) {}
    252 
    255  Iterator(PredicateVector &_vec, int _start = 0) : vec_(_vec), bit_(_start) {}
    256 
    260  ++bit_;
    261  return *this;
    262  }
    263 
    267  --bit_;
    268  return *this;
    269  }
    270 
    274  Iterator ret(*this);
    275  ret.bit_++;
    276  return ret;
    277  }
    278 
    282  Iterator ret(*this);
    283  ret.bit_--;
    284  return ret;
    285  }
    286 
    289  bool operator==(Iterator const &it) const { return bit_ == it.bit_; }
    290 
    293  bool operator!=(Iterator const &it) const { return bit_ != it.bit_; }
    294 
    297  bool get() { return vec_[bit_]; }
    298 
    301  bool operator*() const { return vec_[bit_]; }
    302 
    305  void set(bool value = true) { vec_.set(bit_, value); }
    306  };
    307 
    313 
    316  TrivialIterator(Iterator const &it) {}
    317 
    321 
    324  TrivialIterator &operator++() { return *this; }
    325 
    328  TrivialIterator operator++(int) { return *this; }
    329 
    332  bool operator*() const { return true; }
    333  };
    334 
    335  public:
    336  //
    337  // Methods
    338  //
    339 
    341  CUTLASS_HOST_DEVICE PredicateVector(bool value = true) { fill(value); }
    342 
    344  CUTLASS_HOST_DEVICE void fill(bool value = true) {
    345  Storage item = (value ? ~Storage(0) : Storage(0));
    346 
    348  for (int i = 0; i < kWordCount; ++i) {
    349  storage(i) = item;
    350  }
    351  }
    352 
    354  CUTLASS_HOST_DEVICE bool operator[](int idx) const { return at(idx); }
    355 
    357  CUTLASS_HOST_DEVICE bool at(int idx) const {
    358  int bit, word;
    359  computeStorageOffset(word, bit, idx);
    360 
    361  return ((storage(word) >> bit) & 1);
    362  }
    363 
    365  CUTLASS_HOST_DEVICE void set(int idx, bool value = true) {
    366  int bit, word;
    367  computeStorageOffset(word, bit, idx);
    368 
    369  Storage disable_mask = (~(Storage(1) << bit));
    370  Storage enable_mask = (Storage(value) << bit);
    371 
    372  storage(word) = ((storage(word) & disable_mask) | enable_mask);
    373  }
    374 
    378  for (int i = 0; i < kWordCount; ++i) {
    379  storage(i) = (storage(i) & predicates.storage(i));
    380  }
    381  return *this;
    382  }
    383 
    387  for (int i = 0; i < kWordCount; ++i) {
    388  storage(i) = (storage(i) | predicates.storage(i));
    389  }
    390  return *this;
    391  }
    392 
    395  Storage mask(0);
    396  for (int byte = 0; byte < sizeof(Storage); ++byte) {
    397  Storage byte_mask = (((1 << kPredicatesPerByte) - 1) << kPredicateStart);
    398  mask |= (byte_mask << (byte * 8));
    399  }
    400  uint32_t result = 0;
    401  for (int word = 0; word < kWordCount; ++word) {
    402  result |= storage(word);
    403  }
    404  return result == 0;
    405  }
    406 
    408  CUTLASS_DEVICE
    409  Iterator begin() { return Iterator(*this); }
    410 
    412  CUTLASS_DEVICE
    413  Iterator end() { return Iterator(*this, kPredicates); }
    414 
    416  CUTLASS_DEVICE
    417  ConstIterator const_begin() const { return ConstIterator(*this); }
    418 
    420  CUTLASS_DEVICE
    421  ConstIterator const_end() const { return ConstIterator(*this, kPredicates); }
    422 };
    423 
    425 
    430 
    432  CUTLASS_HOST_DEVICE bool at(int, int, int, int) const { return true; }
    433 };
    434 
    436 
    438 template <typename PredicateVector_, typename Iterations_>
    441  typedef PredicateVector_ PredicateVector;
    443  typedef Iterations_ Iterations;
    444 
    445  private:
    447  PredicateVector &predicates;
    448 
    449  public:
    451  CUTLASS_DEVICE PredicateTileAdapter(PredicateVector &predicates_) : predicates(predicates_) {}
    452 
    454  CUTLASS_DEVICE bool at(int d, int h, int w, int c) const {
    455  int const bit = ComputeOffsetFromShape<Iterations>::get(d, h, w, c);
    456  return predicates.at(bit);
    457  }
    458 
    460  CUTLASS_DEVICE void set(int d, int h, int w, int c, bool value) {
    461  int const bit = ComputeOffsetFromShape<Iterations>::get(d, h, w, c);
    462  predicates.set(bit, value);
    463  }
    464 };
    465 
    467 
    469 template <typename PredicateVector_, typename Iterations_>
    472  typedef PredicateVector_ PredicateVector;
    474  typedef Iterations_ Iterations;
    475 
    476  private:
    478  PredicateVector const &predicates;
    479 
    480  public:
    482  CUTLASS_DEVICE ConstPredicateTileAdapter(PredicateVector const &predicates_)
    483  : predicates(predicates_) {}
    484 
    486  CUTLASS_DEVICE bool at(int d, int h, int w, int c) const {
    487  int const bit = ComputeOffsetFromShape<Iterations>::get(d, h, w, c);
    488  return predicates.at(bit);
    489  }
    490 };
    491 
    493 
    494 } // namespace cutlass
    CUTLASS_HOST_DEVICE Iterator(PredicateVector &_vec, int _start=0)
    Constructs an iterator from a PredicateVector.
    Definition: predicate_vector.h:255
    CUTLASS_HOST_DEVICE bool operator!=(ConstIterator const &it) const
    Returns false if iterators point to the same bit.
    Definition: predicate_vector.h:229
    CUTLASS_HOST_DEVICE PredicateVector & operator|=(PredicateVector const &predicates)
    Computes the union of two identical predicate vectors.
    Definition: predicate_vector.h:385
    CUTLASS_HOST_DEVICE TrivialIterator & operator++()
    Pre-increment.
    Definition: predicate_vector.h:324
    +
    #define CUTLASS_PRAGMA_UNROLL
    Definition: performance_tuning.h:35
    Definition: convert.h:33
    CUTLASS_HOST_DEVICE bool is_zero() const
    Returns true if entire predicate array is zero.
    Definition: predicate_vector.h:394
    uint32_t Storage
    Storage type of individual elements.
    Definition: predicate_vector.h:116
    @@ -102,7 +103,6 @@ $(function() {
    CUTLASS_HOST_DEVICE bool operator==(Iterator const &it) const
    Returns true if iterators point to the same bit.
    Definition: predicate_vector.h:289
    CUTLASS_DEVICE PredicateTileAdapter(PredicateVector &predicates_)
    Ctor.
    Definition: predicate_vector.h:451
    CUTLASS_DEVICE bool at(int d, int h, int w, int c) const
    Get the value at location (d, h, w, c).
    Definition: predicate_vector.h:454
    -
    #define CUTLASS_PRAGMA_UNROLL
    Definition: cutlass.h:62
    CUTLASS_DEVICE bool at(int d, int h, int w, int c) const
    Get the value at location (d, h, w, c).
    Definition: predicate_vector.h:486
    CUTLASS_HOST_DEVICE Iterator & operator--()
    Pre-decrement.
    Definition: predicate_vector.h:266
    PredicateVector_ PredicateVector
    The vector of predicates.
    Definition: predicate_vector.h:472
    @@ -147,7 +147,7 @@ $(function() {
    diff --git a/docs/reduction_2threadblock__swizzle_8h.html b/docs/reduction_2threadblock__swizzle_8h.html new file mode 100644 index 00000000..ff4fe8a9 --- /dev/null +++ b/docs/reduction_2threadblock__swizzle_8h.html @@ -0,0 +1,109 @@ + + + + + + + +Cutlass: threadblock_swizzle.h File Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    reduction/threadblock_swizzle.h File Reference
    +
    +
    + +

    Defies functors for mapping blockIdx to partitions of the batched reduction computation. +More...

    +
    #include "cutlass/coord.h"
    +
    +

    Go to the source code of this file.

    + + + + +

    +Classes

    struct  cutlass::reduction::DefaultBlockSwizzle
     
    + + + + + +

    +Namespaces

     cutlass
     
     cutlass::reduction
     
    +
    + + + + diff --git a/docs/reduction_2threadblock__swizzle_8h_source.html b/docs/reduction_2threadblock__swizzle_8h_source.html new file mode 100644 index 00000000..fbaa948b --- /dev/null +++ b/docs/reduction_2threadblock__swizzle_8h_source.html @@ -0,0 +1,97 @@ + + + + + + + +Cutlass: threadblock_swizzle.h Source File + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    reduction/threadblock_swizzle.h
    +
    +
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2 * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3 *
    4 * Redistribution and use in source and binary forms, with or without modification, are permitted
    5 * provided that the following conditions are met:
    6 * * Redistributions of source code must retain the above copyright notice, this list of
    7 * conditions and the following disclaimer.
    8 * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9 * conditions and the following disclaimer in the documentation and/or other materials
    10 * provided with the distribution.
    11 * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12 * to endorse or promote products derived from this software without specific prior written
    13 * permission.
    14 *
    15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21 * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23 *
    24 **************************************************************************************************/
    28 #pragma once
    29 #include "cutlass/coord.h"
    30 
    31 namespace cutlass {
    32 namespace reduction {
    36 
    38  CUTLASS_DEVICE dim3 swizzle() { return blockIdx; }
    39 
    41  CUTLASS_HOST_DEVICE dim3 get_grid_layout(Coord<3> const &problem_size,
    42  Coord<3> const &OutputTile) {
    43  assert(OutputTile[0] == 1 && OutputTile[1] == 1);
    44  assert((problem_size[0] * problem_size[1] * problem_size[2]) % OutputTile[2] == 0);
    45  dim3 grid;
    46  grid.x = problem_size[0] * problem_size[1] * problem_size[2]
    47  / OutputTile[2] ;
    48  return grid;
    49  }
    50 
    52  CUTLASS_DEVICE Coord<3> get_threadblock_offset(Coord<3> const &SubTile) {
    53  assert(SubTile[0] == 1 && SubTile[1] == 1);
    54  dim3 block = swizzle();
    55  Coord<3> threadblock_offset =
    56  make_Coord(0, 0, block.x * SubTile[2]);
    57  return threadblock_offset;
    58  }
    59 };
    60 } // namespace reduction
    61 } // namespace cutlass
    Definition: reduction/threadblock_swizzle.h:33
    +
    Definition: convert.h:33
    +
    CUTLASS_HOST_DEVICE DefaultBlockSwizzle()
    Ctor.
    Definition: reduction/threadblock_swizzle.h:35
    +
    A Coord is a coordinate of arbitrary rank into a tensor or matrix.
    +
    CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)
    Helper to make a 2-element coordinate.
    Definition: coord.h:368
    +
    CUTLASS_DEVICE dim3 swizzle()
    Swizzle the block index.
    Definition: reduction/threadblock_swizzle.h:38
    +
    CUTLASS_HOST_DEVICE dim3 get_grid_layout(Coord< 3 > const &problem_size, Coord< 3 > const &OutputTile)
    Definition: reduction/threadblock_swizzle.h:41
    +
    #define CUTLASS_HOST_DEVICE
    Definition: cutlass.h:46
    + +
    CUTLASS_DEVICE Coord< 3 > get_threadblock_offset(Coord< 3 > const &SubTile)
    Definition: reduction/threadblock_swizzle.h:52
    +
    + + + + diff --git a/docs/reshape__tile_8h.html b/docs/reshape__tile_8h.html index 9eb505f3..2a4aee0e 100644 --- a/docs/reshape__tile_8h.html +++ b/docs/reshape__tile_8h.html @@ -92,6 +92,10 @@ Classes   struct  cutlass::ReshapeTile< Tile_, kAccessSize_, true >   +struct  cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, bool > +  +struct  cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true > +  @@ -101,7 +105,7 @@ Namespaces diff --git a/docs/reshape__tile_8h_source.html b/docs/reshape__tile_8h_source.html index b3bdb43b..9bb6ebfe 100644 --- a/docs/reshape__tile_8h_source.html +++ b/docs/reshape__tile_8h_source.html @@ -76,16 +76,18 @@ $(function() {
    reshape_tile.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/shape.h"
    31 
    32 namespace cutlass {
    33 
    35 
    36 // The following functor reshapes a tile of data. The goal is to have at least kAccessSize in
    37 // the inner-most dimension. If the user respects that constraint, there is nothing to be done. If
    38 // that's not the case, this functor will correct that and "extract" the right number of elements
    39 // from the next dimension.
    40 
    41 template <typename Tile_, int kAccessSize_, bool = (Tile_::kC < kAccessSize_)>
    42 struct ReshapeTile {
    43  typedef Tile_ Tile;
    44 };
    45 
    46 template <typename Tile_, int kAccessSize_>
    48  // Make sure the W dimension of the tile is large enough.
    49  static_assert(Tile_::kW >= kAccessSize_, "The W dimension is too small");
    50  // Make sure the dimension can be divided by the number of scalars.
    51  static_assert(Tile_::kW % kAccessSize_ == 0, "Not supported");
    52  // Collapse the W dimension.
    53  typedef Shape<Tile_::kD, Tile_::kH, Tile_::kW / kAccessSize_, kAccessSize_> Tile;
    54 };
    55 
    57 
    58 } // namespace cutlass
    Definition: convert.h:33
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/shape.h"
    31 
    32 namespace cutlass {
    33 
    35 
    36 // The following functor reshapes a tile of data. The goal is to have at least kAccessSize in
    37 // the inner-most dimension. If the user respects that constraint, there is nothing to be done. If
    38 // that's not the case, this functor will correct that and "extract" the right number of elements
    39 // from the next dimension.
    40 
    41 template <typename Tile_, int kAccessSize_, bool = (Tile_::kC < kAccessSize_)>
    42 struct ReshapeTile {
    43  typedef Tile_ Tile;
    44 };
    45 
    46 template <typename Tile_, int kAccessSize_>
    48  // Make sure the W dimension of the tile is large enough.
    49  static_assert(Tile_::kW >= kAccessSize_, "The W dimension is too small");
    50  // Make sure the dimension can be divided by the number of scalars.
    51  static_assert(Tile_::kW % kAccessSize_ == 0, "Not supported");
    52  // Collapse the W dimension.
    53  typedef Shape<Tile_::kD, Tile_::kH, Tile_::kW / kAccessSize_, kAccessSize_> Tile;
    54 };
    55 
    57 template <typename Tile_, int kAccessSize_, int kLdsPerAccess_, bool = (Tile_::kC < (kAccessSize_ * kLdsPerAccess_))>
    58 struct WmmaReshapeTile {
    59  typedef Tile_ Tile;
    60 };
    61 
    62 template <typename Tile_, int kAccessSize_, int kLdsPerAccess_>
    64  // Make sure the W dimension of the tile is large enough.
    65  static_assert(Tile_::kW >= (kAccessSize_ * kLdsPerAccess_), "The W dimension is too small");
    66  // Make sure the dimension can be divided by the number of scalars.
    67  static_assert(Tile_::kW % (kAccessSize_ * kLdsPerAccess_) == 0, "Not supported");
    68  // Collapse the W dimension.
    69  typedef Shape<Tile_::kD, Tile_::kH, Tile_::kW / (kAccessSize_ * kLdsPerAccess_), (kAccessSize_ * kLdsPerAccess_)> Tile;
    70 };
    71 
    73 
    74 } // namespace cutlass
    Definition: convert.h:33
    +
    Shape< Tile_::kD, Tile_::kH, Tile_::kW/(kAccessSize_ *kLdsPerAccess_),(kAccessSize_ *kLdsPerAccess_)> Tile
    Definition: reshape_tile.h:65
    #define static_assert(__e, __m)
    Definition: platform.h:153
    A Shape implementing Layout Concept describing the dimensions of a cube.
    Definition: shape.h:64
    Shape< Tile_::kD, Tile_::kH, Tile_::kW/kAccessSize_, kAccessSize_ > Tile
    Definition: reshape_tile.h:49
    +
    Defines Shape implementing the Layout concept for representing a 4D hypercube of objects.
    diff --git a/docs/scalar__or__pointer_8h.html b/docs/scalar__or__pointer_8h.html index 85668193..2339a52c 100644 --- a/docs/scalar__or__pointer_8h.html +++ b/docs/scalar__or__pointer_8h.html @@ -101,7 +101,7 @@ Namespaces
    diff --git a/docs/scalar__or__pointer_8h_source.html b/docs/scalar__or__pointer_8h_source.html index a4b6c7e9..6942ab8d 100644 --- a/docs/scalar__or__pointer_8h_source.html +++ b/docs/scalar__or__pointer_8h_source.html @@ -93,7 +93,7 @@ $(function() { diff --git a/docs/search/all_0.js b/docs/search/all_0.js index f97d7299..f5e2bee6 100644 --- a/docs/search/all_0.js +++ b/docs/search/all_0.js @@ -1,7 +1,7 @@ var searchData= [ ['_5f_5falign_5f_5f',['__align__',['../namespacecutlass_1_1platform.html#ac9068e2d027ffdf5cd564deecc2cb9e8',1,'cutlass::platform::__align__(1) aligned_chunk< 1 >'],['../namespacecutlass_1_1platform.html#a0bcb016704ec57f9499e662ba6156f98',1,'cutlass::platform::__align__(2) aligned_chunk< 2 >'],['../namespacecutlass_1_1platform.html#a71be5af25eeffa4077777f919e67d8da',1,'cutlass::platform::__align__(4) aligned_chunk< 4 >'],['../namespacecutlass_1_1platform.html#a42440254a16d4b6b95b95cc3360ee372',1,'cutlass::platform::__align__(8) aligned_chunk< 8 >'],['../namespacecutlass_1_1platform.html#a91d5e970d6ebe619914f40a9510bdb1e',1,'cutlass::platform::__align__(16) aligned_chunk< 16 >'],['../namespacecutlass_1_1platform.html#a210f4d360b1f9c3d074e71129fe4c0d9',1,'cutlass::platform::__align__(32) aligned_chunk< 32 >'],['../namespacecutlass_1_1platform.html#ae792b1c7ada1a33e306cd552f583bdce',1,'cutlass::platform::__align__(64) aligned_chunk< 64 >'],['../namespacecutlass_1_1platform.html#a5712ec4fed335a9b7f863fb3abe3c5eb',1,'cutlass::platform::__align__(128) aligned_chunk< 128 >'],['../namespacecutlass_1_1platform.html#a595cc98db29fb4d59772d2e2f52e347a',1,'cutlass::platform::__align__(256) aligned_chunk< 256 >'],['../namespacecutlass_1_1platform.html#ae70bb5d14a66500b47d2e3f83063d4a5',1,'cutlass::platform::__align__(512) aligned_chunk< 512 >'],['../namespacecutlass_1_1platform.html#a181e44e9c66f704175590727aaa9e5a1',1,'cutlass::platform::__align__(1024) aligned_chunk< 1024 >'],['../namespacecutlass_1_1platform.html#ae72c8fa997bb251d4140dceb03147154',1,'cutlass::platform::__align__(2048) aligned_chunk< 2048 >'],['../namespacecutlass_1_1platform.html#ada29683f1b408ae7b73cc8fbe2108628',1,'cutlass::platform::__align__(4096) aligned_chunk< 4096 >'],['../namespacecutlass.html#ae6ee3d9361526f859d737d9c68c13706',1,'cutlass::__align__(1) AlignedStruct< 1 >'],['../namespacecutlass.html#a602227fad962270da185209ecc6012f2',1,'cutlass::__align__(2) AlignedStruct< 2 >'],['../namespacecutlass.html#a266d7d2ae6e79537e46ee37b4fdface7',1,'cutlass::__align__(4) AlignedStruct< 4 >'],['../namespacecutlass.html#a1101e01215ddb0e5a7b120a4541a3c4e',1,'cutlass::__align__(8) AlignedStruct< 8 >'],['../namespacecutlass.html#aa4071cf5103f352a5100d9b4bba895e2',1,'cutlass::__align__(16) AlignedStruct< 16 >'],['../namespacecutlass.html#ada65694bdd4b70d4c9d769a536275a47',1,'cutlass::__align__(32) AlignedStruct< 32 >'],['../namespacecutlass.html#aa80a7cb3febd19b96f2ecbcb610b1b9e',1,'cutlass::__align__(64) AlignedStruct< 64 >']]], - ['_5f_5flaunch_5fbounds_5f_5f',['__launch_bounds__',['../namespacecutlass_1_1gemm.html#a01dd61085e2b3f578a7fc266b94fac55',1,'cutlass::gemm']]], + ['_5f_5flaunch_5fbounds_5f_5f',['__launch_bounds__',['../namespacecutlass_1_1gemm.html#a01dd61085e2b3f578a7fc266b94fac55',1,'cutlass::gemm::__launch_bounds__()'],['../namespacecutlass_1_1reduction.html#a9665e8f438a7b290d6e2eb640d93045f',1,'cutlass::reduction::__launch_bounds__()']]], ['_5f_5fnv_5fstd_5fmax',['__NV_STD_MAX',['../platform_8h.html#abd31f291635329bc15292954f1f01d38',1,'platform.h']]], ['_5f_5fnv_5fstd_5fmin',['__NV_STD_MIN',['../platform_8h.html#a39e234a3e3b0018b58df720bcb143420',1,'platform.h']]], ['_5f_5fplatform_5fcat',['__platform_cat',['../platform_8h.html#aece7fe71be5aaf8d12dc9e2372f97de4',1,'platform.h']]], diff --git a/docs/search/all_1.js b/docs/search/all_1.js index 706f28c3..3076886a 100644 --- a/docs/search/all_1.js +++ b/docs/search/all_1.js @@ -6,7 +6,8 @@ var searchData= ['accumulators',['Accumulators',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#af197d64d806795a1d88d1833e5f3ac89',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::Accumulators()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a9f90f91f9e5e40496e8a88eb657fd591',1,'cutlass::gemm::GemmConfig::Accumulators()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#afe6bebd94e3379c94054d04c5196edce',1,'cutlass::gemm::GemmEpilogue::Accumulators()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#af27cfae15beafcfbaf6d660781cbe5c4',1,'cutlass::gemm::GemmEpilogueTraits::Accumulators()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#af8124acb485709dba1c5378faa24516c',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::Accumulators()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a1ae57ab39203313cfd20208947750786',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::Accumulators()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a72d1ac143dab68b6cdd73d057315fcb6',1,'cutlass::gemm::ThreadMultiplyAdd::Accumulators()']]], ['accumulatorsperthread',['AccumulatorsPerThread',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a70e8444060c36afb41e5064b2fb18b42',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::AccumulatorsPerThread()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a24dd9fdc54b001840e8b82664b3bfe3a',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::AccumulatorsPerThread()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#aa88edf2e89062be00181f5dc4f4a0947',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::AccumulatorsPerThread()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#ad8ea3777c307bf3f8c58a8df3966715d',1,'cutlass::gemm::ThreadMultiplyAdd::AccumulatorsPerThread()']]], ['accumulatorsperwarp',['AccumulatorsPerWarp',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a9a5632bb1891a33126d6170af72a3ae2',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::AccumulatorsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a32a8979ff618f069665708c7771c3cc3',1,'cutlass::gemm::GemmConfig::AccumulatorsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#aacb9a5a1d8f3b6e21bc449b0b97949b7',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::AccumulatorsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#ae3152470cbbba2310d9c83b9d5d43027',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::AccumulatorsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a9f706e141ec3bc880fa17a5731d8370e',1,'cutlass::gemm::ThreadMultiplyAdd::AccumulatorsPerWarp()']]], - ['add_5fpointer_5foffset',['add_pointer_offset',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a5940e491967e265630dc0a4b448791d6',1,'cutlass::gemm::GemmGlobalIteratorAb::add_pointer_offset()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a8fd617565db6eb9c6fb99de868c389db',1,'cutlass::gemm::GemmGlobalIteratorCd::add_pointer_offset()'],['../classcutlass_1_1TensorRef.html#a5f0363da1e0544f256438e066d3cc143',1,'cutlass::TensorRef::add_pointer_offset()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a93ff0a9fda3e136a1674aeb82de050db',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::add_pointer_offset()'],['../structcutlass_1_1TileLoadIterator.html#ad65b7a0a5b4f42c590642ef7b269f232',1,'cutlass::TileLoadIterator::add_pointer_offset()'],['../structcutlass_1_1TileStoreIterator.html#aa6977ded39ead005b3435f13f0e51116',1,'cutlass::TileStoreIterator::add_pointer_offset()'],['../classcutlass_1_1ZipTileIterator.html#a0752af296e110d9104a45ae24bd0a104',1,'cutlass::ZipTileIterator::add_pointer_offset()']]], + ['add_5fbatch_5foffset',['add_batch_offset',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#aed33be079f056998624015460b4e3836',1,'cutlass::gemm::GlobalLoadStream::add_batch_offset()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a0c3d10d570da81a6b31b0637b5488259',1,'cutlass::gemm::GlobalLoadStreamPair::add_batch_offset()']]], + ['add_5fpointer_5foffset',['add_pointer_offset',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a5940e491967e265630dc0a4b448791d6',1,'cutlass::gemm::GemmGlobalIteratorAb::add_pointer_offset()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a2b77a4ba996c5cd75e73d4842ac07612',1,'cutlass::gemm::GemmGlobalIteratorCd::add_pointer_offset()'],['../classcutlass_1_1TensorRef.html#a5f0363da1e0544f256438e066d3cc143',1,'cutlass::TensorRef::add_pointer_offset()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a93ff0a9fda3e136a1674aeb82de050db',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::add_pointer_offset()'],['../structcutlass_1_1TileLoadIterator.html#a32ee7fa7f55ca99bc871edfb08efd6fc',1,'cutlass::TileLoadIterator::add_pointer_offset()'],['../structcutlass_1_1TileStoreIterator.html#af41808cb185da06a58ee9a9d593936d0',1,'cutlass::TileStoreIterator::add_pointer_offset()'],['../classcutlass_1_1ZipTileIterator.html#affc3b73f32df6caa41a841a630ffdf81',1,'cutlass::ZipTileIterator::add_pointer_offset()']]], ['additive',['Additive',['../structcutlass_1_1Identity.html#a37966282c824c6d0e32b432275ea8375a77d7cc80ec0c3ff42ca9b2aff98a1646',1,'cutlass::Identity']]], ['aligned_5f',['aligned_',['../unioncutlass_1_1Vector.html#a9e9352594fcd022526d5b69b6c25c99c',1,'cutlass::Vector::aligned_()'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#acc698443a38fd0ad63f931bdf172ad99',1,'cutlass::Vector< half, 1 >::aligned_()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#a9e41dbe541a7dddf1e461e0390fe8896',1,'cutlass::Vector< half, kLanes_ >::aligned_()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a1df3324868465331db13bd7775b55e87',1,'cutlass::Vector< bin1_t, kLanes_ >::aligned_()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#ad6784e347f068ad20af52379286337c0',1,'cutlass::Vector< int4_t, kLanes_ >::aligned_()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a4eab187b6f7650bd88ccd421c8330d3c',1,'cutlass::Vector< uint4_t, kLanes_ >::aligned_()']]], ['aligned_5fchunk',['aligned_chunk',['../structcutlass_1_1platform_1_1aligned__chunk.html',1,'cutlass::platform']]], @@ -28,8 +29,8 @@ var searchData= ['alignment_5fof_3c_20ulonglong2_20_3e',['alignment_of< ulonglong2 >',['../structcutlass_1_1platform_1_1alignment__of_3_01ulonglong2_01_4.html',1,'cutlass::platform']]], ['alignment_5fof_3c_20ulonglong4_20_3e',['alignment_of< ulonglong4 >',['../structcutlass_1_1platform_1_1alignment__of_3_01ulonglong4_01_4.html',1,'cutlass::platform']]], ['alignment_5fof_3c_20volatile_20value_5ft_20_3e',['alignment_of< volatile value_t >',['../structcutlass_1_1platform_1_1alignment__of_3_01volatile_01value__t_01_4.html',1,'cutlass::platform']]], - ['alpha',['alpha',['../structcutlass_1_1gemm_1_1GemmDesc.html#aa82600c82e17ea1233f2f74be4aa3785',1,'cutlass::gemm::GemmDesc::alpha()'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a3248d6b3d9bcc59365d582b879292a70',1,'cutlass::gemm::LinearScaling::Params::alpha()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ae4038a59658c87d52cee3330bee59662',1,'cutlass::gemm::LinearScalingDevicePtr::Params::alpha()']]], + ['alpha',['alpha',['../structcutlass_1_1gemm_1_1GemmDesc.html#aa82600c82e17ea1233f2f74be4aa3785',1,'cutlass::gemm::GemmDesc::alpha()'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a3248d6b3d9bcc59365d582b879292a70',1,'cutlass::gemm::LinearScaling::Params::alpha()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#afada1cbad87636228fb58d8577bb8470',1,'cutlass::reduction::BatchedReductionTraits::Params::alpha()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ae4038a59658c87d52cee3330bee59662',1,'cutlass::gemm::LinearScalingDevicePtr::Params::alpha()']]], ['arg',['arg',['../namespacecutlass_1_1platform.html#a8a1a03766dbd2c2ce10b10498f281bf0',1,'cutlass::platform']]], - ['at',['at',['../structcutlass_1_1Coord.html#a9eff24a3b74b68d11839b92324613c93',1,'cutlass::Coord::at()'],['../structcutlass_1_1Coord.html#aa253bf69fc819876a7c7770305f1a694',1,'cutlass::Coord::at(int dim)'],['../structcutlass_1_1Coord.html#a177adcc2d0fb5e72ebcb523edd24e6fe',1,'cutlass::Coord::at() const'],['../structcutlass_1_1Coord.html#a9b47b1521820c898b03868627c3f8e46',1,'cutlass::Coord::at(int dim) const'],['../structcutlass_1_1FragmentIterator.html#a35b721563536ab2c5dbab0f5de1c2b43',1,'cutlass::FragmentIterator::at(int d, int h, int w, int c=0) const'],['../structcutlass_1_1FragmentIterator.html#adb863b44dfbc1fa923625e767f6dd7cd',1,'cutlass::FragmentIterator::at(int d, int h, int w, int c=0)'],['../structcutlass_1_1FragmentConstIterator.html#a14f2ad2f9b90aea092ff1836e8fb159d',1,'cutlass::FragmentConstIterator::at()'],['../structcutlass_1_1PredicateVector.html#ac8eca7087d1f7575b0c6beeb5f907bfd',1,'cutlass::PredicateVector::at()'],['../structcutlass_1_1TrivialPredicateTileAdapter.html#a3e41ab145489df08fca79251b2253d0f',1,'cutlass::TrivialPredicateTileAdapter::at()'],['../structcutlass_1_1PredicateTileAdapter.html#a7d54e877bca2e840c142293b4826e986',1,'cutlass::PredicateTileAdapter::at()'],['../structcutlass_1_1ConstPredicateTileAdapter.html#a9e5651009a7b8df9960527c18c7b05dd',1,'cutlass::ConstPredicateTileAdapter::at()'],['../classcutlass_1_1TensorRef.html#a4169a1344897c2c87822ee49d5e0002f',1,'cutlass::TensorRef::at(TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef.html#ab0cf071be50423dece4e931878573a1c',1,'cutlass::TensorRef::at(LongIndex idx) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a597bb02594c918c50f0bdb0cb4ce74c8',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::at(TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a92371a586e756734522a853bef74324d',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::at(LongIndex idx) const'],['../structcutlass_1_1TensorRefBatchStrided.html#aac4b013050925c1e2db4019140e82602',1,'cutlass::TensorRefBatchStrided::at()'],['../structcutlass_1_1TensorRefArray.html#a2a95fd42d48c550a45f340b04f9dfe3d',1,'cutlass::TensorRefArray::at()']]], + ['at',['at',['../structcutlass_1_1Coord.html#a9eff24a3b74b68d11839b92324613c93',1,'cutlass::Coord::at()'],['../structcutlass_1_1Coord.html#aa253bf69fc819876a7c7770305f1a694',1,'cutlass::Coord::at(int dim)'],['../structcutlass_1_1Coord.html#a177adcc2d0fb5e72ebcb523edd24e6fe',1,'cutlass::Coord::at() const'],['../structcutlass_1_1Coord.html#a9b47b1521820c898b03868627c3f8e46',1,'cutlass::Coord::at(int dim) const'],['../structcutlass_1_1FragmentIterator.html#a35b721563536ab2c5dbab0f5de1c2b43',1,'cutlass::FragmentIterator::at(int d, int h, int w, int c=0) const'],['../structcutlass_1_1FragmentIterator.html#adb863b44dfbc1fa923625e767f6dd7cd',1,'cutlass::FragmentIterator::at(int d, int h, int w, int c=0)'],['../structcutlass_1_1FragmentConstIterator.html#a14f2ad2f9b90aea092ff1836e8fb159d',1,'cutlass::FragmentConstIterator::at()'],['../structcutlass_1_1PredicateVector.html#ac8eca7087d1f7575b0c6beeb5f907bfd',1,'cutlass::PredicateVector::at()'],['../structcutlass_1_1TrivialPredicateTileAdapter.html#a3e41ab145489df08fca79251b2253d0f',1,'cutlass::TrivialPredicateTileAdapter::at()'],['../structcutlass_1_1PredicateTileAdapter.html#a7d54e877bca2e840c142293b4826e986',1,'cutlass::PredicateTileAdapter::at()'],['../structcutlass_1_1ConstPredicateTileAdapter.html#a9e5651009a7b8df9960527c18c7b05dd',1,'cutlass::ConstPredicateTileAdapter::at()'],['../classcutlass_1_1TensorRef.html#a4169a1344897c2c87822ee49d5e0002f',1,'cutlass::TensorRef::at(TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef.html#ab0cf071be50423dece4e931878573a1c',1,'cutlass::TensorRef::at(LongIndex idx) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a597bb02594c918c50f0bdb0cb4ce74c8',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::at(TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a92371a586e756734522a853bef74324d',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::at(LongIndex idx) const'],['../structcutlass_1_1TensorRefBatchStrided.html#a9b18ce228b5ddedf64fd959553da950c',1,'cutlass::TensorRefBatchStrided::at()'],['../structcutlass_1_1TensorRefArray.html#a60763549963465865a2287d018b6b76c',1,'cutlass::TensorRefArray::at()']]], ['atype',['AType',['../structcutlass_1_1gemm_1_1GemmDesc.html#a22642bd88ccb24fec3df87230537c037',1,'cutlass::gemm::GemmDesc']]] ]; diff --git a/docs/search/all_10.js b/docs/search/all_10.js index 69ff2ab6..8b96ebae 100644 --- a/docs/search/all_10.js +++ b/docs/search/all_10.js @@ -2,6 +2,10 @@ var searchData= [ ['rank',['Rank',['../classcutlass_1_1TensorRef.html#a2088b39881deef375af08511bca1e90a',1,'cutlass::TensorRef::Rank()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a233fba9abdbbd0fe3a2cc7465ea76a41',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Rank()'],['../classcutlass_1_1TensorView.html#a8dbb7043546fae133547d2c3e46dddab',1,'cutlass::TensorView::Rank()']]], ['real',['real',['../classcutlass_1_1platform_1_1complex.html#ab06cbc1eefd47df3d3748d42d6d95974',1,'cutlass::platform::complex::real() const'],['../classcutlass_1_1platform_1_1complex.html#acda3e2050b2fefb1aca1fa8aa2063f8b',1,'cutlass::platform::complex::real()'],['../namespacecutlass_1_1platform.html#a25a36d44c7b9f182eb404a3251cd4f39',1,'cutlass::platform::real(cuFloatComplex const &z)'],['../namespacecutlass_1_1platform.html#aa9b17e4705337452761c0d3bd5edfc67',1,'cutlass::platform::real(cuFloatComplex &z)'],['../namespacecutlass_1_1platform.html#a1f13c0049c5f94b0480c619612608f7b',1,'cutlass::platform::real(cuDoubleComplex const &z)'],['../namespacecutlass_1_1platform.html#a3365c0200a034973b7baecede9728239',1,'cutlass::platform::real(cuDoubleComplex &z)'],['../namespacecutlass_1_1platform.html#a01e98d1c13ac9384f2bdc407fce6131b',1,'cutlass::platform::real(complex< T > const &z)'],['../namespacecutlass_1_1platform.html#aa5cfa5849e12b745236485dd2db5f854',1,'cutlass::platform::real(complex< T > &z)']]], + ['reduction_5fstride',['reduction_stride',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#a5d1463d473d4226b0d19c581b16ed3b2',1,'cutlass::reduction::BatchedReductionTraits::Params']]], + ['reductionparams',['ReductionParams',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a62adba1d7d9c309049c636f3e0379527',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]], + ['reductionsize',['ReductionSize',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#a00c71c9a18aaad84f4a48023dbbb454e',1,'cutlass::reduction::BatchedReductionTraits']]], + ['reductiontraits',['ReductionTraits',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a2fc7b6473f7e4c69a7f53ee9573b0e61',1,'cutlass::gemm::SplitkPIGemmTraits']]], ['ref',['ref',['../classcutlass_1_1TensorView.html#a7e2beb56a3bc2d58c9ec65467b78c4f3',1,'cutlass::TensorView']]], ['reference',['reference',['../structcutlass_1_1TileAllocation.html#a3466ef2b478e4617aa1ff261217cfd05',1,'cutlass::TileAllocation::reference()'],['../structcutlass_1_1TileAllocation.html#afcdc0be82acf0b4ae66468e2170c5a0d',1,'cutlass::TileAllocation::reference() const'],['../structcutlass_1_1ZipTileAllocation.html#a0d00001220df7f2bdb1f09ae3f37c585',1,'cutlass::ZipTileAllocation::reference()'],['../structcutlass_1_1ZipTileAllocation.html#af9964904e789b3ab58334f1ec1ceee56',1,'cutlass::ZipTileAllocation::reference() const']]], ['registers',['registers',['../unioncutlass_1_1Vector.html#a29dab07949206cc1609543ffcefd1e5a',1,'cutlass::Vector::registers()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#abd116dc7a5b82ac9b1481fb1d2bfc93f',1,'cutlass::Vector< half, kLanes_ >::registers()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#af27a36f604513f05aebe0624a9c539ab',1,'cutlass::Vector< bin1_t, kLanes_ >::registers()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#ace5e03860b434b2d2a4590bd2bc8c147',1,'cutlass::Vector< int4_t, kLanes_ >::registers()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a15d5103e46d53e030100dedaecb0220a',1,'cutlass::Vector< uint4_t, kLanes_ >::registers()']]], @@ -12,6 +16,7 @@ var searchData= ['remove_5fcv',['remove_cv',['../structcutlass_1_1platform_1_1remove__cv.html',1,'cutlass::platform']]], ['remove_5fvolatile',['remove_volatile',['../structcutlass_1_1platform_1_1remove__volatile.html',1,'cutlass::platform']]], ['remove_5fvolatile_3c_20volatile_20t_20_3e',['remove_volatile< volatile T >',['../structcutlass_1_1platform_1_1remove__volatile_3_01volatile_01T_01_4.html',1,'cutlass::platform']]], + ['required_5fworkspace_5fmemory_5fin_5fbyte',['required_workspace_memory_in_byte',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a6fe1868939c6aeba97d232ac693a5264',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]], ['reset',['reset',['../classcutlass_1_1TensorRef.html#a7ec815838aed4e02dd96acb1000614c0',1,'cutlass::TensorRef::reset(Storage *ptr=nullptr)'],['../classcutlass_1_1TensorRef.html#a7a1da27a46883eb68e3f8983670b784b',1,'cutlass::TensorRef::reset(Storage *ptr, StorageCoord const &stride)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a1043f0ef382179b8ecd9f4e710f6e106',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::reset(Storage *ptr=nullptr)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a6339a8ac88f9172acf0337d149b98cb4',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::reset(Storage *ptr, StorageCoord const &stride)'],['../classcutlass_1_1TensorView.html#ae142eb93cf91e000b635d32fcacf1db3',1,'cutlass::TensorView::reset()'],['../classcutlass_1_1platform_1_1unique__ptr.html#a6740f71511f5495d6038cf8878862331',1,'cutlass::platform::unique_ptr::reset()']]], ['reshape_5ftile_2eh',['reshape_tile.h',['../reshape__tile_8h.html',1,'']]], ['reshapethreads',['ReshapeThreads',['../structcutlass_1_1gemm_1_1ReshapeThreads.html',1,'cutlass::gemm']]], @@ -25,5 +30,7 @@ var searchData= ['rowmajor',['RowMajor',['../structcutlass_1_1MatrixLayout_1_1RowMajor.html',1,'cutlass::MatrixLayout']]], ['rowmajorblocklinear',['RowMajorBlockLinear',['../structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear.html',1,'cutlass::MatrixLayout']]], ['rowmajorblockswizzle',['RowMajorBlockSwizzle',['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html',1,'cutlass::gemm::RowMajorBlockSwizzle< groupRows, swDirection >'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#a4ed7847f8ddad11a6765d914b6f32fcd',1,'cutlass::gemm::RowMajorBlockSwizzle::RowMajorBlockSwizzle()']]], - ['rowmajorinterleaved',['RowMajorInterleaved',['../structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html',1,'cutlass::MatrixLayout']]] + ['rowmajorinterleaved',['RowMajorInterleaved',['../structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html',1,'cutlass::MatrixLayout']]], + ['run',['run',['../structcutlass_1_1reduction_1_1BatchedReduction.html#a4bfcdfd8f2edeb4fc7081443584d599b',1,'cutlass::reduction::BatchedReduction']]], + ['threadblock_5fswizzle_2eh',['threadblock_swizzle.h',['../reduction_2threadblock__swizzle_8h.html',1,'']]] ]; diff --git a/docs/search/all_11.js b/docs/search/all_11.js index 4953381b..cbcd2a4e 100644 --- a/docs/search/all_11.js +++ b/docs/search/all_11.js @@ -1,19 +1,20 @@ var searchData= [ - ['scalar',['Scalar',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a0d38914bf97084e04102e7897aee4295',1,'cutlass::gemm::GemmEpilogue::Scalar()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a8f15d59a7571d406d5ef593c342f0d4a',1,'cutlass::gemm::GemmEpilogueTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#ae2b82b9b62aefa15005091bb84ac20e8',1,'cutlass::gemm::GemmEpilogueTraitsHelper::Scalar()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7073b32c2cc62ffcad70a9ca46995c4c',1,'cutlass::gemm::GlobalLoadStream::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a6894b653fffa59bcb847bc3295643d6b',1,'cutlass::gemm::GemmGlobalTileTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a5817b81c7013db9a3f7394ad4b1db79a',1,'cutlass::gemm::GemmGlobalIteratorAb::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6b5b207eb1147e9669215e192901df9e',1,'cutlass::gemm::GemmGlobalIteratorCd::Scalar()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a5da116ae7e3f8ac2168bcf9bb964a429',1,'cutlass::gemm::SharedLoadStream::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a8b04fd003fc2db46d749360e8838438b',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#aaa439a0bb6b9de5e2722ea7b011effea',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a1b6956adc65254202864520b668edd14',1,'cutlass::gemm::GemmSharedLoadTileATraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a2a6065e583155b3e389253d3bfb64d73',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a9a2218b570dada2f1e3ccd8004c47856',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a1b025cb056729706f36469e74a9799dc',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af511f0ff83166b2a77d4cad4150c8e8f',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#ac618881d66790e4c280dc5692e5ddf95',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a8ae7db3f2f0c57779729d500386c004c',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a7639ccd7f6419a9f232db173a228e756',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#ae4128bba3f1df6ef7824e2db79745b00',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#aa37f285c74bb63c8bb8cbfc767378c41',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#a1ebf24984863d0422356031615b74c53',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueScalar.html#ab1068ba72468f9ede1d05ba41ea31317',1,'cutlass::gemm::IgemmEpilogueScalar::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueScalar_3_01int_01_4.html#a0983fd25494f6a7ed5af37a02e99f650',1,'cutlass::gemm::IgemmEpilogueScalar< int >::Scalar()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#ae6b053ca059932f7c0d3c99243854183',1,'cutlass::gemm::LinearScaling::Scalar()'],['../structcutlass_1_1gemm_1_1LinearScalingDevicePtr.html#a0599650f5cc68b430782d2db74e73d2e',1,'cutlass::gemm::LinearScalingDevicePtr::Scalar()'],['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a9d3006fc0c8bd98b9262606858b26cad',1,'cutlass::detail::ScalarOrPointer::Scalar()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#ab9979f3f1f6d31e1466780c5777de25e',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Scalar()'],['../structcutlass_1_1TileAllocation.html#a98f1243dc279999e3ff083ef45dee3f6',1,'cutlass::TileAllocation::Scalar()'],['../structcutlass_1_1TileIteratorBase.html#affac5a91f0659bb6739db25d20822c34',1,'cutlass::TileIteratorBase::Scalar()'],['../structcutlass_1_1TileLoadIterator.html#aafbb7a2137a07f0e07a12838b66bd511',1,'cutlass::TileLoadIterator::Scalar()'],['../structcutlass_1_1TileStoreIterator.html#ac3273690cdd0a1c2e61d29b289daf5b5',1,'cutlass::TileStoreIterator::Scalar()'],['../unioncutlass_1_1Vector.html#a56875d7cbf921261e68e1f63212db5bd',1,'cutlass::Vector::Scalar()'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a394b6e6ea7b97e076ae6445eb75d47ac',1,'cutlass::Vector< half, 1 >::Scalar()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#a03199df1287d263f7267239c014f1d9b',1,'cutlass::Vector< half, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a05914a7339b9d399ac7d8cf7ef617c31',1,'cutlass::Vector< bin1_t, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#af60049062cedca55d8cb4a3cae82641f',1,'cutlass::Vector< int4_t, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a602530542f526bd151f8a32deda015a1',1,'cutlass::Vector< uint4_t, kLanes_ >::Scalar()'],['../structcutlass_1_1VectorTraits.html#ab3b49d7fb52050c13e50e3c75bf72599',1,'cutlass::VectorTraits::Scalar()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#aaf35570b10829356762dcec925a5b4bc',1,'cutlass::VectorTraits< Vector< T, Lanes > >::Scalar()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#a6e99dde8432b13472971dc41573a574e',1,'cutlass::VectorTraits< Vector< T, Lanes > const >::Scalar()']]], + ['scalar',['Scalar',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a98dd6bfe225412dc86f850b07bf8f232',1,'cutlass::gemm::SplitkPIGemmTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a0d38914bf97084e04102e7897aee4295',1,'cutlass::gemm::GemmEpilogue::Scalar()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a8f15d59a7571d406d5ef593c342f0d4a',1,'cutlass::gemm::GemmEpilogueTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#ae2b82b9b62aefa15005091bb84ac20e8',1,'cutlass::gemm::GemmEpilogueTraitsHelper::Scalar()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7073b32c2cc62ffcad70a9ca46995c4c',1,'cutlass::gemm::GlobalLoadStream::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a6894b653fffa59bcb847bc3295643d6b',1,'cutlass::gemm::GemmGlobalTileTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a5817b81c7013db9a3f7394ad4b1db79a',1,'cutlass::gemm::GemmGlobalIteratorAb::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6b5b207eb1147e9669215e192901df9e',1,'cutlass::gemm::GemmGlobalIteratorCd::Scalar()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a5da116ae7e3f8ac2168bcf9bb964a429',1,'cutlass::gemm::SharedLoadStream::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a8b04fd003fc2db46d749360e8838438b',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#aaa439a0bb6b9de5e2722ea7b011effea',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a1b6956adc65254202864520b668edd14',1,'cutlass::gemm::GemmSharedLoadTileATraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a2a6065e583155b3e389253d3bfb64d73',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a9a2218b570dada2f1e3ccd8004c47856',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a1b025cb056729706f36469e74a9799dc',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af511f0ff83166b2a77d4cad4150c8e8f',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#ac618881d66790e4c280dc5692e5ddf95',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a8ae7db3f2f0c57779729d500386c004c',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a7639ccd7f6419a9f232db173a228e756',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#ae4128bba3f1df6ef7824e2db79745b00',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#aa37f285c74bb63c8bb8cbfc767378c41',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#a1ebf24984863d0422356031615b74c53',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueScalar.html#ab1068ba72468f9ede1d05ba41ea31317',1,'cutlass::gemm::IgemmEpilogueScalar::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueScalar_3_01int_01_4.html#a0983fd25494f6a7ed5af37a02e99f650',1,'cutlass::gemm::IgemmEpilogueScalar< int >::Scalar()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#ae6b053ca059932f7c0d3c99243854183',1,'cutlass::gemm::LinearScaling::Scalar()'],['../structcutlass_1_1gemm_1_1LinearScalingDevicePtr.html#a0599650f5cc68b430782d2db74e73d2e',1,'cutlass::gemm::LinearScalingDevicePtr::Scalar()'],['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a9d3006fc0c8bd98b9262606858b26cad',1,'cutlass::detail::ScalarOrPointer::Scalar()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#ab9979f3f1f6d31e1466780c5777de25e',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Scalar()'],['../structcutlass_1_1TileAllocation.html#a98f1243dc279999e3ff083ef45dee3f6',1,'cutlass::TileAllocation::Scalar()'],['../structcutlass_1_1TileIteratorBase.html#affac5a91f0659bb6739db25d20822c34',1,'cutlass::TileIteratorBase::Scalar()'],['../structcutlass_1_1TileLoadIterator.html#aafbb7a2137a07f0e07a12838b66bd511',1,'cutlass::TileLoadIterator::Scalar()'],['../structcutlass_1_1TileStoreIterator.html#ac3273690cdd0a1c2e61d29b289daf5b5',1,'cutlass::TileStoreIterator::Scalar()'],['../unioncutlass_1_1Vector.html#a56875d7cbf921261e68e1f63212db5bd',1,'cutlass::Vector::Scalar()'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a394b6e6ea7b97e076ae6445eb75d47ac',1,'cutlass::Vector< half, 1 >::Scalar()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#a03199df1287d263f7267239c014f1d9b',1,'cutlass::Vector< half, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a05914a7339b9d399ac7d8cf7ef617c31',1,'cutlass::Vector< bin1_t, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#af60049062cedca55d8cb4a3cae82641f',1,'cutlass::Vector< int4_t, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a602530542f526bd151f8a32deda015a1',1,'cutlass::Vector< uint4_t, kLanes_ >::Scalar()'],['../structcutlass_1_1VectorTraits.html#ab3b49d7fb52050c13e50e3c75bf72599',1,'cutlass::VectorTraits::Scalar()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#aaf35570b10829356762dcec925a5b4bc',1,'cutlass::VectorTraits< Vector< T, Lanes > >::Scalar()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#a6e99dde8432b13472971dc41573a574e',1,'cutlass::VectorTraits< Vector< T, Lanes > const >::Scalar()']]], ['scalar_5for_5fpointer_2eh',['scalar_or_pointer.h',['../scalar__or__pointer_8h.html',1,'']]], - ['scalara',['ScalarA',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a4f4a40f3e77a7c36425449fa97bf2324',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarA()'],['../structcutlass_1_1gemm_1_1Gemm.html#a6fcf9daef57558e1bb932c6eba99721b',1,'cutlass::gemm::Gemm::ScalarA()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#aa97b0e7f369f927c4db6d683dbb7f53b',1,'cutlass::gemm::GemmConfig::ScalarA()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a96d64bdc48db4971798b620d6b49b3f6',1,'cutlass::gemm::GemmTraits::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a1a8f6feed85c7e88b36bc1a2637c716f',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a11be198f90afb859be51ec5feb5dcd2b',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a6bb4f6a102edc2c8fba5b67abf05c363',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarA()']]], - ['scalaraccum',['ScalarAccum',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#a1e854c281072db280ae90c2569b5f64c',1,'cutlass::gemm::FragmentMultiplyAdd::ScalarAccum()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#ab3774e6aa28266b25e3822fc9e72edc2',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::ScalarAccum()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#ae80882255b71c1ec94c6caeded2d0309',1,'cutlass::gemm::LinearScaling::ScalarAccum()']]], - ['scalaralphabeta',['ScalarAlphaBeta',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#aea565efe23b7a5c17eeab5e8cd0d1322',1,'cutlass::gemm::FragmentMultiplyAdd::ScalarAlphaBeta()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#ae7a333f7aa3f52226c76cec9d2da042d',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::ScalarAlphaBeta()']]], - ['scalarb',['ScalarB',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a3f4a2d052e6701f5d0ff950a850eabe3',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarB()'],['../structcutlass_1_1gemm_1_1Gemm.html#ae6f11bb666c2c8510e99200a2c0fc2f4',1,'cutlass::gemm::Gemm::ScalarB()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a389c0980e978463d3cc126342d8413c6',1,'cutlass::gemm::GemmConfig::ScalarB()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#aa0e8fd28f5247764dfb7843f7670c698',1,'cutlass::gemm::GemmTraits::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a70dfd2f33548dbd104d798f728526fbc',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a6a9c4f906a4930f4fc415009ead2e05d',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a6c9a73da33b5ba70307a719db988b56c',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarB()']]], - ['scalarc',['ScalarC',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a726556cb28d1515c89ac841f1140c781',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarC()'],['../structcutlass_1_1gemm_1_1Gemm.html#a71f0c91768a1a87e94030c8c2db51e55',1,'cutlass::gemm::Gemm::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a30d9cfbbede42166e4e1964145dfe05d',1,'cutlass::gemm::GemmConfig::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#abb0741601652df8fdf927d49c2c0e4d0',1,'cutlass::gemm::GemmEpilogue::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#aa794b5f04ce736cdba0d778861ce3a9c',1,'cutlass::gemm::GemmEpilogueTraits::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a8f78d4a68817760099081523aa7fd443',1,'cutlass::gemm::GemmTraits::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a48a641d601c88d95aa542b636f94d60d',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a703b329ebf14d78f576e83c5e6fe23a7',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#af41778b170d940d10bd53f13d34912b1',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarC()']]], - ['scalard',['ScalarD',['../structcutlass_1_1gemm_1_1Gemm.html#ae2aa3663f9f6f5708e816dcf7cd66694',1,'cutlass::gemm::Gemm::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a7ad231b16f05a58900dca8ff0e0e7bfa',1,'cutlass::gemm::GemmConfig::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a4887b56a96694ce6350db77f78bb505f',1,'cutlass::gemm::GemmEpilogue::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#ad9a81c3ff36a4f3aa376e2cff94cbb50',1,'cutlass::gemm::GemmEpilogueTraits::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a3129be75ee087603170f8367e10e070e',1,'cutlass::gemm::GemmTraits::ScalarD()']]], + ['scalara',['ScalarA',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a79afe0be2f0ac59c4e755784651aa332',1,'cutlass::gemm::SplitkPIGemmTraits::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a4f4a40f3e77a7c36425449fa97bf2324',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarA()'],['../structcutlass_1_1gemm_1_1Gemm.html#a6fcf9daef57558e1bb932c6eba99721b',1,'cutlass::gemm::Gemm::ScalarA()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#aa97b0e7f369f927c4db6d683dbb7f53b',1,'cutlass::gemm::GemmConfig::ScalarA()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a96d64bdc48db4971798b620d6b49b3f6',1,'cutlass::gemm::GemmTraits::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a1a8f6feed85c7e88b36bc1a2637c716f',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a11be198f90afb859be51ec5feb5dcd2b',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a6bb4f6a102edc2c8fba5b67abf05c363',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarA()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#a1c6cd0a76b2b2fc9cd021b016f30f459',1,'cutlass::reduction::BatchedReductionTraits::ScalarA()']]], + ['scalaraccum',['ScalarAccum',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#a1e854c281072db280ae90c2569b5f64c',1,'cutlass::gemm::FragmentMultiplyAdd::ScalarAccum()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#ab3774e6aa28266b25e3822fc9e72edc2',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::ScalarAccum()'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a8cffb7f3d493d56bc2bfc113db29bad1',1,'cutlass::gemm::SplitkPIGemmTraits::ScalarAccum()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#ae80882255b71c1ec94c6caeded2d0309',1,'cutlass::gemm::LinearScaling::ScalarAccum()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ae7e468b1d372b4b807e2e1089af885ec',1,'cutlass::reduction::BatchedReductionTraits::ScalarAccum()']]], + ['scalaralphabeta',['ScalarAlphaBeta',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#aea565efe23b7a5c17eeab5e8cd0d1322',1,'cutlass::gemm::FragmentMultiplyAdd::ScalarAlphaBeta()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#ae7a333f7aa3f52226c76cec9d2da042d',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::ScalarAlphaBeta()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ab89c35cfce0017a47341a1e3b2894e0f',1,'cutlass::reduction::BatchedReductionTraits::ScalarAlphaBeta()']]], + ['scalarb',['ScalarB',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a748e224a8789694e4f6bfc36a1262103',1,'cutlass::gemm::SplitkPIGemmTraits::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a3f4a2d052e6701f5d0ff950a850eabe3',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarB()'],['../structcutlass_1_1gemm_1_1Gemm.html#ae6f11bb666c2c8510e99200a2c0fc2f4',1,'cutlass::gemm::Gemm::ScalarB()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a389c0980e978463d3cc126342d8413c6',1,'cutlass::gemm::GemmConfig::ScalarB()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#aa0e8fd28f5247764dfb7843f7670c698',1,'cutlass::gemm::GemmTraits::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a70dfd2f33548dbd104d798f728526fbc',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a6a9c4f906a4930f4fc415009ead2e05d',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a6c9a73da33b5ba70307a719db988b56c',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarB()']]], + ['scalarc',['ScalarC',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#aa7f85820b1392f80157e14bbbb639689',1,'cutlass::gemm::SplitkPIGemmTraits::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a726556cb28d1515c89ac841f1140c781',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarC()'],['../structcutlass_1_1gemm_1_1Gemm.html#a71f0c91768a1a87e94030c8c2db51e55',1,'cutlass::gemm::Gemm::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a30d9cfbbede42166e4e1964145dfe05d',1,'cutlass::gemm::GemmConfig::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#abb0741601652df8fdf927d49c2c0e4d0',1,'cutlass::gemm::GemmEpilogue::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#aa794b5f04ce736cdba0d778861ce3a9c',1,'cutlass::gemm::GemmEpilogueTraits::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a8f78d4a68817760099081523aa7fd443',1,'cutlass::gemm::GemmTraits::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a48a641d601c88d95aa542b636f94d60d',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a703b329ebf14d78f576e83c5e6fe23a7',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#af41778b170d940d10bd53f13d34912b1',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarC()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#adb39cf54a839bdb2e38fbc8a0bf304a8',1,'cutlass::reduction::BatchedReductionTraits::ScalarC()']]], + ['scalard',['ScalarD',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a36d747ce477872482920402f00b604be',1,'cutlass::gemm::SplitkPIGemmTraits::ScalarD()'],['../structcutlass_1_1gemm_1_1Gemm.html#ae2aa3663f9f6f5708e816dcf7cd66694',1,'cutlass::gemm::Gemm::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a7ad231b16f05a58900dca8ff0e0e7bfa',1,'cutlass::gemm::GemmConfig::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a4887b56a96694ce6350db77f78bb505f',1,'cutlass::gemm::GemmEpilogue::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#ad9a81c3ff36a4f3aa376e2cff94cbb50',1,'cutlass::gemm::GemmEpilogueTraits::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a3129be75ee087603170f8367e10e070e',1,'cutlass::gemm::GemmTraits::ScalarD()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#abb54e3addfee4097b37deb5cb30fb582',1,'cutlass::reduction::BatchedReductionTraits::ScalarD()']]], ['scalarepilogue',['ScalarEpilogue',['../structcutlass_1_1gemm_1_1Gemm.html#a9349fc5f20215c1c6508e250b0b4e936',1,'cutlass::gemm::Gemm']]], ['scalario',['ScalarIO',['../structcutlass_1_1ScalarIO.html',1,'cutlass::ScalarIO< T >'],['../structcutlass_1_1ScalarIO.html#ad4166575521254088bf6c6300c351714',1,'cutlass::ScalarIO::ScalarIO()'],['../structcutlass_1_1ScalarIO.html#a5227e1e9ed24326ad4f8dc94d186186f',1,'cutlass::ScalarIO::ScalarIO(T value)']]], ['scalarorpointer',['ScalarOrPointer',['../classcutlass_1_1detail_1_1ScalarOrPointer.html',1,'cutlass::detail::ScalarOrPointer< Scalar_ >'],['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a45cf72b3f0e3408a4b51990b648b71ee',1,'cutlass::detail::ScalarOrPointer::ScalarOrPointer()'],['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a3b85e1940149922942c7d495f9d12134',1,'cutlass::detail::ScalarOrPointer::ScalarOrPointer(Scalar const &val)'],['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a03a54e9150c2cccb26d9fa688ea03f96',1,'cutlass::detail::ScalarOrPointer::ScalarOrPointer(Scalar const *ptr_)']]], ['scalarorpointer_3c_20scalar_20_3e',['ScalarOrPointer< Scalar >',['../classcutlass_1_1detail_1_1ScalarOrPointer.html',1,'cutlass::detail']]], ['scalars',['scalars',['../unioncutlass_1_1Vector.html#a091080b4e9db9e89734f44ceb985d78f',1,'cutlass::Vector::scalars()'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a81709dacea12d6bd3bb328a3f0a519b0',1,'cutlass::Vector< half, 1 >::scalars()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#ab4a119a4813f80aa10c25e32f8b115f3',1,'cutlass::Vector< half, kLanes_ >::scalars()']]], - ['second',['second',['../structcutlass_1_1ZipTileAllocation.html#a94abc7e74632b14718fd2d5b78cceafc',1,'cutlass::ZipTileAllocation::second()'],['../structcutlass_1_1ZipFragment.html#a1812254d5fd77cd6dfdf7d7f2e81130c',1,'cutlass::ZipFragment::second()'],['../structcutlass_1_1ZipConvert.html#ad0daa6c3b89db0a058958a6eba72c6b9',1,'cutlass::ZipConvert::second()'],['../structcutlass_1_1ZipTensorRef.html#ad981b056cc96709a23e6d51dba4cd451',1,'cutlass::ZipTensorRef::second()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a6eb742dc39b1d776cf5d62719835fe26',1,'cutlass::ZipTileIterator::Params::second()'],['../classcutlass_1_1ZipTileIterator.html#ab88ce07b3012ae2e6a92ad784c8067f0',1,'cutlass::ZipTileIterator::second()'],['../structcutlass_1_1ZipTileAllocation.html#ac6b988a7e6cd8ec83fae642342209527',1,'cutlass::ZipTileAllocation::Second()'],['../structcutlass_1_1ZipFragment.html#af93e3396f0f2ca8d5e439ca5803af92a',1,'cutlass::ZipFragment::Second()'],['../structcutlass_1_1ZipConvert.html#a525a08b41696d53d6e542aea9c8e2f10',1,'cutlass::ZipConvert::Second()'],['../structcutlass_1_1ZipTensorRef.html#a3e77904f83d1b33f0bac054355f3432e',1,'cutlass::ZipTensorRef::Second()'],['../classcutlass_1_1ZipTileIterator.html#ae34d88ee2878174707dcfdda4f3fa76c',1,'cutlass::ZipTileIterator::Second()']]], + ['second',['second',['../structcutlass_1_1ZipTileAllocation.html#a94abc7e74632b14718fd2d5b78cceafc',1,'cutlass::ZipTileAllocation::second()'],['../structcutlass_1_1platform_1_1Pair.html#abfe0541c2fcd9d08e92a01340d3d1822',1,'cutlass::platform::Pair::second()'],['../structcutlass_1_1ZipFragment.html#a1812254d5fd77cd6dfdf7d7f2e81130c',1,'cutlass::ZipFragment::second()'],['../structcutlass_1_1ZipConvert.html#ad0daa6c3b89db0a058958a6eba72c6b9',1,'cutlass::ZipConvert::second()'],['../structcutlass_1_1ZipTensorRef.html#ad981b056cc96709a23e6d51dba4cd451',1,'cutlass::ZipTensorRef::second()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a6eb742dc39b1d776cf5d62719835fe26',1,'cutlass::ZipTileIterator::Params::second()'],['../classcutlass_1_1ZipTileIterator.html#ab88ce07b3012ae2e6a92ad784c8067f0',1,'cutlass::ZipTileIterator::second()'],['../structcutlass_1_1ZipTileAllocation.html#ac6b988a7e6cd8ec83fae642342209527',1,'cutlass::ZipTileAllocation::Second()'],['../structcutlass_1_1ZipFragment.html#af93e3396f0f2ca8d5e439ca5803af92a',1,'cutlass::ZipFragment::Second()'],['../structcutlass_1_1ZipConvert.html#a525a08b41696d53d6e542aea9c8e2f10',1,'cutlass::ZipConvert::Second()'],['../structcutlass_1_1ZipTensorRef.html#a3e77904f83d1b33f0bac054355f3432e',1,'cutlass::ZipTensorRef::Second()'],['../classcutlass_1_1ZipTileIterator.html#ae34d88ee2878174707dcfdda4f3fa76c',1,'cutlass::ZipTileIterator::Second()']]], + ['second_5ftype',['second_type',['../structcutlass_1_1platform_1_1Pair.html#a68ed7ccdb98672955eafdf559e17e134',1,'cutlass::platform::Pair']]], ['set',['set',['../classcutlass_1_1PredicateVector_1_1Iterator.html#aadfd039b5622098c9e46706a27122575',1,'cutlass::PredicateVector::Iterator::set()'],['../structcutlass_1_1PredicateVector.html#a062fa8a8df725ef08ced2ffcca8336af',1,'cutlass::PredicateVector::set()'],['../structcutlass_1_1PredicateTileAdapter.html#aeda47efdda0387f9c3c7b31f836afca5',1,'cutlass::PredicateTileAdapter::set()']]], ['sgemm_5ftraits_2eh',['sgemm_traits.h',['../sgemm__traits_8h.html',1,'']]], ['sgemmconfig',['SgemmConfig',['../structcutlass_1_1gemm_1_1SgemmConfig.html',1,'cutlass::gemm']]], @@ -45,7 +46,7 @@ var searchData= ['sharedloadstreamb',['SharedLoadStreamB',['../structcutlass_1_1gemm_1_1GemmTraits.html#acaeb27063a444e2a3b93f3cb70e3c290',1,'cutlass::gemm::GemmTraits::SharedLoadStreamB()'],['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a12447ce4d11601a625662f9d177cc3d8',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadStreamB()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a1d458fe1e416ddc4565f2b802592268b',1,'cutlass::gemm::HgemmTraitsHelper::SharedLoadStreamB()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#aff287e2ca10a437a82736baab2d7c28d',1,'cutlass::gemm::IgemmTraitsHelper::SharedLoadStreamB()']]], ['sharedloadstreamd',['SharedLoadStreamD',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a8e5d38a7795b50a021fc43dc7424288b',1,'cutlass::gemm::GemmEpilogue::SharedLoadStreamD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a5bb3232a2f15d8263d058c69b0839e2f',1,'cutlass::gemm::GemmEpilogueTraits::SharedLoadStreamD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a9e511e1852668e0a242315c24888dee3',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedLoadStreamD()']]], ['sharedloadtiletraits',['SharedLoadTileTraits',['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a076ea17d901d22d3b69bf9c621858235',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af534fc5698513af3c6724b68ae03316d',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a9335aca8b152ff1167763de8ff8fb882',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a851113bffb5b656c5c649845852b3b8d',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a53dd72126a43a1c5811ed92a2313d19d',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#ad8f1b0fda40f1fb7dc598cc841f38afe',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::SharedLoadTileTraits()']]], - ['sharedstorage',['SharedStorage',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage.html',1,'cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1SharedStorage.html',1,'cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::SharedStorage'],['../unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html',1,'cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1SharedStorage.html',1,'cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1ClearAccumulators_1_1SharedStorage.html',1,'cutlass::gemm::ClearAccumulators< Scalar_, kLanes_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1Gemm.html#ad10627d508fad0efae1fb91b26d7a6b7',1,'cutlass::gemm::Gemm::SharedStorage()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#ac36dad8a7b6bc7fc6ef88e44068468dc',1,'cutlass::gemm::GemmEpilogue::SharedStorage()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a22c671494d487511c71f2b0f26fdb404',1,'cutlass::gemm::SharedLoadStream::SharedStorage()'],['../structcutlass_1_1TileLoadIterator.html#a57eff980f6b1086abe39dd617de5b948',1,'cutlass::TileLoadIterator::SharedStorage()'],['../structcutlass_1_1TileStoreIterator.html#af6c297bb43573a13f6b721cc8ff730ca',1,'cutlass::TileStoreIterator::SharedStorage()']]], + ['sharedstorage',['SharedStorage',['../structcutlass_1_1gemm_1_1ClearAccumulators_1_1SharedStorage.html',1,'cutlass::gemm::ClearAccumulators< Scalar_, kLanes_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1SharedStorage.html',1,'cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage.html',1,'cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::SharedStorage'],['../unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html',1,'cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1SharedStorage.html',1,'cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1Gemm.html#ad10627d508fad0efae1fb91b26d7a6b7',1,'cutlass::gemm::Gemm::SharedStorage()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#ac36dad8a7b6bc7fc6ef88e44068468dc',1,'cutlass::gemm::GemmEpilogue::SharedStorage()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a22c671494d487511c71f2b0f26fdb404',1,'cutlass::gemm::SharedLoadStream::SharedStorage()'],['../structcutlass_1_1TileLoadIterator.html#a57eff980f6b1086abe39dd617de5b948',1,'cutlass::TileLoadIterator::SharedStorage()'],['../structcutlass_1_1TileStoreIterator.html#af6c297bb43573a13f6b721cc8ff730ca',1,'cutlass::TileStoreIterator::SharedStorage()']]], ['sharedstorefragmentd',['SharedStoreFragmentD',['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a5e64440830b36899f9c0ed8b369665c8',1,'cutlass::gemm::IgemmEpilogueTraitsHelper']]], ['sharedstoreiteratora',['SharedStoreIteratorA',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a3a20852daeb46c625b2391d078b30d73',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedStoreIteratorA()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a366c89f8ecfbf0aef894cfb6fae25be9',1,'cutlass::gemm::HgemmTraitsHelper::SharedStoreIteratorA()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a3d2b39cacb975afbfeae9e368f0656ae',1,'cutlass::gemm::IgemmTraitsHelper::SharedStoreIteratorA()']]], ['sharedstoreiteratorb',['SharedStoreIteratorB',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a43713f534798b1e27c4ba38b72e63c08',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedStoreIteratorB()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a463dddee069606fd4ecf7c386ff23fce',1,'cutlass::gemm::HgemmTraitsHelper::SharedStoreIteratorB()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a2953ae145fdb2eadf871aee8219e92d1',1,'cutlass::gemm::IgemmTraitsHelper::SharedStoreIteratorB()']]], @@ -64,6 +65,7 @@ var searchData= ['slice',['slice',['../structcutlass_1_1Coord.html#ac8f7a9b0835efc34fd28894b2b45342c',1,'cutlass::Coord']]], ['source_5ffragment',['source_fragment',['../structcutlass_1_1TileStoreStream.html#a0880c28b3ec82d38571ed332451c8d6a',1,'cutlass::TileStoreStream']]], ['source_5frequired',['source_required',['../structcutlass_1_1gemm_1_1LinearScaling.html#aae313f3e691334f80d1316ac4cd30d54',1,'cutlass::gemm::LinearScaling']]], + ['splitkpigemmtraits',['SplitkPIGemmTraits',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html',1,'cutlass::gemm']]], ['sqrt',['sqrt',['../namespacecutlass_1_1platform.html#a81308ccea406262e143e27193cbdf747',1,'cutlass::platform']]], ['sqrt_5fest',['sqrt_est',['../structcutlass_1_1sqrt__est.html',1,'cutlass']]], ['stage',['stage',['../structcutlass_1_1TileLoadIterator.html#ad8e730768c1805d98e23886a492389d3',1,'cutlass::TileLoadIterator::stage()'],['../structcutlass_1_1TileStoreIterator.html#aff36e4a3de7e27667542564e0ec96a7e',1,'cutlass::TileStoreIterator::stage()']]], @@ -94,14 +96,15 @@ var searchData= ['streamsharedstorage',['StreamSharedStorage',['../unioncutlass_1_1gemm_1_1GemmEpilogueTraits_1_1StreamSharedStorage.html',1,'cutlass::gemm::GemmEpilogueTraits']]], ['stride',['stride',['../structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html#a56f728be8b1a3e71f4f322e1dbfb3495',1,'cutlass::MatrixLayout::RowMajorInterleaved::stride()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved.html#a9dab2c5aee6958c9d99109183401f41f',1,'cutlass::MatrixLayout::ColumnMajorInterleaved::stride()'],['../structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html#aa3c5b8d44216fdeeee9cce5e38ce418b',1,'cutlass::MatrixLayout::ContiguousLayout::stride()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear.html#abb88bd43e5493682d1132c550b734a36',1,'cutlass::MatrixLayout::ColumnMajorBlockLinear::stride()'],['../structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear.html#a1b25b4a7061d81041a8e2a548128ca71',1,'cutlass::MatrixLayout::RowMajorBlockLinear::stride()'],['../classcutlass_1_1TensorRef.html#adb52dd6f9f68e7b8b67b8ddfb5c0021c',1,'cutlass::TensorRef::stride() const'],['../classcutlass_1_1TensorRef.html#aa6956072f1231b79fe8925a78c4760b7',1,'cutlass::TensorRef::stride(int dim) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#af5615a41f73259e579a122c86e08d6f9',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::stride() const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#af83380ffc0e5949d40d1a5039a5ddc00',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::stride(int dim) const']]], ['stride_5fadvance',['stride_advance',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#adfb9a7df1b900e4f6ee59c72aabdebd7',1,'cutlass::gemm::GemmGlobalIteratorAb::stride_advance()'],['../structcutlass_1_1TileLoadIterator.html#a31a021d6c099e8027fa9bcb5fdc21c11',1,'cutlass::TileLoadIterator::stride_advance()']]], - ['stride_5fd',['stride_d',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a1a53695ce7f3cb267225d3ab86a0d5aa',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::stride_d()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a235647baff946e483dd61a2069aa01d2',1,'cutlass::TileIteratorBase::Params::stride_d()']]], + ['stride_5fd',['stride_d',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a1a53695ce7f3cb267225d3ab86a0d5aa',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::stride_d()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a408f837f3bdd349aabbf59451e999712',1,'cutlass::TileIteratorBase::Params::stride_d()']]], ['stride_5fh',['stride_h',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a497b91e93d0eb29ca54553f8de4c694f',1,'cutlass::gemm::GemmEpilogueTraits::Params::stride_h()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a0c6b03c635e14ad4424a83f8c7f8025e',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::stride_h()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a4f029a268387bd63112d9074c185c623',1,'cutlass::TileIteratorBase::Params::stride_h()']]], ['stride_5fw',['stride_w',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#ae814ac640d05358a3ce0ea70ed13ea68',1,'cutlass::gemm::GemmEpilogueTraits::Params::stride_w()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#af7e7a71a9fa41cc3f6d0e5963963339d',1,'cutlass::TileIteratorBase::Params::stride_w()']]], ['strides',['strides',['../structcutlass_1_1TensorRefArray.html#a76228819a72b8ed341e680ba84a960be',1,'cutlass::TensorRefArray::strides()'],['../structcutlass_1_1FragmentIterator.html#a2e93985d759d904ac858054eeaa9e50e',1,'cutlass::FragmentIterator::Strides()'],['../structcutlass_1_1TileAllocation.html#aba9164abe2fd7a091a858b23c0d3ac9c',1,'cutlass::TileAllocation::Strides()']]], ['stridevector',['StrideVector',['../structcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4_1_1StrideVector.html',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::StrideVector'],['../classcutlass_1_1TensorRef.html#a07c4b1ace7c8799537553b54cfe0a059',1,'cutlass::TensorRef::StrideVector()'],['../classcutlass_1_1TensorView.html#a625892aa9063eebf769bb2ed0cba7684',1,'cutlass::TensorView::StrideVector()']]], ['stype',['SType',['../structcutlass_1_1gemm_1_1GemmDesc.html#a258e8c008db365b88654f46df3017ec2',1,'cutlass::gemm::GemmDesc']]], + ['subtile',['SubTile',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ad9d4dcb20a69869ebda639747a16e647',1,'cutlass::reduction::BatchedReductionTraits']]], ['subview',['subview',['../classcutlass_1_1TensorView.html#ad4b3faa318699b786f94cf8735a11dbb',1,'cutlass::TensorView']]], ['swap',['swap',['../classcutlass_1_1platform_1_1unique__ptr.html#a748d413c50bdbbe9e2f9986fbc423036',1,'cutlass::platform::unique_ptr::swap()'],['../namespacecutlass_1_1platform.html#a3e83320a39137d92042eb0bf93be9678',1,'cutlass::platform::swap()']]], - ['swizzle',['swizzle',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a0a366c072ee66bbcb390acd7b8bbe5f8',1,'cutlass::gemm::IdentityBlockSwizzle::swizzle()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#aaeb1e1167144352521651547815e003b',1,'cutlass::gemm::ColumnMajorBlockSwizzle::swizzle()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#a668d220ad1f163b72e40106b719e0c8d',1,'cutlass::gemm::RowMajorBlockSwizzle::swizzle()']]], + ['swizzle',['swizzle',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a0a366c072ee66bbcb390acd7b8bbe5f8',1,'cutlass::gemm::IdentityBlockSwizzle::swizzle()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#aaeb1e1167144352521651547815e003b',1,'cutlass::gemm::ColumnMajorBlockSwizzle::swizzle()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#a668d220ad1f163b72e40106b719e0c8d',1,'cutlass::gemm::RowMajorBlockSwizzle::swizzle()'],['../structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html#ae77863b3e53fa349945fafcd45ac39fa',1,'cutlass::reduction::DefaultBlockSwizzle::swizzle()']]], ['swizzledirection',['swizzleDirection',['../structcutlass_1_1gemm_1_1swizzleDirection.html',1,'cutlass::gemm']]] ]; diff --git a/docs/search/all_12.js b/docs/search/all_12.js index c17b85a6..8de81c8b 100644 --- a/docs/search/all_12.js +++ b/docs/search/all_12.js @@ -4,9 +4,8 @@ var searchData= ['tensor_5fref_5fcollection_2eh',['tensor_ref_collection.h',['../tensor__ref__collection_8h.html',1,'']]], ['tensor_5fstride',['tensor_stride',['../structcutlass_1_1TensorRefBatchStrided.html#a27a1e93508bb9c602028cabc3431815f',1,'cutlass::TensorRefBatchStrided']]], ['tensor_5fview_2eh',['tensor_view.h',['../tensor__view_8h.html',1,'']]], - ['tensorarrayref',['TensorArrayRef',['../structcutlass_1_1TensorRefArray.html#a771ede5f73ec18729cc9a5946cf86109',1,'cutlass::TensorRefArray::TensorArrayRef()'],['../structcutlass_1_1TensorRefArray.html#aea35239326dcb23c3c6a18e7b3f92091',1,'cutlass::TensorRefArray::TensorArrayRef(Storage **_pointers, Index _strides[kStorageRank - 1])']]], ['tensorcoord',['TensorCoord',['../classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65',1,'cutlass::TensorRef::TensorCoord()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aeca2ec193d8a07dc9073c6b199215c88',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorCoord()'],['../structcutlass_1_1TensorRefBatchStrided.html#a9d07d96c2eccba10c3a9e4bef58d4e01',1,'cutlass::TensorRefBatchStrided::TensorCoord()'],['../classcutlass_1_1TensorView.html#ada8a241b6b2c5439183b0d6c456c934e',1,'cutlass::TensorView::TensorCoord()']]], - ['tensorref',['TensorRef',['../classcutlass_1_1TensorRef.html',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#aff5202428b0e7207456c97204d4d219a',1,'cutlass::gemm::SharedLoadStream::TensorRef()'],['../structcutlass_1_1TensorRefBatchStrided.html#a0d5f100b9b87f881e7ecaced63bce9dd',1,'cutlass::TensorRefBatchStrided::TensorRef()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a5557f98c75b51751f834c4a7d6385efc',1,'cutlass::TensorRefBatchStrided::ConstIterator::TensorRef()'],['../structcutlass_1_1TensorRefArray.html#a066d684240f8a24e1ba621ae3904ec75',1,'cutlass::TensorRefArray::TensorRef()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#ad19f348ecb951eae63a3ef2c47d34f4f',1,'cutlass::TensorRefArray::ConstIterator::TensorRef()'],['../classcutlass_1_1TensorView.html#af0237fca8d8df1cf4f17d9cb43eae507',1,'cutlass::TensorView::TensorRef()'],['../structcutlass_1_1TileAllocation.html#aa0bf6caeab13dc004350c6c0cfe0df80',1,'cutlass::TileAllocation::TensorRef()'],['../structcutlass_1_1ZipTileAllocation.html#a1c274bfb4401beabaf62fed9c2054ddf',1,'cutlass::ZipTileAllocation::TensorRef()'],['../structcutlass_1_1TileLoadIterator.html#a146adfb1951efd70995b05a7a31fd548',1,'cutlass::TileLoadIterator::TensorRef()'],['../structcutlass_1_1TileStoreIterator.html#acd3c170dd70bee777cb9e9dc662c5eac',1,'cutlass::TileStoreIterator::TensorRef()'],['../structcutlass_1_1TileLoadStream.html#a8c9256c5cdd1fd129dbcc6536375aca7',1,'cutlass::TileLoadStream::TensorRef()'],['../structcutlass_1_1TileStoreStream.html#a2255d760e812cfe8e31f114cdb5793fe',1,'cutlass::TileStoreStream::TensorRef()'],['../classcutlass_1_1ZipTileIterator.html#a1dea96f5cf56aade14bd815aee91d09c',1,'cutlass::ZipTileIterator::TensorRef()'],['../classcutlass_1_1TensorRef.html#a5a667a48c64fb916c31802b73b769765',1,'cutlass::TensorRef::TensorRef(Storage *ptr=nullptr)'],['../classcutlass_1_1TensorRef.html#a48b9b4ad9034f6cf2b7c2ee479aea135',1,'cutlass::TensorRef::TensorRef(Storage *ptr, Index ldm)'],['../classcutlass_1_1TensorRef.html#afe4fc6fa539f36b2764707d50351905c',1,'cutlass::TensorRef::TensorRef(Storage *ptr, StrideVector const &stride)'],['../classcutlass_1_1TensorRef.html#aeca439296c8446741ba84b78f5a601e0',1,'cutlass::TensorRef::TensorRef(Storage *ptr, StorageCoord const &stride)'],['../classcutlass_1_1TensorRef.html#afe92be0a61fb8fc84426f4907faca6c1',1,'cutlass::TensorRef::TensorRef(TensorRef< typename platform::remove_const< Storage >::type, kRank, MapFunc, kStorageRank, Index, LongIndex > const &ref)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aa091e497277d0ba8a98c4ebf73c0cdba',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(Storage *ptr=nullptr)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a3464537a35ef7fbfc9349e5ce2233f1c',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(Storage *ptr, StrideVector const &stride)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aeacb444d31783eafe27a9e8d8cab98f8',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(Storage *ptr, StorageCoord const &stride)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#af815dd66739801b10d43acc097e23636',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(TensorRef< typename platform::remove_const< Storage >::type, kRank, MapFunc, kStorageRank, Index, LongIndex > const &ref)']]], + ['tensorref',['TensorRef',['../classcutlass_1_1TensorRef.html',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#aff5202428b0e7207456c97204d4d219a',1,'cutlass::gemm::SharedLoadStream::TensorRef()'],['../structcutlass_1_1TensorRefBatchStrided.html#a0d5f100b9b87f881e7ecaced63bce9dd',1,'cutlass::TensorRefBatchStrided::TensorRef()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a5557f98c75b51751f834c4a7d6385efc',1,'cutlass::TensorRefBatchStrided::ConstIterator::TensorRef()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a8126b194210599b40b5c3ffaf16cb2d2',1,'cutlass::TensorRefArray::ConstIterator::TensorRef()'],['../structcutlass_1_1TensorRefArray.html#a066d684240f8a24e1ba621ae3904ec75',1,'cutlass::TensorRefArray::TensorRef()'],['../classcutlass_1_1TensorView.html#af0237fca8d8df1cf4f17d9cb43eae507',1,'cutlass::TensorView::TensorRef()'],['../structcutlass_1_1TileAllocation.html#aa0bf6caeab13dc004350c6c0cfe0df80',1,'cutlass::TileAllocation::TensorRef()'],['../structcutlass_1_1ZipTileAllocation.html#a1c274bfb4401beabaf62fed9c2054ddf',1,'cutlass::ZipTileAllocation::TensorRef()'],['../structcutlass_1_1TileLoadIterator.html#a146adfb1951efd70995b05a7a31fd548',1,'cutlass::TileLoadIterator::TensorRef()'],['../structcutlass_1_1TileStoreIterator.html#acd3c170dd70bee777cb9e9dc662c5eac',1,'cutlass::TileStoreIterator::TensorRef()'],['../structcutlass_1_1TileLoadStream.html#a8c9256c5cdd1fd129dbcc6536375aca7',1,'cutlass::TileLoadStream::TensorRef()'],['../structcutlass_1_1TileStoreStream.html#a2255d760e812cfe8e31f114cdb5793fe',1,'cutlass::TileStoreStream::TensorRef()'],['../classcutlass_1_1ZipTileIterator.html#a1dea96f5cf56aade14bd815aee91d09c',1,'cutlass::ZipTileIterator::TensorRef()'],['../classcutlass_1_1TensorRef.html#a5a667a48c64fb916c31802b73b769765',1,'cutlass::TensorRef::TensorRef(Storage *ptr=nullptr)'],['../classcutlass_1_1TensorRef.html#a48b9b4ad9034f6cf2b7c2ee479aea135',1,'cutlass::TensorRef::TensorRef(Storage *ptr, Index ldm)'],['../classcutlass_1_1TensorRef.html#afe4fc6fa539f36b2764707d50351905c',1,'cutlass::TensorRef::TensorRef(Storage *ptr, StrideVector const &stride)'],['../classcutlass_1_1TensorRef.html#aeca439296c8446741ba84b78f5a601e0',1,'cutlass::TensorRef::TensorRef(Storage *ptr, StorageCoord const &stride)'],['../classcutlass_1_1TensorRef.html#afe92be0a61fb8fc84426f4907faca6c1',1,'cutlass::TensorRef::TensorRef(TensorRef< typename platform::remove_const< Storage >::type, kRank, MapFunc, kStorageRank, Index, LongIndex > const &ref)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aa091e497277d0ba8a98c4ebf73c0cdba',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(Storage *ptr=nullptr)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a3464537a35ef7fbfc9349e5ce2233f1c',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(Storage *ptr, StrideVector const &stride)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aeacb444d31783eafe27a9e8d8cab98f8',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(Storage *ptr, StorageCoord const &stride)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#af815dd66739801b10d43acc097e23636',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(TensorRef< typename platform::remove_const< Storage >::type, kRank, MapFunc, kStorageRank, Index, LongIndex > const &ref)']]], ['tensorref_3c_20atype_20const_2c_202_20_3e',['TensorRef< AType const, 2 >',['../classcutlass_1_1TensorRef.html',1,'cutlass']]], ['tensorref_3c_20btype_20const_2c_202_20_3e',['TensorRef< BType const, 2 >',['../classcutlass_1_1TensorRef.html',1,'cutlass']]], ['tensorref_3c_20ctype_20const_2c_202_20_3e',['TensorRef< CType const, 2 >',['../classcutlass_1_1TensorRef.html',1,'cutlass']]], @@ -14,17 +13,16 @@ var searchData= ['tensorref_3c_20storage_5f_2c_20rank_5f_2c_20mapfunc_5f_2c_201_2c_20index_5f_2c_20longindex_5f_20_3e',['TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >',['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html',1,'cutlass']]], ['tensorref_5ft',['TensorRef_t',['../classcutlass_1_1TensorView.html#a25eb8c0fe380114ddaabb37453be4606',1,'cutlass::TensorView']]], ['tensorrefa',['TensorRefA',['../structcutlass_1_1gemm_1_1GemmDesc.html#aea3a523662dc801bf9abf205a8e400fe',1,'cutlass::gemm::GemmDesc']]], - ['tensorrefarray',['TensorRefArray',['../structcutlass_1_1TensorRefArray.html',1,'cutlass']]], + ['tensorrefarray',['TensorRefArray',['../structcutlass_1_1TensorRefArray.html',1,'cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >'],['../structcutlass_1_1TensorRefArray.html#a5b2702b1029db5b5a0b9dddbb5818e3a',1,'cutlass::TensorRefArray::TensorRefArray()'],['../structcutlass_1_1TensorRefArray.html#acbda10b4e66cce9963c80f40ae4c1140',1,'cutlass::TensorRefArray::TensorRefArray(Storage **_pointers, Index _strides[kStorageRank - 1])']]], ['tensorrefb',['TensorRefB',['../structcutlass_1_1gemm_1_1GemmDesc.html#a7de7de97d237d9dcc0d89de7b04342ab',1,'cutlass::gemm::GemmDesc']]], ['tensorrefbatchstrided',['TensorRefBatchStrided',['../structcutlass_1_1TensorRefBatchStrided.html',1,'cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >'],['../structcutlass_1_1TensorRefBatchStrided.html#aa5d7e9a4589d7dacc5d69ca3c70ecc2b',1,'cutlass::TensorRefBatchStrided::TensorRefBatchStrided()'],['../structcutlass_1_1TensorRefBatchStrided.html#abc2ddccdb742f95438b214e0a3a14620',1,'cutlass::TensorRefBatchStrided::TensorRefBatchStrided(TensorRef const &ref, LongIndex _tensor_stride=0)']]], ['tensorrefc',['TensorRefC',['../structcutlass_1_1gemm_1_1GemmDesc.html#a51f77118d545308068b0dc287abf4e8b',1,'cutlass::gemm::GemmDesc']]], ['tensorrefd',['TensorRefD',['../structcutlass_1_1gemm_1_1GemmDesc.html#a1f59ad60a529aa1db6e66ade3cb65052',1,'cutlass::gemm::GemmDesc']]], - ['tensorview',['TensorView',['../classcutlass_1_1TensorView.html',1,'cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >'],['../classcutlass_1_1TensorView.html#a36d48227f65ad482a7bded99d6a3d0c1',1,'cutlass::TensorView::TensorView()'],['../classcutlass_1_1TensorView.html#aad06edac0f43c358c5644dffb5fe9ad7',1,'cutlass::TensorView::TensorView(Base const &_ref, TensorCoord const &_size)'],['../classcutlass_1_1TensorView.html#a73f049694ca1ea4825b5a651852827f5',1,'cutlass::TensorView::TensorView(Storage *ptr, StrideVector const &stride, TensorCoord const &size)'],['../classcutlass_1_1TensorView.html#af64d4195fd6ba2cba53179e1ae678737',1,'cutlass::TensorView::TensorView(Storage *ptr, StorageCoord const &stride, TensorCoord const &size)']]], - ['this_5f',['This_',['../structcutlass_1_1Fragment.html#a32f7ff86b73576a15c5ddaa40c4e0a95',1,'cutlass::Fragment::This_()'],['../structcutlass_1_1FragmentIterator.html#ae320d9672450f5341abcdb24a8b09369',1,'cutlass::FragmentIterator::This_()'],['../structcutlass_1_1FragmentConstIterator.html#add14f695231c2bdd6284bf22b1e66f8f',1,'cutlass::FragmentConstIterator::This_()'],['../structcutlass_1_1gemm_1_1Gemm.html#a26c13e8bbad805760443ef6df475e317',1,'cutlass::gemm::Gemm::This_()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a2892be253a3de5bffc3edcef2890d3a8',1,'cutlass::gemm::GemmGlobalIteratorAb::This_()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6a745d66c4c7de352041f779e54e6b2b',1,'cutlass::gemm::GemmGlobalIteratorCd::This_()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#aa6214a0ad09d155ed79feadc6647b989',1,'cutlass::gemm::GemmTraits::This_()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#aa8b453116c2d96ea2c56e08cb981346c',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::This_()'],['../structcutlass_1_1ZipFragment.html#a2f038ddb37879cbc54dbadaeb7085fb1',1,'cutlass::ZipFragment::This_()']]], + ['tensorview',['TensorView',['../classcutlass_1_1TensorView.html',1,'cutlass::TensorView< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >'],['../structcutlass_1_1TileAllocation.html#a759e998135d5f25e689afdc676d95141',1,'cutlass::TileAllocation::TensorView()'],['../classcutlass_1_1TensorView.html#a36d48227f65ad482a7bded99d6a3d0c1',1,'cutlass::TensorView::TensorView()'],['../classcutlass_1_1TensorView.html#aad06edac0f43c358c5644dffb5fe9ad7',1,'cutlass::TensorView::TensorView(Base const &_ref, TensorCoord const &_size)'],['../classcutlass_1_1TensorView.html#a73f049694ca1ea4825b5a651852827f5',1,'cutlass::TensorView::TensorView(Storage *ptr, StrideVector const &stride, TensorCoord const &size)'],['../classcutlass_1_1TensorView.html#af64d4195fd6ba2cba53179e1ae678737',1,'cutlass::TensorView::TensorView(Storage *ptr, StorageCoord const &stride, TensorCoord const &size)']]], + ['this_5f',['This_',['../structcutlass_1_1Fragment.html#a32f7ff86b73576a15c5ddaa40c4e0a95',1,'cutlass::Fragment::This_()'],['../structcutlass_1_1FragmentIterator.html#ae320d9672450f5341abcdb24a8b09369',1,'cutlass::FragmentIterator::This_()'],['../structcutlass_1_1FragmentConstIterator.html#add14f695231c2bdd6284bf22b1e66f8f',1,'cutlass::FragmentConstIterator::This_()'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a1f24afe5bfc7c5f529dab49c8297fd44',1,'cutlass::gemm::SplitkPIGemmTraits::This_()'],['../structcutlass_1_1gemm_1_1Gemm.html#a26c13e8bbad805760443ef6df475e317',1,'cutlass::gemm::Gemm::This_()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a2892be253a3de5bffc3edcef2890d3a8',1,'cutlass::gemm::GemmGlobalIteratorAb::This_()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6a745d66c4c7de352041f779e54e6b2b',1,'cutlass::gemm::GemmGlobalIteratorCd::This_()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#aa6214a0ad09d155ed79feadc6647b989',1,'cutlass::gemm::GemmTraits::This_()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#aa8b453116c2d96ea2c56e08cb981346c',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::This_()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#ae0c48344c7457f17429e6ae7a76dba37',1,'cutlass::reduction::BatchedReduction::This_()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#acfeed4cb4e5eec9d8e1ae2b787cc88e2',1,'cutlass::reduction::BatchedReductionTraits::This_()'],['../structcutlass_1_1ZipFragment.html#a2f038ddb37879cbc54dbadaeb7085fb1',1,'cutlass::ZipFragment::This_()']]], ['thread_5fmultiply_5fadd_2eh',['thread_multiply_add.h',['../thread__multiply__add_8h.html',1,'']]], ['thread_5foffset',['thread_offset',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a1864c5556529afdc8445021cad780b04',1,'cutlass::gemm::GemmGlobalIteratorAb::thread_offset()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a56601dc34e8f9a070db5dc48c37d55a0',1,'cutlass::gemm::GemmGlobalIteratorCd::thread_offset()'],['../structcutlass_1_1TileLoadIterator.html#a7808588ce0b12017379dcbe1ba9c511f',1,'cutlass::TileLoadIterator::thread_offset()'],['../structcutlass_1_1TileStoreIterator.html#a00a33d258b9d60c8f9d4bfc48e2c6825',1,'cutlass::TileStoreIterator::thread_offset()']]], ['threadblock_5foffset',['threadblock_offset',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a563961c326d2e55f5b8682a30b64a24a',1,'cutlass::gemm::GlobalLoadStream']]], - ['threadblock_5fswizzle_2eh',['threadblock_swizzle.h',['../threadblock__swizzle_8h.html',1,'']]], ['threadblock_5ftile',['threadblock_tile',['../structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#af8f0050e818b788402526857afc7c919',1,'cutlass::gemm::GemmTraits::MainLoopSharedStorage']]], ['threadblocktile',['ThreadBlockTile',['../structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html#a5e43f3c9aa8d7dc5f01dfc63b1ea97dc',1,'cutlass::gemm::GemmMultiplicandTraits']]], ['threadblocktileref',['ThreadblockTileRef',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a011287c8289b7b026f9993da663abd77',1,'cutlass::gemm::GlobalLoadStream::ThreadblockTileRef()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a79b783f02eaa4cf8fc8f929448e121be',1,'cutlass::gemm::GlobalLoadStreamPair::ThreadblockTileRef()'],['../structcutlass_1_1gemm_1_1SharedStreamPair.html#ae2c64823a7a5af01187bd3dda6bc309d',1,'cutlass::gemm::SharedStreamPair::ThreadblockTileRef()']]], @@ -34,13 +32,14 @@ var searchData= ['threadmultiplyadd_3c_20threadgemmshape_5f_2c_20threadsperwarp_5f_2c_20half_2c_20half_2c_20float_20_3e',['ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html',1,'cutlass::gemm']]], ['threadmultiplyadd_3c_20threadgemmshape_5f_2c_20threadsperwarp_5f_2c_20half_2c_20half_2c_20half_20_3e',['ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html',1,'cutlass::gemm']]], ['threadmultiplyadd_3c_20threadgemmshape_5f_2c_20threadsperwarp_5f_2c_20int8_5ft_2c_20int8_5ft_2c_20int_20_3e',['ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html',1,'cutlass::gemm']]], - ['threadoffset',['ThreadOffset',['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits_1_1ThreadOffset.html',1,'cutlass::gemm::WmmaGemmGlobalIteratorCdTraits< Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmGlobalTileCdTraits< Scalar_, Tile_, Threads_, kStrideH_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileATraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::IgemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileBTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset.html',1,'cutlass::TileTraitsWarpRake< Tile_, Threads >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#afd09d3b8e5ca04eab7edc2e5723816e5',1,'cutlass::gemm::GemmGlobalIteratorAb::ThreadOffset()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6d985f8e93be21e56f72ec1400d73df1',1,'cutlass::gemm::GemmGlobalIteratorCd::ThreadOffset()'],['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a07ff2f97fdd57c4df05ef8e817265b30',1,'cutlass::gemm::IgemmGlobalIteratorAb::ThreadOffset()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a667cae4a9fa78a6df073f5ee48ef9664',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::ThreadOffset()'],['../structcutlass_1_1TileTraits.html#a671ef48f4141a9de30b6ec6fb0be1feb',1,'cutlass::TileTraits::ThreadOffset()'],['../structcutlass_1_1TileIteratorBase.html#a0fec2c1f9c0b8fbde4ca6faf123b59a5',1,'cutlass::TileIteratorBase::ThreadOffset()'],['../structcutlass_1_1TileLoadIterator.html#ae8cb43a98cd2fa28f6457afbda8ec58a',1,'cutlass::TileLoadIterator::ThreadOffset()'],['../structcutlass_1_1TileStoreIterator.html#a076357a165302f01f449fd91f9ed402a',1,'cutlass::TileStoreIterator::ThreadOffset()'],['../structcutlass_1_1TileTraitsStrideMajor.html#ae8d14a3c6871072febfd75ed08aba32c',1,'cutlass::TileTraitsStrideMajor::ThreadOffset()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a823ba83e9ca680da0af7d63be772a351',1,'cutlass::TileTraitsContiguousMajor::ThreadOffset()']]], + ['threadoffset',['ThreadOffset',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileBTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmGlobalTileCdTraits< Scalar_, Tile_, Threads_, kStrideH_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits_1_1ThreadOffset.html',1,'cutlass::gemm::WmmaGemmGlobalIteratorCdTraits< Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileATraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_ >::ThreadOffset'],['../structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset.html',1,'cutlass::TileTraitsWarpRake< Tile_, Threads >::ThreadOffset'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::IgemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#afd09d3b8e5ca04eab7edc2e5723816e5',1,'cutlass::gemm::GemmGlobalIteratorAb::ThreadOffset()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6d985f8e93be21e56f72ec1400d73df1',1,'cutlass::gemm::GemmGlobalIteratorCd::ThreadOffset()'],['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a07ff2f97fdd57c4df05ef8e817265b30',1,'cutlass::gemm::IgemmGlobalIteratorAb::ThreadOffset()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a667cae4a9fa78a6df073f5ee48ef9664',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::ThreadOffset()'],['../structcutlass_1_1TileTraits.html#a671ef48f4141a9de30b6ec6fb0be1feb',1,'cutlass::TileTraits::ThreadOffset()'],['../structcutlass_1_1TileIteratorBase.html#a0fec2c1f9c0b8fbde4ca6faf123b59a5',1,'cutlass::TileIteratorBase::ThreadOffset()'],['../structcutlass_1_1TileLoadIterator.html#ae8cb43a98cd2fa28f6457afbda8ec58a',1,'cutlass::TileLoadIterator::ThreadOffset()'],['../structcutlass_1_1TileStoreIterator.html#a076357a165302f01f449fd91f9ed402a',1,'cutlass::TileStoreIterator::ThreadOffset()'],['../structcutlass_1_1TileTraitsStrideMajor.html#ae8d14a3c6871072febfd75ed08aba32c',1,'cutlass::TileTraitsStrideMajor::ThreadOffset()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a823ba83e9ca680da0af7d63be772a351',1,'cutlass::TileTraitsContiguousMajor::ThreadOffset()']]], ['threads',['Threads',['../structcutlass_1_1gemm_1_1ReshapeThreads.html#afd3614ff45f0fc77ad4967951cb5ab57',1,'cutlass::gemm::ReshapeThreads::Threads()'],['../structcutlass_1_1gemm_1_1ReshapeThreads_3_01Tile___00_01Threads___00_01true_01_4.html#a894932ad04fae3aea06eb6d259e01c1c',1,'cutlass::gemm::ReshapeThreads< Tile_, Threads_, true >::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#aae7128f5522383c857d2639031b64c30',1,'cutlass::gemm::GemmGlobalTileTraits::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#a9aff3e2ff0db5a5169257e964e5895c6',1,'cutlass::gemm::GemmGlobalTileCdTraits::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a33e4dcd4449f324fed5ceaa2cde01b50',1,'cutlass::gemm::GemmGlobalIteratorAb::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#afdd08b4f4c1feaa426f997d15cd28c02',1,'cutlass::gemm::GemmGlobalIteratorCd::Threads()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a1acf2a1d8bf73fda142e7d82e05f00a2',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Threads()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a9bef06b59f27c6e673066a7f0280aa06',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Threads()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits.html#ae7a4f120805421ac0712604723612b7e',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::Threads()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits.html#a72fe2fb9077d072f8266f07374624a1f',1,'cutlass::gemm::IgemmGlobalTileTraits::Threads()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#aeb866237318ac7983e554a08395c5125',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Threads()']]], ['threadsdelta',['ThreadsDelta',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a428750e54eabd15b2a3f7ac2a96af0a9',1,'cutlass::gemm::GemmGlobalTileTraits::ThreadsDelta()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#ae2f8331619e735e620f8a8cf2cdde077',1,'cutlass::gemm::GemmGlobalTileCdTraits::ThreadsDelta()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits.html#a61907b1afa07c12de74545d2e23a4281',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::ThreadsDelta()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits.html#a160d1ecd86de4742f550d11bc281786b',1,'cutlass::gemm::IgemmGlobalTileTraits::ThreadsDelta()']]], - ['threadshape',['ThreadShape',['../structcutlass_1_1TileTraitsStrideMajor.html#a03567f41ce616ebb4cdb309c85820599',1,'cutlass::TileTraitsStrideMajor::ThreadShape()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a33116b67e580292d4e354ca17ecd4167',1,'cutlass::TileTraitsContiguousMajor::ThreadShape()'],['../structcutlass_1_1TileTraitsWarpRake.html#ad6619e0b5d876fafd51c78e39f2c029e',1,'cutlass::TileTraitsWarpRake::ThreadShape()']]], + ['threadshape',['ThreadShape',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#a29e8adec50bc7e5c0a91f975dff4a7f3',1,'cutlass::reduction::BatchedReductionTraits::ThreadShape()'],['../structcutlass_1_1TileTraitsStrideMajor.html#a03567f41ce616ebb4cdb309c85820599',1,'cutlass::TileTraitsStrideMajor::ThreadShape()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a33116b67e580292d4e354ca17ecd4167',1,'cutlass::TileTraitsContiguousMajor::ThreadShape()'],['../structcutlass_1_1TileTraitsWarpRake.html#ad6619e0b5d876fafd51c78e39f2c029e',1,'cutlass::TileTraitsWarpRake::ThreadShape()']]], + ['threadshapemultiple2',['ThreadShapeMultiple2',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ab4f5f457dbfa6bd250a4c34e1d573a85',1,'cutlass::reduction::BatchedReductionTraits']]], ['threadsperwarp',['ThreadsPerWarp',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#aea4b928b0cfd4082e93851104838c5d7',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a0761c497c41a45652368fc0d54def98f',1,'cutlass::gemm::GemmSharedLoadTileATraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#aed92656a074e915d97a1b6a990aeba66',1,'cutlass::gemm::GemmSharedLoadTileBTraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#adf72ea773b8d4d3eb184f59c8cdf9543',1,'cutlass::gemm::GemmSharedStoreTileDTraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a9022ffc49b32503fd3639341e7e291a3',1,'cutlass::gemm::GemmSharedLoadTileDTraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a61ed3d8bb4ca6db39d16b632f58d75dc',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a6bb1afd96da05370e61b38f2a93e40df',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a19bd7eb621b08f192bc01a4634853a9b',1,'cutlass::gemm::ThreadMultiplyAdd::ThreadsPerWarp()']]], ['threadsstrides',['ThreadsStrides',['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#ae540e7ea7106552682aa4c97b833b3b1',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::ThreadsStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a2053e4b9cb3ed2727c89960354ea0b29',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::ThreadsStrides()']]], - ['tile',['Tile',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a260543a618fb187c2da40c9f630925ec',1,'cutlass::gemm::GlobalLoadStream::Tile()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a52ba72984ea8ce84eda28d07c6c8ec19',1,'cutlass::gemm::GemmGlobalTileTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a646bd38ab95cdf0379ecb372839a9111',1,'cutlass::gemm::GemmGlobalIteratorAb::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#ab96f324083e51ce4c2b73c18803c69a7',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a74196946c28e98ee60346b0eeede1471',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a9a00be672617162c4c7ac94c7d8980cc',1,'cutlass::gemm::GemmSharedLoadTileATraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#ac242508ec46db0493a69a589dbfc19e4',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a2bc41b907417b47f3dca9c3dd358f8bc',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a63f980fea1ff3dd83ac276cfd83a4ce5',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Tile()'],['../structcutlass_1_1ReshapeTile.html#a8d57fe6422aa920d9815a66e5a85b5f5',1,'cutlass::ReshapeTile::Tile()'],['../structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4.html#a966a9432cf42dfdff8ad6b89ebd74f06',1,'cutlass::ReshapeTile< Tile_, kAccessSize_, true >::Tile()'],['../structcutlass_1_1TileTraits.html#a3632c351a28f71f6c140dd33089d80b0',1,'cutlass::TileTraits::Tile()'],['../structcutlass_1_1TileIteratorBase.html#a7fcf13023c85cf1e1150d867bd1559d4',1,'cutlass::TileIteratorBase::Tile()'],['../structcutlass_1_1TileLoadIterator.html#a88eaa581e0b5419b98ee5a71073d0539',1,'cutlass::TileLoadIterator::Tile()'],['../structcutlass_1_1TileStoreIterator.html#ad18ee6f519b03e1dbf711339b63e16d6',1,'cutlass::TileStoreIterator::Tile()'],['../structcutlass_1_1TileTraitsStrideMajor.html#afbb78ece048b868475d4a6802e6894ac',1,'cutlass::TileTraitsStrideMajor::Tile()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a1607d53544302c12278793bc9b283763',1,'cutlass::TileTraitsContiguousMajor::Tile()'],['../structcutlass_1_1TileTraitsWarpRake.html#adcd658d9daf286368a9d51c8c1647f89',1,'cutlass::TileTraitsWarpRake::Tile()'],['../structcutlass_1_1TileTraitsStandard.html#aee3fee526bc4d4820c03665a2f5f166b',1,'cutlass::TileTraitsStandard::Tile()']]], + ['tile',['Tile',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a260543a618fb187c2da40c9f630925ec',1,'cutlass::gemm::GlobalLoadStream::Tile()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a52ba72984ea8ce84eda28d07c6c8ec19',1,'cutlass::gemm::GemmGlobalTileTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a646bd38ab95cdf0379ecb372839a9111',1,'cutlass::gemm::GemmGlobalIteratorAb::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#ab96f324083e51ce4c2b73c18803c69a7',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a74196946c28e98ee60346b0eeede1471',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a9a00be672617162c4c7ac94c7d8980cc',1,'cutlass::gemm::GemmSharedLoadTileATraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#ac242508ec46db0493a69a589dbfc19e4',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a2bc41b907417b47f3dca9c3dd358f8bc',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a63f980fea1ff3dd83ac276cfd83a4ce5',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Tile()'],['../structcutlass_1_1ReshapeTile.html#a8d57fe6422aa920d9815a66e5a85b5f5',1,'cutlass::ReshapeTile::Tile()'],['../structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4.html#a966a9432cf42dfdff8ad6b89ebd74f06',1,'cutlass::ReshapeTile< Tile_, kAccessSize_, true >::Tile()'],['../structcutlass_1_1WmmaReshapeTile.html#a62fad12013351dca5a1a78526f607558',1,'cutlass::WmmaReshapeTile::Tile()'],['../structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4.html#a4c71fd7ca9040b57458f469a82a8c3f8',1,'cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true >::Tile()'],['../structcutlass_1_1TileTraits.html#a3632c351a28f71f6c140dd33089d80b0',1,'cutlass::TileTraits::Tile()'],['../structcutlass_1_1TileIteratorBase.html#a7fcf13023c85cf1e1150d867bd1559d4',1,'cutlass::TileIteratorBase::Tile()'],['../structcutlass_1_1TileLoadIterator.html#a88eaa581e0b5419b98ee5a71073d0539',1,'cutlass::TileLoadIterator::Tile()'],['../structcutlass_1_1TileStoreIterator.html#ad18ee6f519b03e1dbf711339b63e16d6',1,'cutlass::TileStoreIterator::Tile()'],['../structcutlass_1_1TileTraitsStrideMajor.html#afbb78ece048b868475d4a6802e6894ac',1,'cutlass::TileTraitsStrideMajor::Tile()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a1607d53544302c12278793bc9b283763',1,'cutlass::TileTraitsContiguousMajor::Tile()'],['../structcutlass_1_1TileTraitsWarpRake.html#adcd658d9daf286368a9d51c8c1647f89',1,'cutlass::TileTraitsWarpRake::Tile()'],['../structcutlass_1_1TileTraitsStandard.html#aee3fee526bc4d4820c03665a2f5f166b',1,'cutlass::TileTraitsStandard::Tile()']]], ['tile_5fallocation_2eh',['tile_allocation.h',['../tile__allocation_8h.html',1,'']]], ['tile_5fcoord_2eh',['tile_coord.h',['../tile__coord_8h.html',1,'']]], ['tile_5fiterator_2eh',['tile_iterator.h',['../tile__iterator_8h.html',1,'']]], @@ -68,14 +67,14 @@ var searchData= ['tilewithoutskew',['TileWithoutSkew',['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a050cf5964a2d3683491bc4313ead5450',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::TileWithoutSkew()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a5a5a36fc570e1225b20ce0a48c89d213',1,'cutlass::gemm::GemmSharedLoadTileATraits::TileWithoutSkew()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a1f35981a6d661635dfbcf7c7a76056a2',1,'cutlass::gemm::GemmSharedLoadTileBTraits::TileWithoutSkew()']]], ['tilewithoutskew_5f',['TileWithoutSkew_',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a93ae99460695718babaef6d1ef597e38',1,'cutlass::gemm::GemmSharedLoadTileATraits::TileWithoutSkew_()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a3d8be9ddea1cab53d1b4b3d508f9eab8',1,'cutlass::gemm::GemmSharedLoadTileBTraits::TileWithoutSkew_()']]], ['tilewithskew',['TileWithSkew',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a72e0214f86cf8b3711d006dcd69d7a17',1,'cutlass::gemm::GemmSharedLoadTileATraits::TileWithSkew()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a69c7ec2a779718556e6d9119588e791c',1,'cutlass::gemm::GemmSharedLoadTileBTraits::TileWithSkew()']]], - ['traits',['Traits',['../structcutlass_1_1gemm_1_1Gemm.html#a29f52e33e1f1cf150f5062d9ad2590ff',1,'cutlass::gemm::Gemm::Traits()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a645ab6e9e63163ee6bf536717a30fb1b',1,'cutlass::gemm::GemmEpilogue::Traits()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#af2b5682b8e6dd13590ec258a44636430',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Traits()'],['../structcutlass_1_1TileIteratorBase.html#aac9e5b7890a53d46e5d49912b254ded7',1,'cutlass::TileIteratorBase::Traits()'],['../structcutlass_1_1TileLoadIterator.html#a6a5d065939282fa1b9454b28a1e73948',1,'cutlass::TileLoadIterator::Traits()'],['../structcutlass_1_1TileStoreIterator.html#a5016bd7b24938026a2879ec0054eb3b6',1,'cutlass::TileStoreIterator::Traits()']]], + ['traits',['Traits',['../structcutlass_1_1gemm_1_1DeviceGemm.html#abc61ecd50d4a56b09c31b2118368c4dc',1,'cutlass::gemm::DeviceGemm::Traits()'],['../structcutlass_1_1gemm_1_1Gemm.html#a29f52e33e1f1cf150f5062d9ad2590ff',1,'cutlass::gemm::Gemm::Traits()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a645ab6e9e63163ee6bf536717a30fb1b',1,'cutlass::gemm::GemmEpilogue::Traits()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#af2b5682b8e6dd13590ec258a44636430',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Traits()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#aa50195fcf53f6d69ccfa37f44a524a99',1,'cutlass::reduction::BatchedReduction::Traits()'],['../structcutlass_1_1TileIteratorBase.html#aac9e5b7890a53d46e5d49912b254ded7',1,'cutlass::TileIteratorBase::Traits()'],['../structcutlass_1_1TileLoadIterator.html#a6a5d065939282fa1b9454b28a1e73948',1,'cutlass::TileLoadIterator::Traits()'],['../structcutlass_1_1TileStoreIterator.html#a5016bd7b24938026a2879ec0054eb3b6',1,'cutlass::TileStoreIterator::Traits()']]], ['transform',['transform',['../structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ofca5985d18bcb54bc1f49355f3cee121.html#a4dd95354137d3cb52752ecdd346a5685',1,'cutlass::Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > >::transform(InputFragment const &src, OutputFragment &dst)'],['../structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ofca5985d18bcb54bc1f49355f3cee121.html#aa9fe67c947bf461ba3e3ca48daa34815',1,'cutlass::Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > >::transform(Fragment_ const &src, int offset, OutputFragment &dst)'],['../structcutlass_1_1Copy.html#ab356f0f473aa3fd8df8fb8ddd8e0e9f3',1,'cutlass::Copy::transform(Fragment_ const &src, Fragment_ &dst)'],['../structcutlass_1_1Copy.html#a171f9a44c05b6fb432b0339979de4eb2',1,'cutlass::Copy::transform(InputFragment_ const &src, int offset, Fragment_ &dst)'],['../structcutlass_1_1gemm_1_1HgemmSwizzle.html#ad467ce744bf9d478900fb2661d7a1c26',1,'cutlass::gemm::HgemmSwizzle::transform()'],['../structcutlass_1_1gemm_1_1IgemmFloatToInt8Converter.html#a91ad48362b99a5f96ac1e92e95104f7b',1,'cutlass::gemm::IgemmFloatToInt8Converter::transform(InputFragment const &src, OutputFragment &dst)'],['../structcutlass_1_1gemm_1_1IgemmFloatToInt8Converter.html#a819fd33db88a68521108bab2641d73fd',1,'cutlass::gemm::IgemmFloatToInt8Converter::transform(Fragment_ const &src, int offset, OutputFragment &dst)'],['../structcutlass_1_1gemm_1_1IgemmInt8ToFloatConverter.html#aca8a61e8eb1ab33b9c61e2e7d342379d',1,'cutlass::gemm::IgemmInt8ToFloatConverter::transform(InputFragment const &src, OutputFragment &dst)'],['../structcutlass_1_1gemm_1_1IgemmInt8ToFloatConverter.html#a89e078dbf376da872c3993ccbaf744d3',1,'cutlass::gemm::IgemmInt8ToFloatConverter::transform(Fragment_ const &src, int offset, OutputFragment &dst)'],['../structcutlass_1_1gemm_1_1IgemmSwizzle.html#a084917a512c7a411b76a69f86b906811',1,'cutlass::gemm::IgemmSwizzle::transform()'],['../structcutlass_1_1ZipConvert.html#a7e6398ad8ecd8757744a42f3ab8ef955',1,'cutlass::ZipConvert::transform()']]], ['transformed',['transformed',['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a7583af38ca0fb446882b28c0e2dcae88',1,'cutlass::gemm::SharedLoadStream']]], ['transformed_5ffragment',['transformed_fragment',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7d7042e60aaab0dd00772b239e1f1db1',1,'cutlass::gemm::GlobalLoadStream::transformed_fragment()'],['../structcutlass_1_1TileLoadStream.html#ac61d45d91faf9d060509cf1e5c34fe01',1,'cutlass::TileLoadStream::transformed_fragment()'],['../structcutlass_1_1TileStoreStream.html#aeb5be2edcc35c7876abe5234663f9c48',1,'cutlass::TileStoreStream::transformed_fragment()']]], ['transformedfragment',['TransformedFragment',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a9eb2fb49698d0d018c04e7712e239ce9',1,'cutlass::gemm::GlobalLoadStream::TransformedFragment()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#aa2227d7fa1edef3f6730c7db41b132b4',1,'cutlass::gemm::SharedLoadStream::TransformedFragment()'],['../structcutlass_1_1TileLoadStream.html#a94cde8bcdcedc934cc14de19e43375d1',1,'cutlass::TileLoadStream::TransformedFragment()'],['../structcutlass_1_1TileStoreStream.html#ae14c71f6bb331030429d346f0140c993',1,'cutlass::TileStoreStream::TransformedFragment()'],['../structcutlass_1_1PredicatedTileLoadStream.html#adeb35451885c1c4fb930ae8c914ceb20',1,'cutlass::PredicatedTileLoadStream::TransformedFragment()'],['../structcutlass_1_1PredicatedTileStoreStream.html#af349831b19bb91d414a83c67d14f6927',1,'cutlass::PredicatedTileStoreStream::TransformedFragment()']]], - ['transformer',['transformer',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ab68ba57fe69430c557379b3457faebc4',1,'cutlass::gemm::GlobalLoadStream::transformer()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#af846390ad0e5b80ccb4e8b95c5fe64a7',1,'cutlass::gemm::SharedLoadStream::transformer()'],['../structcutlass_1_1TileLoadStream.html#a54399d7a42c1330ef0e756949483c552',1,'cutlass::TileLoadStream::transformer()'],['../structcutlass_1_1TileStoreStream.html#a61d57147150bffda0c1662d6131a3934',1,'cutlass::TileStoreStream::transformer()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#aa79a27cbe2420882fbaca55e42803f02',1,'cutlass::gemm::GlobalLoadStream::Transformer()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#ad1f70f0dd1027da1353ff7a38f524904',1,'cutlass::gemm::SharedLoadStream::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerA_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a882c10bed18f62ece97f5f20f9de3296',1,'cutlass::gemm::HgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerA_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a42c5bafcb226623b3326dbd01fc72f3b',1,'cutlass::gemm::HgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerB_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#aaaccb3f02a857e0c80d2891c6c6dcdb7',1,'cutlass::gemm::HgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerB_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#ae66bb2c1f87e19278ff471c32e71ea85',1,'cutlass::gemm::HgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalStoreTransformer.html#a98aefa95117dbfdf2e577890318a6c13',1,'cutlass::gemm::IgemmGlobalStoreTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalStoreTransformer_3_01float_00_01Fragment_3_01int8__t_00_01kElements___01_4_01_4.html#a52ecdfd8b94d8d7f4881048e11a33aba',1,'cutlass::gemm::IgemmGlobalStoreTransformer< float, Fragment< int8_t, kElements_ > >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalLoadTransformer.html#ad3190650741cef20c1aca919eddd9d72',1,'cutlass::gemm::IgemmGlobalLoadTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalLoadTransformer_3_01Fragment_3_01int8__t_00_01kElements___01_4_00_01float_01_4.html#a49c249026be24ec8a66f5eda99cb855c',1,'cutlass::gemm::IgemmGlobalLoadTransformer< Fragment< int8_t, kElements_ >, float >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmSharedStoreTransformer.html#a9edd08d595327a8cc3b8da50622b3bd2',1,'cutlass::gemm::IgemmSharedStoreTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerA_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a0b53e18f109ac0fd116e0d01ed6ec197',1,'cutlass::gemm::IgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerA_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a8a4e3ce1174789e2b695bda7b863079f',1,'cutlass::gemm::IgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerB_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a92320b7224a77a8af61e55beef30ad49',1,'cutlass::gemm::IgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerB_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a9728f71c2e7a6a649bd28d8c11241b0a',1,'cutlass::gemm::IgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1TileLoadStream.html#ad531770d336b2541c303c19148ef5cd7',1,'cutlass::TileLoadStream::Transformer()'],['../structcutlass_1_1TileStoreStream.html#aa8c192da812ec83329350e5838838f5e',1,'cutlass::TileStoreStream::Transformer()'],['../structcutlass_1_1PredicatedTileLoadStream.html#a9f79fd30231825b38694bf7c1d12ec2a',1,'cutlass::PredicatedTileLoadStream::Transformer()'],['../structcutlass_1_1PredicatedTileStoreStream.html#a0f91f328ed2b6bd65ef4eeafe18f9afd',1,'cutlass::PredicatedTileStoreStream::Transformer()']]], + ['transformer',['Transformer',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#aa79a27cbe2420882fbaca55e42803f02',1,'cutlass::gemm::GlobalLoadStream::Transformer()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#ad1f70f0dd1027da1353ff7a38f524904',1,'cutlass::gemm::SharedLoadStream::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerA_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a882c10bed18f62ece97f5f20f9de3296',1,'cutlass::gemm::HgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerA_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a42c5bafcb226623b3326dbd01fc72f3b',1,'cutlass::gemm::HgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerB_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#aaaccb3f02a857e0c80d2891c6c6dcdb7',1,'cutlass::gemm::HgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerB_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#ae66bb2c1f87e19278ff471c32e71ea85',1,'cutlass::gemm::HgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalStoreTransformer.html#a98aefa95117dbfdf2e577890318a6c13',1,'cutlass::gemm::IgemmGlobalStoreTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalStoreTransformer_3_01float_00_01Fragment_3_01int8__t_00_01kElements___01_4_01_4.html#a52ecdfd8b94d8d7f4881048e11a33aba',1,'cutlass::gemm::IgemmGlobalStoreTransformer< float, Fragment< int8_t, kElements_ > >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalLoadTransformer.html#ad3190650741cef20c1aca919eddd9d72',1,'cutlass::gemm::IgemmGlobalLoadTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalLoadTransformer_3_01Fragment_3_01int8__t_00_01kElements___01_4_00_01float_01_4.html#a49c249026be24ec8a66f5eda99cb855c',1,'cutlass::gemm::IgemmGlobalLoadTransformer< Fragment< int8_t, kElements_ >, float >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmSharedStoreTransformer.html#a9edd08d595327a8cc3b8da50622b3bd2',1,'cutlass::gemm::IgemmSharedStoreTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerA_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a0b53e18f109ac0fd116e0d01ed6ec197',1,'cutlass::gemm::IgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerA_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a8a4e3ce1174789e2b695bda7b863079f',1,'cutlass::gemm::IgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerB_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a92320b7224a77a8af61e55beef30ad49',1,'cutlass::gemm::IgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerB_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a9728f71c2e7a6a649bd28d8c11241b0a',1,'cutlass::gemm::IgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1TileLoadStream.html#ad531770d336b2541c303c19148ef5cd7',1,'cutlass::TileLoadStream::Transformer()'],['../structcutlass_1_1TileStoreStream.html#aa8c192da812ec83329350e5838838f5e',1,'cutlass::TileStoreStream::Transformer()'],['../structcutlass_1_1PredicatedTileLoadStream.html#a9f79fd30231825b38694bf7c1d12ec2a',1,'cutlass::PredicatedTileLoadStream::Transformer()'],['../structcutlass_1_1PredicatedTileStoreStream.html#a0f91f328ed2b6bd65ef4eeafe18f9afd',1,'cutlass::PredicatedTileStoreStream::Transformer()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ab68ba57fe69430c557379b3457faebc4',1,'cutlass::gemm::GlobalLoadStream::transformer()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#af846390ad0e5b80ccb4e8b95c5fe64a7',1,'cutlass::gemm::SharedLoadStream::transformer()'],['../structcutlass_1_1TileLoadStream.html#a54399d7a42c1330ef0e756949483c552',1,'cutlass::TileLoadStream::transformer()'],['../structcutlass_1_1TileStoreStream.html#a61d57147150bffda0c1662d6131a3934',1,'cutlass::TileStoreStream::transformer()']]], ['trivialiterator',['TrivialIterator',['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html',1,'cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::TrivialIterator'],['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html#a6cb3664b5cba4280b7055a65ddad7850',1,'cutlass::PredicateVector::TrivialIterator::TrivialIterator()'],['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html#ada8cd3ac6db568bb9bf268ba2c3a3e14',1,'cutlass::PredicateVector::TrivialIterator::TrivialIterator(Iterator const &it)'],['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html#a3adf0440f9a0143a61b43d39c3f03721',1,'cutlass::PredicateVector::TrivialIterator::TrivialIterator(PredicateVector const &_vec)']]], ['trivialpredicatetileadapter',['TrivialPredicateTileAdapter',['../structcutlass_1_1TrivialPredicateTileAdapter.html',1,'cutlass::TrivialPredicateTileAdapter'],['../structcutlass_1_1TrivialPredicateTileAdapter.html#a7259853a129a7e319b972d3b41dd59d7',1,'cutlass::TrivialPredicateTileAdapter::TrivialPredicateTileAdapter()']]], ['true_5ftype',['true_type',['../namespacecutlass_1_1platform.html#a0eddc4a3921e137f31fd8014be96e807',1,'cutlass::platform']]], - ['type',['Type',['../structcutlass_1_1StorageType.html#abb0d270cdf38d46347261cac36dc619b',1,'cutlass::StorageType::Type()'],['../structcutlass_1_1StorageType_3_014_01_4.html#aa6754c0eb530544a1457afe1ae94a807',1,'cutlass::StorageType< 4 >::Type()'],['../structcutlass_1_1StorageType_3_012_01_4.html#a66c52fe770774ea01c511aea1af1f8d4',1,'cutlass::StorageType< 2 >::Type()'],['../structcutlass_1_1StorageType_3_011_01_4.html#a4a70002785c378c1f180800f2a65bcd4',1,'cutlass::StorageType< 1 >::Type()'],['../structcutlass_1_1Vectorize.html#a070ec95f4297d769ee53a4d8a650c05e',1,'cutlass::Vectorize::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4.html#a5c32d50c6c97d7489034efb7188c8186',1,'cutlass::Vectorize< Vector< bin1_t, 32 >, kLanes_ >::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4.html#a40dac8fb50ddccb5c1e2a98200ac3a06',1,'cutlass::Vectorize< Vector< int4_t, 8 >, kLanes_ >::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4.html#a9db5873c0d4df1452129022a280247ca',1,'cutlass::Vectorize< Vector< uint4_t, 8 >, kLanes_ >::Type()'],['../structcutlass_1_1platform_1_1integral__constant.html#af58810ccead8f16ed88cd6a4afdc6e52',1,'cutlass::platform::integral_constant::type()'],['../structcutlass_1_1platform_1_1enable__if.html#aff9c0f270020cf097addf77e53a5af99',1,'cutlass::platform::enable_if::type()'],['../structcutlass_1_1platform_1_1conditional.html#ab6484d0dd6449b5195c4e868026fed11',1,'cutlass::platform::conditional::type()'],['../structcutlass_1_1platform_1_1conditional_3_01false_00_01T_00_01F_01_4.html#a8d55f500f667de560650554e9c220644',1,'cutlass::platform::conditional< false, T, F >::type()'],['../structcutlass_1_1platform_1_1remove__const.html#ac3662947fa50251daf58240a9c798085',1,'cutlass::platform::remove_const::type()'],['../structcutlass_1_1platform_1_1remove__const_3_01const_01T_01_4.html#af68706cfaa6af14edc26ad5b974b47e3',1,'cutlass::platform::remove_const< const T >::type()'],['../structcutlass_1_1platform_1_1remove__volatile.html#a4f5b043d46206248d1bbbcf650707dd1',1,'cutlass::platform::remove_volatile::type()'],['../structcutlass_1_1platform_1_1remove__volatile_3_01volatile_01T_01_4.html#aca9bb93efe43106321e4afe0b67542a3',1,'cutlass::platform::remove_volatile< volatile T >::type()'],['../structcutlass_1_1platform_1_1remove__cv.html#a19e5b12cf4eb15ce13d6306735b6de08',1,'cutlass::platform::remove_cv::type()'],['../structcutlass_1_1platform_1_1aligned__storage.html#a9cf0360f335bcd1e9d9e1b266b6dd6c1',1,'cutlass::platform::aligned_storage::type()']]] + ['type',['type',['../structcutlass_1_1platform_1_1integral__constant.html#af58810ccead8f16ed88cd6a4afdc6e52',1,'cutlass::platform::integral_constant::type()'],['../structcutlass_1_1platform_1_1enable__if.html#aff9c0f270020cf097addf77e53a5af99',1,'cutlass::platform::enable_if::type()'],['../structcutlass_1_1platform_1_1conditional.html#ab6484d0dd6449b5195c4e868026fed11',1,'cutlass::platform::conditional::type()'],['../structcutlass_1_1platform_1_1conditional_3_01false_00_01T_00_01F_01_4.html#a8d55f500f667de560650554e9c220644',1,'cutlass::platform::conditional< false, T, F >::type()'],['../structcutlass_1_1platform_1_1remove__const.html#ac3662947fa50251daf58240a9c798085',1,'cutlass::platform::remove_const::type()'],['../structcutlass_1_1platform_1_1remove__const_3_01const_01T_01_4.html#af68706cfaa6af14edc26ad5b974b47e3',1,'cutlass::platform::remove_const< const T >::type()'],['../structcutlass_1_1platform_1_1remove__volatile.html#a4f5b043d46206248d1bbbcf650707dd1',1,'cutlass::platform::remove_volatile::type()'],['../structcutlass_1_1platform_1_1remove__volatile_3_01volatile_01T_01_4.html#aca9bb93efe43106321e4afe0b67542a3',1,'cutlass::platform::remove_volatile< volatile T >::type()'],['../structcutlass_1_1platform_1_1remove__cv.html#a19e5b12cf4eb15ce13d6306735b6de08',1,'cutlass::platform::remove_cv::type()'],['../structcutlass_1_1platform_1_1aligned__storage.html#a9cf0360f335bcd1e9d9e1b266b6dd6c1',1,'cutlass::platform::aligned_storage::type()'],['../structcutlass_1_1StorageType.html#abb0d270cdf38d46347261cac36dc619b',1,'cutlass::StorageType::Type()'],['../structcutlass_1_1StorageType_3_014_01_4.html#aa6754c0eb530544a1457afe1ae94a807',1,'cutlass::StorageType< 4 >::Type()'],['../structcutlass_1_1StorageType_3_012_01_4.html#a66c52fe770774ea01c511aea1af1f8d4',1,'cutlass::StorageType< 2 >::Type()'],['../structcutlass_1_1StorageType_3_011_01_4.html#a4a70002785c378c1f180800f2a65bcd4',1,'cutlass::StorageType< 1 >::Type()'],['../structcutlass_1_1Vectorize.html#a070ec95f4297d769ee53a4d8a650c05e',1,'cutlass::Vectorize::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4.html#a5c32d50c6c97d7489034efb7188c8186',1,'cutlass::Vectorize< Vector< bin1_t, 32 >, kLanes_ >::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4.html#a40dac8fb50ddccb5c1e2a98200ac3a06',1,'cutlass::Vectorize< Vector< int4_t, 8 >, kLanes_ >::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4.html#a9db5873c0d4df1452129022a280247ca',1,'cutlass::Vectorize< Vector< uint4_t, 8 >, kLanes_ >::Type()']]] ]; diff --git a/docs/search/all_14.js b/docs/search/all_14.js index 0b95a13d..71019820 100644 --- a/docs/search/all_14.js +++ b/docs/search/all_14.js @@ -18,5 +18,6 @@ var searchData= ['vectorizedtile',['VectorizedTile',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a6cb3196f1fe3958d1656ba8b493c82ac',1,'cutlass::gemm::GemmGlobalTileTraits']]], ['vectortraits',['VectorTraits',['../structcutlass_1_1VectorTraits.html',1,'cutlass']]], ['vectortraits_3c_20vector_3c_20t_2c_20lanes_20_3e_20_3e',['VectorTraits< Vector< T, Lanes > >',['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html',1,'cutlass']]], - ['vectortraits_3c_20vector_3c_20t_2c_20lanes_20_3e_20const_20_3e',['VectorTraits< Vector< T, Lanes > const >',['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html',1,'cutlass']]] + ['vectortraits_3c_20vector_3c_20t_2c_20lanes_20_3e_20const_20_3e',['VectorTraits< Vector< T, Lanes > const >',['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html',1,'cutlass']]], + ['view',['view',['../structcutlass_1_1TileAllocation.html#a6b8bef90ee0ce6f58f7971a4925d88c7',1,'cutlass::TileAllocation::view()'],['../structcutlass_1_1TileAllocation.html#a8d3befc0770f235d219bf77a0370fa4f',1,'cutlass::TileAllocation::view() const']]] ]; diff --git a/docs/search/all_15.js b/docs/search/all_15.js index 21319e6b..144513ad 100644 --- a/docs/search/all_15.js +++ b/docs/search/all_15.js @@ -9,5 +9,9 @@ var searchData= ['wmma_5fgemm_5ftraits_2eh',['wmma_gemm_traits.h',['../wmma__gemm__traits_8h.html',1,'']]], ['wmma_5fmatrix_2eh',['wmma_matrix.h',['../wmma__matrix_8h.html',1,'']]], ['wmmagemmglobaliteratorcd',['WmmaGemmGlobalIteratorCd',['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ >'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#aa5c14e2a799249fe8bba14aa1dbe69dc',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::WmmaGemmGlobalIteratorCd()']]], - ['wmmagemmglobaliteratorcdtraits',['WmmaGemmGlobalIteratorCdTraits',['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits.html',1,'cutlass::gemm']]] + ['wmmagemmglobaliteratorcdtraits',['WmmaGemmGlobalIteratorCdTraits',['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits.html',1,'cutlass::gemm']]], + ['wmmareshapetile',['WmmaReshapeTile',['../structcutlass_1_1WmmaReshapeTile.html',1,'cutlass']]], + ['wmmareshapetile_3c_20tile_5f_2c_20kaccesssize_5f_2c_20kldsperaccess_5f_2c_20true_20_3e',['WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true >',['../structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4.html',1,'cutlass']]], + ['workspace_5fptr',['workspace_ptr',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a38de876c29aaccc45ec8d194814b102a',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]], + ['workspace_5fsize',['workspace_size',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#aff11608efe9ced3a4862ce78399aa86e',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]] ]; diff --git a/docs/search/all_2.js b/docs/search/all_2.js index 776b8f81..d8d1b5ff 100644 --- a/docs/search/all_2.js +++ b/docs/search/all_2.js @@ -4,15 +4,20 @@ var searchData= ['base',['Base',['../structcutlass_1_1gemm_1_1GemmCoord.html#a790f6552ad26964fa808b51f4aba433b',1,'cutlass::gemm::GemmCoord::Base()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#a581b7cdeef3e620f246923fa07f9db5a',1,'cutlass::gemm::GemmGlobalTileCdTraits::Base()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#ae13e0d30a941e16875f196b4844b03ed',1,'cutlass::gemm::GemmGlobalIteratorAb::Base()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a8f8fbb65070589769468c6b1ac6ba7a5',1,'cutlass::gemm::GemmGlobalIteratorCd::Base()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits.html#ac0c372c24c4c5340153b11edab874741',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::Base()'],['../structcutlass_1_1gemm_1_1HgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a7ec19bf90207a7f598f2ec5166649495',1,'cutlass::gemm::HgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::Base()'],['../structcutlass_1_1gemm_1_1HgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#aca63ec1099444c555299dc144282dded',1,'cutlass::gemm::HgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::Base()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a4b23ba8c14e26672a516aa43063250c2',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::Base()'],['../structcutlass_1_1gemm_1_1IgemmEpilogue.html#a07f9a934f04610db41aa1aac2f4cdf04',1,'cutlass::gemm::IgemmEpilogue::Base()'],['../structcutlass_1_1gemm_1_1IgemmEpilogue_3_01GemmEpilogueTraits___00_01true_01_4.html#a98b415dbe6f7b6cb0c41a4e6b3ad5abf',1,'cutlass::gemm::IgemmEpilogue< GemmEpilogueTraits_, true >::Base()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits.html#ac14f4ef560bd8068d16c0471af6df82c',1,'cutlass::gemm::IgemmGlobalTileTraits::Base()'],['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a82a9cfc61ecc117592bdb30f57bd35c9',1,'cutlass::gemm::IgemmGlobalIteratorAb::Base()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#adbbf19c2f86c198bbe4cc596c63e65ae',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::Base()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a4f7dfa33f6b6e52aac05ad5072710aa9',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::Base()'],['../structcutlass_1_1gemm_1_1LinearScalingDevicePtr.html#ad10463da3f5a421f9b87638775ef0a85',1,'cutlass::gemm::LinearScalingDevicePtr::Base()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits.html#a194aa2762885c3d556a84ff410200b86',1,'cutlass::gemm::WmmaGemmGlobalIteratorCdTraits::Base()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#aea87c73ae2d4e027014ebd4d8141c89e',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Base()'],['../structcutlass_1_1MatrixCoord.html#a07f7e0ff4347aa6d75a5b3a63676d51d',1,'cutlass::MatrixCoord::Base()'],['../structcutlass_1_1TensorRefBatchStrided.html#ac92b0cbb46cea7a04ee4660c2603b000',1,'cutlass::TensorRefBatchStrided::Base()'],['../classcutlass_1_1TensorView.html#a2d0d8ed1c19485318e84db99b8b4e9e6',1,'cutlass::TensorView::Base()'],['../structcutlass_1_1TileCoord.html#ab40c6bb58967d6be5a349bf6276c2eca',1,'cutlass::TileCoord::Base()'],['../structcutlass_1_1TileLoadIterator.html#a1dcbf633eac61ff06980e4992fbe8264',1,'cutlass::TileLoadIterator::Base()'],['../structcutlass_1_1TileStoreIterator.html#a24fa369165de783a72311d8ec3115c48',1,'cutlass::TileStoreIterator::Base()'],['../structcutlass_1_1PredicatedTileLoadStream.html#ac7f57248d3e10c9309f042e5d41440c1',1,'cutlass::PredicatedTileLoadStream::Base()'],['../structcutlass_1_1PredicatedTileStoreStream.html#afc320f4d29f05102e9de0064ca31e49b',1,'cutlass::PredicatedTileStoreStream::Base()']]], ['baseparams',['BaseParams',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a09268125f1e323874f6c12b50185c517',1,'cutlass::gemm::GemmGlobalIteratorAb::BaseParams()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#afd2bed46f4cf04aaf331fb2ecae953f8',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::BaseParams()'],['../structcutlass_1_1TileLoadIterator.html#a9aebb9153659320f1391671c215c519e',1,'cutlass::TileLoadIterator::BaseParams()'],['../structcutlass_1_1TileStoreIterator.html#a5dd2a31d41d9098e928c559af12cbe66',1,'cutlass::TileStoreIterator::BaseParams()']]], ['batch',['batch',['../structcutlass_1_1gemm_1_1GemmCoord.html#ac441e93411ed6954a93ab36f0c747d26',1,'cutlass::gemm::GemmCoord::batch() const'],['../structcutlass_1_1gemm_1_1GemmCoord.html#adaf31768b8239f497c0ec9b40bad1cb5',1,'cutlass::gemm::GemmCoord::batch()']]], + ['batch_5fstride',['batch_stride',['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#ab5d9e5de9b1cc3462920ce7a8f52bbec',1,'cutlass::gemm::GlobalLoadStream::Params']]], ['batch_5fstride_5fa',['batch_stride_A',['../structcutlass_1_1gemm_1_1GemmDesc.html#a8b5a86d14eba0d3c5173753212d62599',1,'cutlass::gemm::GemmDesc']]], ['batch_5fstride_5fb',['batch_stride_B',['../structcutlass_1_1gemm_1_1GemmDesc.html#a95e3fe05e4ca0d4019cbef2b1a54419a',1,'cutlass::gemm::GemmDesc']]], - ['batch_5fstride_5fc',['batch_stride_C',['../structcutlass_1_1gemm_1_1GemmDesc.html#aad3590dffa2e1ba82c834efae6b35ad2',1,'cutlass::gemm::GemmDesc']]], - ['batch_5fstride_5fd',['batch_stride_D',['../structcutlass_1_1gemm_1_1GemmDesc.html#a7b9afcc7e3105da1d002b1baa68d83de',1,'cutlass::gemm::GemmDesc']]], + ['batch_5fstride_5fc',['batch_stride_C',['../structcutlass_1_1gemm_1_1GemmDesc.html#aad3590dffa2e1ba82c834efae6b35ad2',1,'cutlass::gemm::GemmDesc::batch_stride_C()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a4aa03c14de3f0c3c1cf46c3d5f52d802',1,'cutlass::gemm::GemmEpilogueTraits::Params::batch_stride_C()']]], + ['batch_5fstride_5fd',['batch_stride_D',['../structcutlass_1_1gemm_1_1GemmDesc.html#a7b9afcc7e3105da1d002b1baa68d83de',1,'cutlass::gemm::GemmDesc::batch_stride_D()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a5208998277daef204983989d24707008',1,'cutlass::gemm::GemmEpilogueTraits::Params::batch_stride_D()']]], + ['batched_5freduction_2eh',['batched_reduction.h',['../batched__reduction_8h.html',1,'']]], + ['batched_5freduction_5ftraits_2eh',['batched_reduction_traits.h',['../batched__reduction__traits_8h.html',1,'']]], + ['batchedreduction',['BatchedReduction',['../structcutlass_1_1reduction_1_1BatchedReduction.html',1,'cutlass::reduction::BatchedReduction< BatchedReductionTraits_ >'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#a9d76da3dcf4d8ec0cfeb2134f73ea22b',1,'cutlass::reduction::BatchedReduction::BatchedReduction()']]], + ['batchedreductiontraits',['BatchedReductionTraits',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html',1,'cutlass::reduction']]], ['begin',['begin',['../structcutlass_1_1PredicateVector.html#a649045d8224514a4c28bcaf4b247b4a5',1,'cutlass::PredicateVector::begin()'],['../structcutlass_1_1TensorRefBatchStrided.html#a4f4a2f860cc10688ee27cc9ce1df1015',1,'cutlass::TensorRefBatchStrided::begin()'],['../structcutlass_1_1TensorRefArray.html#a6b0f0d9cef4a2f3f4a8bf6c192a282db',1,'cutlass::TensorRefArray::begin()']]], - ['beta',['beta',['../structcutlass_1_1gemm_1_1GemmDesc.html#adac41a0baad9e65aa4a6fe12d249a02b',1,'cutlass::gemm::GemmDesc::beta()'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a0e455ad2e4eba67259867f9123ca817b',1,'cutlass::gemm::LinearScaling::Params::beta()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a0938bcb61d2572d5cf6cf2de95d11816',1,'cutlass::gemm::LinearScalingDevicePtr::Params::beta()']]], + ['beta',['beta',['../structcutlass_1_1gemm_1_1GemmDesc.html#adac41a0baad9e65aa4a6fe12d249a02b',1,'cutlass::gemm::GemmDesc::beta()'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a0e455ad2e4eba67259867f9123ca817b',1,'cutlass::gemm::LinearScaling::Params::beta()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#a805f78cae27c3305c988f251207d85f7',1,'cutlass::reduction::BatchedReductionTraits::Params::beta()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a0938bcb61d2572d5cf6cf2de95d11816',1,'cutlass::gemm::LinearScalingDevicePtr::Params::beta()']]], ['bin1_5ft',['bin1_t',['../structcutlass_1_1bin1__t.html',1,'cutlass']]], ['block',['block',['../structcutlass_1_1KernelLaunchConfiguration.html#a09535026bf08f94c6940c358d95d1edd',1,'cutlass::KernelLaunchConfiguration']]], - ['blockswizzle',['BlockSwizzle',['../structcutlass_1_1gemm_1_1GemmTraits.html#a50672b5fa67d858aeff8f254cf28e941',1,'cutlass::gemm::GemmTraits']]], + ['blockswizzle',['BlockSwizzle',['../structcutlass_1_1gemm_1_1GemmTraits.html#a50672b5fa67d858aeff8f254cf28e941',1,'cutlass::gemm::GemmTraits::BlockSwizzle()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ae0c016bcbe687063774d8abd554939b6',1,'cutlass::reduction::BatchedReductionTraits::BlockSwizzle()']]], ['bool_5fconstant',['bool_constant',['../structcutlass_1_1platform_1_1bool__constant.html',1,'cutlass::platform']]], ['bounds',['bounds',['../structcutlass_1_1RegularTilePredicateFunctor.html#ac2f49374e6f0a27ad2daffcb1f74708a',1,'cutlass::RegularTilePredicateFunctor']]], ['boustrophedon',['Boustrophedon',['../structcutlass_1_1gemm_1_1swizzleDirection.html#aba1528de966f236380c5f55942802fb8a3172f5122c4348fdf4eb2480601249fa',1,'cutlass::gemm::swizzleDirection']]], diff --git a/docs/search/all_3.js b/docs/search/all_3.js index 7695e19c..214160e0 100644 --- a/docs/search/all_3.js +++ b/docs/search/all_3.js @@ -29,11 +29,11 @@ var searchData= ['const_5fend',['const_end',['../structcutlass_1_1PredicateVector.html#ab931610bc07ee0e87bb4d9a4d53a2321',1,'cutlass::PredicateVector']]], ['const_5fref',['const_ref',['../classcutlass_1_1TensorRef.html#a6ab468e38773f5a971a8428673fb5e47',1,'cutlass::TensorRef::const_ref()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a0a48de201c35cbc9d5e3b94fa597a617',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::const_ref()'],['../classcutlass_1_1TensorView.html#a559f7210b445c77a167ab1f41c8d0827',1,'cutlass::TensorView::const_ref()']]], ['constexpr',['constexpr',['../platform_8h.html#a72f0657181cca64b44eb186b707eb380',1,'platform.h']]], - ['constiterator',['ConstIterator',['../classcutlass_1_1PredicateVector_1_1ConstIterator.html',1,'cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::ConstIterator'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html',1,'cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html',1,'cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a1216aab9c567ec0d4232019008ef3ea7',1,'cutlass::PredicateVector::ConstIterator::ConstIterator(ConstIterator const &it)'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a590e4f4533c87162c0b79e8d876a8fda',1,'cutlass::PredicateVector::ConstIterator::ConstIterator(PredicateVector const &_vec, int _start=0)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a28da80c1ba56e354ddb9352b54b231ed',1,'cutlass::TensorRefBatchStrided::ConstIterator::ConstIterator()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a45331031771aeb9f71d5c1abdf42e541',1,'cutlass::TensorRefArray::ConstIterator::ConstIterator()']]], + ['constiterator',['ConstIterator',['../classcutlass_1_1PredicateVector_1_1ConstIterator.html',1,'cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::ConstIterator'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html',1,'cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html',1,'cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::ConstIterator'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a1216aab9c567ec0d4232019008ef3ea7',1,'cutlass::PredicateVector::ConstIterator::ConstIterator(ConstIterator const &it)'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a590e4f4533c87162c0b79e8d876a8fda',1,'cutlass::PredicateVector::ConstIterator::ConstIterator(PredicateVector const &_vec, int _start=0)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a28da80c1ba56e354ddb9352b54b231ed',1,'cutlass::TensorRefBatchStrided::ConstIterator::ConstIterator()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a9f9e68889c83c34365dded0173503044',1,'cutlass::TensorRefArray::ConstIterator::ConstIterator()']]], ['constpredicatetileadapter',['ConstPredicateTileAdapter',['../structcutlass_1_1ConstPredicateTileAdapter.html',1,'cutlass::ConstPredicateTileAdapter< PredicateVector_, Iterations_ >'],['../structcutlass_1_1ConstPredicateTileAdapter.html#a9abd78d5c3e444bfb23d2b1a08be2be1',1,'cutlass::ConstPredicateTileAdapter::ConstPredicateTileAdapter()']]], ['consttensorref',['ConstTensorRef',['../classcutlass_1_1TensorRef.html#a8281d11677512d6e229504ab4babad17',1,'cutlass::TensorRef::ConstTensorRef()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a0c95903f2b959003534cd2d78d4b9496',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::ConstTensorRef()'],['../classcutlass_1_1TensorView.html#a3861f7f09da0b8153d0e3686f2c7cf57',1,'cutlass::TensorView::ConstTensorRef()'],['../structcutlass_1_1TileAllocation.html#a122fa067390f45b29946286271654033',1,'cutlass::TileAllocation::ConstTensorRef()'],['../structcutlass_1_1ZipTileAllocation.html#aba6d5cfb32cfed340d8af2971ec50af4',1,'cutlass::ZipTileAllocation::ConstTensorRef()']]], ['consttensorref_5ft',['ConstTensorRef_t',['../classcutlass_1_1TensorView.html#a162c4cb4f4e866892d63cd37f7f72165',1,'cutlass::TensorView']]], - ['consttensorview',['ConstTensorView',['../classcutlass_1_1TensorView.html#ab879a7b6552c879a81c49cbc0946d719',1,'cutlass::TensorView']]], + ['consttensorview',['ConstTensorView',['../classcutlass_1_1TensorView.html#ab879a7b6552c879a81c49cbc0946d719',1,'cutlass::TensorView::ConstTensorView()'],['../structcutlass_1_1TileAllocation.html#ac39b045286bd3669042f3b223629d73e',1,'cutlass::TileAllocation::ConstTensorView()']]], ['consume_5ftile',['consume_tile',['../structcutlass_1_1gemm_1_1Gemm.html#af8bb78ae198af4dccb0241da44428053',1,'cutlass::gemm::Gemm']]], ['contains',['contains',['../classcutlass_1_1TensorView.html#a3f448bcf6e664c244f472e2659215628',1,'cutlass::TensorView']]], ['contiguouslayout',['ContiguousLayout',['../structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html',1,'cutlass::MatrixLayout']]], @@ -63,16 +63,19 @@ var searchData= ['cutlass',['cutlass',['../namespacecutlass.html',1,'']]], ['cutlass_2eh',['cutlass.h',['../cutlass_8h.html',1,'']]], ['cutlass_5fassert',['CUTLASS_ASSERT',['../cutlass_8h.html#a0159b8e4cd578881a1ccfd0921516af7',1,'cutlass.h']]], - ['cutlass_5fgemm_5floop',['CUTLASS_GEMM_LOOP',['../cutlass_8h.html#a8e18ced39c05ab3304bb4fcdc0cc9f71',1,'cutlass.h']]], + ['cutlass_5fgemm_5floop',['CUTLASS_GEMM_LOOP',['../performance__tuning_8h.html#a8e18ced39c05ab3304bb4fcdc0cc9f71',1,'performance_tuning.h']]], ['cutlass_5fhost_5fdevice',['CUTLASS_HOST_DEVICE',['../cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1',1,'cutlass.h']]], ['cutlass_5fmajor',['CUTLASS_MAJOR',['../cutlass_8h.html#a8ff3cda9323810c1c504793a0206d4b8',1,'cutlass.h']]], ['cutlass_5fmath_2eh',['cutlass_math.h',['../cutlass__math_8h.html',1,'']]], ['cutlass_5fminor',['CUTLASS_MINOR',['../cutlass_8h.html#ad114a1ab01f73833ea00020ffb7bcea7',1,'cutlass.h']]], ['cutlass_5fpatch',['CUTLASS_PATCH',['../cutlass_8h.html#a1d4e5818a594bbfc472e54978955cb8b',1,'cutlass.h']]], - ['cutlass_5fpragma_5fno_5funroll',['CUTLASS_PRAGMA_NO_UNROLL',['../cutlass_8h.html#adb3bc73d74b4a4bf13099d5696db3352',1,'cutlass.h']]], - ['cutlass_5fpragma_5funroll',['CUTLASS_PRAGMA_UNROLL',['../cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4',1,'cutlass.h']]], + ['cutlass_5fperformance_5ftuning_5fh',['CUTLASS_PERFORMANCE_TUNING_H',['../performance__tuning_8h.html#a33cfc98751cc4e8d641a8f1706eb8f68',1,'performance_tuning.h']]], + ['cutlass_5fpragma_5fno_5funroll',['CUTLASS_PRAGMA_NO_UNROLL',['../performance__tuning_8h.html#adb3bc73d74b4a4bf13099d5696db3352',1,'performance_tuning.h']]], + ['cutlass_5fpragma_5funroll',['CUTLASS_PRAGMA_UNROLL',['../performance__tuning_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4',1,'performance_tuning.h']]], ['cutlass_5fversion',['CUTLASS_VERSION',['../cutlass_8h.html#aa3040eddf073214969f9445bfa925039',1,'cutlass.h']]], ['detail',['detail',['../namespacecutlass_1_1detail.html',1,'cutlass']]], ['gemm',['gemm',['../namespacecutlass_1_1gemm.html',1,'cutlass']]], - ['platform',['platform',['../namespacecutlass_1_1platform.html',1,'cutlass']]] + ['matrixlayout',['MatrixLayout',['../namespacecutlass_1_1MatrixLayout.html',1,'cutlass']]], + ['platform',['platform',['../namespacecutlass_1_1platform.html',1,'cutlass']]], + ['reduction',['reduction',['../namespacecutlass_1_1reduction.html',1,'cutlass']]] ]; diff --git a/docs/search/all_4.js b/docs/search/all_4.js index 7ecb56d6..a192562a 100644 --- a/docs/search/all_4.js +++ b/docs/search/all_4.js @@ -1,6 +1,9 @@ var searchData= [ ['d',['d',['../structcutlass_1_1TileCoord.html#a07a067df652b64bd580f2ddf373e292b',1,'cutlass::TileCoord::d() const'],['../structcutlass_1_1TileCoord.html#aec4ffcdc8fbf57a8b649fff38af55007',1,'cutlass::TileCoord::d()'],['../structcutlass_1_1gemm_1_1GemmDesc.html#adf95451422c529587d55aac0fecf0d9f',1,'cutlass::gemm::GemmDesc::D()']]], + ['d_5fa',['d_a',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#af1b12ba220602692e84616b420b00f1c',1,'cutlass::reduction::BatchedReductionTraits::Params']]], + ['d_5fc',['d_c',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#ac79830eaf080ea0ffddd2100db6cf3e1',1,'cutlass::reduction::BatchedReductionTraits::Params']]], + ['d_5fd',['d_d',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#abf9744373a72f3819a616b5a5b3bff22',1,'cutlass::reduction::BatchedReductionTraits::Params']]], ['data',['data',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage.html#a0e05007f939b27e6a17dce5c2a49e3e0',1,'cutlass::gemm::GemmEpilogueTraits::SharedStorage::data()'],['../classcutlass_1_1TensorRef.html#ae1c80b524cd9491e2d499d703e1459f7',1,'cutlass::TensorRef::data()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a67b25cc51ce867b073feead7b94e6aa3',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::data()'],['../structcutlass_1_1TileAllocation.html#a69c43b27939e9ecebd23edb18ed3a9dc',1,'cutlass::TileAllocation::data()'],['../structcutlass_1_1TileAllocation.html#acc3f2c29fe21316091a1405613083000',1,'cutlass::TileAllocation::data() const']]], ['debug_2eh',['debug.h',['../debug_8h.html',1,'']]], ['debugtype',['DebugType',['../structDebugType.html',1,'']]], @@ -9,8 +12,12 @@ var searchData= ['decrement',['decrement',['../classcutlass_1_1ZipTileIterator.html#a6f2f86a1d23ccbaed285550a1d1f92e6',1,'cutlass::ZipTileIterator']]], ['default_5fdelete',['default_delete',['../structcutlass_1_1platform_1_1default__delete.html',1,'cutlass::platform']]], ['default_5fdelete_3c_20t_5b_5d_3e',['default_delete< T[]>',['../structcutlass_1_1platform_1_1default__delete_3_01T[]_4.html',1,'cutlass::platform']]], + ['defaultblockswizzle',['DefaultBlockSwizzle',['../structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html',1,'cutlass::reduction::DefaultBlockSwizzle'],['../structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html#a1ad8edda7b73d23fb5592a531f5736cc',1,'cutlass::reduction::DefaultBlockSwizzle::DefaultBlockSwizzle()']]], ['deleter_5ftype',['deleter_type',['../classcutlass_1_1platform_1_1unique__ptr.html#a85cab9945c36dc56bd7d6adf30c0d252',1,'cutlass::platform::unique_ptr']]], ['delta',['Delta',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a84b89d856f548a26fa1dc15bfd2940da',1,'cutlass::gemm::GemmEpilogueTraits::Delta()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#aede069e51e0732a9648c437261bd4d66',1,'cutlass::gemm::GemmEpilogueTraitsHelper::Delta()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a07bb48f99000256f04f00564a4371c2f',1,'cutlass::gemm::GemmGlobalTileTraits::Delta()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#aba61fb6e93a6423ab72c082c280f5db4',1,'cutlass::gemm::GemmGlobalTileCdTraits::Delta()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a645f65f7d8f123936b286521df470224',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Delta()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#afd691b764b7d105a1ed41dada6049e71',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Delta()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a134a02091bf4360d2cbca56624e52024',1,'cutlass::gemm::GemmSharedLoadTileATraits::Delta()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#adcede218eec980903221feb664cad3a1',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Delta()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a5587ef22f419ab9a7c6117917cc99c57',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Delta()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a2cd23d3b5e2cb64c6d5e9b1d6a78fbce',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Delta()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits.html#a8f8de5a6811b77f0c721cd78a237223e',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::Delta()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#aed055504ec5f09657e059416150188a9',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::Delta()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits.html#adab639892c3586464e2ea5f947b9e0f0',1,'cutlass::gemm::IgemmGlobalTileTraits::Delta()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits.html#ab55665f7c2f2cb8b8b9b8ac852d48002',1,'cutlass::gemm::WmmaGemmGlobalIteratorCdTraits::Delta()'],['../structcutlass_1_1TileTraits.html#ad6d99ccf2fcd2bd47e45d068f4d99c82',1,'cutlass::TileTraits::Delta()'],['../structcutlass_1_1RegularTilePredicateFunctor.html#acd32282ce7852c4669098c06bcd9a360',1,'cutlass::RegularTilePredicateFunctor::Delta()'],['../structcutlass_1_1TileIteratorBase.html#a9aaac43bc2258e06824c354a068e7815',1,'cutlass::TileIteratorBase::Delta()'],['../structcutlass_1_1TileLoadIterator.html#afc68649cb9bb32931b27e711c7ce2604',1,'cutlass::TileLoadIterator::Delta()'],['../structcutlass_1_1TileStoreIterator.html#afdb38f790d9c7cf1ac238643103b45ce',1,'cutlass::TileStoreIterator::Delta()'],['../structcutlass_1_1TileTraitsStrideMajor.html#a47404b4527b101e286347714aea687d5',1,'cutlass::TileTraitsStrideMajor::Delta()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#ab1a4945bf562debeee1af813288e5896',1,'cutlass::TileTraitsContiguousMajor::Delta()'],['../structcutlass_1_1TileTraitsWarpRake.html#a3ce218b223c5716af40c316899324bbe',1,'cutlass::TileTraitsWarpRake::Delta()']]], + ['device_5fgemm_2eh',['device_gemm.h',['../device__gemm_8h.html',1,'']]], + ['device_5fgemm_5ftraits_2eh',['device_gemm_traits.h',['../device__gemm__traits_8h.html',1,'']]], + ['devicegemm',['DeviceGemm',['../structcutlass_1_1gemm_1_1DeviceGemm.html',1,'cutlass::gemm::DeviceGemm< DeviceGemmTraits_ >'],['../structcutlass_1_1gemm_1_1DeviceGemm.html#a92a8c036506655623737eecca9aceeb8',1,'cutlass::gemm::DeviceGemm::DeviceGemm()']]], ['dgemm_5ftraits_2eh',['dgemm_traits.h',['../dgemm__traits_8h.html',1,'']]], ['dgemmconfig',['DgemmConfig',['../structcutlass_1_1gemm_1_1DgemmConfig.html',1,'cutlass::gemm']]], ['dgemmtraits',['DgemmTraits',['../structcutlass_1_1gemm_1_1DgemmTraits.html',1,'cutlass::gemm']]], diff --git a/docs/search/all_6.js b/docs/search/all_6.js index 6320fd67..fca06c54 100644 --- a/docs/search/all_6.js +++ b/docs/search/all_6.js @@ -6,7 +6,8 @@ var searchData= ['fetchedfragment',['FetchedFragment',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7d9b4339129c1ab4f21f1df1144faddf',1,'cutlass::gemm::GlobalLoadStream::FetchedFragment()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a41b45085f17532a6394de3f5ccf201e7',1,'cutlass::gemm::SharedLoadStream::FetchedFragment()']]], ['fill',['fill',['../structcutlass_1_1PredicateVector.html#a236bd1a822479750a809452fd58dd917',1,'cutlass::PredicateVector']]], ['find_5flog2',['find_log2',['../namespacecutlass.html#a58a119c3f7b33d97c43ae8c114004d9e',1,'cutlass']]], - ['first',['First',['../structcutlass_1_1ZipTileAllocation.html#acbdbed808b27997a0e8c22adfa9cc9b2',1,'cutlass::ZipTileAllocation::First()'],['../structcutlass_1_1ZipFragment.html#a97332506a4834bcced49301b1ac7a4c4',1,'cutlass::ZipFragment::First()'],['../structcutlass_1_1ZipConvert.html#a215173f8ac00f67848cae872db94c2f4',1,'cutlass::ZipConvert::First()'],['../structcutlass_1_1ZipTensorRef.html#a44deb7a83049ee80dfd0419d4a0206d9',1,'cutlass::ZipTensorRef::First()'],['../classcutlass_1_1ZipTileIterator.html#a0c3046a077ef69a9325d7df817865bf7',1,'cutlass::ZipTileIterator::First()'],['../structcutlass_1_1ZipTileAllocation.html#a6c0f139eef549521763b36cb1e45a014',1,'cutlass::ZipTileAllocation::first()'],['../structcutlass_1_1ZipFragment.html#aea444ab3b52b6f0e994401cf2e0b7f3c',1,'cutlass::ZipFragment::first()'],['../structcutlass_1_1ZipConvert.html#a6c59c5bda43da84da92f244103dfab6f',1,'cutlass::ZipConvert::first()'],['../structcutlass_1_1ZipTensorRef.html#a535f0e6fc79d0e305f651efed099275c',1,'cutlass::ZipTensorRef::first()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a5dd69883d6b3f16fe28ebfe79235743e',1,'cutlass::ZipTileIterator::Params::first()'],['../classcutlass_1_1ZipTileIterator.html#af961a2621c6b42f2b3ba645afcb250a9',1,'cutlass::ZipTileIterator::first()']]], + ['first',['First',['../structcutlass_1_1ZipTileAllocation.html#acbdbed808b27997a0e8c22adfa9cc9b2',1,'cutlass::ZipTileAllocation::First()'],['../structcutlass_1_1ZipFragment.html#a97332506a4834bcced49301b1ac7a4c4',1,'cutlass::ZipFragment::First()'],['../structcutlass_1_1ZipConvert.html#a215173f8ac00f67848cae872db94c2f4',1,'cutlass::ZipConvert::First()'],['../structcutlass_1_1ZipTensorRef.html#a44deb7a83049ee80dfd0419d4a0206d9',1,'cutlass::ZipTensorRef::First()'],['../classcutlass_1_1ZipTileIterator.html#a0c3046a077ef69a9325d7df817865bf7',1,'cutlass::ZipTileIterator::First()'],['../structcutlass_1_1ZipTileAllocation.html#a6c0f139eef549521763b36cb1e45a014',1,'cutlass::ZipTileAllocation::first()'],['../structcutlass_1_1platform_1_1Pair.html#a0eed7c99e9385ff2877b03ab71efca48',1,'cutlass::platform::Pair::first()'],['../structcutlass_1_1ZipFragment.html#aea444ab3b52b6f0e994401cf2e0b7f3c',1,'cutlass::ZipFragment::first()'],['../structcutlass_1_1ZipConvert.html#a6c59c5bda43da84da92f244103dfab6f',1,'cutlass::ZipConvert::first()'],['../structcutlass_1_1ZipTensorRef.html#a535f0e6fc79d0e305f651efed099275c',1,'cutlass::ZipTensorRef::first()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a5dd69883d6b3f16fe28ebfe79235743e',1,'cutlass::ZipTileIterator::Params::first()'],['../classcutlass_1_1ZipTileIterator.html#af961a2621c6b42f2b3ba645afcb250a9',1,'cutlass::ZipTileIterator::first()']]], + ['first_5ftype',['first_type',['../structcutlass_1_1platform_1_1Pair.html#aa7e33bdd8f23ebe688ea8aaf20f99a17',1,'cutlass::platform::Pair']]], ['fp16_5fsgemm_5fmultiply_5fadd_2eh',['fp16_sgemm_multiply_add.h',['../fp16__sgemm__multiply__add_8h.html',1,'']]], ['fp16_5fsgemm_5ftraits_2eh',['fp16_sgemm_traits.h',['../fp16__sgemm__traits_8h.html',1,'']]], ['fp16sgemmconfig',['Fp16SgemmConfig',['../structcutlass_1_1gemm_1_1Fp16SgemmConfig.html',1,'cutlass::gemm']]], @@ -27,5 +28,7 @@ var searchData= ['fragmentmultiplyadd',['FragmentMultiplyAdd',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html',1,'cutlass::gemm::FragmentMultiplyAdd< ScalarAlphaBeta_, ScalarAccum_, fragMul2 >'],['../structcutlass_1_1gemm_1_1LinearScaling.html#aa697d4eaced1ef08247aeb1fcc0f0ea8',1,'cutlass::gemm::LinearScaling::FragmentMultiplyAdd()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#ae1fbd0fd103deda51208102f15f896ed',1,'cutlass::gemm::FragmentMultiplyAdd::FragmentMultiplyAdd()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#ad35b57b3f0cf5a467a1b0e48cffc3061',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::FragmentMultiplyAdd()']]], ['fragmentmultiplyadd_3c_20half_2c_20half_2c_20true_20_3e',['FragmentMultiplyAdd< half, half, true >',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html',1,'cutlass::gemm']]], ['fragmentshape',['FragmentShape',['../structcutlass_1_1FragmentIterator.html#a63ff1767c4923b0a2b6b64487306ed76',1,'cutlass::FragmentIterator::FragmentShape()'],['../structcutlass_1_1FragmentConstIterator.html#a880f12d0cd42cdae7ce6009d2233f577',1,'cutlass::FragmentConstIterator::FragmentShape()'],['../structcutlass_1_1gemm_1_1HgemmSwizzle.html#afe44fedcf24b90c0cf6ac7d1495b89e4',1,'cutlass::gemm::HgemmSwizzle::FragmentShape()'],['../structcutlass_1_1gemm_1_1IgemmSwizzle.html#a13a3b052cd8b714471489a9cc4dc7004',1,'cutlass::gemm::IgemmSwizzle::FragmentShape()'],['../structcutlass_1_1TileIteratorBase.html#a064aaca9cc27e34bdae9684447a3f5be',1,'cutlass::TileIteratorBase::FragmentShape()'],['../structcutlass_1_1TileLoadIterator.html#a46a2cbf407d3f43a7441323d150d96f1',1,'cutlass::TileLoadIterator::FragmentShape()'],['../structcutlass_1_1TileStoreIterator.html#a82ceeea55603dbb0c6e5bf9c22ac692e',1,'cutlass::TileStoreIterator::FragmentShape()']]], - ['functor',['Functor',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a6c30bea1b2a1bd2e981025851d5b12d1',1,'cutlass::gemm::GemmEpilogue::Functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a8acbe7bfa905258a964ef56e634d4c99',1,'cutlass::gemm::GemmEpilogueTraits::Functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a981134cf87d85aa28570a62d9e878b10',1,'cutlass::gemm::GemmEpilogueTraitsHelper::Functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a5aa254702fcf24630e04ceb174aa3d57',1,'cutlass::gemm::GemmEpilogue::functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#adb04e5990ab7faae9e8c0b110d2e3bee',1,'cutlass::gemm::GemmEpilogueTraits::Params::functor()']]] + ['functor',['Functor',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a6c30bea1b2a1bd2e981025851d5b12d1',1,'cutlass::gemm::GemmEpilogue::Functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a8acbe7bfa905258a964ef56e634d4c99',1,'cutlass::gemm::GemmEpilogueTraits::Functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a981134cf87d85aa28570a62d9e878b10',1,'cutlass::gemm::GemmEpilogueTraitsHelper::Functor()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#a30605f35d51e4364fe80edb80eac5e80',1,'cutlass::reduction::BatchedReduction::Functor()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#af62fd99fae22a4e4d93cfa0560f1dcc5',1,'cutlass::reduction::BatchedReductionTraits::Functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a5aa254702fcf24630e04ceb174aa3d57',1,'cutlass::gemm::GemmEpilogue::functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#adb04e5990ab7faae9e8c0b110d2e3bee',1,'cutlass::gemm::GemmEpilogueTraits::Params::functor()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#a0f6b38c1b3a5800e6f29d9a2c6c1928d',1,'cutlass::reduction::BatchedReduction::functor()']]], + ['functor_5fcaller',['functor_caller',['../structcutlass_1_1reduction_1_1BatchedReduction.html#a7c1d173cbe3abd93bd7bd4c4bf0e0d26',1,'cutlass::reduction::BatchedReduction']]], + ['functorparams',['functorParams',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#a11e54597165b66e3054c6b9f43210760',1,'cutlass::reduction::BatchedReductionTraits::Params']]] ]; diff --git a/docs/search/all_7.js b/docs/search/all_7.js index d0d7ba23..f0019881 100644 --- a/docs/search/all_7.js +++ b/docs/search/all_7.js @@ -31,14 +31,15 @@ var searchData= ['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::GemmGlobalIteratorAb< TileTraits_, Index_ >'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#ab61ce6b04d72d2652ee3bffca3885fe5',1,'cutlass::gemm::GemmGlobalIteratorAb::GemmGlobalIteratorAb()']]], - ['gemmglobaliteratorcd',['GemmGlobalIteratorCd',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html',1,'cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#aeeed9a3582a879d9da77191df88e83ff',1,'cutlass::gemm::GemmGlobalIteratorCd::GemmGlobalIteratorCd(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block_offset, ThreadOffset thread_offset_func=ThreadOffset())'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a15d3244546d1c8f4727e84b27a8b7fc6',1,'cutlass::gemm::GemmGlobalIteratorCd::GemmGlobalIteratorCd(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block, int offset=0, int pred_offset=0, ThreadOffset thread_offset_func=ThreadOffset())']]], + ['gemmglobaliteratorab',['GemmGlobalIteratorAb',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html',1,'cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a43dd51c089f866fe63d14502163fd950',1,'cutlass::gemm::GemmGlobalIteratorAb::GemmGlobalIteratorAb()']]], + ['gemmglobaliteratorcd',['GemmGlobalIteratorCd',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html',1,'cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a15d3244546d1c8f4727e84b27a8b7fc6',1,'cutlass::gemm::GemmGlobalIteratorCd::GemmGlobalIteratorCd()']]], ['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']]], + ['gemmparams',['GemmParams',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a52264bdfeb4d95313a8dbda81e87ede0',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]], ['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']]], @@ -53,18 +54,20 @@ var searchData= ['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',['GemmTraits',['../structcutlass_1_1gemm_1_1GemmTraits.html',1,'cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a3336900d79b54d872451c7a62dbc3212',1,'cutlass::gemm::SplitkPIGemmTraits::GemmTraits()']]], ['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']]], ['get',['get',['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a1661baed19b4aa4eea725a6f6e6b26a3',1,'cutlass::detail::ScalarOrPointer::get()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#af035589126434bd2dbef4000cd864b8b',1,'cutlass::PredicateVector::Iterator::get()'],['../structcutlass_1_1ComputeOffsetFromShape.html#a7bc0bc7e03cd974a05d00e98a72ee78b',1,'cutlass::ComputeOffsetFromShape::get()'],['../structcutlass_1_1ComputeOffsetFromStrides.html#aa28231590bfa0ced0f317e6a4d52dc1e',1,'cutlass::ComputeOffsetFromStrides::get()'],['../structcutlass_1_1ComputeThreadOffsetFromStrides.html#a1744bfe277cbe0c642cce4a48c1dd9ad',1,'cutlass::ComputeThreadOffsetFromStrides::get()'],['../structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_01T__dd54c41f6edb97d3c208cb7c6fe4ab9b.html#a5d446b2663c01362361e09435a726996',1,'cutlass::ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, T_c_ >, Shape< 1, S_h_, S_w_, S_c_ > >::get()'],['../structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_011_0e75281d7e02fa191f5d498e10e25dc1b.html#a6e621f5fae2ba29277fde46be1cede24',1,'cutlass::ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, 1 >, Shape< 1, S_h_, S_w_, 1 > >::get()'],['../classcutlass_1_1platform_1_1unique__ptr.html#a2e7c14b8a118f81c1df46ea5045e297b',1,'cutlass::platform::unique_ptr::get()']]], ['get_5fbatch_5fid',['get_batch_id',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a8f84a2b830caecff3edd052dc24635e6',1,'cutlass::gemm::IdentityBlockSwizzle::get_batch_id()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#abb21a72e2cef3217f446f70758c59c1e',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_batch_id()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#a9be74716c0e3dc6a7f4cdd64cbb16211',1,'cutlass::gemm::RowMajorBlockSwizzle::get_batch_id()']]], ['get_5fdeleter',['get_deleter',['../classcutlass_1_1platform_1_1unique__ptr.html#a5b8d8ecafb4da336acd50e40cd42b6e0',1,'cutlass::platform::unique_ptr::get_deleter() noexcept'],['../classcutlass_1_1platform_1_1unique__ptr.html#aa427ab4ea4f2336ac6db28d53a4c11ac',1,'cutlass::platform::unique_ptr::get_deleter() const noexcept']]], - ['get_5fgrid_5flayout',['get_grid_layout',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#afc20f302a5cc5b736cfc1c91dfcaa57c',1,'cutlass::gemm::IdentityBlockSwizzle::get_grid_layout()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#a927ce3eed4cd22554f9e6fe20a1ccc6e',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_grid_layout()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#aa9fc825e19404ff527cb3d2dcc55ae1c',1,'cutlass::gemm::RowMajorBlockSwizzle::get_grid_layout()']]], + ['get_5fgrid_5flayout',['get_grid_layout',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#afc20f302a5cc5b736cfc1c91dfcaa57c',1,'cutlass::gemm::IdentityBlockSwizzle::get_grid_layout()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#a927ce3eed4cd22554f9e6fe20a1ccc6e',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_grid_layout()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#aa9fc825e19404ff527cb3d2dcc55ae1c',1,'cutlass::gemm::RowMajorBlockSwizzle::get_grid_layout()'],['../structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html#a70bdfa46a246b4fd6d000ffefe8778e4',1,'cutlass::reduction::DefaultBlockSwizzle::get_grid_layout()']]], + ['get_5foffset_5fto_5fresidue',['get_offset_to_residue',['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a9c0707b48565a522884cbd077aa299ee',1,'cutlass::gemm::GlobalLoadStream::Params']]], ['get_5fpointer_5foffset',['get_pointer_offset',['../structcutlass_1_1TensorRefBatchStrided.html#a3d1922402bba34d0bc865fcc3e1a9a5c',1,'cutlass::TensorRefBatchStrided']]], ['get_5fptr',['get_ptr',['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a6b066568947df37094e4125b0347faf1',1,'cutlass::detail::ScalarOrPointer']]], ['get_5fscalar',['get_scalar',['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a81bd7b4f50b8d7c5effe5291ad920380',1,'cutlass::detail::ScalarOrPointer']]], - ['get_5fthreadblock_5foffset',['get_threadblock_offset',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a386e5cf702b0dcc3d57f9fdb4ab5d236',1,'cutlass::gemm::IdentityBlockSwizzle::get_threadblock_offset()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#a380fb7f905548c52933ea411166424b4',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_threadblock_offset()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#af7c1b4e0afb08e893cd14a169a0b47cd',1,'cutlass::gemm::RowMajorBlockSwizzle::get_threadblock_offset()']]], + ['get_5fthreadblock_5fbounds',['get_threadblock_bounds',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a4afd3f4a5c5af95d33767d7fb9cf1232',1,'cutlass::gemm::IdentityBlockSwizzle::get_threadblock_bounds()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#aa6839013e363a88eae3300fdb85d11bd',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_threadblock_bounds()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#a99077ff45f25146064d5061ee2a274da',1,'cutlass::gemm::RowMajorBlockSwizzle::get_threadblock_bounds()']]], + ['get_5fthreadblock_5foffset',['get_threadblock_offset',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a386e5cf702b0dcc3d57f9fdb4ab5d236',1,'cutlass::gemm::IdentityBlockSwizzle::get_threadblock_offset()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#a380fb7f905548c52933ea411166424b4',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_threadblock_offset()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#af7c1b4e0afb08e893cd14a169a0b47cd',1,'cutlass::gemm::RowMajorBlockSwizzle::get_threadblock_offset()'],['../structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html#ac4e26c28b5b715340a399e86213ae4d1',1,'cutlass::reduction::DefaultBlockSwizzle::get_threadblock_offset()']]], ['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']]], @@ -81,7 +84,7 @@ var searchData= ['globalloadstream',['GlobalLoadStream',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html',1,'cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a367aa0bd4be33d90ffe752274c728ef8',1,'cutlass::gemm::GemmTraits::GlobalLoadStream()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#aec86bdf5d7d4ad1f7b6ebebcf2da8395',1,'cutlass::gemm::GlobalLoadStream::GlobalLoadStream()']]], ['globalloadstreama',['GlobalLoadStreamA',['../structcutlass_1_1gemm_1_1GemmTraits.html#a9cd6c3fddfb4315eb52b672900462c47',1,'cutlass::gemm::GemmTraits::GlobalLoadStreamA()'],['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a50121da13661e9fa50e5ea3a87c06266',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::GlobalLoadStreamA()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a80e36b583ccd9aa9b37d52faa090cbca',1,'cutlass::gemm::HgemmTraitsHelper::GlobalLoadStreamA()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a2aceaceb30287e909c254f01f1716845',1,'cutlass::gemm::IgemmTraitsHelper::GlobalLoadStreamA()']]], ['globalloadstreamb',['GlobalLoadStreamB',['../structcutlass_1_1gemm_1_1GemmTraits.html#ac393b07e780629fc8254fc22cc6f815b',1,'cutlass::gemm::GemmTraits::GlobalLoadStreamB()'],['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a2fcf34dcf8d89424aa15da709aed4a83',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::GlobalLoadStreamB()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a2c46c11f5fddb865645f555547c823ba',1,'cutlass::gemm::HgemmTraitsHelper::GlobalLoadStreamB()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#ae59454c1b3862522c8ea293bacb194a8',1,'cutlass::gemm::IgemmTraitsHelper::GlobalLoadStreamB()']]], - ['globalloadstreampair',['GlobalLoadStreamPair',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html',1,'cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#ab97442e24a1d6d64727b6320ab901ad1',1,'cutlass::gemm::GlobalLoadStreamPair::GlobalLoadStreamPair()']]], + ['globalloadstreampair',['GlobalLoadStreamPair',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html',1,'cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a946312383970b405c34878758c673628',1,'cutlass::gemm::GlobalLoadStreamPair::GlobalLoadStreamPair()']]], ['globalloadtiletraits',['GlobalLoadTileTraits',['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a94f00f94a88588522ca3f9f0197a5a9b',1,'cutlass::gemm::GemmEpilogueTraitsHelper::GlobalLoadTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#aaa009025dcd6360ead1dc18005688821',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::GlobalLoadTileTraits()']]], ['globalstoreiteratord',['GlobalStoreIteratorD',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a1c766374d900535c944cf2a2de6925f4',1,'cutlass::gemm::GemmEpilogue::GlobalStoreIteratorD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#ada036c0457773a42fb18bc0463071d02',1,'cutlass::gemm::GemmEpilogueTraits::GlobalStoreIteratorD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a23be7b4b498c17f9235a2b4896f1bffb',1,'cutlass::gemm::GemmEpilogueTraitsHelper::GlobalStoreIteratorD()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#ad3e937c15bfac443b0e3b94d702f46b2',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::GlobalStoreIteratorD()']]], ['globalstoretiletraits',['GlobalStoreTileTraits',['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a16d7df2934c3c59d9b8f36f7a2137aee',1,'cutlass::gemm::GemmEpilogueTraitsHelper::GlobalStoreTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a16b06a1611dbd22adaa0c9ee5e1b15bd',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::GlobalStoreTileTraits()']]], @@ -92,5 +95,6 @@ var searchData= ['globaltransformerd',['GlobalTransformerD',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a32f618ff19d984447fba7355d46a69a7',1,'cutlass::gemm::GemmEpilogue::GlobalTransformerD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#adb4eb47c84dc1c6df2556e72ff5800e6',1,'cutlass::gemm::GemmEpilogueTraits::GlobalTransformerD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#ae96c5a3d58dc7a95543f8749f762ca43',1,'cutlass::gemm::GemmEpilogueTraitsHelper::GlobalTransformerD()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a880293ef6a48a0f4941c8f984c36f591',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::GlobalTransformerD()']]], ['good',['good',['../classcutlass_1_1TensorRef.html#a2dbee889626b4764d30e9058ef3a7ae8',1,'cutlass::TensorRef::good()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a8e1cfab3a220175dad58239c764a5d98',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::good()']]], ['greater',['greater',['../structcutlass_1_1platform_1_1greater.html',1,'cutlass::platform']]], - ['grid',['grid',['../structcutlass_1_1KernelLaunchConfiguration.html#ab86ba1464dd9c6cd15ae0de4a552201b',1,'cutlass::KernelLaunchConfiguration']]] + ['grid',['grid',['../structcutlass_1_1KernelLaunchConfiguration.html#ab86ba1464dd9c6cd15ae0de4a552201b',1,'cutlass::KernelLaunchConfiguration']]], + ['threadblock_5fswizzle_2eh',['threadblock_swizzle.h',['../gemm_2threadblock__swizzle_8h.html',1,'']]] ]; diff --git a/docs/search/all_9.js b/docs/search/all_9.js index d575d372..a36682ea 100644 --- a/docs/search/all_9.js +++ b/docs/search/all_9.js @@ -19,7 +19,7 @@ var searchData= ['igemmepiloguetraits',['IgemmEpilogueTraits',['../structcutlass_1_1gemm_1_1IgemmEpilogueTraits.html',1,'cutlass::gemm']]], ['igemmepiloguetraitshelper',['IgemmEpilogueTraitsHelper',['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html',1,'cutlass::gemm']]], ['igemmfloattoint8converter',['IgemmFloatToInt8Converter',['../structcutlass_1_1gemm_1_1IgemmFloatToInt8Converter.html',1,'cutlass::gemm::IgemmFloatToInt8Converter< kElements_ >'],['../structcutlass_1_1gemm_1_1IgemmFloatToInt8Converter.html#ac65f020e93584b1bd3cdb849ff625026',1,'cutlass::gemm::IgemmFloatToInt8Converter::IgemmFloatToInt8Converter()']]], - ['igemmglobaliteratorab',['IgemmGlobalIteratorAb',['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html',1,'cutlass::gemm::IgemmGlobalIteratorAb< TileTraits_, Index_ >'],['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a489fe448cd7f7e1f3805d33504f9d336',1,'cutlass::gemm::IgemmGlobalIteratorAb::IgemmGlobalIteratorAb()']]], + ['igemmglobaliteratorab',['IgemmGlobalIteratorAb',['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html',1,'cutlass::gemm::IgemmGlobalIteratorAb< TileTraits_, Index_ >'],['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a37672bf5444d07c5ff56d4e710a7ff94',1,'cutlass::gemm::IgemmGlobalIteratorAb::IgemmGlobalIteratorAb()']]], ['igemmgloballoadtransformer',['IgemmGlobalLoadTransformer',['../structcutlass_1_1gemm_1_1IgemmGlobalLoadTransformer.html',1,'cutlass::gemm']]], ['igemmgloballoadtransformer_3c_20fragment_3c_20int8_5ft_2c_20kelements_5f_20_3e_2c_20float_20_3e',['IgemmGlobalLoadTransformer< Fragment< int8_t, kElements_ >, float >',['../structcutlass_1_1gemm_1_1IgemmGlobalLoadTransformer_3_01Fragment_3_01int8__t_00_01kElements___01_4_00_01float_01_4.html',1,'cutlass::gemm']]], ['igemmglobalstoretransformer',['IgemmGlobalStoreTransformer',['../structcutlass_1_1gemm_1_1IgemmGlobalStoreTransformer.html',1,'cutlass::gemm']]], @@ -44,16 +44,17 @@ var searchData= ['igemmtransformerb_3c_20matrixlayout_3a_3akrowmajor_2c_20iterator_5f_20_3e',['IgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >',['../structcutlass_1_1gemm_1_1IgemmTransformerB_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html',1,'cutlass::gemm']]], ['imag',['imag',['../classcutlass_1_1platform_1_1complex.html#a57360dbcada12083ecb92fba32fae801',1,'cutlass::platform::complex::imag() const'],['../classcutlass_1_1platform_1_1complex.html#a835363f62c6a079496c22074ab428651',1,'cutlass::platform::complex::imag()'],['../namespacecutlass_1_1platform.html#a18bc43cfdc4d066a6c10ad2002196ee6',1,'cutlass::platform::imag(cuFloatComplex const &z)'],['../namespacecutlass_1_1platform.html#af127cab494309510051d6b45914faf33',1,'cutlass::platform::imag(cuFloatComplex &z)'],['../namespacecutlass_1_1platform.html#a1739f880ca8398f808ee57a3f0c3c30b',1,'cutlass::platform::imag(cuDoubleComplex const &z)'],['../namespacecutlass_1_1platform.html#a8f356af3c5828b7d31279a5d075c5bc9',1,'cutlass::platform::imag(cuDoubleComplex &z)'],['../namespacecutlass_1_1platform.html#a714db927a811c86cda26fc12ca830356',1,'cutlass::platform::imag(complex< T > const &z)'],['../namespacecutlass_1_1platform.html#aa35ea4f804f9ed39578b595ba2620c1d',1,'cutlass::platform::imag(complex< T > &z)']]], ['immediateoffsetstrides',['ImmediateOffsetStrides',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#abc47717230ddde3edc88d2770f6841bf',1,'cutlass::gemm::GemmGlobalTileTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#a14e9713b0cd34af433c3cae9b283b54c',1,'cutlass::gemm::GemmGlobalTileCdTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a027bebceeda2287b40915ffd95d494a7',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a39414f484da7f993bc96d61c97273614',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#ad012add21d9393d136720f609467e121',1,'cutlass::gemm::GemmSharedLoadTileATraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a99017ecc737060f53fd9804ea6f9583f',1,'cutlass::gemm::GemmSharedLoadTileBTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#ac585815d08290d9a5a9cdbd611ffdac4',1,'cutlass::gemm::GemmSharedStoreTileDTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a57b065abb737bee1c17398c90b5bc39b',1,'cutlass::gemm::GemmSharedLoadTileDTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#af53d49bad7060b87a2761fe8a82a7ddd',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::ImmediateOffsetStrides()'],['../structcutlass_1_1TileTraits.html#a3db8202befa891bbc7c0a53c535cd21f',1,'cutlass::TileTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1TileIteratorBase.html#ab37eec43846be90d558201bd6bb27ee4',1,'cutlass::TileIteratorBase::ImmediateOffsetStrides()']]], - ['inc_5fadvance',['inc_advance',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a8c2618ac16362a8362dcddeed71c41d4',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::inc_advance()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a6d8f1e07f286ed8d5761e2a878b807d3',1,'cutlass::TileIteratorBase::Params::inc_advance()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#ae3ecef6501f0761051f298eb7cefcacf',1,'cutlass::gemm::GemmGlobalIteratorAb::inc_advance()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#aeac77cdc31ce151634b7c27ccdaf5552',1,'cutlass::gemm::GemmGlobalIteratorCd::inc_advance()'],['../structcutlass_1_1TileLoadIterator.html#a9bda55335fb2e90af2ee7d20571f3d9b',1,'cutlass::TileLoadIterator::inc_advance()'],['../structcutlass_1_1TileStoreIterator.html#a3ecd73de1202f7e4a0db86d9fe9de38d',1,'cutlass::TileStoreIterator::inc_advance()']]], + ['inc_5fadvance',['inc_advance',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a8c2618ac16362a8362dcddeed71c41d4',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::inc_advance()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a366c41dbc3bb82521db46b6d0db127b9',1,'cutlass::TileIteratorBase::Params::inc_advance()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#ae3ecef6501f0761051f298eb7cefcacf',1,'cutlass::gemm::GemmGlobalIteratorAb::inc_advance()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#aeac77cdc31ce151634b7c27ccdaf5552',1,'cutlass::gemm::GemmGlobalIteratorCd::inc_advance()'],['../structcutlass_1_1TileLoadIterator.html#a9bda55335fb2e90af2ee7d20571f3d9b',1,'cutlass::TileLoadIterator::inc_advance()'],['../structcutlass_1_1TileStoreIterator.html#a3ecd73de1202f7e4a0db86d9fe9de38d',1,'cutlass::TileStoreIterator::inc_advance()']]], ['inc_5fc',['inc_c',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a365eb7c90a79c9ab32f603c6985a0316',1,'cutlass::gemm::GemmGlobalIteratorCd']]], - ['inc_5fd',['inc_d',['../structcutlass_1_1TileIteratorBase_1_1Params.html#a7b4293bf8291b0383dee695a60f2e0fd',1,'cutlass::TileIteratorBase::Params::inc_d()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a2ad473e8f2fa2694617ee39ead5c41b3',1,'cutlass::gemm::GemmGlobalIteratorAb::inc_d()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a49d7db2dab7a6d1e496ebff0e67039bc',1,'cutlass::gemm::GemmGlobalIteratorCd::inc_d()'],['../structcutlass_1_1TileLoadIterator.html#aeb92092230ae933ff6cc4a36960d0674',1,'cutlass::TileLoadIterator::inc_d()'],['../structcutlass_1_1TileStoreIterator.html#abcb7af7b35e605dfda5ce6a37a02f975',1,'cutlass::TileStoreIterator::inc_d()']]], + ['inc_5fd',['inc_d',['../structcutlass_1_1TileIteratorBase_1_1Params.html#a901e9df85e9eee0e89a025b874e1b61b',1,'cutlass::TileIteratorBase::Params::inc_d()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a2ad473e8f2fa2694617ee39ead5c41b3',1,'cutlass::gemm::GemmGlobalIteratorAb::inc_d()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a49d7db2dab7a6d1e496ebff0e67039bc',1,'cutlass::gemm::GemmGlobalIteratorCd::inc_d()'],['../structcutlass_1_1TileLoadIterator.html#aeb92092230ae933ff6cc4a36960d0674',1,'cutlass::TileLoadIterator::inc_d()'],['../structcutlass_1_1TileStoreIterator.html#abcb7af7b35e605dfda5ce6a37a02f975',1,'cutlass::TileStoreIterator::inc_d()']]], ['inc_5fh',['inc_h',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#aed94505e5a269d5f33499e71284104f5',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::inc_h()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a15227102466522445261b6ea65c89c06',1,'cutlass::TileIteratorBase::Params::inc_h()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a1d86f7e16bd11e10c94b0c14111c8c14',1,'cutlass::gemm::GemmGlobalIteratorAb::inc_h()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a40144d869b56b46cf1dd8f9941e61e77',1,'cutlass::gemm::GemmGlobalIteratorCd::inc_h()'],['../structcutlass_1_1TileLoadIterator.html#a1b94be88a160b21347c0eb58ed8e1b51',1,'cutlass::TileLoadIterator::inc_h()'],['../structcutlass_1_1TileStoreIterator.html#aaec63ca7faf0cf4f54cac31c7d6e0d3d',1,'cutlass::TileStoreIterator::inc_h()']]], ['inc_5fstage',['inc_stage',['../structcutlass_1_1gemm_1_1SharedLoadStream.html#acf22fd09aa537943c16b900d66f1ec6f',1,'cutlass::gemm::SharedLoadStream::inc_stage()'],['../structcutlass_1_1gemm_1_1SharedStreamPair.html#ad4b9b1c1fe4b0c6961842d0eff6d7db7',1,'cutlass::gemm::SharedStreamPair::inc_stage()'],['../structcutlass_1_1TileLoadIterator.html#a64ce59c5deb58e208529761a44c7661d',1,'cutlass::TileLoadIterator::inc_stage()'],['../structcutlass_1_1TileStoreIterator.html#ad61206a742c8c5ab5bcd64b76ece9f74',1,'cutlass::TileStoreIterator::inc_stage()']]], ['inc_5fw',['inc_w',['../structcutlass_1_1TileIteratorBase_1_1Params.html#af0be1271cfe6d6c03a9a76ff992d8a5c',1,'cutlass::TileIteratorBase::Params::inc_w()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a760404b7879a38364d7eef47fc1fe209',1,'cutlass::gemm::GemmGlobalIteratorAb::inc_w()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#ab1d9e606a89d3dd315df3d3efa48bcc2',1,'cutlass::gemm::GemmGlobalIteratorCd::inc_w()'],['../structcutlass_1_1TileLoadIterator.html#af4f964364fc54a2b9a431fa529f6c44c',1,'cutlass::TileLoadIterator::inc_w()'],['../structcutlass_1_1TileStoreIterator.html#aa676184bbd4c2e3f6c09dbc548e6c4e1',1,'cutlass::TileStoreIterator::inc_w()']]], ['increment',['increment',['../classcutlass_1_1ZipTileIterator.html#a738f23c02f4a7437981d9e3e22470808',1,'cutlass::ZipTileIterator']]], - ['index',['Index',['../structcutlass_1_1Coord.html#a7c73966e94b4f45854f16e33683bc02c',1,'cutlass::Coord::Index()'],['../structcutlass_1_1gemm_1_1Gemm.html#a0aca711d07245f3071adeb1111fedd34',1,'cutlass::gemm::Gemm::Index()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a8e3f0250e2265503862354c729dca892',1,'cutlass::gemm::GemmCoord::Index()'],['../structcutlass_1_1gemm_1_1GemmDesc.html#abd12fea9779ada02c0f2266909602171',1,'cutlass::gemm::GemmDesc::Index()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a07c93d583bfddd8f916fba6ef809832e',1,'cutlass::gemm::GemmEpilogue::Index()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a23b0e6a448e51f2e0837af95802c23b0',1,'cutlass::gemm::GemmEpilogueTraits::Index()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7c46d6eb83b43e099d53784bb2a09f02',1,'cutlass::gemm::GlobalLoadStream::Index()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a7ff9cae930c8a6bb9c8ee6d81cb1953f',1,'cutlass::gemm::GemmGlobalIteratorAb::Index()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a56847e834b31b88544093c3df54d299f',1,'cutlass::gemm::GemmGlobalIteratorCd::Index()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a3e22454d24cadb7d335f2a0152caae2a',1,'cutlass::gemm::GlobalLoadStreamPair::Index()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#ae67227cecbe84f5c8497d9a7ff82b367',1,'cutlass::gemm::GemmTraits::Index()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a3f45216454a550a116935aede0bda3de',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Index()'],['../structcutlass_1_1MatrixCoord.html#a33eea222c3dcaf22cf62502e41afb24f',1,'cutlass::MatrixCoord::Index()'],['../classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890',1,'cutlass::TensorRef::Index()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aa72857a51fafb4764ef338aea16ddfa3',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Index()'],['../structcutlass_1_1TensorRefBatchStrided.html#ab12d9d196122dc3075185ab239a27fb4',1,'cutlass::TensorRefBatchStrided::Index()'],['../structcutlass_1_1TensorRefArray.html#a8f4658dd194b305ae4f150cf371869d9',1,'cutlass::TensorRefArray::Index()'],['../classcutlass_1_1TensorView.html#a5a3f096a01e6a2dfe984d7e605380599',1,'cutlass::TensorView::Index()'],['../structcutlass_1_1TileCoord.html#a7018df7f2dbc7d70345d5f076fb26259',1,'cutlass::TileCoord::Index()'],['../structcutlass_1_1TileIteratorBase.html#ab49ff66953031a8cfcfa11ddc092025c',1,'cutlass::TileIteratorBase::Index()'],['../structcutlass_1_1TileLoadIterator.html#aaa5d98b72576478ba04e4ad554faa827',1,'cutlass::TileLoadIterator::Index()'],['../structcutlass_1_1TileStoreIterator.html#aae07fdedeef68abd4e6c099924c70910',1,'cutlass::TileStoreIterator::Index()'],['../structcutlass_1_1TileLoadStream.html#a90ca6bbd882e39b5624ee0cd17e0d652',1,'cutlass::TileLoadStream::Index()'],['../structcutlass_1_1TileStoreStream.html#aa0e894a30d3a979ac56e5134360a08f4',1,'cutlass::TileStoreStream::Index()'],['../classcutlass_1_1ZipTileIterator.html#ab48ad3cf2ffeec356d8592d94f6b81f0',1,'cutlass::ZipTileIterator::Index()']]], - ['initialize',['initialize',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a13395bf81eabdc539c935e179c31d7ca',1,'cutlass::gemm::GemmEpilogueTraits::Params::initialize()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a054aee5b4bf288cc1f5945f2521ef835',1,'cutlass::gemm::GlobalLoadStream::Params::initialize()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html#ad0602cf5d322e98e3e5990c84ae1e3f3',1,'cutlass::gemm::GemmGlobalIteratorAb::Params::initialize()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#ae24453fcdf9f21385b2637476746bbe5',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::initialize()'],['../structcutlass_1_1gemm_1_1SharedLoadStream_1_1Params.html#adb66103b905b35a1594c6f0bab65758a',1,'cutlass::gemm::SharedLoadStream::Params::initialize()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a9b62788c187fff49b0250c0070a41fa0',1,'cutlass::gemm::SharedLoadStream::initialize()'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a40023f0ffdd8bee4ccbcaac28222e983',1,'cutlass::gemm::GemmTraits::Params::initialize(GemmDesc_ const &desc)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#ac4cd0b74130ffc09e4ccb7b0acba87f8',1,'cutlass::gemm::GemmTraits::Params::initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, ScalarB const *d_b, Index ldb, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, ScalarD *d_d, Index ldd)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a95314e9a9279c4870f37f68a2357e064',1,'cutlass::gemm::GemmTraits::Params::initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, long long int batch_stride_A, ScalarB const *d_b, Index ldb, long long int batch_stride_B, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, long long int batch_stride_C, ScalarD *d_d, Index ldd, long long int batch_stride_D, Index batch_count)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#ad4089906220d4656ba075fb9afd1012c',1,'cutlass::gemm::LinearScaling::Params::initialize(Scalar _alpha, Scalar _beta)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a4946e45e10661307f562b27bad5cb72d',1,'cutlass::gemm::LinearScaling::Params::initialize(GemmDesc_ const &desc)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ad1b2291b898091ee1966b73bd1ad56fa',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(Scalar alpha, Scalar beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ab4dbffb32daffb64d2033e3091963507',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(Scalar const *alpha, Scalar const *beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a491496037bf6613e128e667f87fda696',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(GemmDesc_ const &desc)'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_1_1Params.html#a98867f4fc4daf790e309f8365e71cc8f',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Params::initialize()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a802c270449da579ed8661e915d27ce60',1,'cutlass::TileIteratorBase::Params::initialize(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a2ef70d9e13b5aa7e4a53233b153d7edd',1,'cutlass::TileIteratorBase::Params::initialize(Coord< 4 > const &stride)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a44870d45442ec45c8eaba46ab47a3ad9',1,'cutlass::TileIteratorBase::Params::initialize(long long _stride_d, Index _stride_h, Index _stride_w)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a1776bf51e1e23cde6c58529be58aafb9',1,'cutlass::TileIteratorBase::Params::initialize()'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#ac22d9229f3f8993d52b808dced173803',1,'cutlass::TileLoadIterator::Params::initialize(TensorRef const &ref)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a61b898051d0397b013407a4c90409aa0',1,'cutlass::TileLoadIterator::Params::initialize(SharedStorage const &storage)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a8869188d1c3b867fe6389aadf04837bf',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a9a40662ff01a14e0616ce1a0fbb70662',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a53917e002fd29a5650752c65f96b353d',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a3175746438646453e93e6e08e954bc8d',1,'cutlass::TileLoadIterator::Params::initialize()'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#aca14058b112b7d5105658457341726cb',1,'cutlass::TileStoreIterator::Params::initialize(SharedStorage &storage)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a0d36c05a4a757db5ebfe5f180b174b8c',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a23c9e9d1d2bed7e5d8579df9cc42dda3',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr, long long stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a6a7702de0e88449b3d1864b208adf87a',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#ad90642d96a3b5354813fbf4d9b04b83f',1,'cutlass::TileStoreIterator::Params::initialize()']]], - ['initialize_5fpredicates',['initialize_predicates',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#aba8142a7a3b43da97f7968d98f3ba018',1,'cutlass::gemm::GemmGlobalIteratorAb::initialize_predicates()'],['../structcutlass_1_1TileIteratorBase.html#aa58daf082cf97108e2e2ad0b1fd89208',1,'cutlass::TileIteratorBase::initialize_predicates()'],['../structcutlass_1_1TileLoadIterator.html#a60bbb4d4a6a5b8fb32e176e7d33f9e82',1,'cutlass::TileLoadIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../structcutlass_1_1TileLoadIterator.html#aa566cf603a5c19c59946a41b04642e49',1,'cutlass::TileLoadIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)'],['../structcutlass_1_1TileStoreIterator.html#acb6bc889b93d25c9e483a0b7297d7c89',1,'cutlass::TileStoreIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../structcutlass_1_1TileStoreIterator.html#a890a7239a89679662aeaea797ba32d32',1,'cutlass::TileStoreIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)'],['../classcutlass_1_1ZipTileIterator.html#a8f334010614b50d962e4769904d7b76f',1,'cutlass::ZipTileIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../classcutlass_1_1ZipTileIterator.html#ab0f93878bbe5aac072450f9bf1dd8b64',1,'cutlass::ZipTileIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)']]], + ['index',['Index',['../structcutlass_1_1Coord.html#a7c73966e94b4f45854f16e33683bc02c',1,'cutlass::Coord::Index()'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a3037291a463c6daa06e9a3ef2120f9c7',1,'cutlass::gemm::SplitkPIGemmTraits::Index()'],['../structcutlass_1_1gemm_1_1Gemm.html#a0aca711d07245f3071adeb1111fedd34',1,'cutlass::gemm::Gemm::Index()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a8e3f0250e2265503862354c729dca892',1,'cutlass::gemm::GemmCoord::Index()'],['../structcutlass_1_1gemm_1_1GemmDesc.html#abd12fea9779ada02c0f2266909602171',1,'cutlass::gemm::GemmDesc::Index()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a07c93d583bfddd8f916fba6ef809832e',1,'cutlass::gemm::GemmEpilogue::Index()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a23b0e6a448e51f2e0837af95802c23b0',1,'cutlass::gemm::GemmEpilogueTraits::Index()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7c46d6eb83b43e099d53784bb2a09f02',1,'cutlass::gemm::GlobalLoadStream::Index()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a7ff9cae930c8a6bb9c8ee6d81cb1953f',1,'cutlass::gemm::GemmGlobalIteratorAb::Index()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a56847e834b31b88544093c3df54d299f',1,'cutlass::gemm::GemmGlobalIteratorCd::Index()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a3e22454d24cadb7d335f2a0152caae2a',1,'cutlass::gemm::GlobalLoadStreamPair::Index()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#ae67227cecbe84f5c8497d9a7ff82b367',1,'cutlass::gemm::GemmTraits::Index()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a3f45216454a550a116935aede0bda3de',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Index()'],['../structcutlass_1_1MatrixCoord.html#a33eea222c3dcaf22cf62502e41afb24f',1,'cutlass::MatrixCoord::Index()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ab0c9e548f3ee62746e727127e387a8f4',1,'cutlass::reduction::BatchedReductionTraits::Index()'],['../classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890',1,'cutlass::TensorRef::Index()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aa72857a51fafb4764ef338aea16ddfa3',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Index()'],['../structcutlass_1_1TensorRefBatchStrided.html#ab12d9d196122dc3075185ab239a27fb4',1,'cutlass::TensorRefBatchStrided::Index()'],['../structcutlass_1_1TensorRefArray.html#a8f4658dd194b305ae4f150cf371869d9',1,'cutlass::TensorRefArray::Index()'],['../classcutlass_1_1TensorView.html#a5a3f096a01e6a2dfe984d7e605380599',1,'cutlass::TensorView::Index()'],['../structcutlass_1_1TileCoord.html#a7018df7f2dbc7d70345d5f076fb26259',1,'cutlass::TileCoord::Index()'],['../structcutlass_1_1TileIteratorBase.html#ab49ff66953031a8cfcfa11ddc092025c',1,'cutlass::TileIteratorBase::Index()'],['../structcutlass_1_1TileLoadIterator.html#aaa5d98b72576478ba04e4ad554faa827',1,'cutlass::TileLoadIterator::Index()'],['../structcutlass_1_1TileStoreIterator.html#aae07fdedeef68abd4e6c099924c70910',1,'cutlass::TileStoreIterator::Index()'],['../structcutlass_1_1TileLoadStream.html#a90ca6bbd882e39b5624ee0cd17e0d652',1,'cutlass::TileLoadStream::Index()'],['../structcutlass_1_1TileStoreStream.html#aa0e894a30d3a979ac56e5134360a08f4',1,'cutlass::TileStoreStream::Index()'],['../classcutlass_1_1ZipTileIterator.html#a2b054859fda34cba271e8a325ee7662f',1,'cutlass::ZipTileIterator::Index()']]], + ['init_5fproblem',['init_problem',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#ae447cd662efb8099f040fb0dffc4f104',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]], + ['initialize',['initialize',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#aec998017d6046436cd4e4c933a2a89a6',1,'cutlass::gemm::SplitkPIGemmTraits::Params::initialize()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a13395bf81eabdc539c935e179c31d7ca',1,'cutlass::gemm::GemmEpilogueTraits::Params::initialize()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#aeb306cd3cb97471774b425fb50a861ae',1,'cutlass::gemm::GlobalLoadStream::Params::initialize()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html#a2eeb499326e3f595bd1d23d7214b2f62',1,'cutlass::gemm::GemmGlobalIteratorAb::Params::initialize()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#acee5d95468f486fe4e49e954dd410a89',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::initialize(Pointer pointer, int stride_d_, Index ldm, Index bound, Index epilogue_stride_w, Index epilogue_delta_w)'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a2cdfdad1f129b2458e63cbcb1df1714e',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::initialize(Pointer pointer, long long _stride_d, Index _stride_h, Index _inc_advance, Index _inc_h, Index _predicate_inc_advance, Index _predicate_inc_h, Index _predicate_offset)'],['../structcutlass_1_1gemm_1_1SharedLoadStream_1_1Params.html#adb66103b905b35a1594c6f0bab65758a',1,'cutlass::gemm::SharedLoadStream::Params::initialize()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a9b62788c187fff49b0250c0070a41fa0',1,'cutlass::gemm::SharedLoadStream::initialize()'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a40023f0ffdd8bee4ccbcaac28222e983',1,'cutlass::gemm::GemmTraits::Params::initialize(GemmDesc_ const &desc)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#ac4cd0b74130ffc09e4ccb7b0acba87f8',1,'cutlass::gemm::GemmTraits::Params::initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, ScalarB const *d_b, Index ldb, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, ScalarD *d_d, Index ldd)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a95314e9a9279c4870f37f68a2357e064',1,'cutlass::gemm::GemmTraits::Params::initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, long long int batch_stride_A, ScalarB const *d_b, Index ldb, long long int batch_stride_B, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, long long int batch_stride_C, ScalarD *d_d, Index ldd, long long int batch_stride_D, Index batch_count)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a9f0b980cba9d6c5b3df70dd73f455985',1,'cutlass::gemm::GemmTraits::Params::initialize(GemmDesc_ const &partitonK_desc, Index partitionK_count_)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#ae2ac243a087c64c1c5b024a0392bfc22',1,'cutlass::gemm::GemmTraits::Params::initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, ScalarB const *d_b, Index ldb, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, ScalarD *d_d, Index ldd, Index partitionK_count_)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#ad4089906220d4656ba075fb9afd1012c',1,'cutlass::gemm::LinearScaling::Params::initialize(Scalar _alpha, Scalar _beta)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a4946e45e10661307f562b27bad5cb72d',1,'cutlass::gemm::LinearScaling::Params::initialize(GemmDesc_ const &desc)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ad1b2291b898091ee1966b73bd1ad56fa',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(Scalar alpha, Scalar beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ab4dbffb32daffb64d2033e3091963507',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(Scalar const *alpha, Scalar const *beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a491496037bf6613e128e667f87fda696',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(GemmDesc_ const &desc)'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_1_1Params.html#a98867f4fc4daf790e309f8365e71cc8f',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Params::initialize()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#ac27f42beb3625c5183b76b26677c0cb0',1,'cutlass::reduction::BatchedReductionTraits::Params::initialize()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a351c89646a1e55428dee0f504fb14a51',1,'cutlass::TileIteratorBase::Params::initialize(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a2ef70d9e13b5aa7e4a53233b153d7edd',1,'cutlass::TileIteratorBase::Params::initialize(Coord< 4 > const &stride)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a9d376b0b6e6cf6b8285eb2a30536c772',1,'cutlass::TileIteratorBase::Params::initialize(Index _stride_d, Index _stride_h, Index _stride_w)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a1776bf51e1e23cde6c58529be58aafb9',1,'cutlass::TileIteratorBase::Params::initialize()'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#ac22d9229f3f8993d52b808dced173803',1,'cutlass::TileLoadIterator::Params::initialize(TensorRef const &ref)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a61b898051d0397b013407a4c90409aa0',1,'cutlass::TileLoadIterator::Params::initialize(SharedStorage const &storage)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a8869188d1c3b867fe6389aadf04837bf',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a9d85585c3a4770ebe4b121455a88bc76',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a194e3c9d92d01d42d6233866bac9c40a',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a3175746438646453e93e6e08e954bc8d',1,'cutlass::TileLoadIterator::Params::initialize()'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#aca14058b112b7d5105658457341726cb',1,'cutlass::TileStoreIterator::Params::initialize(SharedStorage &storage)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a0d36c05a4a757db5ebfe5f180b174b8c',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#ae348f51695962af2ab49dd085a4b48c1',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr, Index stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a0aace08208ee12b82afa8469446299b2',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#ad90642d96a3b5354813fbf4d9b04b83f',1,'cutlass::TileStoreIterator::Params::initialize()']]], + ['initialize_5fpredicates',['initialize_predicates',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#aba8142a7a3b43da97f7968d98f3ba018',1,'cutlass::gemm::GemmGlobalIteratorAb::initialize_predicates()'],['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a51b852a4023411020cb44c292f109e3d',1,'cutlass::gemm::IgemmGlobalIteratorAb::initialize_predicates()'],['../structcutlass_1_1TileIteratorBase.html#aa58daf082cf97108e2e2ad0b1fd89208',1,'cutlass::TileIteratorBase::initialize_predicates()'],['../structcutlass_1_1TileLoadIterator.html#a60bbb4d4a6a5b8fb32e176e7d33f9e82',1,'cutlass::TileLoadIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../structcutlass_1_1TileLoadIterator.html#aa566cf603a5c19c59946a41b04642e49',1,'cutlass::TileLoadIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)'],['../structcutlass_1_1TileStoreIterator.html#acb6bc889b93d25c9e483a0b7297d7c89',1,'cutlass::TileStoreIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../structcutlass_1_1TileStoreIterator.html#a890a7239a89679662aeaea797ba32d32',1,'cutlass::TileStoreIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)'],['../classcutlass_1_1ZipTileIterator.html#a8f334010614b50d962e4769904d7b76f',1,'cutlass::ZipTileIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../classcutlass_1_1ZipTileIterator.html#ab0f93878bbe5aac072450f9bf1dd8b64',1,'cutlass::ZipTileIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)']]], ['inputfragment',['InputFragment',['../structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ofca5985d18bcb54bc1f49355f3cee121.html#ac7906301019c3e6d60985c3851f1e95e',1,'cutlass::Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > >::InputFragment()'],['../structcutlass_1_1Copy.html#aed254bbc1ad94ed9d335ab02f199ceb1',1,'cutlass::Copy::InputFragment()'],['../structcutlass_1_1gemm_1_1HgemmSwizzle.html#ab5fab63d83eb0444c08bda16491d2627',1,'cutlass::gemm::HgemmSwizzle::InputFragment()'],['../structcutlass_1_1gemm_1_1IgemmFloatToInt8Converter.html#aa9a4b05f9fc28b80a4ae4aabb2ce1e8c',1,'cutlass::gemm::IgemmFloatToInt8Converter::InputFragment()'],['../structcutlass_1_1gemm_1_1IgemmInt8ToFloatConverter.html#a702ca51abc077355a2d7343976a0cfdb',1,'cutlass::gemm::IgemmInt8ToFloatConverter::InputFragment()'],['../structcutlass_1_1gemm_1_1IgemmSwizzle.html#a24a0bd5a9251ba5204b35eb4c4ac7727',1,'cutlass::gemm::IgemmSwizzle::InputFragment()'],['../structcutlass_1_1ZipConvert.html#a20d8f64fce1ad330969323f6959209d3',1,'cutlass::ZipConvert::InputFragment()']]], ['instructionshape',['InstructionShape',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#aa101be5d45e2be54bb4056517b6d5e76',1,'cutlass::gemm::FragmentMultiplyAdd::InstructionShape()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#a7d83cf5bde360251a252c6e728ea80ff',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::InstructionShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#afc7858e849a2967631761986512dbfb7',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::InstructionShape()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#ad83132bd03f8bd844487d1a9da908c8b',1,'cutlass::gemm::GemmConfig::InstructionShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a245bdf059794144d04d2823d2b39588e',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::InstructionShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#aa84c3d4efc7947d6efb75536c88043bd',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::InstructionShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a56d687b878397c694e7338fa750995af',1,'cutlass::gemm::ThreadMultiplyAdd::InstructionShape()']]], ['int4_5ft',['int4_t',['../structcutlass_1_1int4__t.html',1,'cutlass']]], @@ -86,6 +87,7 @@ var searchData= ['is_5fintegral_3c_20unsigned_20long_20long_20_3e',['is_integral< unsigned long long >',['../structcutlass_1_1platform_1_1is__integral_3_01unsigned_01long_01long_01_4.html',1,'cutlass::platform']]], ['is_5fintegral_3c_20unsigned_20short_20_3e',['is_integral< unsigned short >',['../structcutlass_1_1platform_1_1is__integral_3_01unsigned_01short_01_4.html',1,'cutlass::platform']]], ['is_5fintegral_3c_20volatile_20t_20_3e',['is_integral< volatile T >',['../structcutlass_1_1platform_1_1is__integral_3_01volatile_01T_01_4.html',1,'cutlass::platform']]], + ['is_5flast_5fpartition',['is_last_partition',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#afb0d53bc4c077c787f01e17931e06564',1,'cutlass::gemm::IdentityBlockSwizzle::is_last_partition()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#a5ae6e14979379e5c917309896bd6d483',1,'cutlass::gemm::ColumnMajorBlockSwizzle::is_last_partition()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#aba2c62f525e46ba1e4e55bd60868b505',1,'cutlass::gemm::RowMajorBlockSwizzle::is_last_partition()']]], ['is_5fpointer',['is_pointer',['../structcutlass_1_1platform_1_1is__pointer.html',1,'cutlass::platform::is_pointer< T >'],['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a95373f3d1b286c61cb204ba6a1282ce0',1,'cutlass::detail::ScalarOrPointer::is_pointer()']]], ['is_5fpointer_5fhelper',['is_pointer_helper',['../structcutlass_1_1platform_1_1is__pointer__helper.html',1,'cutlass::platform']]], ['is_5fpointer_5fhelper_3c_20remove_5fcv_3c_20t_20_3e_3a_3atype_20_3e',['is_pointer_helper< remove_cv< T >::type >',['../structcutlass_1_1platform_1_1is__pointer__helper.html',1,'cutlass::platform']]], diff --git a/docs/search/all_a.js b/docs/search/all_a.js index a3bd6e5d..3ee46f5e 100644 --- a/docs/search/all_a.js +++ b/docs/search/all_a.js @@ -14,7 +14,7 @@ var searchData= ['kbytes',['kBytes',['../structcutlass_1_1PredicateVector.html#ab870e074b33c598f69fe11e104615c5a',1,'cutlass::PredicateVector']]], ['kc',['kC',['../structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0ca7598e104da2001a76ec344f1c1b9c6dc',1,'cutlass::GemmOperand::kC()'],['../structcutlass_1_1Shape.html#a3f2433fd6401dd28f1130499f9fd340c',1,'cutlass::Shape::kC()'],['../structcutlass_1_1TileCoord.html#a8236879e1670072033983b7ec4b7ae32',1,'cutlass::TileCoord::kC()']]], ['kcolumn',['kColumn',['../structcutlass_1_1MatrixCoord.html#a1e096b25138e027c31ea8624729ec433',1,'cutlass::MatrixCoord::kColumn()'],['../structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html#adb3b8cccf1ac91265fff998a3d48f5e7',1,'cutlass::MatrixLayout::ContiguousLayout::kColumn()']]], - ['kcolumnmajor',['kColumnMajor',['../structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2bac15988acba79c11072d38b295f163a2b',1,'cutlass::MatrixLayout']]], + ['kcolumnmajor',['kColumnMajor',['../namespacecutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2bac15988acba79c11072d38b295f163a2b',1,'cutlass::MatrixLayout']]], ['kconjugate',['kConjugate',['../structcutlass_1_1MatrixTransform.html#abf79785f7ae47385d0bbc38d0c431f48aead07a43bea51d6b4d728cda844cd683',1,'cutlass::MatrixTransform']]], ['kcount',['kCount',['../structcutlass_1_1ShapeCount.html#a8d25b48b3294b5563f89c62a6e6d00e5',1,'cutlass::ShapeCount']]], ['kd',['kD',['../structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0ca49eef82461e44c96462f9c4dbaab71fe',1,'cutlass::GemmOperand::kD()'],['../structcutlass_1_1Shape.html#a19086a5567d6c710ec853e35a7f29c25',1,'cutlass::Shape::kD()'],['../structcutlass_1_1TileCoord.html#ab5ebf352327baadcc740175d6b39adcb',1,'cutlass::TileCoord::kD()'],['../structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaa56ecb02f4ed3bd7ae4a9c971805ee8c5',1,'cutlass::IteratorAdvance::kD()']]], @@ -23,7 +23,7 @@ var searchData= ['kelements',['kElements',['../structcutlass_1_1Fragment.html#a2b9a64391d00ef23dd8d456c2337fa60',1,'cutlass::Fragment']]], ['kelementsperaccess',['kElementsPerAccess',['../structcutlass_1_1FragmentIterator.html#ad2c43e30e78e8799df7cb02ac08cee9a',1,'cutlass::FragmentIterator::kElementsPerAccess()'],['../structcutlass_1_1FragmentConstIterator.html#a004fabc9caa6924f3fb4badcbb19e88f',1,'cutlass::FragmentConstIterator::kElementsPerAccess()']]], ['kernel_5flaunch_2eh',['kernel_launch.h',['../kernel__launch_8h.html',1,'']]], - ['kernelclass',['KernelClass',['../structcutlass_1_1gemm_1_1GemmTraits.html#a28c32832f0353f00e93e867373cf6cae',1,'cutlass::gemm::GemmTraits']]], + ['kernelclass',['KernelClass',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#ab8cfa958ecc3b032d81003831b02feb1',1,'cutlass::gemm::SplitkPIGemmTraits::KernelClass()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a28c32832f0353f00e93e867373cf6cae',1,'cutlass::gemm::GemmTraits::KernelClass()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#a085c72d54426f5eb60f5bffa9c383229',1,'cutlass::reduction::BatchedReductionTraits::KernelClass()']]], ['kernellaunchconfiguration',['KernelLaunchConfiguration',['../structcutlass_1_1KernelLaunchConfiguration.html',1,'cutlass::KernelLaunchConfiguration'],['../structcutlass_1_1KernelLaunchConfiguration.html#a726db328ccc8f5e186ff8e7cef568eaa',1,'cutlass::KernelLaunchConfiguration::KernelLaunchConfiguration()']]], ['kextent',['kExtent',['../structcutlass_1_1gemm_1_1GetExtent_3_01GemmOperand_1_1kA_00_01Tile___01_4.html#a881f84951bc9e47ab2be9ef3f2c1e423',1,'cutlass::gemm::GetExtent< GemmOperand::kA, Tile_ >::kExtent()'],['../structcutlass_1_1gemm_1_1GetExtent_3_01GemmOperand_1_1kB_00_01Tile___01_4.html#a82ff9b447e4a58164b5f7d53d2602930',1,'cutlass::gemm::GetExtent< GemmOperand::kB, Tile_ >::kExtent()']]], ['kfragmentelementtype',['kFragmentElementType',['../structcutlass_1_1TileIteratorBase.html#af405f6c5f0bd8f04487d8a7f41dc1826',1,'cutlass::TileIteratorBase::kFragmentElementType()'],['../structcutlass_1_1TileLoadIterator.html#a2af872794b35a631f9c1a97df0c6d177',1,'cutlass::TileLoadIterator::kFragmentElementType()'],['../structcutlass_1_1TileStoreIterator.html#a9fb3af1ab0eeb5b17b42bb990edf0e4f',1,'cutlass::TileStoreIterator::kFragmentElementType()']]], @@ -33,7 +33,7 @@ var searchData= ['kh',['kH',['../structcutlass_1_1Shape.html#a3a20d9062bba613c160bb2cd14f80a5e',1,'cutlass::Shape::kH()'],['../structcutlass_1_1TileCoord.html#a24d32587359493bb965745f5551e1624',1,'cutlass::TileCoord::kH()'],['../structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaacfe756fca665eb1bbf389850915c1b81',1,'cutlass::IteratorAdvance::kH()']]], ['khw',['kHw',['../structcutlass_1_1ShapeCount.html#afc957be69eb78e4849ba8ab3cc66583f',1,'cutlass::ShapeCount']]], ['khwc',['kHwc',['../structcutlass_1_1ShapeCount.html#a75324e2c9d31a0787343fc994586b742',1,'cutlass::ShapeCount']]], - ['kind',['Kind',['../structcutlass_1_1Identity.html#a37966282c824c6d0e32b432275ea8375',1,'cutlass::Identity::Kind()'],['../structcutlass_1_1gemm_1_1swizzleDirection.html#aba1528de966f236380c5f55942802fb8',1,'cutlass::gemm::swizzleDirection::Kind()'],['../structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03c',1,'cutlass::MemorySpace::Kind()'],['../structcutlass_1_1FragmentElementType.html#a62883b0695dc3a7ff82916ff9d75df0b',1,'cutlass::FragmentElementType::Kind()'],['../structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b',1,'cutlass::MatrixLayout::Kind()'],['../structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0c',1,'cutlass::GemmOperand::Kind()'],['../structcutlass_1_1MatrixTransform.html#abf79785f7ae47385d0bbc38d0c431f48',1,'cutlass::MatrixTransform::Kind()'],['../structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda',1,'cutlass::IteratorAdvance::Kind()']]], + ['kind',['Kind',['../structcutlass_1_1Identity.html#a37966282c824c6d0e32b432275ea8375',1,'cutlass::Identity::Kind()'],['../structcutlass_1_1gemm_1_1swizzleDirection.html#aba1528de966f236380c5f55942802fb8',1,'cutlass::gemm::swizzleDirection::Kind()'],['../structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03c',1,'cutlass::MemorySpace::Kind()'],['../structcutlass_1_1FragmentElementType.html#a62883b0695dc3a7ff82916ff9d75df0b',1,'cutlass::FragmentElementType::Kind()'],['../structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0c',1,'cutlass::GemmOperand::Kind()'],['../structcutlass_1_1MatrixTransform.html#abf79785f7ae47385d0bbc38d0c431f48',1,'cutlass::MatrixTransform::Kind()'],['../structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda',1,'cutlass::IteratorAdvance::Kind()'],['../namespacecutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b',1,'cutlass::MatrixLayout::Kind()']]], ['kint8output',['kInt8Output',['../structcutlass_1_1gemm_1_1IgemmEpilogueTraits.html#a8609af98d1e43cd25688bae6f33feed4',1,'cutlass::gemm::IgemmEpilogueTraits']]], ['kinterleave',['kInterleave',['../structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html#aea33a554c0b02e455fba76c945527143',1,'cutlass::MatrixLayout::RowMajorInterleaved::kInterleave()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved.html#ae0ff392e62f2af6614ab502df0cdbab7',1,'cutlass::MatrixLayout::ColumnMajorInterleaved::kInterleave()']]], ['kiterationsd',['kIterationsD',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a8663311646210b690bb0c2a1012e82f0',1,'cutlass::gemm::GemmSharedLoadTileDTraits']]], @@ -44,8 +44,8 @@ var searchData= ['klanes',['kLanes',['../unioncutlass_1_1Vector.html#a824f9ab976c8e7f035236af03e5ae839a605c5e987bc7b08d743f29a6524abb27',1,'cutlass::Vector::kLanes()'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a27410a8095bb82f682612954df4d6182a3a12b2fbef9007373a03125ec3c1c393',1,'cutlass::Vector< half, 1 >::kLanes()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#acfa6821aefbd38a1b7c44e5d83eda05fad242b575673ca1bf9cf311e58a966392',1,'cutlass::Vector< half, kLanes_ >::kLanes()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a4020f25408022dbf20c26ed4fa8c7dffa14befaa9d739f1b754bc372f717b105b',1,'cutlass::Vector< bin1_t, kLanes_ >::kLanes()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#a322ddd3ec1f47b76e21c24d3a3c44c5badeba151dbcb3c15e581bad7d767a93fa',1,'cutlass::Vector< int4_t, kLanes_ >::kLanes()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a9aacb7538f1b83762d68c768629c98eba17b71e816051646b567cf47334649a9b',1,'cutlass::Vector< uint4_t, kLanes_ >::kLanes()'],['../structcutlass_1_1VectorTraits.html#a052e1e5963a9e04482b16cb881d1eaf8',1,'cutlass::VectorTraits::kLanes()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#aca745b59c6c21292f119943e5a480f39',1,'cutlass::VectorTraits< Vector< T, Lanes > >::kLanes()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#a43ac200035052a2c352c8c4b84aac73c',1,'cutlass::VectorTraits< Vector< T, Lanes > const >::kLanes()']]], ['klaunchbounds',['kLaunchBounds',['../structcutlass_1_1gemm_1_1GemmConfig.html#a54e252cedbfee75e7c4ac2f7fe5ce45b',1,'cutlass::gemm::GemmConfig']]], ['klayout',['kLayout',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac29cd1ba94e802762d665c300e22e7db',1,'cutlass::gemm::GlobalLoadStream::kLayout()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a74bc07cb021a73513ab2fbacd572be90',1,'cutlass::gemm::GemmGlobalTileTraits::kLayout()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#afe016e0c6234075a8d69ba7341555ece',1,'cutlass::gemm::GemmGlobalIteratorAb::kLayout()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a27b88818f5b094372bf2c6e090c9148a',1,'cutlass::gemm::GemmGlobalIteratorCd::kLayout()'],['../structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html#a19076e58e60d296da74cf504e2a473fd',1,'cutlass::gemm::GemmMultiplicandTraits::kLayout()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#ad2010686bceb21aec9a1924ae379edc1',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::kLayout()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#aedd49525e2c849baecf88cdfd9e3515c',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::kLayout()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#afbd350793888a7e7b299548dca854c13',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::kLayout()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a31fa28168811e2d04fbd74029df785ab',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::kLayout()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a32729d0fad10fcbbcf2643a2fa5671d6',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::kLayout()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#a11026d05b2b32f1373020c049f2cfa66',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::kLayout()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#ae0f176733ba9dee0cce45435ac5d53ba',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::kLayout()']]], - ['klayouta',['kLayoutA',['../structcutlass_1_1gemm_1_1GemmTraits.html#ac5bb5931a707ed7672f69267753ba41b',1,'cutlass::gemm::GemmTraits']]], - ['klayoutb',['kLayoutB',['../structcutlass_1_1gemm_1_1GemmTraits.html#a078e8d9cfa1b182e1b96a2cc8c54b684',1,'cutlass::gemm::GemmTraits']]], + ['klayouta',['kLayoutA',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#ae33c34c292562ffe3c460dbd7bd96654',1,'cutlass::gemm::SplitkPIGemmTraits::kLayoutA()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#ac5bb5931a707ed7672f69267753ba41b',1,'cutlass::gemm::GemmTraits::kLayoutA()']]], + ['klayoutb',['kLayoutB',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a08476ea584d90bab353f9c0ef84c3692',1,'cutlass::gemm::SplitkPIGemmTraits::kLayoutB()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a078e8d9cfa1b182e1b96a2cc8c54b684',1,'cutlass::gemm::GemmTraits::kLayoutB()']]], ['km',['km',['../structcutlass_1_1gemm_1_1GemmCoord.html#ad6c884a5bb6e5edaf371e8af10df367d',1,'cutlass::gemm::GemmCoord::km() const'],['../structcutlass_1_1gemm_1_1GemmCoord.html#af1f5c03c35eaa406c6a63082da26bec3',1,'cutlass::gemm::GemmCoord::kM()']]], ['kmemoryspace',['kMemorySpace',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#af219ece6e66e2866169e06e15cc4472d',1,'cutlass::gemm::GemmGlobalTileTraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a59c981aa720f983b846bed7c3e4a7cab',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#ae5a07814b9cfe9a64f69bac0f0772f20',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a4456e4c8048bfb378e5b80833a0d19e5',1,'cutlass::gemm::GemmSharedLoadTileATraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a7007093a4abf79a0b4bfb3fc85a02620',1,'cutlass::gemm::GemmSharedLoadTileBTraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a8914bc5154f21fa5fd182b0009c44c39',1,'cutlass::gemm::GemmSharedStoreTileDTraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#afb4687520eff9c6a21c35a5e04f69de8',1,'cutlass::gemm::GemmSharedLoadTileDTraits::kMemorySpace()'],['../structcutlass_1_1TileIteratorBase.html#ab8bfa9914c4ba49a583d1cfaa8a62d56',1,'cutlass::TileIteratorBase::kMemorySpace()'],['../structcutlass_1_1TileLoadIterator.html#a44424164c9347f9916b2b86858706043',1,'cutlass::TileLoadIterator::kMemorySpace()'],['../structcutlass_1_1TileStoreIterator.html#a993e1e7d8cc461a9cfa009b61b42621f',1,'cutlass::TileStoreIterator::kMemorySpace()']]], ['kn',['kn',['../structcutlass_1_1gemm_1_1GemmCoord.html#a16501265d58ddaca0e2d9bb4e21d66ea',1,'cutlass::gemm::GemmCoord::kn() const'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a67f08a03dabee497fa5547cff0f1faea',1,'cutlass::gemm::GemmCoord::kN()']]], @@ -55,12 +55,12 @@ var searchData= ['kpredicates',['kPredicates',['../structcutlass_1_1PredicateVector.html#afff3a2142d9853606d6ad7c3a459f492',1,'cutlass::PredicateVector']]], ['kpredicatesperbyte',['kPredicatesPerByte',['../structcutlass_1_1PredicateVector.html#a1387c4a964f971ed4611d750a09ec0b5',1,'cutlass::PredicateVector']]], ['kpredicatestart',['kPredicateStart',['../structcutlass_1_1PredicateVector.html#acf848dce84c01453ab8a2d00c8d4f86e',1,'cutlass::PredicateVector']]], - ['krank',['kRank',['../structcutlass_1_1Coord.html#a23e1b9a7f5fa8fd4afeadfb85de7c5c3',1,'cutlass::Coord::kRank()'],['../classcutlass_1_1TensorRef.html#a429692d4ac03a3427fbd8fdfaac4ae31',1,'cutlass::TensorRef::kRank()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#abff03af38d99413315824c476e9a7d78',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::kRank()']]], + ['krank',['kRank',['../structcutlass_1_1Coord.html#a23e1b9a7f5fa8fd4afeadfb85de7c5c3',1,'cutlass::Coord::kRank()'],['../classcutlass_1_1TensorRef.html#a429692d4ac03a3427fbd8fdfaac4ae31',1,'cutlass::TensorRef::kRank()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#abff03af38d99413315824c476e9a7d78',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::kRank()'],['../structcutlass_1_1TensorRefBatchStrided.html#adb5a794993083f02fab0d12f513bf4c1',1,'cutlass::TensorRefBatchStrided::kRank()']]], ['krequiresloadfence',['kRequiresLoadFence',['../structcutlass_1_1TileLoadIterator.html#a1f3601c595f12e7083919ece9b1ec84ea33514d9f9f71acb901aa1d9860fa8126',1,'cutlass::TileLoadIterator']]], ['kresidueinprolog',['kResidueInProlog',['../structcutlass_1_1gemm_1_1GemmConfig.html#a600746def904eeca46d7f92a4b223b46',1,'cutlass::gemm::GemmConfig']]], ['kresidueseparate',['kResidueSeparate',['../structcutlass_1_1gemm_1_1GemmConfig.html#a64c1e0d794c1bdfa8b2f3a53e387155c',1,'cutlass::gemm::GemmConfig']]], ['krow',['kRow',['../structcutlass_1_1MatrixCoord.html#a5149f4a37407746407251efc0779bb53',1,'cutlass::MatrixCoord::kRow()'],['../structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html#ae97a9ba9d5045bef258d8994eb732256',1,'cutlass::MatrixLayout::ContiguousLayout::kRow()']]], - ['krowmajor',['kRowMajor',['../structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2ba6a287c17f9f5bf53528ae68296beeedb',1,'cutlass::MatrixLayout']]], + ['krowmajor',['kRowMajor',['../namespacecutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2ba6a287c17f9f5bf53528ae68296beeedb',1,'cutlass::MatrixLayout']]], ['kscalar',['kScalar',['../structcutlass_1_1FragmentElementType.html#a62883b0695dc3a7ff82916ff9d75df0babb4fa5d034035e4c751287dd9e366f3b',1,'cutlass::FragmentElementType']]], ['kscalarsin4b',['kScalarsIn4B',['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#ad77b9084720ad7378e033e54bfb74ce7',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::kScalarsIn4B()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a774a052f0f98f50e46dda933c81badd5',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::kScalarsIn4B()']]], ['kscalarsperldga',['kScalarsPerLdgA',['../structcutlass_1_1gemm_1_1GemmConfig.html#a64e7d66e0646c7044e754b3b6b91e761',1,'cutlass::gemm::GemmConfig']]], @@ -83,7 +83,7 @@ var searchData= ['kstages',['kStages',['../structcutlass_1_1gemm_1_1GemmConfig.html#ab26d76515e394118bfc530d6a81b9508',1,'cutlass::gemm::GemmConfig']]], ['kstoragerank',['kStorageRank',['../structcutlass_1_1MatrixLayout_1_1RowMajor.html#a87fe43681c95afc9ef46818fd84d9f30',1,'cutlass::MatrixLayout::RowMajor::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajor.html#ab6be000553d79c0a6e39ccabe1f38c70',1,'cutlass::MatrixLayout::ColumnMajor::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html#a7be6d445e879f042a0b8aa2c9a378800',1,'cutlass::MatrixLayout::RowMajorInterleaved::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved.html#af32144a5875e5db43cf395307a4ab00f',1,'cutlass::MatrixLayout::ColumnMajorInterleaved::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html#a68bde445429b6b3a5156460eaff6a8a7',1,'cutlass::MatrixLayout::ContiguousLayout::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear.html#a626305f3e11ad87e8185e028095a91d3',1,'cutlass::MatrixLayout::ColumnMajorBlockLinear::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear.html#ab1ef1db408fd1e4bda8d6ef203d50c3d',1,'cutlass::MatrixLayout::RowMajorBlockLinear::kStorageRank()'],['../structcutlass_1_1IdentityTensorMapFunc.html#ac609498e7fe858b4fb3791d1039438f4',1,'cutlass::IdentityTensorMapFunc::kStorageRank()'],['../classcutlass_1_1TensorRef.html#a425ff3d894ed1153eee79b1944fa5ed2',1,'cutlass::TensorRef::kStorageRank()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a9bae6c2fd5ac6c97c97786c89862c298',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::kStorageRank()'],['../structcutlass_1_1TensorRefArray.html#a131bdcf213e3d46672c9b3b34d6bf243',1,'cutlass::TensorRefArray::kStorageRank()']]], ['kstrideh',['kStrideH',['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#a87918f4d67a9c1e19dcd3c6bfc243e97',1,'cutlass::gemm::GemmGlobalTileCdTraits']]], - ['kthreads',['kThreads',['../structcutlass_1_1gemm_1_1Gemm.html#a41239809be4ebc730dd8ff28c9efc58b',1,'cutlass::gemm::Gemm::kThreads()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#acf461f0ba3067cc5d66a04f0a176308f',1,'cutlass::gemm::GemmConfig::kThreads()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a05039ba8b7d9890903064b1a834dcd3e',1,'cutlass::gemm::GemmSharedStoreTileDTraits::kThreads()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a8325bc9d56155ecb6f2ddbd56f4ed23d',1,'cutlass::gemm::GemmSharedLoadTileDTraits::kThreads()'],['../structcutlass_1_1TileTraitsStrideMajor.html#a2b6ad449269a178018f02b8cc64ddb85',1,'cutlass::TileTraitsStrideMajor::kThreads()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a53d10552356855bf7379632e72bbe0c9',1,'cutlass::TileTraitsContiguousMajor::kThreads()'],['../structcutlass_1_1TileTraitsWarpRake.html#a11d943e15e397cbc5233b09071dff642',1,'cutlass::TileTraitsWarpRake::kThreads()'],['../structcutlass_1_1TileTraitsStandard.html#a9cbcbe09aa6e9465b63dd22d59435af1',1,'cutlass::TileTraitsStandard::kThreads()']]], + ['kthreads',['kThreads',['../structcutlass_1_1gemm_1_1Gemm.html#a41239809be4ebc730dd8ff28c9efc58b',1,'cutlass::gemm::Gemm::kThreads()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#acf461f0ba3067cc5d66a04f0a176308f',1,'cutlass::gemm::GemmConfig::kThreads()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a05039ba8b7d9890903064b1a834dcd3e',1,'cutlass::gemm::GemmSharedStoreTileDTraits::kThreads()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a8325bc9d56155ecb6f2ddbd56f4ed23d',1,'cutlass::gemm::GemmSharedLoadTileDTraits::kThreads()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ab35edeae5cd8767bd376fad5f6680e25',1,'cutlass::reduction::BatchedReductionTraits::kThreads()'],['../structcutlass_1_1TileTraitsStrideMajor.html#a2b6ad449269a178018f02b8cc64ddb85',1,'cutlass::TileTraitsStrideMajor::kThreads()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a53d10552356855bf7379632e72bbe0c9',1,'cutlass::TileTraitsContiguousMajor::kThreads()'],['../structcutlass_1_1TileTraitsWarpRake.html#a11d943e15e397cbc5233b09071dff642',1,'cutlass::TileTraitsWarpRake::kThreads()'],['../structcutlass_1_1TileTraitsStandard.html#a9cbcbe09aa6e9465b63dd22d59435af1',1,'cutlass::TileTraitsStandard::kThreads()']]], ['kthreadsperwarp',['kThreadsPerWarp',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a4246185b8279f245ef5d0650c1eec14f',1,'cutlass::gemm::GemmSharedLoadTileATraits::kThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a049b0bcdf8c5318ee84edeb1e42eaf78',1,'cutlass::gemm::GemmSharedLoadTileBTraits::kThreadsPerWarp()']]], ['kusage',['kUsage',['../structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html#a962ffde3b3db78792b67dd1f57ab0a05',1,'cutlass::gemm::GemmMultiplicandTraits']]], ['kvalue',['kValue',['../structcutlass_1_1Min.html#a97e6dd3ff6fb5404e8a6e6109f73f429',1,'cutlass::Min::kValue()'],['../structcutlass_1_1Max.html#a6ed8be7ed855eea8f8d08921f7b5d763',1,'cutlass::Max::kValue()'],['../structcutlass_1_1Extent.html#a2cb62986b9a7c168bf79b083f33c4bad',1,'cutlass::Extent::kValue()'],['../structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#a10f7184a9a50de0268efa45dab5dc304',1,'cutlass::Extent< Vector< T, Lanes > >::kValue()'],['../structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#a87917a6dfbb1662416c4ea4831669aaf',1,'cutlass::Extent< Vector< T, Lanes > const >::kValue()']]], diff --git a/docs/search/all_b.js b/docs/search/all_b.js index 76fe0654..821e8637 100644 --- a/docs/search/all_b.js +++ b/docs/search/all_b.js @@ -1,9 +1,12 @@ var searchData= [ - ['launch',['Launch',['../structcutlass_1_1gemm_1_1Launch.html',1,'cutlass::gemm::Launch< Gemm, WithLaunchBounds >'],['../structcutlass_1_1gemm_1_1Launch.html#a8552a524b9419f60bf8ef3c6b8528d27',1,'cutlass::gemm::Launch::Launch()'],['../structcutlass_1_1gemm_1_1Launch_3_01Gemm_00_01false_01_4.html#ab7a89806834a5fa8022daae4180e6180',1,'cutlass::gemm::Launch< Gemm, false >::Launch()'],['../structcutlass_1_1gemm_1_1Gemm.html#a77ae137aec79b4061a9ffa09aabf641c',1,'cutlass::gemm::Gemm::launch(Params const &params, cudaStream_t stream=cudaStreamDefault)'],['../structcutlass_1_1gemm_1_1Gemm.html#a4f4122a2ae8b9b09a9660e5c2ca9e906',1,'cutlass::gemm::Gemm::launch(CUfunction kernel, Params const &params, CUstream stream=CU_STREAM_LEGACY)']]], + ['launch',['Launch',['../structcutlass_1_1gemm_1_1Launch.html',1,'cutlass::gemm::Launch< Gemm, WithLaunchBounds >'],['../structcutlass_1_1gemm_1_1DeviceGemm.html#a9fe60120b00662517208bab3734fe0b0',1,'cutlass::gemm::DeviceGemm::launch()'],['../structcutlass_1_1gemm_1_1Gemm.html#a77ae137aec79b4061a9ffa09aabf641c',1,'cutlass::gemm::Gemm::launch(Params const &params, cudaStream_t stream=cudaStreamDefault)'],['../structcutlass_1_1gemm_1_1Gemm.html#a4f4122a2ae8b9b09a9660e5c2ca9e906',1,'cutlass::gemm::Gemm::launch(CUfunction kernel, Params const &params, CUstream stream=CU_STREAM_LEGACY)'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#ab059393ac467ac365bd0b45c200befdf',1,'cutlass::reduction::BatchedReduction::launch()'],['../structcutlass_1_1gemm_1_1Launch.html#a8552a524b9419f60bf8ef3c6b8528d27',1,'cutlass::gemm::Launch::Launch()'],['../structcutlass_1_1gemm_1_1Launch_3_01Gemm_00_01false_01_4.html#ab7a89806834a5fa8022daae4180e6180',1,'cutlass::gemm::Launch< Gemm, false >::Launch()']]], ['launch_3c_20gemm_2c_20false_20_3e',['Launch< Gemm, false >',['../structcutlass_1_1gemm_1_1Launch_3_01Gemm_00_01false_01_4.html',1,'cutlass::gemm']]], ['layout_20concept',['Layout Concept',['../group__layout__concept.html',1,'']]], ['lcm',['lcm',['../namespacecutlass.html#af07506fee11de882d926f4e8237eef09',1,'cutlass']]], + ['lda',['lda',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#ab14fa69759f1d600a28df4fabaf59c28',1,'cutlass::reduction::BatchedReductionTraits::Params']]], + ['ldc',['ldc',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#a6bdb4dfce17da648b55c7aa68ef5b191',1,'cutlass::reduction::BatchedReductionTraits::Params']]], + ['ldd',['ldd',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#ad24096385e51009866b5aafd90b42ad2',1,'cutlass::reduction::BatchedReductionTraits::Params']]], ['leading_5fdim',['leading_dim',['../classcutlass_1_1TensorRef.html#aa60b92372db1da1d2aa997d6a03e01ca',1,'cutlass::TensorRef::leading_dim()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a6c580a451a36143d1eb0e409e7b13e33',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::leading_dim()']]], ['less',['less',['../structcutlass_1_1platform_1_1less.html',1,'cutlass::platform']]], ['linear_5fscaling_2eh',['linear_scaling.h',['../linear__scaling_8h.html',1,'']]], @@ -31,5 +34,5 @@ var searchData= ['log2_5fdown_3c_20n_2c_201_2c_20count_20_3e',['log2_down< N, 1, Count >',['../structcutlass_1_1log2__down_3_01N_00_011_00_01Count_01_4.html',1,'cutlass']]], ['log2_5fup',['log2_up',['../structcutlass_1_1log2__up.html',1,'cutlass']]], ['log2_5fup_3c_20n_2c_201_2c_20count_20_3e',['log2_up< N, 1, Count >',['../structcutlass_1_1log2__up_3_01N_00_011_00_01Count_01_4.html',1,'cutlass']]], - ['longindex',['LongIndex',['../classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1',1,'cutlass::TensorRef::LongIndex()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a9ad2f8da5e7e6b616dd05f792032699b',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::LongIndex()'],['../structcutlass_1_1TensorRefBatchStrided.html#aa3df5b7337d41d8f96717ea73bf3e24e',1,'cutlass::TensorRefBatchStrided::LongIndex()'],['../structcutlass_1_1TensorRefArray.html#a6220549b72ed8451dbf76466b50a96c0',1,'cutlass::TensorRefArray::LongIndex()']]] + ['longindex',['LongIndex',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#af89096da16d4ec40cb2d388a28cc69be',1,'cutlass::gemm::GemmEpilogueTraits::LongIndex()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ae033a49a784964e75a5c1b6135b21e47',1,'cutlass::gemm::GlobalLoadStream::LongIndex()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a220e04d5122bdb37b4967ad4e37253fe',1,'cutlass::gemm::GemmGlobalIteratorAb::LongIndex()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#af921ea4ba6a83e5db8deb519207e035d',1,'cutlass::gemm::GemmGlobalIteratorCd::LongIndex()'],['../classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1',1,'cutlass::TensorRef::LongIndex()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a9ad2f8da5e7e6b616dd05f792032699b',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::LongIndex()'],['../structcutlass_1_1TensorRefBatchStrided.html#aa3df5b7337d41d8f96717ea73bf3e24e',1,'cutlass::TensorRefBatchStrided::LongIndex()'],['../structcutlass_1_1TensorRefArray.html#a6220549b72ed8451dbf76466b50a96c0',1,'cutlass::TensorRefArray::LongIndex()'],['../structcutlass_1_1TileIteratorBase.html#ad2967c7bb5c6c5eacdea285a63040d94',1,'cutlass::TileIteratorBase::LongIndex()'],['../structcutlass_1_1TileLoadIterator.html#a6cdf9b87147f51f85c973ab435f58339',1,'cutlass::TileLoadIterator::LongIndex()'],['../structcutlass_1_1TileStoreIterator.html#a3543ff8dcabc935d2f2f6646d7cf2d7c',1,'cutlass::TileStoreIterator::LongIndex()'],['../classcutlass_1_1ZipTileIterator.html#a2b37d5c256318aa7054858cf85c9bbf4',1,'cutlass::ZipTileIterator::LongIndex()']]] ]; diff --git a/docs/search/all_c.js b/docs/search/all_c.js index 9710eb39..557b8ebb 100644 --- a/docs/search/all_c.js +++ b/docs/search/all_c.js @@ -5,7 +5,8 @@ var searchData= ['mainloopsharedstorage',['MainLoopSharedStorage',['../structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html',1,'cutlass::gemm::GemmTraits']]], ['make_5fcoord',['make_Coord',['../namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9',1,'cutlass::make_Coord(int _0)'],['../namespacecutlass.html#a61d81e5363bcb8a7f6dd70f053242564',1,'cutlass::make_Coord(int _0, int _1)'],['../namespacecutlass.html#a25acf680a7d2592c957a7ac603f4c361',1,'cutlass::make_Coord(int _0, int _1, int _2)'],['../namespacecutlass.html#a9410b1f5956d3aaf4584e65d047428fc',1,'cutlass::make_Coord(int _0, int _1, int _2, int _3)']]], ['make_5fcoord_5ffrom_5fshape',['make_Coord_from_shape',['../namespacecutlass.html#a90028a415a05ce09073860e5c761aa6f',1,'cutlass']]], - ['make_5fpair',['make_pair',['../namespacecutlass_1_1platform.html#a90ce74c7faa4e27c888ce56e957b73d5',1,'cutlass::platform']]], + ['make_5fpair',['make_Pair',['../namespacecutlass_1_1platform.html#ab9c6c277b6c560f5b719502520fbe9f1',1,'cutlass::platform::make_Pair(T1 const &first, T2 const &second)'],['../namespacecutlass_1_1platform.html#a90ce74c7faa4e27c888ce56e957b73d5',1,'cutlass::platform::make_pair(T1 t, T2 u)']]], + ['make_5ftensorrefbatchstrided',['make_TensorRefBatchStrided',['../namespacecutlass.html#a71f3c955edfa2b5574a1cbff780cdff6',1,'cutlass']]], ['make_5fzero',['make_zero',['../namespacecutlass.html#aa03883e612d292e1b53eedd46e08ccd1',1,'cutlass::make_zero(Scalar_ &x)'],['../namespacecutlass.html#a55b5b15eadf125d5ddddee1ea22191ee',1,'cutlass::make_zero(Vector< Scalar_, kLanes_ > &vec)']]], ['make_5fzipconvert',['make_ZipConvert',['../namespacecutlass.html#adad916101ca58fc9714362c611a0cad8',1,'cutlass']]], ['make_5fzipfragment',['make_ZipFragment',['../namespacecutlass.html#a07b0da6c47bbd827779aa871249ff4b6',1,'cutlass']]], @@ -15,11 +16,13 @@ var searchData= ['mask_5f',['mask_',['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#aa6e76073303f5f5a95053a781ec8b762',1,'cutlass::gemm::IgemmGlobalIteratorAb']]], ['matrix_5ftraits_2eh',['matrix_traits.h',['../matrix__traits_8h.html',1,'']]], ['matrixcoord',['MatrixCoord',['../structcutlass_1_1MatrixCoord.html',1,'cutlass::MatrixCoord'],['../structcutlass_1_1MatrixCoord.html#a36a8a680a466b55325eb0c0cb9fc29c6',1,'cutlass::MatrixCoord::MatrixCoord()'],['../structcutlass_1_1MatrixCoord.html#a64bddbf8238dc937a01a140722f7f39c',1,'cutlass::MatrixCoord::MatrixCoord(Coord< 2, Index > const &coord)'],['../structcutlass_1_1MatrixCoord.html#ac77b18e67be18cfdfe1935939e7f2017',1,'cutlass::MatrixCoord::MatrixCoord(Index row, Index column)']]], - ['matrixlayout',['MatrixLayout',['../structcutlass_1_1MatrixLayout.html',1,'cutlass']]], ['matrixtransform',['MatrixTransform',['../structcutlass_1_1MatrixTransform.html',1,'cutlass']]], ['max',['Max',['../structcutlass_1_1Max.html',1,'cutlass::Max< A, B >'],['../namespacecutlass_1_1platform.html#af6a9a165e53d7e85ae121d5789aa03e0',1,'cutlass::platform::max()']]], + ['maxinreg',['maxInReg',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#af11a3284195a24e580d2f379f179f05a',1,'cutlass::reduction::BatchedReductionTraits']]], + ['maxoutreg',['maxOutReg',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ac28e31791c5888bbe7b04abe6376a422',1,'cutlass::reduction::BatchedReductionTraits']]], ['memoryspace',['MemorySpace',['../structcutlass_1_1MemorySpace.html',1,'cutlass']]], ['min',['Min',['../structcutlass_1_1Min.html',1,'cutlass::Min< A, B >'],['../namespacecutlass_1_1platform.html#a57c071d2a7305dd4ec60542e66b0c81c',1,'cutlass::platform::min()']]], + ['mn',['mn',['../structcutlass_1_1gemm_1_1GemmCoord.html#adf22daa127e7dc1821e950843c5cff47',1,'cutlass::gemm::GemmCoord']]], ['move_5fto_5fresidue',['move_to_residue',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac269a9280a55d3988ca60f571bdf7f29',1,'cutlass::gemm::GlobalLoadStream::move_to_residue()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#ab94c0c95d6d4e019563ba8a142f9d410',1,'cutlass::gemm::GlobalLoadStreamPair::move_to_residue()']]], ['multiplicand_5fbounds',['multiplicand_bounds',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a386f2f4d2e239075f0fe1489ed7788c1',1,'cutlass::gemm::GlobalLoadStream']]], ['multiplicandtraits',['MultiplicandTraits',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a21a3524edaf002b5e5878df3c7eae7e7',1,'cutlass::gemm::GemmGlobalTileTraits']]], diff --git a/docs/search/all_e.js b/docs/search/all_e.js index 572fa618..f9f3f61a 100644 --- a/docs/search/all_e.js +++ b/docs/search/all_e.js @@ -3,8 +3,8 @@ var searchData= ['offset',['offset',['../classcutlass_1_1TensorRef.html#a4da903ecbeaaf80c35084e8779e920a1',1,'cutlass::TensorRef::offset()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a07c7f56e724cfbc844777e8ee9f616b5',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::offset()']]], ['offset_5ft',['Offset_t',['../classcutlass_1_1TensorView.html#a408d9a8026115bdaf70a37c86dc720b1',1,'cutlass::TensorView']]], ['offset_5fto_5fresidue',['offset_to_residue',['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a73bb518f85aee62310b3c886a1fba3f1',1,'cutlass::gemm::GlobalLoadStream::Params']]], + ['offset_5fto_5fresidue_5flast_5fpartition',['offset_to_residue_last_partition',['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a7cad4eeadacc7efbfe9d2442997eeb82',1,'cutlass::gemm::GlobalLoadStream::Params']]], ['onedirection',['OneDirection',['../structcutlass_1_1gemm_1_1swizzleDirection.html#aba1528de966f236380c5f55942802fb8a7c9f735f930f7acf8a16ef43c5fadda5',1,'cutlass::gemm::swizzleDirection']]], - ['operator',['operator',['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ab0ea61995928c0935ec03c260463ef15',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#aa6e59a5ecb15c9842c5ee80cc168f679',1,'cutlass::TensorRefArray::ConstIterator::operator()']]], ['operator_20_26_3d',['operator &=',['../structcutlass_1_1PredicateVector.html#a3dd9aeba8f3cbe7a8198d68d91a0bbb9',1,'cutlass::PredicateVector']]], ['operator_20b_2a',['operator B*',['../structcutlass_1_1platform_1_1is__base__of__helper_1_1dummy.html#a8d100273203db9018dffbbe84e0b6c76',1,'cutlass::platform::is_base_of_helper::dummy']]], ['operator_20bool',['operator bool',['../structcutlass_1_1Coord.html#a1781b3c5a2d653b0c1718ec3154ae48f',1,'cutlass::Coord::operator bool()'],['../classcutlass_1_1platform_1_1unique__ptr.html#a5791650488ae864f10ad04bec4a31005',1,'cutlass::platform::unique_ptr::operator bool()']]], @@ -14,28 +14,28 @@ var searchData= ['operator_20scalar',['operator Scalar',['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a896f35e776c1291ceda0f432cc3da654',1,'cutlass::detail::ScalarOrPointer']]], ['operator_20value_5ftype',['operator value_type',['../structcutlass_1_1platform_1_1integral__constant.html#a55d25116387f1c6d978462b1d245d675',1,'cutlass::platform::integral_constant']]], ['operator_21',['operator!',['../structcutlass_1_1Coord.html#a232095edae2f74c01a3c8abf68166e02',1,'cutlass::Coord']]], - ['operator_21_3d',['operator!=',['../structcutlass_1_1Coord.html#a353d847675e5ba2402c407dcd4ae4de3',1,'cutlass::Coord::operator!=()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a3d06715a77740034697686a7977cb685',1,'cutlass::PredicateVector::ConstIterator::operator!=()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a08cb4d1395b88a4451fbb1a27e010887',1,'cutlass::PredicateVector::Iterator::operator!=()'],['../namespacecutlass_1_1platform.html#aa8b8911c3529ee9d433b0c4d90bde50c',1,'cutlass::platform::operator!=(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a248f49adf09654d2cd04bd2760ab2566',1,'cutlass::platform::operator!=(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], + ['operator_21_3d',['operator!=',['../structcutlass_1_1Coord.html#a353d847675e5ba2402c407dcd4ae4de3',1,'cutlass::Coord::operator!=()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a3d06715a77740034697686a7977cb685',1,'cutlass::PredicateVector::ConstIterator::operator!=()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a08cb4d1395b88a4451fbb1a27e010887',1,'cutlass::PredicateVector::Iterator::operator!=()'],['../namespacecutlass_1_1platform.html#aa8b8911c3529ee9d433b0c4d90bde50c',1,'cutlass::platform::operator!=(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a223ac1d2272e9324809d67182bdd24b6',1,'cutlass::platform::operator!=(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#a248f49adf09654d2cd04bd2760ab2566',1,'cutlass::platform::operator!=(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], ['operator_28_29',['operator()',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset.html#ab8adb983c0573a0015469f40a75287be',1,'cutlass::gemm::GemmGlobalTileTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset.html#abaf0d4459a64b3e9533758b59600bd52',1,'cutlass::gemm::GemmGlobalTileCdTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits_1_1ThreadOffset.html#a1e357fe5bc1daef333e6be776a21a2ca',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits_1_1ThreadOffset.html#a4e35f0b2ca63a6b981230b73f843f726',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits_1_1ThreadOffset.html#a51a325b435b9a53effaa003b3670e410',1,'cutlass::gemm::GemmSharedLoadTileATraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits_1_1ThreadOffset.html#a5b4a635a521364357386259b0f84c0ba',1,'cutlass::gemm::GemmSharedLoadTileBTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits_1_1ThreadOffset.html#a4f9cca16303ac9ae29a0eaa11dcc23b6',1,'cutlass::gemm::GemmSharedStoreTileDTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits_1_1ThreadOffset.html#ace1b936cab289c6884e673312283d422',1,'cutlass::gemm::GemmSharedLoadTileDTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits_1_1ThreadOffset.html#a9fc1ca09733113f80fe5fe45db3d9b81',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits_1_1ThreadOffset.html#a80562f5ceab2049c3b7834c2891a07ee',1,'cutlass::gemm::IgemmGlobalTileTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits_1_1ThreadOffset.html#ad7537f8b30ee6913cf4afa1d3c054e68',1,'cutlass::gemm::WmmaGemmGlobalIteratorCdTraits::ThreadOffset::operator()()'],['../structcutlass_1_1MatrixLayout_1_1RowMajor.html#a736620aef395e4224d7aae098573aa34',1,'cutlass::MatrixLayout::RowMajor::operator()()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajor.html#af51e07c6605524581e5d27d290c8b8d2',1,'cutlass::MatrixLayout::ColumnMajor::operator()()'],['../structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html#a5199cb7f7c10f6123c63703453b7937c',1,'cutlass::MatrixLayout::RowMajorInterleaved::operator()()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved.html#a9dbf79e5df5bcf52d54a699d2587319d',1,'cutlass::MatrixLayout::ColumnMajorInterleaved::operator()()'],['../structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html#a512248a443c5914fab6aeabc4a73978e',1,'cutlass::MatrixLayout::ContiguousLayout::operator()()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear.html#a24c06bb7e64a8015ac528b3ae954a689',1,'cutlass::MatrixLayout::ColumnMajorBlockLinear::operator()()'],['../structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear.html#abde0a4a7c487da0c78ea2519323c04af',1,'cutlass::MatrixLayout::RowMajorBlockLinear::operator()()'],['../structcutlass_1_1IdentityTensorMapFunc.html#a3922130841c34d3ce8c112ee6fae4ca1',1,'cutlass::IdentityTensorMapFunc::operator()()'],['../structcutlass_1_1RegularTilePredicateFunctor.html#a084c0a2732827a74f7a30873c5883827',1,'cutlass::RegularTilePredicateFunctor::operator()()'],['../structcutlass_1_1TiledThreadOffset.html#a7290b6ca9ef0bede634f69bd05450fa2',1,'cutlass::TiledThreadOffset::operator()()'],['../structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset.html#a0e4edffb19218ccbf77995f6d20df000',1,'cutlass::TileTraitsWarpRake::ThreadOffset::operator()()'],['../structcutlass_1_1platform_1_1plus.html#a3bf1e5147df4287bf58ad8f11ea0d98c',1,'cutlass::platform::plus::operator()()'],['../structcutlass_1_1platform_1_1less.html#adfb49ee70a700a8483c70b4b353f6bc5',1,'cutlass::platform::less::operator()()'],['../structcutlass_1_1platform_1_1greater.html#a8d56cf343dd33acebe19d0b51abe3978',1,'cutlass::platform::greater::operator()()'],['../structcutlass_1_1platform_1_1integral__constant.html#a5271a533526a535ae8b783c736252f18',1,'cutlass::platform::integral_constant::operator()()'],['../structcutlass_1_1platform_1_1default__delete.html#a59e6e3cc95685ac34fa6f9cf301b3a15',1,'cutlass::platform::default_delete::operator()()'],['../structcutlass_1_1platform_1_1default__delete_3_01T[]_4.html#a16c5595a5aec7d7ee34e38bef4a66c87',1,'cutlass::platform::default_delete< T[]>::operator()()']]], - ['operator_2a',['operator*',['../structcutlass_1_1Coord.html#a2e94c093f82908ff3dba4f23b5d10033',1,'cutlass::Coord::operator*()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a5a158b5f3c0b1779972b25aa52be1164',1,'cutlass::gemm::GemmCoord::operator*()'],['../structcutlass_1_1MatrixCoord.html#ac68a57c17811b0a04dc6fb21423ab226',1,'cutlass::MatrixCoord::operator*()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#abbc2bceb6cf8d7f168b8a00eb48c0946',1,'cutlass::PredicateVector::ConstIterator::operator*()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a049b568e0f5de011ee76ce79bcedbab4',1,'cutlass::PredicateVector::Iterator::operator*()'],['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html#a78016158f99dd87e822a2a2cbd4cec78',1,'cutlass::PredicateVector::TrivialIterator::operator*()'],['../structcutlass_1_1TileCoord.html#ab8fbb13cc5ea4f580a7fc32963de9553',1,'cutlass::TileCoord::operator*()'],['../classcutlass_1_1platform_1_1unique__ptr.html#a45a3cb6d8641a6130991d56e84cbb38b',1,'cutlass::platform::unique_ptr::operator*()'],['../namespacecutlass_1_1platform.html#a34950f01ed89108b1d79c651aa58ecba',1,'cutlass::platform::operator*(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#aef5da2c88431ab40b58fdd6afea13dba',1,'cutlass::platform::operator*(complex< T > const &lhs, T const &s)'],['../namespacecutlass_1_1platform.html#a289b6e31bdc0be1302b8dbab55eb568c',1,'cutlass::platform::operator*(T const &s, complex< T > const &rhs)']]], + ['operator_2a',['operator*',['../structcutlass_1_1Coord.html#a2e94c093f82908ff3dba4f23b5d10033',1,'cutlass::Coord::operator*()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a5a158b5f3c0b1779972b25aa52be1164',1,'cutlass::gemm::GemmCoord::operator*()'],['../structcutlass_1_1MatrixCoord.html#ac68a57c17811b0a04dc6fb21423ab226',1,'cutlass::MatrixCoord::operator*()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#abbc2bceb6cf8d7f168b8a00eb48c0946',1,'cutlass::PredicateVector::ConstIterator::operator*()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a049b568e0f5de011ee76ce79bcedbab4',1,'cutlass::PredicateVector::Iterator::operator*()'],['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html#a78016158f99dd87e822a2a2cbd4cec78',1,'cutlass::PredicateVector::TrivialIterator::operator*()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a361260c06994a39da799c8768559b45c',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator*()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#ad5ab7b50a709657cc988d139071b44d6',1,'cutlass::TensorRefArray::ConstIterator::operator*()'],['../structcutlass_1_1TileCoord.html#ab8fbb13cc5ea4f580a7fc32963de9553',1,'cutlass::TileCoord::operator*()'],['../classcutlass_1_1platform_1_1unique__ptr.html#a45a3cb6d8641a6130991d56e84cbb38b',1,'cutlass::platform::unique_ptr::operator*()'],['../namespacecutlass.html#a04d3e622868b4e08257ea498d2631219',1,'cutlass::operator*(T s, Coord< Rank, Index > coord)'],['../namespacecutlass.html#a58d4e5861f8df74dd2431a908aee887c',1,'cutlass::operator*(Coord< Rank, Index > coord, T s)'],['../namespacecutlass_1_1platform.html#a34950f01ed89108b1d79c651aa58ecba',1,'cutlass::platform::operator*(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#aef5da2c88431ab40b58fdd6afea13dba',1,'cutlass::platform::operator*(complex< T > const &lhs, T const &s)'],['../namespacecutlass_1_1platform.html#a289b6e31bdc0be1302b8dbab55eb568c',1,'cutlass::platform::operator*(T const &s, complex< T > const &rhs)']]], ['operator_2a_3d',['operator*=',['../structcutlass_1_1Coord.html#ad4303b578b72b5cb2a0198375290e168',1,'cutlass::Coord::operator*=()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a69fb0bb5e73f35d3c8df71a0174d6520',1,'cutlass::gemm::GemmCoord::operator*=()'],['../structcutlass_1_1MatrixCoord.html#a5fd3c3b58af1147a5c73657c05a16f5b',1,'cutlass::MatrixCoord::operator*=()'],['../structcutlass_1_1TileCoord.html#ae946b3af6b795d26632da7ca66b3751c',1,'cutlass::TileCoord::operator*=()'],['../namespacecutlass_1_1platform.html#a9a4928ab582beee4e7ddd337529d45ac',1,'cutlass::platform::operator*=(complex< T > &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a21adde191e48e604908ce886690c6d6b',1,'cutlass::platform::operator*=(complex< T > &lhs, T s)']]], ['operator_2b',['operator+',['../structcutlass_1_1Coord.html#ab37672637771a70910df9aa1a0cffddc',1,'cutlass::Coord::operator+()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a675efbb9ed360888faf3c333708ae4d5',1,'cutlass::gemm::GemmCoord::operator+()'],['../structcutlass_1_1MatrixCoord.html#a25236953237f965965b1c9b7a04ba26e',1,'cutlass::MatrixCoord::operator+()'],['../classcutlass_1_1TensorRef.html#a0a4fd9ace579b46bc9d575b8adc6882f',1,'cutlass::TensorRef::operator+()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#ad054f14b5580c9480d671b8fc8ef016a',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator+()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a1d48f4fea3fa85a7bf1b26b421387afd',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator+()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a9fcd43018e60f12cb328859c76ec7891',1,'cutlass::TensorRefArray::ConstIterator::operator+()'],['../classcutlass_1_1TensorView.html#aa2390d8e127a51df239affd2ca36e97a',1,'cutlass::TensorView::operator+()'],['../structcutlass_1_1TileCoord.html#a3bfa2daa0e63144c1e8510ba336f185b',1,'cutlass::TileCoord::operator+()'],['../namespacecutlass_1_1platform.html#a93b0f0d73fa3cf11c5018460b257837c',1,'cutlass::platform::operator+()']]], ['operator_2b_2b',['operator++',['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a10ee4bb2f206432aa5ee1a83cb046b70',1,'cutlass::PredicateVector::ConstIterator::operator++()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a977a99af3166a58d5bc5a613a1abe7d5',1,'cutlass::PredicateVector::ConstIterator::operator++(int)'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a7dddc0a6b5c958156beef29bedfd1bd3',1,'cutlass::PredicateVector::Iterator::operator++()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a6c7333ad14d545cafc707e78752bf1e3',1,'cutlass::PredicateVector::Iterator::operator++(int)'],['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html#ad24e9b451064e99fb19955f772c30e6a',1,'cutlass::PredicateVector::TrivialIterator::operator++()'],['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html#aa35b9165920b83b9a5a888df83925051',1,'cutlass::PredicateVector::TrivialIterator::operator++(int)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a3481d6f41defd25ab574bb19ee5fe424',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator++()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#aca860ff7f125e02f35c7dc174e84708d',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator++(int)'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a8ce80124ab0f4ab9981f1a4d64d976a5',1,'cutlass::TensorRefArray::ConstIterator::operator++()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a051f34d90c0680dc5f4e4e1c4d79e929',1,'cutlass::TensorRefArray::ConstIterator::operator++(int)'],['../classcutlass_1_1ZipTileIterator.html#a47d270fc4a119d7b95b2d5dd3ee5b87b',1,'cutlass::ZipTileIterator::operator++()']]], ['operator_2b_3d',['operator+=',['../structcutlass_1_1Coord.html#ae4f2cb12b84411118cb93e7c4cb88b20',1,'cutlass::Coord::operator+=()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a5465f7308778eac5d14d8020179a65e0',1,'cutlass::gemm::GemmCoord::operator+=()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a8e79a153de72eef10d90bfd02b5dd27e',1,'cutlass::gemm::GlobalLoadStream::operator+=()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a32cd0a03868f52b172d031f23e2c08af',1,'cutlass::gemm::GemmGlobalIteratorAb::operator+=()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#aa6845b5a0fa36eb185caafea791e53ec',1,'cutlass::gemm::GemmGlobalIteratorCd::operator+=()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a769813dcffe1767aab49ac30b838a5f4',1,'cutlass::gemm::GlobalLoadStreamPair::operator+=()'],['../structcutlass_1_1MatrixCoord.html#ad105615dbf7ede75caa0e778c873bd06',1,'cutlass::MatrixCoord::operator+=()'],['../classcutlass_1_1TensorRef.html#a727d9c25d6df0aa9e795123b638b9306',1,'cutlass::TensorRef::operator+=()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a0753aeb57365a976bc0a88481af504cb',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator+=()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ab07a5d1a4ec6d96ec53e868b3a6d7cae',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator+=()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a22b87d281057c8e03b80db7046c54dd8',1,'cutlass::TensorRefArray::ConstIterator::operator+=()'],['../classcutlass_1_1TensorView.html#a4fa8fa35d00eb4d0097da492c738cddc',1,'cutlass::TensorView::operator+=()'],['../structcutlass_1_1TileCoord.html#a812760c633ea813db8a2bc24826c68df',1,'cutlass::TileCoord::operator+=()'],['../structcutlass_1_1TileLoadIterator.html#a723041057b1e8212e075959a22c0c120',1,'cutlass::TileLoadIterator::operator+=()'],['../structcutlass_1_1TileStoreIterator.html#a57b284e6cbff892d45e5cfeb0ae1e3ed',1,'cutlass::TileStoreIterator::operator+=()'],['../classcutlass_1_1ZipTileIterator.html#a60ba516d7382cb7788d5430023f7fc44',1,'cutlass::ZipTileIterator::operator+=(int count)'],['../classcutlass_1_1ZipTileIterator.html#a200a4e88ee6d23dcc80e974c77f8fa1f',1,'cutlass::ZipTileIterator::operator+=(Coord< 3 > const &offset)'],['../namespacecutlass_1_1platform.html#a34c5ca341da805d5d1bc703c53c96d9d',1,'cutlass::platform::operator+=()']]], - ['operator_2d',['operator-',['../structcutlass_1_1Coord.html#a6b876f61a85a4a4ef3763b6742bfaa6b',1,'cutlass::Coord::operator-()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a762fd45e61477d700c82bfd67443c6f9',1,'cutlass::gemm::GemmCoord::operator-()'],['../structcutlass_1_1MatrixCoord.html#aa462303d75a5d98b680b6e20080ce877',1,'cutlass::MatrixCoord::operator-()'],['../classcutlass_1_1TensorRef.html#a4a56b323aed2a3b2c843c276b68378fa',1,'cutlass::TensorRef::operator-()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#afde28cda18918d3e177d3e5024ed3dd4',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator-()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ad1d8099e8d63b6d88c53738ec68a7589',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator-(Index idx)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ab92bc090d6753ff5e17676ba85a1e478',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator-(ConstIterator const &it)'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a143ec893406d930aa4c5aa860052197e',1,'cutlass::TensorRefArray::ConstIterator::operator-()'],['../classcutlass_1_1TensorView.html#a1e4b2bb02c5843898f72f62787403add',1,'cutlass::TensorView::operator-()'],['../structcutlass_1_1TileCoord.html#a9f274d8e93f9cd3e0a9699e11b85fa7c',1,'cutlass::TileCoord::operator-()'],['../namespacecutlass_1_1platform.html#aa486433971cdd6b7648c1e5459c42763',1,'cutlass::platform::operator-()']]], + ['operator_2d',['operator-',['../structcutlass_1_1Coord.html#a6b876f61a85a4a4ef3763b6742bfaa6b',1,'cutlass::Coord::operator-()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a762fd45e61477d700c82bfd67443c6f9',1,'cutlass::gemm::GemmCoord::operator-()'],['../structcutlass_1_1MatrixCoord.html#aa462303d75a5d98b680b6e20080ce877',1,'cutlass::MatrixCoord::operator-()'],['../classcutlass_1_1TensorRef.html#a4a56b323aed2a3b2c843c276b68378fa',1,'cutlass::TensorRef::operator-()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#afde28cda18918d3e177d3e5024ed3dd4',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator-()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ad1d8099e8d63b6d88c53738ec68a7589',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator-(Index idx)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#acc042cd91214942a0861517132938f55',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator-(ConstIterator const &it)'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a143ec893406d930aa4c5aa860052197e',1,'cutlass::TensorRefArray::ConstIterator::operator-()'],['../classcutlass_1_1TensorView.html#a1e4b2bb02c5843898f72f62787403add',1,'cutlass::TensorView::operator-()'],['../structcutlass_1_1TileCoord.html#a9f274d8e93f9cd3e0a9699e11b85fa7c',1,'cutlass::TileCoord::operator-()'],['../namespacecutlass_1_1platform.html#aa486433971cdd6b7648c1e5459c42763',1,'cutlass::platform::operator-()']]], ['operator_2d_2d',['operator--',['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a2763012a9284e97650b14e20c5668286',1,'cutlass::PredicateVector::ConstIterator::operator--()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a2910a714d34a688b8ea560ea2933436b',1,'cutlass::PredicateVector::ConstIterator::operator--(int)'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a69fb5b24eeb43331b7401768e8584e61',1,'cutlass::PredicateVector::Iterator::operator--()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#aad709a11f43b84c88e3ce3a0394f8e8a',1,'cutlass::PredicateVector::Iterator::operator--(int)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ad5290f0e7814892cb4fff55e9518562b',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator--()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a09909fbe2e4365b5f34ddb61658f27b3',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator--(int)'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a0f395558e2c589ac48179447a23b59d8',1,'cutlass::TensorRefArray::ConstIterator::operator--()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#ac9019febbc8b6bfea06ac4d23d253d57',1,'cutlass::TensorRefArray::ConstIterator::operator--(int)'],['../classcutlass_1_1ZipTileIterator.html#a3d22dab34b2abd0d05c00668f8591151',1,'cutlass::ZipTileIterator::operator--()']]], ['operator_2d_3d',['operator-=',['../structcutlass_1_1Coord.html#a304334cbcad636d7b058fdc6310f0e6b',1,'cutlass::Coord::operator-=()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a12ba250be3d5474b7c6fc4eddd4f58d5',1,'cutlass::gemm::GemmCoord::operator-=()'],['../structcutlass_1_1MatrixCoord.html#a6feef48cf24733d22ca53a27cbc33ac0',1,'cutlass::MatrixCoord::operator-=()'],['../classcutlass_1_1TensorRef.html#a5b5af26da32278d19c27c0d5a4a18890',1,'cutlass::TensorRef::operator-=()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a11964d045ac8e41c80026515adb03008',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator-=()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ac4018b51e78842fb252d6917738fa571',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator-=()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#ae3561f863072cd7be7dcdee2cb5cc1f0',1,'cutlass::TensorRefArray::ConstIterator::operator-=()'],['../classcutlass_1_1TensorView.html#abc088fad6debb6a0ceb04c5d2767e81b',1,'cutlass::TensorView::operator-=()'],['../structcutlass_1_1TileCoord.html#a02da20e580962fe0754a772842045389',1,'cutlass::TileCoord::operator-=()'],['../classcutlass_1_1ZipTileIterator.html#a7bae0f9b789e75bb154c5f37db50e14c',1,'cutlass::ZipTileIterator::operator-=()'],['../namespacecutlass_1_1platform.html#abff9e10130849ea46f6245f4e8cc2cc9',1,'cutlass::platform::operator-=()']]], ['operator_2d_3e',['operator->',['../classcutlass_1_1platform_1_1unique__ptr.html#afa52edcaef23461ce1f9c1dac349c24b',1,'cutlass::platform::unique_ptr']]], - ['operator_2f',['operator/',['../structcutlass_1_1Coord.html#a9bb07631f09efc80219413ac8309f568',1,'cutlass::Coord::operator/()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a41770bb99f02f4debbafe95e019ce02b',1,'cutlass::gemm::GemmCoord::operator/()'],['../structcutlass_1_1MatrixCoord.html#aa89b196410d25d8c9ed3746fb6833374',1,'cutlass::MatrixCoord::operator/()'],['../structcutlass_1_1TileCoord.html#a5d2cc915343a3b90fb530348ddd329d2',1,'cutlass::TileCoord::operator/()'],['../namespacecutlass_1_1platform.html#a4fe79c19fb599cd9b85d08676a711f9f',1,'cutlass::platform::operator/(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a33f75d77ff629335c9666128837c4581',1,'cutlass::platform::operator/(complex< T > const &lhs, T const &s)'],['../namespacecutlass_1_1platform.html#ae302b414576ecb5afb0cdfdda6b30ad3',1,'cutlass::platform::operator/(T const &s, complex< T > const &rhs)']]], + ['operator_2f',['operator/',['../structcutlass_1_1Coord.html#a9bb07631f09efc80219413ac8309f568',1,'cutlass::Coord::operator/()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a41770bb99f02f4debbafe95e019ce02b',1,'cutlass::gemm::GemmCoord::operator/()'],['../structcutlass_1_1MatrixCoord.html#aa89b196410d25d8c9ed3746fb6833374',1,'cutlass::MatrixCoord::operator/()'],['../structcutlass_1_1TileCoord.html#a5d2cc915343a3b90fb530348ddd329d2',1,'cutlass::TileCoord::operator/()'],['../namespacecutlass.html#a1b86c9f4140fcf8fa4810d6b3aa4cadf',1,'cutlass::operator/(T s, Coord< Rank, Index > coord)'],['../namespacecutlass.html#ad0544ac86101c8cf1f95b543972d74d1',1,'cutlass::operator/(Coord< Rank, Index > coord, T s)'],['../namespacecutlass_1_1platform.html#a4fe79c19fb599cd9b85d08676a711f9f',1,'cutlass::platform::operator/(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a33f75d77ff629335c9666128837c4581',1,'cutlass::platform::operator/(complex< T > const &lhs, T const &s)'],['../namespacecutlass_1_1platform.html#ae302b414576ecb5afb0cdfdda6b30ad3',1,'cutlass::platform::operator/(T const &s, complex< T > const &rhs)']]], ['operator_2f_3d',['operator/=',['../structcutlass_1_1Coord.html#ac87199c4c9a4e20aac4eb6e3b9a68f28',1,'cutlass::Coord::operator/=()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#aac1e1bad751237fd76d32a1ea10f6c40',1,'cutlass::gemm::GemmCoord::operator/=()'],['../structcutlass_1_1MatrixCoord.html#aab345c8ddb8048bfe3d667bc7ce6522f',1,'cutlass::MatrixCoord::operator/=()'],['../structcutlass_1_1TileCoord.html#ac3207d8aa879c86a907cdcc93ccb2eb5',1,'cutlass::TileCoord::operator/=()'],['../namespacecutlass_1_1platform.html#ac594526ef64ecf364ae957753ce64b40',1,'cutlass::platform::operator/=()']]], - ['operator_3c',['operator<',['../structcutlass_1_1Coord.html#a148851df63840ac63e23b2f170bd1308',1,'cutlass::Coord::operator<()'],['../namespacecutlass_1_1platform.html#a412dbdbc678ecd12b55fcad4ef4155bd',1,'cutlass::platform::operator<()']]], + ['operator_3c',['operator<',['../structcutlass_1_1Coord.html#a148851df63840ac63e23b2f170bd1308',1,'cutlass::Coord::operator<()'],['../namespacecutlass_1_1platform.html#aba545c443b332f8d38fa8021e31deeb4',1,'cutlass::platform::operator<(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#a412dbdbc678ecd12b55fcad4ef4155bd',1,'cutlass::platform::operator<(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], ['operator_3c_3c',['operator<<',['../namespacecutlass.html#afe231b125bbb1e9aa51307a8abdf9a60',1,'cutlass::operator<<(std::ostream &out, Coord< Rank > const &coord)'],['../namespacecutlass.html#a30ddfc5e90b9103840cb30c9f9b96b49',1,'cutlass::operator<<(std::ostream &out, ScalarIO< T > const &scalar)'],['../namespacecutlass.html#a36690681ed19dc7e398fcdafdbfe9975',1,'cutlass::operator<<(std::ostream &out, ScalarIO< int8_t > const &scalar)'],['../namespacecutlass.html#a1a35d6b9b984a9c143957db733a93f51',1,'cutlass::operator<<(std::ostream &out, ScalarIO< uint8_t > const &scalar)'],['../namespacecutlass.html#a2fd306c63f71877f9231a7e1265752cf',1,'cutlass::operator<<(std::ostream &out, ScalarIO< cutlass::Vector< cutlass::bin1_t, 32 > > const &scalar)'],['../namespacecutlass.html#aecf2cd62eee939946b7173a110ecf76e',1,'cutlass::operator<<(std::ostream &out, ScalarIO< cutlass::Vector< cutlass::int4_t, 8 > > const &scalar)'],['../namespacecutlass.html#a3ceda5ed2d923222662a37e8f355c9b8',1,'cutlass::operator<<(std::ostream &out, ScalarIO< cutlass::Vector< cutlass::uint4_t, 8 > > const &scalar)'],['../namespacecutlass_1_1platform.html#ab4c3e4eabba020d7a9faf86ee6cf437a',1,'cutlass::platform::operator<<()']]], - ['operator_3c_3d',['operator<=',['../structcutlass_1_1Coord.html#a9dc9f063be329d475f040afd449d304c',1,'cutlass::Coord::operator<=()'],['../namespacecutlass_1_1platform.html#a41d573133357bd555f78d33afc1152d3',1,'cutlass::platform::operator<=()']]], + ['operator_3c_3d',['operator<=',['../structcutlass_1_1Coord.html#a9dc9f063be329d475f040afd449d304c',1,'cutlass::Coord::operator<=()'],['../namespacecutlass_1_1platform.html#a8ab8b5156f4bf6ec866cfee9ee3dbc01',1,'cutlass::platform::operator<=(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#a41d573133357bd555f78d33afc1152d3',1,'cutlass::platform::operator<=(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], ['operator_3d',['operator=',['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a3b29491782c3a129355fa4ef159cb970',1,'cutlass::detail::ScalarOrPointer::operator=(Scalar const &scalar_)'],['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a54357e2f1d52aa8355b2ae7796740ea3',1,'cutlass::detail::ScalarOrPointer::operator=(Scalar const *ptr_)'],['../classcutlass_1_1TensorView.html#acf0c156efb9197bc7538f7e9057d8a68',1,'cutlass::TensorView::operator=()']]], - ['operator_3d_3d',['operator==',['../structcutlass_1_1Coord.html#a7f919aeb2a895bc040599971400dec8d',1,'cutlass::Coord::operator==()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#aa2d03d88ac23051803d010f78157c357',1,'cutlass::PredicateVector::ConstIterator::operator==()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a5c5266fcef67c7b263682c4bc4a5000e',1,'cutlass::PredicateVector::Iterator::operator==()'],['../namespacecutlass_1_1platform.html#a043e8559161ee0fcaf943a1dfe1a9cbb',1,'cutlass::platform::operator==(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#ab9b8306ae9dc21fa646c49b68fa8e197',1,'cutlass::platform::operator==(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], - ['operator_3e',['operator>',['../namespacecutlass_1_1platform.html#a9e8e698d40b8df881991fde9ba2a1b12',1,'cutlass::platform']]], - ['operator_3e_3d',['operator>=',['../namespacecutlass_1_1platform.html#ab0f21e67c0a4b5c6952042b502c6816f',1,'cutlass::platform']]], + ['operator_3d_3d',['operator==',['../structcutlass_1_1Coord.html#a7f919aeb2a895bc040599971400dec8d',1,'cutlass::Coord::operator==()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#aa2d03d88ac23051803d010f78157c357',1,'cutlass::PredicateVector::ConstIterator::operator==()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a5c5266fcef67c7b263682c4bc4a5000e',1,'cutlass::PredicateVector::Iterator::operator==()'],['../namespacecutlass_1_1platform.html#a043e8559161ee0fcaf943a1dfe1a9cbb',1,'cutlass::platform::operator==(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a4572b933f5d88de4714f761a7234ab92',1,'cutlass::platform::operator==(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#ab9b8306ae9dc21fa646c49b68fa8e197',1,'cutlass::platform::operator==(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], + ['operator_3e',['operator>',['../namespacecutlass_1_1platform.html#a67e66e652a38f03d48b442d401980daa',1,'cutlass::platform::operator>(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#a9e8e698d40b8df881991fde9ba2a1b12',1,'cutlass::platform::operator>(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], + ['operator_3e_3d',['operator>=',['../namespacecutlass_1_1platform.html#a1df0f55188cb81ce74f4c7bf125356d4',1,'cutlass::platform::operator>=(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#ab0f21e67c0a4b5c6952042b502c6816f',1,'cutlass::platform::operator>=(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], ['operator_5b_5d',['operator[]',['../structcutlass_1_1Coord.html#a6e0967541a1d74edeb93897ea6069e24',1,'cutlass::Coord::operator[](int dim)'],['../structcutlass_1_1Coord.html#a882e7ac07bbd6983659ef2e574b46454',1,'cutlass::Coord::operator[](int dim) const'],['../structcutlass_1_1Fragment.html#a77ba7cddf7822d64534b019c4ad9732e',1,'cutlass::Fragment::operator[](int i)'],['../structcutlass_1_1Fragment.html#a7795c5cf4d5626ff125abd5e8f156e9b',1,'cutlass::Fragment::operator[](int i) const'],['../structcutlass_1_1FragmentIterator.html#a21877944988f34eb69cb6eefb00c6575',1,'cutlass::FragmentIterator::operator[](int i) const'],['../structcutlass_1_1FragmentIterator.html#ad665745f3d6a3a88d7894fe0fc1bbd3e',1,'cutlass::FragmentIterator::operator[](int i)'],['../structcutlass_1_1FragmentConstIterator.html#a6216b58ffe6322f037f1e0a3ffa714c8',1,'cutlass::FragmentConstIterator::operator[]()'],['../structcutlass_1_1PredicateVector.html#a840985438ac8306ec680eb20edd4e5c5',1,'cutlass::PredicateVector::operator[]()'],['../classcutlass_1_1TensorRef.html#ada832ce3a57aaf4919b1ed89192f1fa6',1,'cutlass::TensorRef::operator[](TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef.html#a207a0dabf6c368fa1edcb32baa2110e3',1,'cutlass::TensorRef::operator[](LongIndex idx) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a64a5e91e01555b8bfd22875543573d22',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator[](TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a57f132816e51bbdb4c807d57c067b619',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator[](LongIndex idx) const'],['../classcutlass_1_1platform_1_1unique__ptr.html#a5c7a204af07a7d325b0a8303e199a50d',1,'cutlass::platform::unique_ptr::operator[]()'],['../unioncutlass_1_1Vector.html#a69be4f85c1dac371fa6f1c6747724adc',1,'cutlass::Vector::operator[](uint32_t i) const'],['../unioncutlass_1_1Vector.html#abf531676caf85cde1c8df435c1ebe8bb',1,'cutlass::Vector::operator[](uint32_t i)'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a12fa9366dd57fadb2d3f624ab7836dc8',1,'cutlass::Vector< half, 1 >::operator[](uint32_t i) const'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a1e6568c0f3f958db739074ab6978ff10',1,'cutlass::Vector< half, 1 >::operator[](uint32_t i)'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#ad50b5d4acbd7ead82c128091c9db9113',1,'cutlass::Vector< half, kLanes_ >::operator[](uint32_t i) const'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#a3891ce1c321a3e57e938c8864de9baf0',1,'cutlass::Vector< half, kLanes_ >::operator[](uint32_t i)'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a8eda6e6181a5333ca8350977374708cb',1,'cutlass::Vector< bin1_t, kLanes_ >::operator[]()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#a2d5ec0b76daa136dae0b4aec1edf9e0b',1,'cutlass::Vector< int4_t, kLanes_ >::operator[]()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#ae2215fe7c2c223175b4172d73a6c7a82',1,'cutlass::Vector< uint4_t, kLanes_ >::operator[]()']]], ['operator_7c_3d',['operator|=',['../structcutlass_1_1PredicateVector.html#aab9de134132c62de1c062ca57582cdbc',1,'cutlass::PredicateVector']]], ['outputfragment',['OutputFragment',['../structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ofca5985d18bcb54bc1f49355f3cee121.html#a8ef69ab595489e142911e8e240fb405a',1,'cutlass::Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > >::OutputFragment()'],['../structcutlass_1_1Copy.html#a545be6c284d625b0841a10cc9126e14a',1,'cutlass::Copy::OutputFragment()'],['../structcutlass_1_1gemm_1_1HgemmSwizzle.html#a9c04f0b0eb0293325f661b72168d4fa8',1,'cutlass::gemm::HgemmSwizzle::OutputFragment()'],['../structcutlass_1_1gemm_1_1IgemmFloatToInt8Converter.html#a3d89bfc0d94cd695cbe4a61859e5e553',1,'cutlass::gemm::IgemmFloatToInt8Converter::OutputFragment()'],['../structcutlass_1_1gemm_1_1IgemmInt8ToFloatConverter.html#a66ac385a1cd771b95f70ee36cd74e8f7',1,'cutlass::gemm::IgemmInt8ToFloatConverter::OutputFragment()'],['../structcutlass_1_1gemm_1_1IgemmSwizzle.html#ac0a4e31e95f8e0c77ae087284bb02ff8',1,'cutlass::gemm::IgemmSwizzle::OutputFragment()'],['../structcutlass_1_1ZipConvert.html#ae0276951ad92b253de673c63ec88c584',1,'cutlass::ZipConvert::OutputFragment()']]], - ['outputtile',['OutputTile',['../structcutlass_1_1gemm_1_1GemmConfig.html#a9dd9c3efc3dfd9b5c6acd12236697399',1,'cutlass::gemm::GemmConfig::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a92a135fac401d43a8d2f14982d90274b',1,'cutlass::gemm::GemmEpilogue::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#af4d17d3774382fc0ba63d329bd12772c',1,'cutlass::gemm::GemmEpilogueTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#ac30a062bed1a65e45961c4f301b69101',1,'cutlass::gemm::GemmEpilogueTraitsHelper::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#ad52b81080731ee1f0d3c2c7eaba6f60d',1,'cutlass::gemm::GemmSharedStoreTileDTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#acb16feebdcad5bbebe9d4d3383c37899',1,'cutlass::gemm::GemmSharedLoadTileDTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a97d7ee63e5d180410b370f095648f367',1,'cutlass::gemm::GemmTraits::OutputTile()']]] + ['outputtile',['OutputTile',['../structcutlass_1_1gemm_1_1GemmConfig.html#a9dd9c3efc3dfd9b5c6acd12236697399',1,'cutlass::gemm::GemmConfig::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a92a135fac401d43a8d2f14982d90274b',1,'cutlass::gemm::GemmEpilogue::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#af4d17d3774382fc0ba63d329bd12772c',1,'cutlass::gemm::GemmEpilogueTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#ac30a062bed1a65e45961c4f301b69101',1,'cutlass::gemm::GemmEpilogueTraitsHelper::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#ad52b81080731ee1f0d3c2c7eaba6f60d',1,'cutlass::gemm::GemmSharedStoreTileDTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#acb16feebdcad5bbebe9d4d3383c37899',1,'cutlass::gemm::GemmSharedLoadTileDTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a97d7ee63e5d180410b370f095648f367',1,'cutlass::gemm::GemmTraits::OutputTile()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#a3b0e98519b7e551ef6adac69e7406d8f',1,'cutlass::reduction::BatchedReductionTraits::OutputTile()']]] ]; diff --git a/docs/search/all_f.js b/docs/search/all_f.js index 26daa942..fe206c86 100644 --- a/docs/search/all_f.js +++ b/docs/search/all_f.js @@ -1,7 +1,11 @@ var searchData= [ ['pad',['pad',['../structcutlass_1_1platform_1_1alignment__of_1_1pad.html',1,'cutlass::platform::alignment_of']]], - ['params',['Params',['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html',1,'cutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ >::Params'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html',1,'cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params'],['../structcutlass_1_1gemm_1_1SharedStreamPair_1_1Params.html',1,'cutlass::gemm::SharedStreamPair< StreamA_, StreamB_ >::Params'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_1_1Params.html',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ >::Params'],['../structcutlass_1_1ZipTileIterator_1_1Params.html',1,'cutlass::ZipTileIterator< First_, Second_ >::Params'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html',1,'cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html',1,'cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::Params'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html',1,'cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::Params'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html',1,'cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::Params'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html',1,'cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html',1,'cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params'],['../structcutlass_1_1TileIteratorBase_1_1Params.html',1,'cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileLoadIterator_1_1Params.html',1,'cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileStoreIterator_1_1Params.html',1,'cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileLoadStream_1_1Params.html',1,'cutlass::TileLoadStream< Iterator_, Transformer_ >::Params'],['../structcutlass_1_1TileStoreStream_1_1Params.html',1,'cutlass::TileStoreStream< Iterator_, Transformer_ >::Params'],['../structcutlass_1_1gemm_1_1SharedLoadStream_1_1Params.html',1,'cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >::Params'],['../structcutlass_1_1gemm_1_1Gemm.html#a054d5e87f1985ae7e53fc07f4c16d916',1,'cutlass::gemm::Gemm::Params()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#ae5209fa80705442693833c63d535161e',1,'cutlass::gemm::GemmEpilogue::Params()'],['../structcutlass_1_1PredicatedTileLoadStream.html#a3af1a02201f53d4d09adc483fdcc23a6',1,'cutlass::PredicatedTileLoadStream::Params()'],['../structcutlass_1_1PredicatedTileStoreStream.html#ad0c7a51f1b98111ce332ed906601a4ba',1,'cutlass::PredicatedTileStoreStream::Params()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html#afb39229d0ad334834cd2ba0c1fcc9412',1,'cutlass::gemm::GlobalLoadStreamPair::Params::Params()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html#ab26c1aaa2b7709c32bab39801d6c7772',1,'cutlass::gemm::GlobalLoadStreamPair::Params::Params(typename StreamA::Params const &_params_A, typename StreamB::Params const &_params_B)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#ae515cd98a75ff3eafffcc69692d6301a',1,'cutlass::gemm::LinearScaling::Params::Params()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ae28323819fc8950bc0fee3a34b2184ff',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a26b04702140a550f3ab598132a74cd93',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params(Scalar alpha, Scalar beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a38aa3e6beb09c7c4bea952094a2ea682',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params(Scalar const *alpha_ptr, Scalar const *beta_ptr)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#acc0341b88143aac4ffd9bc1dcfaafa71',1,'cutlass::TileIteratorBase::Params::Params()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#ab04617136a3bf909ef27eb97ea5ef81c',1,'cutlass::TileIteratorBase::Params::Params(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#ac030ea4568fa2cb6d6661df75062cd1a',1,'cutlass::TileIteratorBase::Params::Params(Coord< 4 > const &stride)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a9a1098e6c7b8c7c377031fe59a18fbf5',1,'cutlass::TileLoadIterator::Params::Params()'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a88a90437f11d029ef109ebb4f828f282',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a2de32338814d0554b05ca985dbb7e192',1,'cutlass::TileLoadIterator::Params::Params(TensorRef const &ref)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a78380e92553010656516400d51e14c7e',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a8c9856709d3392d8b70dce9a13fa529a',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a79304c022d2466c97cd671a98128815a',1,'cutlass::TileStoreIterator::Params::Params()'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#ae1cb260e7b05034ec9b7fa61c92bbc80',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#afae37ebc78884290300f38fce7c021b1',1,'cutlass::TileStoreIterator::Params::Params(TensorRef const &ref)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#aa131e0ef02ce37038c1a17bea7088ef6',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr, long long stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a9cf4cd4ecb0a81cf3c03a70c7bfc4e09',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadStream_1_1Params.html#a90772ac34f8c49f049eb62fada0a2165',1,'cutlass::TileLoadStream::Params::Params()'],['../structcutlass_1_1TileLoadStream_1_1Params.html#a50f136516b139f011939015c8c417ddd',1,'cutlass::TileLoadStream::Params::Params(typename Iterator::Params const &_iterator)'],['../structcutlass_1_1TileStoreStream_1_1Params.html#adfa2399bf13cdff16b7bfe1cb0dd2bd9',1,'cutlass::TileStoreStream::Params::Params()'],['../structcutlass_1_1TileStoreStream_1_1Params.html#acc400568f7694f818b5afbb109bd2e63',1,'cutlass::TileStoreStream::Params::Params(typename Iterator::Params const &_iterator)'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a4ed93b5319fe96457caf53e9384722d4',1,'cutlass::ZipTileIterator::Params::Params()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#ad38f6a2cc5800c0ec82b12d183040390',1,'cutlass::ZipTileIterator::Params::Params(typename First::Params const &_first, typename Second::Params const &_second)'],['../structcutlass_1_1gemm_1_1Gemm.html#a3c292637ab0ec8e73856d0cf6efb6da2',1,'cutlass::gemm::Gemm::params()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a81b028a18df51d3caa1b0ba0c990e362',1,'cutlass::gemm::GemmEpilogue::params()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac8ff1a3e10b25c212cd3cf5ed997fc0e',1,'cutlass::gemm::GlobalLoadStream::params()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#ab8c79cb1a8157dd00429c93cb4a41322',1,'cutlass::gemm::GemmGlobalIteratorAb::params()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#ac368b1ea1c5ad2209a6ac6bec597600f',1,'cutlass::gemm::GemmGlobalIteratorCd::params()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#a7bbf90dc0938698a0fa22468f9df315d',1,'cutlass::gemm::LinearScaling::params()'],['../structcutlass_1_1TileLoadIterator.html#a5561e676148200c2fc85a603847cc596',1,'cutlass::TileLoadIterator::params()'],['../structcutlass_1_1TileStoreIterator.html#a64e0c9fb1f7d8fcc77bf0a915445ee6d',1,'cutlass::TileStoreIterator::params()']]], + ['pair',['Pair',['../structcutlass_1_1platform_1_1Pair.html',1,'cutlass::platform::Pair< T1, T2 >'],['../structcutlass_1_1platform_1_1Pair.html#ab17167b20d824348ce38d5ca674b3985',1,'cutlass::platform::Pair::Pair()'],['../structcutlass_1_1platform_1_1Pair.html#a1f9f87ed7630a9019c3ae49dd07c6599',1,'cutlass::platform::Pair::Pair(T1 const &first_, T2 const &second_)']]], + ['pair_2eh',['pair.h',['../pair_8h.html',1,'']]], + ['params',['Params',['../structcutlass_1_1gemm_1_1SharedLoadStream_1_1Params.html',1,'cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >::Params'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html',1,'cutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ >::Params'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_1_1Params.html',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ >::Params'],['../structcutlass_1_1gemm_1_1SharedStreamPair_1_1Params.html',1,'cutlass::gemm::SharedStreamPair< StreamA_, StreamB_ >::Params'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html',1,'cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params'],['../structcutlass_1_1ZipTileIterator_1_1Params.html',1,'cutlass::ZipTileIterator< First_, Second_ >::Params'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html',1,'cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::Params'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html',1,'cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html',1,'cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::Params'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html',1,'cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html',1,'cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html',1,'cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::Params'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html',1,'cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html',1,'cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params'],['../structcutlass_1_1TileIteratorBase_1_1Params.html',1,'cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileLoadIterator_1_1Params.html',1,'cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileStoreIterator_1_1Params.html',1,'cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileLoadStream_1_1Params.html',1,'cutlass::TileLoadStream< Iterator_, Transformer_ >::Params'],['../structcutlass_1_1TileStoreStream_1_1Params.html',1,'cutlass::TileStoreStream< Iterator_, Transformer_ >::Params'],['../structcutlass_1_1gemm_1_1Gemm.html#a3c292637ab0ec8e73856d0cf6efb6da2',1,'cutlass::gemm::Gemm::params()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a81b028a18df51d3caa1b0ba0c990e362',1,'cutlass::gemm::GemmEpilogue::params()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac8ff1a3e10b25c212cd3cf5ed997fc0e',1,'cutlass::gemm::GlobalLoadStream::params()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#ab8c79cb1a8157dd00429c93cb4a41322',1,'cutlass::gemm::GemmGlobalIteratorAb::params()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#ac368b1ea1c5ad2209a6ac6bec597600f',1,'cutlass::gemm::GemmGlobalIteratorCd::params()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#a7bbf90dc0938698a0fa22468f9df315d',1,'cutlass::gemm::LinearScaling::params()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#a9c9d8378c735597f39927c6ab32519ef',1,'cutlass::reduction::BatchedReduction::params()'],['../structcutlass_1_1TileLoadIterator.html#a5561e676148200c2fc85a603847cc596',1,'cutlass::TileLoadIterator::params()'],['../structcutlass_1_1TileStoreIterator.html#a64e0c9fb1f7d8fcc77bf0a915445ee6d',1,'cutlass::TileStoreIterator::params()'],['../structcutlass_1_1gemm_1_1DeviceGemm.html#a0e0fd3f326b73197886c8428b95cfcfc',1,'cutlass::gemm::DeviceGemm::Params()'],['../structcutlass_1_1gemm_1_1Gemm.html#a054d5e87f1985ae7e53fc07f4c16d916',1,'cutlass::gemm::Gemm::Params()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#ae5209fa80705442693833c63d535161e',1,'cutlass::gemm::GemmEpilogue::Params()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#a213c6812458c008435ed3ea710fe2454',1,'cutlass::reduction::BatchedReduction::Params()'],['../structcutlass_1_1PredicatedTileLoadStream.html#a3af1a02201f53d4d09adc483fdcc23a6',1,'cutlass::PredicatedTileLoadStream::Params()'],['../structcutlass_1_1PredicatedTileStoreStream.html#ad0c7a51f1b98111ce332ed906601a4ba',1,'cutlass::PredicatedTileStoreStream::Params()'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a9cf3f82207f65e6178d4c3764577b657',1,'cutlass::gemm::SplitkPIGemmTraits::Params::Params()'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#ae6143cae5ebb1ee8804a55b34f3912b1',1,'cutlass::gemm::SplitkPIGemmTraits::Params::Params(Index m_, Index n_, Index k_)'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html#afb39229d0ad334834cd2ba0c1fcc9412',1,'cutlass::gemm::GlobalLoadStreamPair::Params::Params()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html#ab26c1aaa2b7709c32bab39801d6c7772',1,'cutlass::gemm::GlobalLoadStreamPair::Params::Params(typename StreamA::Params const &_params_A, typename StreamB::Params const &_params_B)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#ae515cd98a75ff3eafffcc69692d6301a',1,'cutlass::gemm::LinearScaling::Params::Params()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ae28323819fc8950bc0fee3a34b2184ff',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a26b04702140a550f3ab598132a74cd93',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params(Scalar alpha, Scalar beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a38aa3e6beb09c7c4bea952094a2ea682',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params(Scalar const *alpha_ptr, Scalar const *beta_ptr)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#acc0341b88143aac4ffd9bc1dcfaafa71',1,'cutlass::TileIteratorBase::Params::Params()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a9c480593877698c327a85272d771475c',1,'cutlass::TileIteratorBase::Params::Params(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#ac030ea4568fa2cb6d6661df75062cd1a',1,'cutlass::TileIteratorBase::Params::Params(Coord< 4 > const &stride)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a9a1098e6c7b8c7c377031fe59a18fbf5',1,'cutlass::TileLoadIterator::Params::Params()'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a88a90437f11d029ef109ebb4f828f282',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a2de32338814d0554b05ca985dbb7e192',1,'cutlass::TileLoadIterator::Params::Params(TensorRef const &ref)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a394c5cb5d588945cc430239c7f8061f5',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#aab6d7a1ab2d163cb15ee4bdbf26e821b',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a79304c022d2466c97cd671a98128815a',1,'cutlass::TileStoreIterator::Params::Params()'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#ae1cb260e7b05034ec9b7fa61c92bbc80',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#afae37ebc78884290300f38fce7c021b1',1,'cutlass::TileStoreIterator::Params::Params(TensorRef const &ref)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#aa131e0ef02ce37038c1a17bea7088ef6',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr, long long stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a6690b2eb981cae4b9a7c333054d53e81',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadStream_1_1Params.html#a90772ac34f8c49f049eb62fada0a2165',1,'cutlass::TileLoadStream::Params::Params()'],['../structcutlass_1_1TileLoadStream_1_1Params.html#a50f136516b139f011939015c8c417ddd',1,'cutlass::TileLoadStream::Params::Params(typename Iterator::Params const &_iterator)'],['../structcutlass_1_1TileStoreStream_1_1Params.html#adfa2399bf13cdff16b7bfe1cb0dd2bd9',1,'cutlass::TileStoreStream::Params::Params()'],['../structcutlass_1_1TileStoreStream_1_1Params.html#acc400568f7694f818b5afbb109bd2e63',1,'cutlass::TileStoreStream::Params::Params(typename Iterator::Params const &_iterator)'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a4ed93b5319fe96457caf53e9384722d4',1,'cutlass::ZipTileIterator::Params::Params()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#ad38f6a2cc5800c0ec82b12d183040390',1,'cutlass::ZipTileIterator::Params::Params(typename First::Params const &_first, typename Second::Params const &_second)']]], + ['partitionk_5frange',['partitionK_range',['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a44b9a0d6210561d3b0d538b2c0a38886',1,'cutlass::gemm::GemmTraits::Params']]], + ['performance_5ftuning_2eh',['performance_tuning.h',['../performance__tuning_8h.html',1,'']]], ['platform_2eh',['platform.h',['../platform_8h.html',1,'']]], ['plus',['plus',['../structcutlass_1_1platform_1_1plus.html',1,'cutlass::platform']]], ['pointer',['pointer',['../classcutlass_1_1platform_1_1unique__ptr.html#ab6ce60d03d11b269c1e151dfa7c696f9',1,'cutlass::platform::unique_ptr::pointer()'],['../structcutlass_1_1FragmentIterator.html#af667793926cdb24d701eb75e0345bbd6',1,'cutlass::FragmentIterator::pointer()'],['../structcutlass_1_1FragmentConstIterator.html#aee37f8ea06127b94a304bb776945509b',1,'cutlass::FragmentConstIterator::pointer()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#ad764f98e770d4685006e6888214dcd4d',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::pointer()'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a388d464c35cc1bcd509d22937f38dcf6',1,'cutlass::TileLoadIterator::Params::pointer()'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a9e50043acd3b851cce169310a04c6827',1,'cutlass::TileStoreIterator::Params::pointer()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac4452df991f57f9bb0b86dfd380179b2',1,'cutlass::gemm::GlobalLoadStream::Pointer()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a3ff6f630b6b317ace1cf6e13fdf3a0cd',1,'cutlass::gemm::GemmGlobalTileTraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a3abcfa68ae9904a13195d32d6e6c4bc6',1,'cutlass::gemm::GemmGlobalIteratorCd::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a5be0c995c57faafaad7ae55ae015fc00',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#ab883c2a8b90262152faca9cabe515dc4',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#adc4946dfbe914140c6852d0c05b30864',1,'cutlass::gemm::GemmSharedLoadTileATraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#afafb3d9ae470c8ef56ec4ca5e66e2182',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a20471c2f569c28538dad8a220ab25624',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a1e72b69cf2147e4d194893a64417b920',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Pointer()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a84a73da2a07210fcfad10853b941c85e',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Pointer()'],['../structcutlass_1_1TileLoadIterator.html#a39acc5c35c8db019a3aeef79e8005b7f',1,'cutlass::TileLoadIterator::Pointer()'],['../structcutlass_1_1TileStoreIterator.html#adc4182adb78e34b7741f297eca86fe35',1,'cutlass::TileStoreIterator::Pointer()']]], @@ -19,13 +23,14 @@ var searchData= ['predicatefunctor',['PredicateFunctor',['../structcutlass_1_1PredicatedTileLoadStream.html#aedafb6329f8c484071e04ffd8949edc5',1,'cutlass::PredicatedTileLoadStream::PredicateFunctor()'],['../structcutlass_1_1PredicatedTileStoreStream.html#aa6d4c263e057678b9f1b8ba6a9feb59f',1,'cutlass::PredicatedTileStoreStream::PredicateFunctor()']]], ['predicates',['predicates',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#af323c9db74f0de3376edd35eb377bc9c',1,'cutlass::gemm::GemmGlobalIteratorAb::predicates()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#ad23e6224e37ec1d13dc237ce8ec6e977',1,'cutlass::gemm::GemmGlobalIteratorCd::predicates()'],['../structcutlass_1_1PredicatedTileLoadStream.html#a8f8c7c54dba8a0c8cd0799b89130564f',1,'cutlass::PredicatedTileLoadStream::predicates()'],['../structcutlass_1_1PredicatedTileStoreStream.html#a2ecdfa152dcf7b3acaf8767f3e69cfbe',1,'cutlass::PredicatedTileStoreStream::predicates()']]], ['predicatetileadapter',['PredicateTileAdapter',['../structcutlass_1_1PredicateTileAdapter.html',1,'cutlass::PredicateTileAdapter< PredicateVector_, Iterations_ >'],['../structcutlass_1_1PredicateTileAdapter.html#a4c9eb6c6498ccf117427a3b35f7ce5ea',1,'cutlass::PredicateTileAdapter::PredicateTileAdapter()']]], - ['predicatevector',['PredicateVector',['../structcutlass_1_1TileLoadStream_1_1PredicateVector.html',1,'cutlass::TileLoadStream< Iterator_, Transformer_ >::PredicateVector'],['../structcutlass_1_1PredicateVector.html',1,'cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >'],['../structcutlass_1_1TileStoreStream_1_1PredicateVector.html',1,'cutlass::TileStoreStream< Iterator_, Transformer_ >::PredicateVector'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a3dd74f6e12339a87c0eb8f75fbdc7b9c',1,'cutlass::gemm::GemmGlobalIteratorAb::PredicateVector()'],['../structcutlass_1_1PredicateTileAdapter.html#a72669300eb0bd18ea8124f780862a0e4',1,'cutlass::PredicateTileAdapter::PredicateVector()'],['../structcutlass_1_1ConstPredicateTileAdapter.html#ab9143288811a1262f7007f1b76b32e8f',1,'cutlass::ConstPredicateTileAdapter::PredicateVector()'],['../structcutlass_1_1TileIteratorBase.html#a05065dadf7b8a20284c566c82cda8000',1,'cutlass::TileIteratorBase::PredicateVector()'],['../structcutlass_1_1TileLoadIterator.html#ad71f865c61f02eba981c056ef71653f5',1,'cutlass::TileLoadIterator::PredicateVector()'],['../structcutlass_1_1TileStoreIterator.html#a6157fe8a2ffefd45eba6f3953f0e2994',1,'cutlass::TileStoreIterator::PredicateVector()'],['../classcutlass_1_1ZipTileIterator.html#aa853fa2a2e73397d8950567f3f5b7a15',1,'cutlass::ZipTileIterator::PredicateVector()'],['../structcutlass_1_1PredicateVector.html#aec1201df19c0ed0516810a3f19353c21',1,'cutlass::PredicateVector::PredicateVector()']]], + ['predicatevector',['PredicateVector',['../structcutlass_1_1PredicateVector.html',1,'cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >'],['../structcutlass_1_1TileStoreStream_1_1PredicateVector.html',1,'cutlass::TileStoreStream< Iterator_, Transformer_ >::PredicateVector'],['../structcutlass_1_1TileLoadStream_1_1PredicateVector.html',1,'cutlass::TileLoadStream< Iterator_, Transformer_ >::PredicateVector'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a3dd74f6e12339a87c0eb8f75fbdc7b9c',1,'cutlass::gemm::GemmGlobalIteratorAb::PredicateVector()'],['../structcutlass_1_1PredicateTileAdapter.html#a72669300eb0bd18ea8124f780862a0e4',1,'cutlass::PredicateTileAdapter::PredicateVector()'],['../structcutlass_1_1ConstPredicateTileAdapter.html#ab9143288811a1262f7007f1b76b32e8f',1,'cutlass::ConstPredicateTileAdapter::PredicateVector()'],['../structcutlass_1_1TileIteratorBase.html#a05065dadf7b8a20284c566c82cda8000',1,'cutlass::TileIteratorBase::PredicateVector()'],['../structcutlass_1_1TileLoadIterator.html#ad71f865c61f02eba981c056ef71653f5',1,'cutlass::TileLoadIterator::PredicateVector()'],['../structcutlass_1_1TileStoreIterator.html#a6157fe8a2ffefd45eba6f3953f0e2994',1,'cutlass::TileStoreIterator::PredicateVector()'],['../classcutlass_1_1ZipTileIterator.html#aa853fa2a2e73397d8950567f3f5b7a15',1,'cutlass::ZipTileIterator::PredicateVector()'],['../structcutlass_1_1PredicateVector.html#aec1201df19c0ed0516810a3f19353c21',1,'cutlass::PredicateVector::PredicateVector()']]], ['predicatevector_3c_20base_3a_3aiterations_3a_3akw_20_3e',['PredicateVector< Base::Iterations::kW >',['../structcutlass_1_1PredicateVector.html',1,'cutlass']]], ['predicatevector_3c_20shapecount_3c_20typename_20base_3a_3aiterations_20_3e_3a_3akcount_20_3e',['PredicateVector< ShapeCount< typename Base::Iterations >::kCount >',['../structcutlass_1_1PredicateVector.html',1,'cutlass']]], - ['problem_5fsize',['problem_size',['../structcutlass_1_1gemm_1_1GemmDesc.html#a52a5538b1b5208090417cf98d8735e3f',1,'cutlass::gemm::GemmDesc::problem_size()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a6bea57249e3645a4b08a11619cb1687e',1,'cutlass::gemm::GemmEpilogue::problem_size()'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#af2233a6ebf39788e27f051f8c614ab90',1,'cutlass::gemm::GemmTraits::Params::problem_size()']]], + ['problem_5fsize',['problem_size',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a542a371bf39a9e58889d78e782af3aae',1,'cutlass::gemm::SplitkPIGemmTraits::Params::problem_size()'],['../structcutlass_1_1gemm_1_1GemmDesc.html#a52a5538b1b5208090417cf98d8735e3f',1,'cutlass::gemm::GemmDesc::problem_size()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a6bea57249e3645a4b08a11619cb1687e',1,'cutlass::gemm::GemmEpilogue::problem_size()'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#af2233a6ebf39788e27f051f8c614ab90',1,'cutlass::gemm::GemmTraits::Params::problem_size()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#adbd0cf20c4f7033016d1b8fdaca6aeae',1,'cutlass::reduction::BatchedReductionTraits::Params::problem_size()']]], + ['problem_5fsize_5finitialized',['problem_size_initialized',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a966f73ad90754f53eed5faf68fc77d87',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]], ['proj',['proj',['../namespacecutlass_1_1platform.html#a4e57cfad9bf0b78e338d536ff1bdda39',1,'cutlass::platform']]], ['project',['project',['../structcutlass_1_1gemm_1_1ProjectOperand_3_01GemmOperand_1_1kA_00_01Kstrided_01_4.html#ae91b2350374f1734a30cbed45e14b8e3',1,'cutlass::gemm::ProjectOperand< GemmOperand::kA, Kstrided >::project()'],['../structcutlass_1_1gemm_1_1ProjectOperand_3_01GemmOperand_1_1kB_00_01Kstrided_01_4.html#a0f1579013f56fe16ebc147271f163c3c',1,'cutlass::gemm::ProjectOperand< GemmOperand::kB, Kstrided >::project()'],['../structcutlass_1_1gemm_1_1ProjectOperand_3_01GemmOperand_1_1kC_00_01true_01_4.html#af2a323461334a6b55b95074a1973d250',1,'cutlass::gemm::ProjectOperand< GemmOperand::kC, true >::project()'],['../structcutlass_1_1gemm_1_1ProjectOperand_3_01GemmOperand_1_1kD_00_01true_01_4.html#ace04040ccb13af5f9a283ca80ffe93d1',1,'cutlass::gemm::ProjectOperand< GemmOperand::kD, true >::project()']]], - ['project_5fcoordinate',['project_coordinate',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#aa634e3f786d5bf5707b94e522a10a001',1,'cutlass::gemm::GlobalLoadStream']]], + ['project_5fcoordinate',['project_coordinate',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a16542631e4a4562cc72aa50f146a9724',1,'cutlass::gemm::GlobalLoadStream']]], ['projectoperand',['ProjectOperand',['../structcutlass_1_1gemm_1_1ProjectOperand.html',1,'cutlass::gemm']]], ['projectoperand_3c_20gemmoperand_3a_3aka_2c_20kstrided_20_3e',['ProjectOperand< GemmOperand::kA, Kstrided >',['../structcutlass_1_1gemm_1_1ProjectOperand_3_01GemmOperand_1_1kA_00_01Kstrided_01_4.html',1,'cutlass::gemm']]], ['projectoperand_3c_20gemmoperand_3a_3akb_2c_20kstrided_20_3e',['ProjectOperand< GemmOperand::kB, Kstrided >',['../structcutlass_1_1gemm_1_1ProjectOperand_3_01GemmOperand_1_1kB_00_01Kstrided_01_4.html',1,'cutlass::gemm']]], diff --git a/docs/search/classes_1.js b/docs/search/classes_1.js index 0894d9a5..fdad3bd1 100644 --- a/docs/search/classes_1.js +++ b/docs/search/classes_1.js @@ -1,5 +1,7 @@ var searchData= [ + ['batchedreduction',['BatchedReduction',['../structcutlass_1_1reduction_1_1BatchedReduction.html',1,'cutlass::reduction']]], + ['batchedreductiontraits',['BatchedReductionTraits',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html',1,'cutlass::reduction']]], ['bin1_5ft',['bin1_t',['../structcutlass_1_1bin1__t.html',1,'cutlass']]], ['bool_5fconstant',['bool_constant',['../structcutlass_1_1platform_1_1bool__constant.html',1,'cutlass::platform']]] ]; diff --git a/docs/search/classes_10.js b/docs/search/classes_10.js index e7ee728a..eb6d8586 100644 --- a/docs/search/classes_10.js +++ b/docs/search/classes_10.js @@ -13,7 +13,7 @@ var searchData= ['threadmultiplyadd_3c_20threadgemmshape_5f_2c_20threadsperwarp_5f_2c_20half_2c_20half_2c_20float_20_3e',['ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html',1,'cutlass::gemm']]], ['threadmultiplyadd_3c_20threadgemmshape_5f_2c_20threadsperwarp_5f_2c_20half_2c_20half_2c_20half_20_3e',['ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html',1,'cutlass::gemm']]], ['threadmultiplyadd_3c_20threadgemmshape_5f_2c_20threadsperwarp_5f_2c_20int8_5ft_2c_20int8_5ft_2c_20int_20_3e',['ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html',1,'cutlass::gemm']]], - ['threadoffset',['ThreadOffset',['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits_1_1ThreadOffset.html',1,'cutlass::gemm::WmmaGemmGlobalIteratorCdTraits< Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmGlobalTileCdTraits< Scalar_, Tile_, Threads_, kStrideH_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileATraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::IgemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileBTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset.html',1,'cutlass::TileTraitsWarpRake< Tile_, Threads >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset']]], + ['threadoffset',['ThreadOffset',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileBTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmGlobalTileCdTraits< Scalar_, Tile_, Threads_, kStrideH_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits_1_1ThreadOffset.html',1,'cutlass::gemm::WmmaGemmGlobalIteratorCdTraits< Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreTileDTraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedLoadTileATraits< Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ >::ThreadOffset'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits_1_1ThreadOffset.html',1,'cutlass::gemm::GemmSharedStoreTileAbTraits< Scalar_, Tile_, Threads_, kScalarsPerSts_ >::ThreadOffset'],['../structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset.html',1,'cutlass::TileTraitsWarpRake< Tile_, Threads >::ThreadOffset'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits_1_1ThreadOffset.html',1,'cutlass::gemm::IgemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadOffset']]], ['tileallocation',['TileAllocation',['../structcutlass_1_1TileAllocation.html',1,'cutlass']]], ['tilecoord',['TileCoord',['../structcutlass_1_1TileCoord.html',1,'cutlass']]], ['tiledthreadoffset',['TiledThreadOffset',['../structcutlass_1_1TiledThreadOffset.html',1,'cutlass']]], diff --git a/docs/search/classes_13.js b/docs/search/classes_13.js index dadc9781..cc0589ad 100644 --- a/docs/search/classes_13.js +++ b/docs/search/classes_13.js @@ -1,5 +1,7 @@ var searchData= [ ['wmmagemmglobaliteratorcd',['WmmaGemmGlobalIteratorCd',['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html',1,'cutlass::gemm']]], - ['wmmagemmglobaliteratorcdtraits',['WmmaGemmGlobalIteratorCdTraits',['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits.html',1,'cutlass::gemm']]] + ['wmmagemmglobaliteratorcdtraits',['WmmaGemmGlobalIteratorCdTraits',['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits.html',1,'cutlass::gemm']]], + ['wmmareshapetile',['WmmaReshapeTile',['../structcutlass_1_1WmmaReshapeTile.html',1,'cutlass']]], + ['wmmareshapetile_3c_20tile_5f_2c_20kaccesssize_5f_2c_20kldsperaccess_5f_2c_20true_20_3e',['WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true >',['../structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4.html',1,'cutlass']]] ]; diff --git a/docs/search/classes_3.js b/docs/search/classes_3.js index 9586b5df..210e7ff5 100644 --- a/docs/search/classes_3.js +++ b/docs/search/classes_3.js @@ -4,6 +4,8 @@ var searchData= ['debugvalue',['DebugValue',['../structDebugValue.html',1,'']]], ['default_5fdelete',['default_delete',['../structcutlass_1_1platform_1_1default__delete.html',1,'cutlass::platform']]], ['default_5fdelete_3c_20t_5b_5d_3e',['default_delete< T[]>',['../structcutlass_1_1platform_1_1default__delete_3_01T[]_4.html',1,'cutlass::platform']]], + ['defaultblockswizzle',['DefaultBlockSwizzle',['../structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html',1,'cutlass::reduction']]], + ['devicegemm',['DeviceGemm',['../structcutlass_1_1gemm_1_1DeviceGemm.html',1,'cutlass::gemm']]], ['dgemmconfig',['DgemmConfig',['../structcutlass_1_1gemm_1_1DgemmConfig.html',1,'cutlass::gemm']]], ['dgemmtraits',['DgemmTraits',['../structcutlass_1_1gemm_1_1DgemmTraits.html',1,'cutlass::gemm']]], ['divide_5fassert',['divide_assert',['../structcutlass_1_1divide__assert.html',1,'cutlass']]], diff --git a/docs/search/classes_b.js b/docs/search/classes_b.js index 1077a109..f91da3da 100644 --- a/docs/search/classes_b.js +++ b/docs/search/classes_b.js @@ -2,7 +2,6 @@ var searchData= [ ['mainloopsharedstorage',['MainLoopSharedStorage',['../structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html',1,'cutlass::gemm::GemmTraits']]], ['matrixcoord',['MatrixCoord',['../structcutlass_1_1MatrixCoord.html',1,'cutlass']]], - ['matrixlayout',['MatrixLayout',['../structcutlass_1_1MatrixLayout.html',1,'cutlass']]], ['matrixtransform',['MatrixTransform',['../structcutlass_1_1MatrixTransform.html',1,'cutlass']]], ['max',['Max',['../structcutlass_1_1Max.html',1,'cutlass']]], ['memoryspace',['MemorySpace',['../structcutlass_1_1MemorySpace.html',1,'cutlass']]], diff --git a/docs/search/classes_d.js b/docs/search/classes_d.js index 3b3d2af5..3bf27233 100644 --- a/docs/search/classes_d.js +++ b/docs/search/classes_d.js @@ -1,12 +1,13 @@ var searchData= [ ['pad',['pad',['../structcutlass_1_1platform_1_1alignment__of_1_1pad.html',1,'cutlass::platform::alignment_of']]], - ['params',['Params',['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html',1,'cutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ >::Params'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html',1,'cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params'],['../structcutlass_1_1gemm_1_1SharedStreamPair_1_1Params.html',1,'cutlass::gemm::SharedStreamPair< StreamA_, StreamB_ >::Params'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_1_1Params.html',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ >::Params'],['../structcutlass_1_1ZipTileIterator_1_1Params.html',1,'cutlass::ZipTileIterator< First_, Second_ >::Params'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html',1,'cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html',1,'cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::Params'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html',1,'cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::Params'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html',1,'cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::Params'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html',1,'cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html',1,'cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params'],['../structcutlass_1_1TileIteratorBase_1_1Params.html',1,'cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileLoadIterator_1_1Params.html',1,'cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileStoreIterator_1_1Params.html',1,'cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileLoadStream_1_1Params.html',1,'cutlass::TileLoadStream< Iterator_, Transformer_ >::Params'],['../structcutlass_1_1TileStoreStream_1_1Params.html',1,'cutlass::TileStoreStream< Iterator_, Transformer_ >::Params'],['../structcutlass_1_1gemm_1_1SharedLoadStream_1_1Params.html',1,'cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >::Params']]], + ['pair',['Pair',['../structcutlass_1_1platform_1_1Pair.html',1,'cutlass::platform']]], + ['params',['Params',['../structcutlass_1_1gemm_1_1SharedLoadStream_1_1Params.html',1,'cutlass::gemm::SharedLoadStream< Iterator_, Transformer_ >::Params'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html',1,'cutlass::gemm::LinearScalingDevicePtr< Scalar_, FragmentMultiplyAdd_ >::Params'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_1_1Params.html',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ >::Params'],['../structcutlass_1_1gemm_1_1SharedStreamPair_1_1Params.html',1,'cutlass::gemm::SharedStreamPair< StreamA_, StreamB_ >::Params'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html',1,'cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::Params'],['../structcutlass_1_1ZipTileIterator_1_1Params.html',1,'cutlass::ZipTileIterator< First_, Second_ >::Params'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html',1,'cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::Params'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html',1,'cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html',1,'cutlass::gemm::LinearScaling< Scalar_, FragmentMultiplyAdd_ >::Params'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html',1,'cutlass::gemm::SplitkPIGemmTraits< GemmTraits_, ReductionTraits_ >::Params'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html',1,'cutlass::reduction::BatchedReductionTraits< ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ >::Params'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html',1,'cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::Params'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html',1,'cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html',1,'cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params'],['../structcutlass_1_1TileIteratorBase_1_1Params.html',1,'cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileLoadIterator_1_1Params.html',1,'cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileStoreIterator_1_1Params.html',1,'cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params'],['../structcutlass_1_1TileLoadStream_1_1Params.html',1,'cutlass::TileLoadStream< Iterator_, Transformer_ >::Params'],['../structcutlass_1_1TileStoreStream_1_1Params.html',1,'cutlass::TileStoreStream< Iterator_, Transformer_ >::Params']]], ['plus',['plus',['../structcutlass_1_1platform_1_1plus.html',1,'cutlass::platform']]], ['predicatedtileloadstream',['PredicatedTileLoadStream',['../structcutlass_1_1PredicatedTileLoadStream.html',1,'cutlass']]], ['predicatedtilestorestream',['PredicatedTileStoreStream',['../structcutlass_1_1PredicatedTileStoreStream.html',1,'cutlass']]], ['predicatetileadapter',['PredicateTileAdapter',['../structcutlass_1_1PredicateTileAdapter.html',1,'cutlass']]], - ['predicatevector',['PredicateVector',['../structcutlass_1_1TileLoadStream_1_1PredicateVector.html',1,'cutlass::TileLoadStream< Iterator_, Transformer_ >::PredicateVector'],['../structcutlass_1_1PredicateVector.html',1,'cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >'],['../structcutlass_1_1TileStoreStream_1_1PredicateVector.html',1,'cutlass::TileStoreStream< Iterator_, Transformer_ >::PredicateVector']]], + ['predicatevector',['PredicateVector',['../structcutlass_1_1PredicateVector.html',1,'cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >'],['../structcutlass_1_1TileStoreStream_1_1PredicateVector.html',1,'cutlass::TileStoreStream< Iterator_, Transformer_ >::PredicateVector'],['../structcutlass_1_1TileLoadStream_1_1PredicateVector.html',1,'cutlass::TileLoadStream< Iterator_, Transformer_ >::PredicateVector']]], ['predicatevector_3c_20base_3a_3aiterations_3a_3akw_20_3e',['PredicateVector< Base::Iterations::kW >',['../structcutlass_1_1PredicateVector.html',1,'cutlass']]], ['predicatevector_3c_20shapecount_3c_20typename_20base_3a_3aiterations_20_3e_3a_3akcount_20_3e',['PredicateVector< ShapeCount< typename Base::Iterations >::kCount >',['../structcutlass_1_1PredicateVector.html',1,'cutlass']]], ['projectoperand',['ProjectOperand',['../structcutlass_1_1gemm_1_1ProjectOperand.html',1,'cutlass::gemm']]], diff --git a/docs/search/classes_f.js b/docs/search/classes_f.js index d7c546da..d847c879 100644 --- a/docs/search/classes_f.js +++ b/docs/search/classes_f.js @@ -18,12 +18,13 @@ var searchData= ['shapestrides',['ShapeStrides',['../structcutlass_1_1ShapeStrides.html',1,'cutlass']]], ['shapesub',['ShapeSub',['../structcutlass_1_1ShapeSub.html',1,'cutlass']]], ['sharedloadstream',['SharedLoadStream',['../structcutlass_1_1gemm_1_1SharedLoadStream.html',1,'cutlass::gemm']]], - ['sharedstorage',['SharedStorage',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage.html',1,'cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1SharedStorage.html',1,'cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::SharedStorage'],['../unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html',1,'cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1SharedStorage.html',1,'cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1ClearAccumulators_1_1SharedStorage.html',1,'cutlass::gemm::ClearAccumulators< Scalar_, kLanes_ >::SharedStorage']]], + ['sharedstorage',['SharedStorage',['../structcutlass_1_1gemm_1_1ClearAccumulators_1_1SharedStorage.html',1,'cutlass::gemm::ClearAccumulators< Scalar_, kLanes_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1SharedStorage.html',1,'cutlass::gemm::GlobalLoadStream< Operand, LoadIterator_, StoreIterator_, Transformer_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage.html',1,'cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::SharedStorage'],['../unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html',1,'cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::SharedStorage'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1SharedStorage.html',1,'cutlass::gemm::GlobalLoadStreamPair< StreamA_, StreamB_, kResidueInProlog_ >::SharedStorage']]], ['sharedstreampair',['SharedStreamPair',['../structcutlass_1_1gemm_1_1SharedStreamPair.html',1,'cutlass::gemm']]], ['simplifiedgemmepiloguetraits',['SimplifiedGemmEpilogueTraits',['../structcutlass_1_1gemm_1_1SimplifiedGemmEpilogueTraits.html',1,'cutlass::gemm']]], ['simplifiedgemmtraits',['SimplifiedGemmTraits',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraits.html',1,'cutlass::gemm']]], ['simplifiedgemmtraits_3c_20klayouta_5f_2c_20klayoutb_5f_2c_20gemmconfig_5f_2c_20gemmepilogue_3c_20gemmepiloguetraits_5f_20_3e_2c_20index_5f_20_3e',['SimplifiedGemmTraits< kLayoutA_, kLayoutB_, GemmConfig_, GemmEpilogue< GemmEpilogueTraits_ >, Index_ >',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraits.html',1,'cutlass::gemm']]], ['simplifiedgemmtraitshelper',['SimplifiedGemmTraitsHelper',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html',1,'cutlass::gemm']]], + ['splitkpigemmtraits',['SplitkPIGemmTraits',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html',1,'cutlass::gemm']]], ['sqrt_5fest',['sqrt_est',['../structcutlass_1_1sqrt__est.html',1,'cutlass']]], ['storagetype',['StorageType',['../structcutlass_1_1StorageType.html',1,'cutlass']]], ['storagetype_3c_201_20_3e',['StorageType< 1 >',['../structcutlass_1_1StorageType_3_011_01_4.html',1,'cutlass']]], diff --git a/docs/search/defines_1.js b/docs/search/defines_1.js index 45043b32..66db3bb1 100644 --- a/docs/search/defines_1.js +++ b/docs/search/defines_1.js @@ -7,12 +7,13 @@ var searchData= ['cuda_5fperror_5fdebug',['CUDA_PERROR_DEBUG',['../debug_8h.html#a36436f5408940a47ac5cdfc9b31648db',1,'debug.h']]], ['cuda_5fperror_5fexit',['CUDA_PERROR_EXIT',['../debug_8h.html#a002632ff687c83cff0484476be401f05',1,'debug.h']]], ['cutlass_5fassert',['CUTLASS_ASSERT',['../cutlass_8h.html#a0159b8e4cd578881a1ccfd0921516af7',1,'cutlass.h']]], - ['cutlass_5fgemm_5floop',['CUTLASS_GEMM_LOOP',['../cutlass_8h.html#a8e18ced39c05ab3304bb4fcdc0cc9f71',1,'cutlass.h']]], + ['cutlass_5fgemm_5floop',['CUTLASS_GEMM_LOOP',['../performance__tuning_8h.html#a8e18ced39c05ab3304bb4fcdc0cc9f71',1,'performance_tuning.h']]], ['cutlass_5fhost_5fdevice',['CUTLASS_HOST_DEVICE',['../cutlass_8h.html#a28c2443a142676d3d71effdae1a986b1',1,'cutlass.h']]], ['cutlass_5fmajor',['CUTLASS_MAJOR',['../cutlass_8h.html#a8ff3cda9323810c1c504793a0206d4b8',1,'cutlass.h']]], ['cutlass_5fminor',['CUTLASS_MINOR',['../cutlass_8h.html#ad114a1ab01f73833ea00020ffb7bcea7',1,'cutlass.h']]], ['cutlass_5fpatch',['CUTLASS_PATCH',['../cutlass_8h.html#a1d4e5818a594bbfc472e54978955cb8b',1,'cutlass.h']]], - ['cutlass_5fpragma_5fno_5funroll',['CUTLASS_PRAGMA_NO_UNROLL',['../cutlass_8h.html#adb3bc73d74b4a4bf13099d5696db3352',1,'cutlass.h']]], - ['cutlass_5fpragma_5funroll',['CUTLASS_PRAGMA_UNROLL',['../cutlass_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4',1,'cutlass.h']]], + ['cutlass_5fperformance_5ftuning_5fh',['CUTLASS_PERFORMANCE_TUNING_H',['../performance__tuning_8h.html#a33cfc98751cc4e8d641a8f1706eb8f68',1,'performance_tuning.h']]], + ['cutlass_5fpragma_5fno_5funroll',['CUTLASS_PRAGMA_NO_UNROLL',['../performance__tuning_8h.html#adb3bc73d74b4a4bf13099d5696db3352',1,'performance_tuning.h']]], + ['cutlass_5fpragma_5funroll',['CUTLASS_PRAGMA_UNROLL',['../performance__tuning_8h.html#a4b1c9f25ab6eaa25e1f2258dd63e6ce4',1,'performance_tuning.h']]], ['cutlass_5fversion',['CUTLASS_VERSION',['../cutlass_8h.html#aa3040eddf073214969f9445bfa925039',1,'cutlass.h']]] ]; diff --git a/docs/search/enums_0.js b/docs/search/enums_0.js index a0c2b03e..299751b7 100644 --- a/docs/search/enums_0.js +++ b/docs/search/enums_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['kind',['Kind',['../structcutlass_1_1Identity.html#a37966282c824c6d0e32b432275ea8375',1,'cutlass::Identity::Kind()'],['../structcutlass_1_1gemm_1_1swizzleDirection.html#aba1528de966f236380c5f55942802fb8',1,'cutlass::gemm::swizzleDirection::Kind()'],['../structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03c',1,'cutlass::MemorySpace::Kind()'],['../structcutlass_1_1FragmentElementType.html#a62883b0695dc3a7ff82916ff9d75df0b',1,'cutlass::FragmentElementType::Kind()'],['../structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b',1,'cutlass::MatrixLayout::Kind()'],['../structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0c',1,'cutlass::GemmOperand::Kind()'],['../structcutlass_1_1MatrixTransform.html#abf79785f7ae47385d0bbc38d0c431f48',1,'cutlass::MatrixTransform::Kind()'],['../structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda',1,'cutlass::IteratorAdvance::Kind()']]] + ['kind',['Kind',['../structcutlass_1_1Identity.html#a37966282c824c6d0e32b432275ea8375',1,'cutlass::Identity::Kind()'],['../structcutlass_1_1gemm_1_1swizzleDirection.html#aba1528de966f236380c5f55942802fb8',1,'cutlass::gemm::swizzleDirection::Kind()'],['../structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03c',1,'cutlass::MemorySpace::Kind()'],['../structcutlass_1_1FragmentElementType.html#a62883b0695dc3a7ff82916ff9d75df0b',1,'cutlass::FragmentElementType::Kind()'],['../structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0c',1,'cutlass::GemmOperand::Kind()'],['../structcutlass_1_1MatrixTransform.html#abf79785f7ae47385d0bbc38d0c431f48',1,'cutlass::MatrixTransform::Kind()'],['../structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738dda',1,'cutlass::IteratorAdvance::Kind()'],['../namespacecutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2b',1,'cutlass::MatrixLayout::Kind()']]] ]; diff --git a/docs/search/enumvalues_2.js b/docs/search/enumvalues_2.js index 0528e4bc..12c6450e 100644 --- a/docs/search/enumvalues_2.js +++ b/docs/search/enumvalues_2.js @@ -3,7 +3,7 @@ var searchData= ['ka',['kA',['../structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0cac2b9fe9e3679a059d1a6c946b2a2c31a',1,'cutlass::GemmOperand']]], ['kb',['kB',['../structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0caad0876342d150cef7da6ae149d5e99f9',1,'cutlass::GemmOperand']]], ['kc',['kC',['../structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0ca7598e104da2001a76ec344f1c1b9c6dc',1,'cutlass::GemmOperand']]], - ['kcolumnmajor',['kColumnMajor',['../structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2bac15988acba79c11072d38b295f163a2b',1,'cutlass::MatrixLayout']]], + ['kcolumnmajor',['kColumnMajor',['../namespacecutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2bac15988acba79c11072d38b295f163a2b',1,'cutlass::MatrixLayout']]], ['kconjugate',['kConjugate',['../structcutlass_1_1MatrixTransform.html#abf79785f7ae47385d0bbc38d0c431f48aead07a43bea51d6b4d728cda844cd683',1,'cutlass::MatrixTransform']]], ['kd',['kD',['../structcutlass_1_1GemmOperand.html#ab209ea3de198efabe8e8707dfe8e0a0ca49eef82461e44c96462f9c4dbaab71fe',1,'cutlass::GemmOperand::kD()'],['../structcutlass_1_1IteratorAdvance.html#a9ad9c2302ddffa148d47cdcf6c738ddaa56ecb02f4ed3bd7ae4a9c971805ee8c5',1,'cutlass::IteratorAdvance::kD()']]], ['kgeneric',['kGeneric',['../structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03ca21a44c0b78017acea0d1ffe223e5ca38',1,'cutlass::MemorySpace']]], @@ -12,7 +12,7 @@ var searchData= ['klanes',['kLanes',['../unioncutlass_1_1Vector.html#a824f9ab976c8e7f035236af03e5ae839a605c5e987bc7b08d743f29a6524abb27',1,'cutlass::Vector::kLanes()'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a27410a8095bb82f682612954df4d6182a3a12b2fbef9007373a03125ec3c1c393',1,'cutlass::Vector< half, 1 >::kLanes()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#acfa6821aefbd38a1b7c44e5d83eda05fad242b575673ca1bf9cf311e58a966392',1,'cutlass::Vector< half, kLanes_ >::kLanes()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a4020f25408022dbf20c26ed4fa8c7dffa14befaa9d739f1b754bc372f717b105b',1,'cutlass::Vector< bin1_t, kLanes_ >::kLanes()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#a322ddd3ec1f47b76e21c24d3a3c44c5badeba151dbcb3c15e581bad7d767a93fa',1,'cutlass::Vector< int4_t, kLanes_ >::kLanes()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a9aacb7538f1b83762d68c768629c98eba17b71e816051646b567cf47334649a9b',1,'cutlass::Vector< uint4_t, kLanes_ >::kLanes()']]], ['knone',['kNone',['../structcutlass_1_1MatrixTransform.html#abf79785f7ae47385d0bbc38d0c431f48a67f5e7ba395d17d2c4808b7d524cbfa5',1,'cutlass::MatrixTransform']]], ['krequiresloadfence',['kRequiresLoadFence',['../structcutlass_1_1TileLoadIterator.html#a1f3601c595f12e7083919ece9b1ec84ea33514d9f9f71acb901aa1d9860fa8126',1,'cutlass::TileLoadIterator']]], - ['krowmajor',['kRowMajor',['../structcutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2ba6a287c17f9f5bf53528ae68296beeedb',1,'cutlass::MatrixLayout']]], + ['krowmajor',['kRowMajor',['../namespacecutlass_1_1MatrixLayout.html#a97ef07af21b122c1804245b0c7784d2ba6a287c17f9f5bf53528ae68296beeedb',1,'cutlass::MatrixLayout']]], ['kscalar',['kScalar',['../structcutlass_1_1FragmentElementType.html#a62883b0695dc3a7ff82916ff9d75df0babb4fa5d034035e4c751287dd9e366f3b',1,'cutlass::FragmentElementType']]], ['kshared',['kShared',['../structcutlass_1_1MemorySpace.html#a1e031ec41668015a8fe4ba2c1145d03ca2804339b2be64ff68ae3042073aaa7cc',1,'cutlass::MemorySpace']]], ['kvectorsize',['kVectorSize',['../unioncutlass_1_1Vector.html#abf0c16b6f9cb8439835ebdb271d58763afaf4b62c6bcafbf961c5570364a0316e',1,'cutlass::Vector::kVectorSize()'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a0c3d44e7c726aabf23d57094475fcc22aa12662bfb46ed10de12f168219ce0a8d',1,'cutlass::Vector< half, 1 >::kVectorSize()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#a42288bc8b85cd3f40aafbe7549a5285babfbb3cf98db2f8af7150efb91cac4e79',1,'cutlass::Vector< half, kLanes_ >::kVectorSize()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#ad75d72ca210d77ae82b8aa4bed04fed0ab98f21cd2645378ad0a840727b7edaff',1,'cutlass::Vector< bin1_t, kLanes_ >::kVectorSize()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#a01e23040ab8cea016e3709f55c2089fdaf9fe4d6ac4ee913780e3361dde6c80d6',1,'cutlass::Vector< int4_t, kLanes_ >::kVectorSize()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a722f7852892c56613ea5027610523d8bab0655ce225f020ac27580efa249f6acb',1,'cutlass::Vector< uint4_t, kLanes_ >::kVectorSize()']]], diff --git a/docs/search/files_0.js b/docs/search/files_0.js index 455c8c45..c1cd7a91 100644 --- a/docs/search/files_0.js +++ b/docs/search/files_0.js @@ -1,10 +1,5 @@ var searchData= [ - ['clear_5faccumulators_2eh',['clear_accumulators.h',['../clear__accumulators_8h.html',1,'']]], - ['complex_2eh',['complex.h',['../complex_8h.html',1,'']]], - ['convert_2eh',['convert.h',['../convert_8h.html',1,'']]], - ['coord_2eh',['coord.h',['../coord_8h.html',1,'']]], - ['core_5fio_2eh',['core_io.h',['../core__io_8h.html',1,'']]], - ['cutlass_2eh',['cutlass.h',['../cutlass_8h.html',1,'']]], - ['cutlass_5fmath_2eh',['cutlass_math.h',['../cutlass__math_8h.html',1,'']]] + ['batched_5freduction_2eh',['batched_reduction.h',['../batched__reduction_8h.html',1,'']]], + ['batched_5freduction_5ftraits_2eh',['batched_reduction_traits.h',['../batched__reduction__traits_8h.html',1,'']]] ]; diff --git a/docs/search/files_1.js b/docs/search/files_1.js index e0b1e0e0..455c8c45 100644 --- a/docs/search/files_1.js +++ b/docs/search/files_1.js @@ -1,5 +1,10 @@ var searchData= [ - ['debug_2eh',['debug.h',['../debug_8h.html',1,'']]], - ['dgemm_5ftraits_2eh',['dgemm_traits.h',['../dgemm__traits_8h.html',1,'']]] + ['clear_5faccumulators_2eh',['clear_accumulators.h',['../clear__accumulators_8h.html',1,'']]], + ['complex_2eh',['complex.h',['../complex_8h.html',1,'']]], + ['convert_2eh',['convert.h',['../convert_8h.html',1,'']]], + ['coord_2eh',['coord.h',['../coord_8h.html',1,'']]], + ['core_5fio_2eh',['core_io.h',['../core__io_8h.html',1,'']]], + ['cutlass_2eh',['cutlass.h',['../cutlass_8h.html',1,'']]], + ['cutlass_5fmath_2eh',['cutlass_math.h',['../cutlass__math_8h.html',1,'']]] ]; diff --git a/docs/search/files_10.js b/docs/search/files_10.js index 1e59cee5..732797da 100644 --- a/docs/search/files_10.js +++ b/docs/search/files_10.js @@ -1,6 +1,9 @@ var searchData= [ - ['zip_5ffragment_2eh',['zip_fragment.h',['../zip__fragment_8h.html',1,'']]], - ['zip_5ftensor_5fref_2eh',['zip_tensor_ref.h',['../zip__tensor__ref_8h.html',1,'']]], - ['zip_5ftile_5fiterator_2eh',['zip_tile_iterator.h',['../zip__tile__iterator_8h.html',1,'']]] + ['wmma_5fgemm_5fepilogue_5ftraits_2eh',['wmma_gemm_epilogue_traits.h',['../wmma__gemm__epilogue__traits_8h.html',1,'']]], + ['wmma_5fgemm_5fglobal_5ftile_2eh',['wmma_gemm_global_tile.h',['../wmma__gemm__global__tile_8h.html',1,'']]], + ['wmma_5fgemm_5fmultiply_5fadd_2eh',['wmma_gemm_multiply_add.h',['../wmma__gemm__multiply__add_8h.html',1,'']]], + ['wmma_5fgemm_5fshared_5ftile_2eh',['wmma_gemm_shared_tile.h',['../wmma__gemm__shared__tile_8h.html',1,'']]], + ['wmma_5fgemm_5ftraits_2eh',['wmma_gemm_traits.h',['../wmma__gemm__traits_8h.html',1,'']]], + ['wmma_5fmatrix_2eh',['wmma_matrix.h',['../wmma__matrix_8h.html',1,'']]] ]; diff --git a/docs/search/files_11.html b/docs/search/files_11.html new file mode 100644 index 00000000..1fdd8544 --- /dev/null +++ b/docs/search/files_11.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_11.js b/docs/search/files_11.js new file mode 100644 index 00000000..1e59cee5 --- /dev/null +++ b/docs/search/files_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['zip_5ffragment_2eh',['zip_fragment.h',['../zip__fragment_8h.html',1,'']]], + ['zip_5ftensor_5fref_2eh',['zip_tensor_ref.h',['../zip__tensor__ref_8h.html',1,'']]], + ['zip_5ftile_5fiterator_2eh',['zip_tile_iterator.h',['../zip__tile__iterator_8h.html',1,'']]] +]; diff --git a/docs/search/files_2.js b/docs/search/files_2.js index 664fc205..b3a1f3fa 100644 --- a/docs/search/files_2.js +++ b/docs/search/files_2.js @@ -1,7 +1,7 @@ var searchData= [ - ['fp16_5fsgemm_5fmultiply_5fadd_2eh',['fp16_sgemm_multiply_add.h',['../fp16__sgemm__multiply__add_8h.html',1,'']]], - ['fp16_5fsgemm_5ftraits_2eh',['fp16_sgemm_traits.h',['../fp16__sgemm__traits_8h.html',1,'']]], - ['fragment_2eh',['fragment.h',['../fragment_8h.html',1,'']]], - ['fragment_5fmultiply_5fadd_2eh',['fragment_multiply_add.h',['../fragment__multiply__add_8h.html',1,'']]] + ['debug_2eh',['debug.h',['../debug_8h.html',1,'']]], + ['device_5fgemm_2eh',['device_gemm.h',['../device__gemm_8h.html',1,'']]], + ['device_5fgemm_5ftraits_2eh',['device_gemm_traits.h',['../device__gemm__traits_8h.html',1,'']]], + ['dgemm_5ftraits_2eh',['dgemm_traits.h',['../dgemm__traits_8h.html',1,'']]] ]; diff --git a/docs/search/files_3.js b/docs/search/files_3.js index e377b0b3..664fc205 100644 --- a/docs/search/files_3.js +++ b/docs/search/files_3.js @@ -1,16 +1,7 @@ var searchData= [ - ['gemm_2eh',['gemm.h',['../gemm_8h.html',1,'']]], - ['gemm_5fconfig_2eh',['gemm_config.h',['../gemm__config_8h.html',1,'']]], - ['gemm_5fcoord_2eh',['gemm_coord.h',['../gemm__coord_8h.html',1,'']]], - ['gemm_5fdesc_2eh',['gemm_desc.h',['../gemm__desc_8h.html',1,'']]], - ['gemm_5fepilogue_2eh',['gemm_epilogue.h',['../gemm__epilogue_8h.html',1,'']]], - ['gemm_5fepilogue_5ftraits_2eh',['gemm_epilogue_traits.h',['../gemm__epilogue__traits_8h.html',1,'']]], - ['gemm_5fglobal_5fstream_2eh',['gemm_global_stream.h',['../gemm__global__stream_8h.html',1,'']]], - ['gemm_5fglobal_5ftile_2eh',['gemm_global_tile.h',['../gemm__global__tile_8h.html',1,'']]], - ['gemm_5foperand_2eh',['gemm_operand.h',['../gemm__operand_8h.html',1,'']]], - ['gemm_5fshared_5fstream_2eh',['gemm_shared_stream.h',['../gemm__shared__stream_8h.html',1,'']]], - ['gemm_5fshared_5ftile_2eh',['gemm_shared_tile.h',['../gemm__shared__tile_8h.html',1,'']]], - ['gemm_5fstream_5fpair_2eh',['gemm_stream_pair.h',['../gemm__stream__pair_8h.html',1,'']]], - ['gemm_5ftraits_2eh',['gemm_traits.h',['../gemm__traits_8h.html',1,'']]] + ['fp16_5fsgemm_5fmultiply_5fadd_2eh',['fp16_sgemm_multiply_add.h',['../fp16__sgemm__multiply__add_8h.html',1,'']]], + ['fp16_5fsgemm_5ftraits_2eh',['fp16_sgemm_traits.h',['../fp16__sgemm__traits_8h.html',1,'']]], + ['fragment_2eh',['fragment.h',['../fragment_8h.html',1,'']]], + ['fragment_5fmultiply_5fadd_2eh',['fragment_multiply_add.h',['../fragment__multiply__add_8h.html',1,'']]] ]; diff --git a/docs/search/files_4.js b/docs/search/files_4.js index 991070fd..391e35f3 100644 --- a/docs/search/files_4.js +++ b/docs/search/files_4.js @@ -1,7 +1,17 @@ var searchData= [ - ['hgemm_5fglobal_5ftile_2eh',['hgemm_global_tile.h',['../hgemm__global__tile_8h.html',1,'']]], - ['hgemm_5fmultiply_5fadd_2eh',['hgemm_multiply_add.h',['../hgemm__multiply__add_8h.html',1,'']]], - ['hgemm_5fswizzle_2eh',['hgemm_swizzle.h',['../hgemm__swizzle_8h.html',1,'']]], - ['hgemm_5ftraits_2eh',['hgemm_traits.h',['../hgemm__traits_8h.html',1,'']]] + ['gemm_2eh',['gemm.h',['../gemm_8h.html',1,'']]], + ['gemm_5fconfig_2eh',['gemm_config.h',['../gemm__config_8h.html',1,'']]], + ['gemm_5fcoord_2eh',['gemm_coord.h',['../gemm__coord_8h.html',1,'']]], + ['gemm_5fdesc_2eh',['gemm_desc.h',['../gemm__desc_8h.html',1,'']]], + ['gemm_5fepilogue_2eh',['gemm_epilogue.h',['../gemm__epilogue_8h.html',1,'']]], + ['gemm_5fepilogue_5ftraits_2eh',['gemm_epilogue_traits.h',['../gemm__epilogue__traits_8h.html',1,'']]], + ['gemm_5fglobal_5fstream_2eh',['gemm_global_stream.h',['../gemm__global__stream_8h.html',1,'']]], + ['gemm_5fglobal_5ftile_2eh',['gemm_global_tile.h',['../gemm__global__tile_8h.html',1,'']]], + ['gemm_5foperand_2eh',['gemm_operand.h',['../gemm__operand_8h.html',1,'']]], + ['gemm_5fshared_5fstream_2eh',['gemm_shared_stream.h',['../gemm__shared__stream_8h.html',1,'']]], + ['gemm_5fshared_5ftile_2eh',['gemm_shared_tile.h',['../gemm__shared__tile_8h.html',1,'']]], + ['gemm_5fstream_5fpair_2eh',['gemm_stream_pair.h',['../gemm__stream__pair_8h.html',1,'']]], + ['gemm_5ftraits_2eh',['gemm_traits.h',['../gemm__traits_8h.html',1,'']]], + ['threadblock_5fswizzle_2eh',['threadblock_swizzle.h',['../gemm_2threadblock__swizzle_8h.html',1,'']]] ]; diff --git a/docs/search/files_5.js b/docs/search/files_5.js index 696f4b3b..991070fd 100644 --- a/docs/search/files_5.js +++ b/docs/search/files_5.js @@ -1,9 +1,7 @@ var searchData= [ - ['igemm_5fepilogue_2eh',['igemm_epilogue.h',['../igemm__epilogue_8h.html',1,'']]], - ['igemm_5fglobal_5ftile_2eh',['igemm_global_tile.h',['../igemm__global__tile_8h.html',1,'']]], - ['igemm_5fmultiply_5fadd_2eh',['igemm_multiply_add.h',['../igemm__multiply__add_8h.html',1,'']]], - ['igemm_5fswizzle_2eh',['igemm_swizzle.h',['../igemm__swizzle_8h.html',1,'']]], - ['igemm_5ftraits_2eh',['igemm_traits.h',['../igemm__traits_8h.html',1,'']]], - ['iterator_5faccess_2eh',['iterator_access.h',['../iterator__access_8h.html',1,'']]] + ['hgemm_5fglobal_5ftile_2eh',['hgemm_global_tile.h',['../hgemm__global__tile_8h.html',1,'']]], + ['hgemm_5fmultiply_5fadd_2eh',['hgemm_multiply_add.h',['../hgemm__multiply__add_8h.html',1,'']]], + ['hgemm_5fswizzle_2eh',['hgemm_swizzle.h',['../hgemm__swizzle_8h.html',1,'']]], + ['hgemm_5ftraits_2eh',['hgemm_traits.h',['../hgemm__traits_8h.html',1,'']]] ]; diff --git a/docs/search/files_6.js b/docs/search/files_6.js index 2c6d691e..696f4b3b 100644 --- a/docs/search/files_6.js +++ b/docs/search/files_6.js @@ -1,4 +1,9 @@ var searchData= [ - ['kernel_5flaunch_2eh',['kernel_launch.h',['../kernel__launch_8h.html',1,'']]] + ['igemm_5fepilogue_2eh',['igemm_epilogue.h',['../igemm__epilogue_8h.html',1,'']]], + ['igemm_5fglobal_5ftile_2eh',['igemm_global_tile.h',['../igemm__global__tile_8h.html',1,'']]], + ['igemm_5fmultiply_5fadd_2eh',['igemm_multiply_add.h',['../igemm__multiply__add_8h.html',1,'']]], + ['igemm_5fswizzle_2eh',['igemm_swizzle.h',['../igemm__swizzle_8h.html',1,'']]], + ['igemm_5ftraits_2eh',['igemm_traits.h',['../igemm__traits_8h.html',1,'']]], + ['iterator_5faccess_2eh',['iterator_access.h',['../iterator__access_8h.html',1,'']]] ]; diff --git a/docs/search/files_7.js b/docs/search/files_7.js index 79230be9..2c6d691e 100644 --- a/docs/search/files_7.js +++ b/docs/search/files_7.js @@ -1,6 +1,4 @@ var searchData= [ - ['linear_5fscaling_2eh',['linear_scaling.h',['../linear__scaling_8h.html',1,'']]], - ['linear_5fscaling_5fdevice_5fptr_2eh',['linear_scaling_device_ptr.h',['../linear__scaling__device__ptr_8h.html',1,'']]], - ['load_5fstore_2eh',['load_store.h',['../load__store_8h.html',1,'']]] + ['kernel_5flaunch_2eh',['kernel_launch.h',['../kernel__launch_8h.html',1,'']]] ]; diff --git a/docs/search/files_8.js b/docs/search/files_8.js index c9a077bc..79230be9 100644 --- a/docs/search/files_8.js +++ b/docs/search/files_8.js @@ -1,4 +1,6 @@ var searchData= [ - ['matrix_5ftraits_2eh',['matrix_traits.h',['../matrix__traits_8h.html',1,'']]] + ['linear_5fscaling_2eh',['linear_scaling.h',['../linear__scaling_8h.html',1,'']]], + ['linear_5fscaling_5fdevice_5fptr_2eh',['linear_scaling_device_ptr.h',['../linear__scaling__device__ptr_8h.html',1,'']]], + ['load_5fstore_2eh',['load_store.h',['../load__store_8h.html',1,'']]] ]; diff --git a/docs/search/files_9.js b/docs/search/files_9.js index 0808acef..c9a077bc 100644 --- a/docs/search/files_9.js +++ b/docs/search/files_9.js @@ -1,4 +1,4 @@ var searchData= [ - ['numeric_5ftypes_2eh',['numeric_types.h',['../numeric__types_8h.html',1,'']]] + ['matrix_5ftraits_2eh',['matrix_traits.h',['../matrix__traits_8h.html',1,'']]] ]; diff --git a/docs/search/files_a.js b/docs/search/files_a.js index b0cdc6b7..0808acef 100644 --- a/docs/search/files_a.js +++ b/docs/search/files_a.js @@ -1,5 +1,4 @@ var searchData= [ - ['platform_2eh',['platform.h',['../platform_8h.html',1,'']]], - ['predicate_5fvector_2eh',['predicate_vector.h',['../predicate__vector_8h.html',1,'']]] + ['numeric_5ftypes_2eh',['numeric_types.h',['../numeric__types_8h.html',1,'']]] ]; diff --git a/docs/search/files_b.js b/docs/search/files_b.js index e3c39a10..6e229e79 100644 --- a/docs/search/files_b.js +++ b/docs/search/files_b.js @@ -1,4 +1,7 @@ var searchData= [ - ['reshape_5ftile_2eh',['reshape_tile.h',['../reshape__tile_8h.html',1,'']]] + ['pair_2eh',['pair.h',['../pair_8h.html',1,'']]], + ['performance_5ftuning_2eh',['performance_tuning.h',['../performance__tuning_8h.html',1,'']]], + ['platform_2eh',['platform.h',['../platform_8h.html',1,'']]], + ['predicate_5fvector_2eh',['predicate_vector.h',['../predicate__vector_8h.html',1,'']]] ]; diff --git a/docs/search/files_c.js b/docs/search/files_c.js index cb299f5f..d6c75ae1 100644 --- a/docs/search/files_c.js +++ b/docs/search/files_c.js @@ -1,6 +1,5 @@ var searchData= [ - ['scalar_5for_5fpointer_2eh',['scalar_or_pointer.h',['../scalar__or__pointer_8h.html',1,'']]], - ['sgemm_5ftraits_2eh',['sgemm_traits.h',['../sgemm__traits_8h.html',1,'']]], - ['shape_2eh',['shape.h',['../shape_8h.html',1,'']]] + ['reshape_5ftile_2eh',['reshape_tile.h',['../reshape__tile_8h.html',1,'']]], + ['threadblock_5fswizzle_2eh',['threadblock_swizzle.h',['../reduction_2threadblock__swizzle_8h.html',1,'']]] ]; diff --git a/docs/search/files_d.js b/docs/search/files_d.js index 7043d69e..cb299f5f 100644 --- a/docs/search/files_d.js +++ b/docs/search/files_d.js @@ -1,13 +1,6 @@ var searchData= [ - ['tensor_5fref_2eh',['tensor_ref.h',['../tensor__ref_8h.html',1,'']]], - ['tensor_5fref_5fcollection_2eh',['tensor_ref_collection.h',['../tensor__ref__collection_8h.html',1,'']]], - ['tensor_5fview_2eh',['tensor_view.h',['../tensor__view_8h.html',1,'']]], - ['thread_5fmultiply_5fadd_2eh',['thread_multiply_add.h',['../thread__multiply__add_8h.html',1,'']]], - ['threadblock_5fswizzle_2eh',['threadblock_swizzle.h',['../threadblock__swizzle_8h.html',1,'']]], - ['tile_5fallocation_2eh',['tile_allocation.h',['../tile__allocation_8h.html',1,'']]], - ['tile_5fcoord_2eh',['tile_coord.h',['../tile__coord_8h.html',1,'']]], - ['tile_5fiterator_2eh',['tile_iterator.h',['../tile__iterator_8h.html',1,'']]], - ['tile_5fstream_2eh',['tile_stream.h',['../tile__stream_8h.html',1,'']]], - ['tile_5ftraits_5fstandard_2eh',['tile_traits_standard.h',['../tile__traits__standard_8h.html',1,'']]] + ['scalar_5for_5fpointer_2eh',['scalar_or_pointer.h',['../scalar__or__pointer_8h.html',1,'']]], + ['sgemm_5ftraits_2eh',['sgemm_traits.h',['../sgemm__traits_8h.html',1,'']]], + ['shape_2eh',['shape.h',['../shape_8h.html',1,'']]] ]; diff --git a/docs/search/files_e.js b/docs/search/files_e.js index 4edbbe39..6bdb9ca0 100644 --- a/docs/search/files_e.js +++ b/docs/search/files_e.js @@ -1,4 +1,12 @@ var searchData= [ - ['vector_2eh',['vector.h',['../vector_8h.html',1,'']]] + ['tensor_5fref_2eh',['tensor_ref.h',['../tensor__ref_8h.html',1,'']]], + ['tensor_5fref_5fcollection_2eh',['tensor_ref_collection.h',['../tensor__ref__collection_8h.html',1,'']]], + ['tensor_5fview_2eh',['tensor_view.h',['../tensor__view_8h.html',1,'']]], + ['thread_5fmultiply_5fadd_2eh',['thread_multiply_add.h',['../thread__multiply__add_8h.html',1,'']]], + ['tile_5fallocation_2eh',['tile_allocation.h',['../tile__allocation_8h.html',1,'']]], + ['tile_5fcoord_2eh',['tile_coord.h',['../tile__coord_8h.html',1,'']]], + ['tile_5fiterator_2eh',['tile_iterator.h',['../tile__iterator_8h.html',1,'']]], + ['tile_5fstream_2eh',['tile_stream.h',['../tile__stream_8h.html',1,'']]], + ['tile_5ftraits_5fstandard_2eh',['tile_traits_standard.h',['../tile__traits__standard_8h.html',1,'']]] ]; diff --git a/docs/search/files_f.js b/docs/search/files_f.js index 732797da..4edbbe39 100644 --- a/docs/search/files_f.js +++ b/docs/search/files_f.js @@ -1,9 +1,4 @@ var searchData= [ - ['wmma_5fgemm_5fepilogue_5ftraits_2eh',['wmma_gemm_epilogue_traits.h',['../wmma__gemm__epilogue__traits_8h.html',1,'']]], - ['wmma_5fgemm_5fglobal_5ftile_2eh',['wmma_gemm_global_tile.h',['../wmma__gemm__global__tile_8h.html',1,'']]], - ['wmma_5fgemm_5fmultiply_5fadd_2eh',['wmma_gemm_multiply_add.h',['../wmma__gemm__multiply__add_8h.html',1,'']]], - ['wmma_5fgemm_5fshared_5ftile_2eh',['wmma_gemm_shared_tile.h',['../wmma__gemm__shared__tile_8h.html',1,'']]], - ['wmma_5fgemm_5ftraits_2eh',['wmma_gemm_traits.h',['../wmma__gemm__traits_8h.html',1,'']]], - ['wmma_5fmatrix_2eh',['wmma_matrix.h',['../wmma__matrix_8h.html',1,'']]] + ['vector_2eh',['vector.h',['../vector_8h.html',1,'']]] ]; diff --git a/docs/search/functions_0.js b/docs/search/functions_0.js index 60c7988d..eeb2f7fb 100644 --- a/docs/search/functions_0.js +++ b/docs/search/functions_0.js @@ -1,5 +1,5 @@ var searchData= [ ['_5f_5falign_5f_5f',['__align__',['../namespacecutlass_1_1platform.html#ac9068e2d027ffdf5cd564deecc2cb9e8',1,'cutlass::platform::__align__(1) aligned_chunk< 1 >'],['../namespacecutlass_1_1platform.html#a0bcb016704ec57f9499e662ba6156f98',1,'cutlass::platform::__align__(2) aligned_chunk< 2 >'],['../namespacecutlass_1_1platform.html#a71be5af25eeffa4077777f919e67d8da',1,'cutlass::platform::__align__(4) aligned_chunk< 4 >'],['../namespacecutlass_1_1platform.html#a42440254a16d4b6b95b95cc3360ee372',1,'cutlass::platform::__align__(8) aligned_chunk< 8 >'],['../namespacecutlass_1_1platform.html#a91d5e970d6ebe619914f40a9510bdb1e',1,'cutlass::platform::__align__(16) aligned_chunk< 16 >'],['../namespacecutlass_1_1platform.html#a210f4d360b1f9c3d074e71129fe4c0d9',1,'cutlass::platform::__align__(32) aligned_chunk< 32 >'],['../namespacecutlass_1_1platform.html#ae792b1c7ada1a33e306cd552f583bdce',1,'cutlass::platform::__align__(64) aligned_chunk< 64 >'],['../namespacecutlass_1_1platform.html#a5712ec4fed335a9b7f863fb3abe3c5eb',1,'cutlass::platform::__align__(128) aligned_chunk< 128 >'],['../namespacecutlass_1_1platform.html#a595cc98db29fb4d59772d2e2f52e347a',1,'cutlass::platform::__align__(256) aligned_chunk< 256 >'],['../namespacecutlass_1_1platform.html#ae70bb5d14a66500b47d2e3f83063d4a5',1,'cutlass::platform::__align__(512) aligned_chunk< 512 >'],['../namespacecutlass_1_1platform.html#a181e44e9c66f704175590727aaa9e5a1',1,'cutlass::platform::__align__(1024) aligned_chunk< 1024 >'],['../namespacecutlass_1_1platform.html#ae72c8fa997bb251d4140dceb03147154',1,'cutlass::platform::__align__(2048) aligned_chunk< 2048 >'],['../namespacecutlass_1_1platform.html#ada29683f1b408ae7b73cc8fbe2108628',1,'cutlass::platform::__align__(4096) aligned_chunk< 4096 >'],['../namespacecutlass.html#ae6ee3d9361526f859d737d9c68c13706',1,'cutlass::__align__(1) AlignedStruct< 1 >'],['../namespacecutlass.html#a602227fad962270da185209ecc6012f2',1,'cutlass::__align__(2) AlignedStruct< 2 >'],['../namespacecutlass.html#a266d7d2ae6e79537e46ee37b4fdface7',1,'cutlass::__align__(4) AlignedStruct< 4 >'],['../namespacecutlass.html#a1101e01215ddb0e5a7b120a4541a3c4e',1,'cutlass::__align__(8) AlignedStruct< 8 >'],['../namespacecutlass.html#aa4071cf5103f352a5100d9b4bba895e2',1,'cutlass::__align__(16) AlignedStruct< 16 >'],['../namespacecutlass.html#ada65694bdd4b70d4c9d769a536275a47',1,'cutlass::__align__(32) AlignedStruct< 32 >'],['../namespacecutlass.html#aa80a7cb3febd19b96f2ecbcb610b1b9e',1,'cutlass::__align__(64) AlignedStruct< 64 >']]], - ['_5f_5flaunch_5fbounds_5f_5f',['__launch_bounds__',['../namespacecutlass_1_1gemm.html#a01dd61085e2b3f578a7fc266b94fac55',1,'cutlass::gemm']]] + ['_5f_5flaunch_5fbounds_5f_5f',['__launch_bounds__',['../namespacecutlass_1_1gemm.html#a01dd61085e2b3f578a7fc266b94fac55',1,'cutlass::gemm::__launch_bounds__()'],['../namespacecutlass_1_1reduction.html#a9665e8f438a7b290d6e2eb640d93045f',1,'cutlass::reduction::__launch_bounds__()']]] ]; diff --git a/docs/search/functions_1.js b/docs/search/functions_1.js index 521fba1d..c681dbdf 100644 --- a/docs/search/functions_1.js +++ b/docs/search/functions_1.js @@ -1,8 +1,9 @@ var searchData= [ ['abs',['abs',['../namespacecutlass_1_1platform.html#a1fbf209c41242b3f605ac220c39e8fd5',1,'cutlass::platform']]], - ['add_5fpointer_5foffset',['add_pointer_offset',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a5940e491967e265630dc0a4b448791d6',1,'cutlass::gemm::GemmGlobalIteratorAb::add_pointer_offset()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a8fd617565db6eb9c6fb99de868c389db',1,'cutlass::gemm::GemmGlobalIteratorCd::add_pointer_offset()'],['../classcutlass_1_1TensorRef.html#a5f0363da1e0544f256438e066d3cc143',1,'cutlass::TensorRef::add_pointer_offset()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a93ff0a9fda3e136a1674aeb82de050db',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::add_pointer_offset()'],['../structcutlass_1_1TileLoadIterator.html#ad65b7a0a5b4f42c590642ef7b269f232',1,'cutlass::TileLoadIterator::add_pointer_offset()'],['../structcutlass_1_1TileStoreIterator.html#aa6977ded39ead005b3435f13f0e51116',1,'cutlass::TileStoreIterator::add_pointer_offset()'],['../classcutlass_1_1ZipTileIterator.html#a0752af296e110d9104a45ae24bd0a104',1,'cutlass::ZipTileIterator::add_pointer_offset()']]], + ['add_5fbatch_5foffset',['add_batch_offset',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#aed33be079f056998624015460b4e3836',1,'cutlass::gemm::GlobalLoadStream::add_batch_offset()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a0c3d10d570da81a6b31b0637b5488259',1,'cutlass::gemm::GlobalLoadStreamPair::add_batch_offset()']]], + ['add_5fpointer_5foffset',['add_pointer_offset',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a5940e491967e265630dc0a4b448791d6',1,'cutlass::gemm::GemmGlobalIteratorAb::add_pointer_offset()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a2b77a4ba996c5cd75e73d4842ac07612',1,'cutlass::gemm::GemmGlobalIteratorCd::add_pointer_offset()'],['../classcutlass_1_1TensorRef.html#a5f0363da1e0544f256438e066d3cc143',1,'cutlass::TensorRef::add_pointer_offset()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a93ff0a9fda3e136a1674aeb82de050db',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::add_pointer_offset()'],['../structcutlass_1_1TileLoadIterator.html#a32ee7fa7f55ca99bc871edfb08efd6fc',1,'cutlass::TileLoadIterator::add_pointer_offset()'],['../structcutlass_1_1TileStoreIterator.html#af41808cb185da06a58ee9a9d593936d0',1,'cutlass::TileStoreIterator::add_pointer_offset()'],['../classcutlass_1_1ZipTileIterator.html#affc3b73f32df6caa41a841a630ffdf81',1,'cutlass::ZipTileIterator::add_pointer_offset()']]], ['alpha',['alpha',['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ae4038a59658c87d52cee3330bee59662',1,'cutlass::gemm::LinearScalingDevicePtr::Params']]], ['arg',['arg',['../namespacecutlass_1_1platform.html#a8a1a03766dbd2c2ce10b10498f281bf0',1,'cutlass::platform']]], - ['at',['at',['../structcutlass_1_1Coord.html#a9eff24a3b74b68d11839b92324613c93',1,'cutlass::Coord::at()'],['../structcutlass_1_1Coord.html#aa253bf69fc819876a7c7770305f1a694',1,'cutlass::Coord::at(int dim)'],['../structcutlass_1_1Coord.html#a177adcc2d0fb5e72ebcb523edd24e6fe',1,'cutlass::Coord::at() const'],['../structcutlass_1_1Coord.html#a9b47b1521820c898b03868627c3f8e46',1,'cutlass::Coord::at(int dim) const'],['../structcutlass_1_1FragmentIterator.html#a35b721563536ab2c5dbab0f5de1c2b43',1,'cutlass::FragmentIterator::at(int d, int h, int w, int c=0) const'],['../structcutlass_1_1FragmentIterator.html#adb863b44dfbc1fa923625e767f6dd7cd',1,'cutlass::FragmentIterator::at(int d, int h, int w, int c=0)'],['../structcutlass_1_1FragmentConstIterator.html#a14f2ad2f9b90aea092ff1836e8fb159d',1,'cutlass::FragmentConstIterator::at()'],['../structcutlass_1_1PredicateVector.html#ac8eca7087d1f7575b0c6beeb5f907bfd',1,'cutlass::PredicateVector::at()'],['../structcutlass_1_1TrivialPredicateTileAdapter.html#a3e41ab145489df08fca79251b2253d0f',1,'cutlass::TrivialPredicateTileAdapter::at()'],['../structcutlass_1_1PredicateTileAdapter.html#a7d54e877bca2e840c142293b4826e986',1,'cutlass::PredicateTileAdapter::at()'],['../structcutlass_1_1ConstPredicateTileAdapter.html#a9e5651009a7b8df9960527c18c7b05dd',1,'cutlass::ConstPredicateTileAdapter::at()'],['../classcutlass_1_1TensorRef.html#a4169a1344897c2c87822ee49d5e0002f',1,'cutlass::TensorRef::at(TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef.html#ab0cf071be50423dece4e931878573a1c',1,'cutlass::TensorRef::at(LongIndex idx) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a597bb02594c918c50f0bdb0cb4ce74c8',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::at(TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a92371a586e756734522a853bef74324d',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::at(LongIndex idx) const'],['../structcutlass_1_1TensorRefBatchStrided.html#aac4b013050925c1e2db4019140e82602',1,'cutlass::TensorRefBatchStrided::at()'],['../structcutlass_1_1TensorRefArray.html#a2a95fd42d48c550a45f340b04f9dfe3d',1,'cutlass::TensorRefArray::at()']]] + ['at',['at',['../structcutlass_1_1Coord.html#a9eff24a3b74b68d11839b92324613c93',1,'cutlass::Coord::at()'],['../structcutlass_1_1Coord.html#aa253bf69fc819876a7c7770305f1a694',1,'cutlass::Coord::at(int dim)'],['../structcutlass_1_1Coord.html#a177adcc2d0fb5e72ebcb523edd24e6fe',1,'cutlass::Coord::at() const'],['../structcutlass_1_1Coord.html#a9b47b1521820c898b03868627c3f8e46',1,'cutlass::Coord::at(int dim) const'],['../structcutlass_1_1FragmentIterator.html#a35b721563536ab2c5dbab0f5de1c2b43',1,'cutlass::FragmentIterator::at(int d, int h, int w, int c=0) const'],['../structcutlass_1_1FragmentIterator.html#adb863b44dfbc1fa923625e767f6dd7cd',1,'cutlass::FragmentIterator::at(int d, int h, int w, int c=0)'],['../structcutlass_1_1FragmentConstIterator.html#a14f2ad2f9b90aea092ff1836e8fb159d',1,'cutlass::FragmentConstIterator::at()'],['../structcutlass_1_1PredicateVector.html#ac8eca7087d1f7575b0c6beeb5f907bfd',1,'cutlass::PredicateVector::at()'],['../structcutlass_1_1TrivialPredicateTileAdapter.html#a3e41ab145489df08fca79251b2253d0f',1,'cutlass::TrivialPredicateTileAdapter::at()'],['../structcutlass_1_1PredicateTileAdapter.html#a7d54e877bca2e840c142293b4826e986',1,'cutlass::PredicateTileAdapter::at()'],['../structcutlass_1_1ConstPredicateTileAdapter.html#a9e5651009a7b8df9960527c18c7b05dd',1,'cutlass::ConstPredicateTileAdapter::at()'],['../classcutlass_1_1TensorRef.html#a4169a1344897c2c87822ee49d5e0002f',1,'cutlass::TensorRef::at(TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef.html#ab0cf071be50423dece4e931878573a1c',1,'cutlass::TensorRef::at(LongIndex idx) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a597bb02594c918c50f0bdb0cb4ce74c8',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::at(TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a92371a586e756734522a853bef74324d',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::at(LongIndex idx) const'],['../structcutlass_1_1TensorRefBatchStrided.html#a9b18ce228b5ddedf64fd959553da950c',1,'cutlass::TensorRefBatchStrided::at()'],['../structcutlass_1_1TensorRefArray.html#a60763549963465865a2287d018b6b76c',1,'cutlass::TensorRefArray::at()']]] ]; diff --git a/docs/search/functions_10.js b/docs/search/functions_10.js index ca213eb7..922aa4c6 100644 --- a/docs/search/functions_10.js +++ b/docs/search/functions_10.js @@ -5,10 +5,12 @@ var searchData= ['reference',['reference',['../structcutlass_1_1TileAllocation.html#a3466ef2b478e4617aa1ff261217cfd05',1,'cutlass::TileAllocation::reference()'],['../structcutlass_1_1TileAllocation.html#afcdc0be82acf0b4ae66468e2170c5a0d',1,'cutlass::TileAllocation::reference() const'],['../structcutlass_1_1ZipTileAllocation.html#a0d00001220df7f2bdb1f09ae3f37c585',1,'cutlass::ZipTileAllocation::reference()'],['../structcutlass_1_1ZipTileAllocation.html#af9964904e789b3ab58334f1ec1ceee56',1,'cutlass::ZipTileAllocation::reference() const']]], ['regulartilepredicatefunctor',['RegularTilePredicateFunctor',['../structcutlass_1_1RegularTilePredicateFunctor.html#a0e0b728d3685097a9280fbca6a47a2af',1,'cutlass::RegularTilePredicateFunctor']]], ['release',['release',['../classcutlass_1_1platform_1_1unique__ptr.html#a7ac06ebe7bc66573d3225891e12d2279',1,'cutlass::platform::unique_ptr']]], + ['required_5fworkspace_5fmemory_5fin_5fbyte',['required_workspace_memory_in_byte',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a6fe1868939c6aeba97d232ac693a5264',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]], ['reset',['reset',['../classcutlass_1_1TensorRef.html#a7ec815838aed4e02dd96acb1000614c0',1,'cutlass::TensorRef::reset(Storage *ptr=nullptr)'],['../classcutlass_1_1TensorRef.html#a7a1da27a46883eb68e3f8983670b784b',1,'cutlass::TensorRef::reset(Storage *ptr, StorageCoord const &stride)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a1043f0ef382179b8ecd9f4e710f6e106',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::reset(Storage *ptr=nullptr)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a6339a8ac88f9172acf0337d149b98cb4',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::reset(Storage *ptr, StorageCoord const &stride)'],['../classcutlass_1_1TensorView.html#ae142eb93cf91e000b635d32fcacf1db3',1,'cutlass::TensorView::reset()'],['../classcutlass_1_1platform_1_1unique__ptr.html#a6740f71511f5495d6038cf8878862331',1,'cutlass::platform::unique_ptr::reset()']]], ['residue',['residue',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a235adaea5d4f01232c79cb6109dc6d17',1,'cutlass::gemm::GlobalLoadStream::residue()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#ab2bad39cd9e9d27382cf8fb9e05ed593',1,'cutlass::gemm::GemmGlobalIteratorAb::residue()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a1b1ec121cbd17ee61d58ea843b900e9a',1,'cutlass::gemm::GlobalLoadStreamPair::residue()']]], ['rollback',['rollback',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a1e2eecdba1871fc11aa43a06edf6ed34',1,'cutlass::gemm::GlobalLoadStream::rollback()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a6a9287a2cd87ca8a96cbf6b6d29199da',1,'cutlass::gemm::GlobalLoadStreamPair::rollback()']]], ['round_5fnearest',['round_nearest',['../namespacecutlass.html#a17c8c408d672d26f1c70d2435f6ac83e',1,'cutlass']]], ['row',['row',['../structcutlass_1_1MatrixCoord.html#a525949dd8a6b631e755511764848e546',1,'cutlass::MatrixCoord::row() const'],['../structcutlass_1_1MatrixCoord.html#a67f3102e51abad1205e8a3450e7a6c7e',1,'cutlass::MatrixCoord::row()']]], - ['rowmajorblockswizzle',['RowMajorBlockSwizzle',['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#a4ed7847f8ddad11a6765d914b6f32fcd',1,'cutlass::gemm::RowMajorBlockSwizzle']]] + ['rowmajorblockswizzle',['RowMajorBlockSwizzle',['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#a4ed7847f8ddad11a6765d914b6f32fcd',1,'cutlass::gemm::RowMajorBlockSwizzle']]], + ['run',['run',['../structcutlass_1_1reduction_1_1BatchedReduction.html#a4bfcdfd8f2edeb4fc7081443584d599b',1,'cutlass::reduction::BatchedReduction']]] ]; diff --git a/docs/search/functions_11.js b/docs/search/functions_11.js index 6b87493d..46b85ff2 100644 --- a/docs/search/functions_11.js +++ b/docs/search/functions_11.js @@ -19,5 +19,5 @@ var searchData= ['stride_5fadvance',['stride_advance',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#adfb9a7df1b900e4f6ee59c72aabdebd7',1,'cutlass::gemm::GemmGlobalIteratorAb::stride_advance()'],['../structcutlass_1_1TileLoadIterator.html#a31a021d6c099e8027fa9bcb5fdc21c11',1,'cutlass::TileLoadIterator::stride_advance()']]], ['subview',['subview',['../classcutlass_1_1TensorView.html#ad4b3faa318699b786f94cf8735a11dbb',1,'cutlass::TensorView']]], ['swap',['swap',['../classcutlass_1_1platform_1_1unique__ptr.html#a748d413c50bdbbe9e2f9986fbc423036',1,'cutlass::platform::unique_ptr::swap()'],['../namespacecutlass_1_1platform.html#a3e83320a39137d92042eb0bf93be9678',1,'cutlass::platform::swap()']]], - ['swizzle',['swizzle',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a0a366c072ee66bbcb390acd7b8bbe5f8',1,'cutlass::gemm::IdentityBlockSwizzle::swizzle()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#aaeb1e1167144352521651547815e003b',1,'cutlass::gemm::ColumnMajorBlockSwizzle::swizzle()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#a668d220ad1f163b72e40106b719e0c8d',1,'cutlass::gemm::RowMajorBlockSwizzle::swizzle()']]] + ['swizzle',['swizzle',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a0a366c072ee66bbcb390acd7b8bbe5f8',1,'cutlass::gemm::IdentityBlockSwizzle::swizzle()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#aaeb1e1167144352521651547815e003b',1,'cutlass::gemm::ColumnMajorBlockSwizzle::swizzle()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#a668d220ad1f163b72e40106b719e0c8d',1,'cutlass::gemm::RowMajorBlockSwizzle::swizzle()'],['../structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html#ae77863b3e53fa349945fafcd45ac39fa',1,'cutlass::reduction::DefaultBlockSwizzle::swizzle()']]] ]; diff --git a/docs/search/functions_12.js b/docs/search/functions_12.js index 0f645f1d..df344923 100644 --- a/docs/search/functions_12.js +++ b/docs/search/functions_12.js @@ -1,7 +1,7 @@ var searchData= [ - ['tensorarrayref',['TensorArrayRef',['../structcutlass_1_1TensorRefArray.html#a771ede5f73ec18729cc9a5946cf86109',1,'cutlass::TensorRefArray::TensorArrayRef()'],['../structcutlass_1_1TensorRefArray.html#aea35239326dcb23c3c6a18e7b3f92091',1,'cutlass::TensorRefArray::TensorArrayRef(Storage **_pointers, Index _strides[kStorageRank - 1])']]], ['tensorref',['TensorRef',['../classcutlass_1_1TensorRef.html#a5a667a48c64fb916c31802b73b769765',1,'cutlass::TensorRef::TensorRef(Storage *ptr=nullptr)'],['../classcutlass_1_1TensorRef.html#a48b9b4ad9034f6cf2b7c2ee479aea135',1,'cutlass::TensorRef::TensorRef(Storage *ptr, Index ldm)'],['../classcutlass_1_1TensorRef.html#afe4fc6fa539f36b2764707d50351905c',1,'cutlass::TensorRef::TensorRef(Storage *ptr, StrideVector const &stride)'],['../classcutlass_1_1TensorRef.html#aeca439296c8446741ba84b78f5a601e0',1,'cutlass::TensorRef::TensorRef(Storage *ptr, StorageCoord const &stride)'],['../classcutlass_1_1TensorRef.html#afe92be0a61fb8fc84426f4907faca6c1',1,'cutlass::TensorRef::TensorRef(TensorRef< typename platform::remove_const< Storage >::type, kRank, MapFunc, kStorageRank, Index, LongIndex > const &ref)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aa091e497277d0ba8a98c4ebf73c0cdba',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(Storage *ptr=nullptr)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a3464537a35ef7fbfc9349e5ce2233f1c',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(Storage *ptr, StrideVector const &stride)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aeacb444d31783eafe27a9e8d8cab98f8',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(Storage *ptr, StorageCoord const &stride)'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#af815dd66739801b10d43acc097e23636',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorRef(TensorRef< typename platform::remove_const< Storage >::type, kRank, MapFunc, kStorageRank, Index, LongIndex > const &ref)']]], + ['tensorrefarray',['TensorRefArray',['../structcutlass_1_1TensorRefArray.html#a5b2702b1029db5b5a0b9dddbb5818e3a',1,'cutlass::TensorRefArray::TensorRefArray()'],['../structcutlass_1_1TensorRefArray.html#acbda10b4e66cce9963c80f40ae4c1140',1,'cutlass::TensorRefArray::TensorRefArray(Storage **_pointers, Index _strides[kStorageRank - 1])']]], ['tensorrefbatchstrided',['TensorRefBatchStrided',['../structcutlass_1_1TensorRefBatchStrided.html#aa5d7e9a4589d7dacc5d69ca3c70ecc2b',1,'cutlass::TensorRefBatchStrided::TensorRefBatchStrided()'],['../structcutlass_1_1TensorRefBatchStrided.html#abc2ddccdb742f95438b214e0a3a14620',1,'cutlass::TensorRefBatchStrided::TensorRefBatchStrided(TensorRef const &ref, LongIndex _tensor_stride=0)']]], ['tensorview',['TensorView',['../classcutlass_1_1TensorView.html#a36d48227f65ad482a7bded99d6a3d0c1',1,'cutlass::TensorView::TensorView()'],['../classcutlass_1_1TensorView.html#aad06edac0f43c358c5644dffb5fe9ad7',1,'cutlass::TensorView::TensorView(Base const &_ref, TensorCoord const &_size)'],['../classcutlass_1_1TensorView.html#a73f049694ca1ea4825b5a651852827f5',1,'cutlass::TensorView::TensorView(Storage *ptr, StrideVector const &stride, TensorCoord const &size)'],['../classcutlass_1_1TensorView.html#af64d4195fd6ba2cba53179e1ae678737',1,'cutlass::TensorView::TensorView(Storage *ptr, StorageCoord const &stride, TensorCoord const &size)']]], ['threadmultiplyadd',['ThreadMultiplyAdd',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a0ab850304c3c6e73bcba321426ba93f9',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ThreadMultiplyAdd()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a32b234c873ffe44090a12e12d871024c',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ThreadMultiplyAdd()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#aad8a642f46c88e407a1150ee1d42b8dd',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ThreadMultiplyAdd()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#ac087f0b397599221b74d220fcb1c7121',1,'cutlass::gemm::ThreadMultiplyAdd::ThreadMultiplyAdd()']]], diff --git a/docs/search/functions_14.js b/docs/search/functions_14.js index fcec0184..4bece577 100644 --- a/docs/search/functions_14.js +++ b/docs/search/functions_14.js @@ -1,5 +1,6 @@ var searchData= [ ['valid',['valid',['../structcutlass_1_1FragmentIterator.html#a8608dd815ed4906d8c82c41a10df23e2',1,'cutlass::FragmentIterator::valid()'],['../structcutlass_1_1FragmentConstIterator.html#ac4d601998a84a3eac23e3b7a7c8a935b',1,'cutlass::FragmentConstIterator::valid()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a6ebdbdce88f040fffd3eb60622c6d7e0',1,'cutlass::gemm::GemmGlobalIteratorAb::valid()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#ab224a0a6ab8ce7fc4e76b06fb7679fa0',1,'cutlass::gemm::GemmGlobalIteratorCd::valid()'],['../structcutlass_1_1TileIteratorBase.html#ac811886f3412861928040546282b6973',1,'cutlass::TileIteratorBase::valid()']]], - ['vector',['Vector',['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a1310cf2e92e260cf55cfda1cb2cb7280',1,'cutlass::Vector< bin1_t, kLanes_ >::Vector()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a50ae62579267952a648d4b6a6be3c663',1,'cutlass::Vector< bin1_t, kLanes_ >::Vector(uint32_t value)'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#af166f710ebbfdff8a62453eee454c1d5',1,'cutlass::Vector< int4_t, kLanes_ >::Vector()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#a5feb070268f85bd73c3095eaf2d0e2bb',1,'cutlass::Vector< int4_t, kLanes_ >::Vector(uint32_t value)'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a48e193a0b636934ea553c6e60ffef563',1,'cutlass::Vector< uint4_t, kLanes_ >::Vector()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a023d6ae1bf06d678f8cb5652eca1bf79',1,'cutlass::Vector< uint4_t, kLanes_ >::Vector(uint32_t value)']]] + ['vector',['Vector',['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a1310cf2e92e260cf55cfda1cb2cb7280',1,'cutlass::Vector< bin1_t, kLanes_ >::Vector()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a50ae62579267952a648d4b6a6be3c663',1,'cutlass::Vector< bin1_t, kLanes_ >::Vector(uint32_t value)'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#af166f710ebbfdff8a62453eee454c1d5',1,'cutlass::Vector< int4_t, kLanes_ >::Vector()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#a5feb070268f85bd73c3095eaf2d0e2bb',1,'cutlass::Vector< int4_t, kLanes_ >::Vector(uint32_t value)'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a48e193a0b636934ea553c6e60ffef563',1,'cutlass::Vector< uint4_t, kLanes_ >::Vector()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a023d6ae1bf06d678f8cb5652eca1bf79',1,'cutlass::Vector< uint4_t, kLanes_ >::Vector(uint32_t value)']]], + ['view',['view',['../structcutlass_1_1TileAllocation.html#a6b8bef90ee0ce6f58f7971a4925d88c7',1,'cutlass::TileAllocation::view()'],['../structcutlass_1_1TileAllocation.html#a8d3befc0770f235d219bf77a0370fa4f',1,'cutlass::TileAllocation::view() const']]] ]; diff --git a/docs/search/functions_2.js b/docs/search/functions_2.js index 04774715..819fd9f3 100644 --- a/docs/search/functions_2.js +++ b/docs/search/functions_2.js @@ -1,6 +1,7 @@ var searchData= [ ['batch',['batch',['../structcutlass_1_1gemm_1_1GemmCoord.html#ac441e93411ed6954a93ab36f0c747d26',1,'cutlass::gemm::GemmCoord::batch() const'],['../structcutlass_1_1gemm_1_1GemmCoord.html#adaf31768b8239f497c0ec9b40bad1cb5',1,'cutlass::gemm::GemmCoord::batch()']]], + ['batchedreduction',['BatchedReduction',['../structcutlass_1_1reduction_1_1BatchedReduction.html#a9d76da3dcf4d8ec0cfeb2134f73ea22b',1,'cutlass::reduction::BatchedReduction']]], ['begin',['begin',['../structcutlass_1_1PredicateVector.html#a649045d8224514a4c28bcaf4b247b4a5',1,'cutlass::PredicateVector::begin()'],['../structcutlass_1_1TensorRefBatchStrided.html#a4f4a2f860cc10688ee27cc9ce1df1015',1,'cutlass::TensorRefBatchStrided::begin()'],['../structcutlass_1_1TensorRefArray.html#a6b0f0d9cef4a2f3f4a8bf6c192a282db',1,'cutlass::TensorRefArray::begin()']]], ['beta',['beta',['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a0938bcb61d2572d5cf6cf2de95d11816',1,'cutlass::gemm::LinearScalingDevicePtr::Params']]] ]; diff --git a/docs/search/functions_3.js b/docs/search/functions_3.js index dae6e661..01761235 100644 --- a/docs/search/functions_3.js +++ b/docs/search/functions_3.js @@ -15,7 +15,7 @@ var searchData= ['const_5fbegin',['const_begin',['../structcutlass_1_1PredicateVector.html#aeb7f9226a4fa49d06500c3c83958dc41',1,'cutlass::PredicateVector']]], ['const_5fend',['const_end',['../structcutlass_1_1PredicateVector.html#ab931610bc07ee0e87bb4d9a4d53a2321',1,'cutlass::PredicateVector']]], ['const_5fref',['const_ref',['../classcutlass_1_1TensorRef.html#a6ab468e38773f5a971a8428673fb5e47',1,'cutlass::TensorRef::const_ref()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a0a48de201c35cbc9d5e3b94fa597a617',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::const_ref()'],['../classcutlass_1_1TensorView.html#a559f7210b445c77a167ab1f41c8d0827',1,'cutlass::TensorView::const_ref()']]], - ['constiterator',['ConstIterator',['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a1216aab9c567ec0d4232019008ef3ea7',1,'cutlass::PredicateVector::ConstIterator::ConstIterator(ConstIterator const &it)'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a590e4f4533c87162c0b79e8d876a8fda',1,'cutlass::PredicateVector::ConstIterator::ConstIterator(PredicateVector const &_vec, int _start=0)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a28da80c1ba56e354ddb9352b54b231ed',1,'cutlass::TensorRefBatchStrided::ConstIterator::ConstIterator()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a45331031771aeb9f71d5c1abdf42e541',1,'cutlass::TensorRefArray::ConstIterator::ConstIterator()']]], + ['constiterator',['ConstIterator',['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a1216aab9c567ec0d4232019008ef3ea7',1,'cutlass::PredicateVector::ConstIterator::ConstIterator(ConstIterator const &it)'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a590e4f4533c87162c0b79e8d876a8fda',1,'cutlass::PredicateVector::ConstIterator::ConstIterator(PredicateVector const &_vec, int _start=0)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a28da80c1ba56e354ddb9352b54b231ed',1,'cutlass::TensorRefBatchStrided::ConstIterator::ConstIterator()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a9f9e68889c83c34365dded0173503044',1,'cutlass::TensorRefArray::ConstIterator::ConstIterator()']]], ['constpredicatetileadapter',['ConstPredicateTileAdapter',['../structcutlass_1_1ConstPredicateTileAdapter.html#a9abd78d5c3e444bfb23d2b1a08be2be1',1,'cutlass::ConstPredicateTileAdapter']]], ['consume_5ftile',['consume_tile',['../structcutlass_1_1gemm_1_1Gemm.html#af8bb78ae198af4dccb0241da44428053',1,'cutlass::gemm::Gemm']]], ['contains',['contains',['../classcutlass_1_1TensorView.html#a3f448bcf6e664c244f472e2659215628',1,'cutlass::TensorView']]], diff --git a/docs/search/functions_4.js b/docs/search/functions_4.js index c5d6c224..83d2364e 100644 --- a/docs/search/functions_4.js +++ b/docs/search/functions_4.js @@ -4,6 +4,8 @@ var searchData= ['data',['data',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage.html#a0e05007f939b27e6a17dce5c2a49e3e0',1,'cutlass::gemm::GemmEpilogueTraits::SharedStorage::data()'],['../classcutlass_1_1TensorRef.html#ae1c80b524cd9491e2d499d703e1459f7',1,'cutlass::TensorRef::data()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a67b25cc51ce867b073feead7b94e6aa3',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::data()'],['../structcutlass_1_1TileAllocation.html#a69c43b27939e9ecebd23edb18ed3a9dc',1,'cutlass::TileAllocation::data()'],['../structcutlass_1_1TileAllocation.html#acc3f2c29fe21316091a1405613083000',1,'cutlass::TileAllocation::data() const']]], ['debugtypefunc',['DebugTypeFunc',['../cutlass_8h.html#ab7e23b523490567225b20e2c72649f20',1,'cutlass.h']]], ['decrement',['decrement',['../classcutlass_1_1ZipTileIterator.html#a6f2f86a1d23ccbaed285550a1d1f92e6',1,'cutlass::ZipTileIterator']]], + ['defaultblockswizzle',['DefaultBlockSwizzle',['../structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html#a1ad8edda7b73d23fb5592a531f5736cc',1,'cutlass::reduction::DefaultBlockSwizzle']]], + ['devicegemm',['DeviceGemm',['../structcutlass_1_1gemm_1_1DeviceGemm.html#a92a8c036506655623737eecca9aceeb8',1,'cutlass::gemm::DeviceGemm']]], ['dhw',['dhw',['../structcutlass_1_1TileCoord.html#abe65d1a0ff3798b662376032d51e9713',1,'cutlass::TileCoord']]], ['dot',['dot',['../structcutlass_1_1Coord.html#ac8ec94703830ab2c62ee055533ea2184',1,'cutlass::Coord::dot(Coord const &b, T sum) const'],['../structcutlass_1_1Coord.html#a0acc37908acb6b879c37f54ff7ffc93d',1,'cutlass::Coord::dot(Coord const &b) const']]] ]; diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js index 86e2fbe6..08cb7a34 100644 --- a/docs/search/functions_6.js +++ b/docs/search/functions_6.js @@ -7,5 +7,6 @@ var searchData= ['fragment_5fb',['fragment_b',['../structcutlass_1_1gemm_1_1SharedStreamPair.html#a375e96bc2e35447682bd1dea3c4d87ad',1,'cutlass::gemm::SharedStreamPair']]], ['fragmentconstiterator',['FragmentConstIterator',['../structcutlass_1_1FragmentConstIterator.html#ad3e99cd7f56d4aec0a28cfcbde66f5af',1,'cutlass::FragmentConstIterator::FragmentConstIterator(OtherFragment_ &fragment, int offset=0)'],['../structcutlass_1_1FragmentConstIterator.html#a18f926c9c877e15a279f16637bd24e83',1,'cutlass::FragmentConstIterator::FragmentConstIterator(FragmentIterator< Fragment_, Iterations_, AccessType_ > const &rhs_)']]], ['fragmentiterator',['FragmentIterator',['../structcutlass_1_1FragmentIterator.html#a638e4e1d84b4ae84e758288c7f37548b',1,'cutlass::FragmentIterator']]], - ['fragmentmultiplyadd',['FragmentMultiplyAdd',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#ae1fbd0fd103deda51208102f15f896ed',1,'cutlass::gemm::FragmentMultiplyAdd::FragmentMultiplyAdd()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#ad35b57b3f0cf5a467a1b0e48cffc3061',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::FragmentMultiplyAdd()']]] + ['fragmentmultiplyadd',['FragmentMultiplyAdd',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#ae1fbd0fd103deda51208102f15f896ed',1,'cutlass::gemm::FragmentMultiplyAdd::FragmentMultiplyAdd()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#ad35b57b3f0cf5a467a1b0e48cffc3061',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::FragmentMultiplyAdd()']]], + ['functor_5fcaller',['functor_caller',['../structcutlass_1_1reduction_1_1BatchedReduction.html#a7c1d173cbe3abd93bd7bd4c4bf0e0d26',1,'cutlass::reduction::BatchedReduction']]] ]; diff --git a/docs/search/functions_7.js b/docs/search/functions_7.js index ba5f46cd..b0393f2c 100644 --- a/docs/search/functions_7.js +++ b/docs/search/functions_7.js @@ -6,19 +6,21 @@ var searchData= ['gemmcoord',['GemmCoord',['../structcutlass_1_1gemm_1_1GemmCoord.html#abaa87475d518a2e5cdf44c62122b9e01',1,'cutlass::gemm::GemmCoord::GemmCoord()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a03e6bfa95156962be51e190d381c8b5e',1,'cutlass::gemm::GemmCoord::GemmCoord(Coord< 3, Index > const &coord, Index _batch=0)'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a65d1ca12c0f27984920cf1700322a746',1,'cutlass::gemm::GemmCoord::GemmCoord(Coord< 4, Index > const &coord)'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a17da9936dbad99f2402c42b1bd6ea5ea',1,'cutlass::gemm::GemmCoord::GemmCoord(Index coord[4])'],['../structcutlass_1_1gemm_1_1GemmCoord.html#ac3b1cbdf86bd36d6b4b5e295ef846dfe',1,'cutlass::gemm::GemmCoord::GemmCoord(Index k, Index n, Index m, Index batch=0)']]], ['gemmdesc',['GemmDesc',['../structcutlass_1_1gemm_1_1GemmDesc.html#ae2708b731cbb99d3e638382ecf599425',1,'cutlass::gemm::GemmDesc::GemmDesc()'],['../structcutlass_1_1gemm_1_1GemmDesc.html#a948af4a974f1aa74d3b6da9cd3e185de',1,'cutlass::gemm::GemmDesc::GemmDesc(Coord< 3 > _problem_size, SType _alpha, TensorRefA const &_A, TensorRefB const &_B, SType _beta, TensorRefC const &_C, TensorRefD const &_D)'],['../structcutlass_1_1gemm_1_1GemmDesc.html#a7292ac0196f22525b13f223a02271bc3',1,'cutlass::gemm::GemmDesc::GemmDesc(GemmCoord _problem_size, SType _alpha, TensorRefA const &_A, TensorRefB const &_B, SType _beta, TensorRefC const &_C, TensorRefD const &_D)'],['../structcutlass_1_1gemm_1_1GemmDesc.html#af96cd9c8f2454ea118dfa7358dd24824',1,'cutlass::gemm::GemmDesc::GemmDesc(GemmCoord _problem_size, SType _alpha, TensorRefA const &_A, long long _batch_stride_A, TensorRefB const &_B, long long _batch_stride_B, SType _beta, TensorRefC const &_C, long long _batch_stride_C, TensorRefD const &_D, long long _batch_stride_D)']]], ['gemmepilogue',['GemmEpilogue',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#af91ebe8d2ed73808b9ea8846c140d3f8',1,'cutlass::gemm::GemmEpilogue']]], - ['gemmglobaliteratorab',['GemmGlobalIteratorAb',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#ab61ce6b04d72d2652ee3bffca3885fe5',1,'cutlass::gemm::GemmGlobalIteratorAb']]], - ['gemmglobaliteratorcd',['GemmGlobalIteratorCd',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#aeeed9a3582a879d9da77191df88e83ff',1,'cutlass::gemm::GemmGlobalIteratorCd::GemmGlobalIteratorCd(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block_offset, ThreadOffset thread_offset_func=ThreadOffset())'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a15d3244546d1c8f4727e84b27a8b7fc6',1,'cutlass::gemm::GemmGlobalIteratorCd::GemmGlobalIteratorCd(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block, int offset=0, int pred_offset=0, ThreadOffset thread_offset_func=ThreadOffset())']]], + ['gemmglobaliteratorab',['GemmGlobalIteratorAb',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a43dd51c089f866fe63d14502163fd950',1,'cutlass::gemm::GemmGlobalIteratorAb']]], + ['gemmglobaliteratorcd',['GemmGlobalIteratorCd',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a15d3244546d1c8f4727e84b27a8b7fc6',1,'cutlass::gemm::GemmGlobalIteratorCd']]], ['get',['get',['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a1661baed19b4aa4eea725a6f6e6b26a3',1,'cutlass::detail::ScalarOrPointer::get()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#af035589126434bd2dbef4000cd864b8b',1,'cutlass::PredicateVector::Iterator::get()'],['../structcutlass_1_1ComputeOffsetFromShape.html#a7bc0bc7e03cd974a05d00e98a72ee78b',1,'cutlass::ComputeOffsetFromShape::get()'],['../structcutlass_1_1ComputeOffsetFromStrides.html#aa28231590bfa0ced0f317e6a4d52dc1e',1,'cutlass::ComputeOffsetFromStrides::get()'],['../structcutlass_1_1ComputeThreadOffsetFromStrides.html#a1744bfe277cbe0c642cce4a48c1dd9ad',1,'cutlass::ComputeThreadOffsetFromStrides::get()'],['../structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_01T__dd54c41f6edb97d3c208cb7c6fe4ab9b.html#a5d446b2663c01362361e09435a726996',1,'cutlass::ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, T_c_ >, Shape< 1, S_h_, S_w_, S_c_ > >::get()'],['../structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_011_0e75281d7e02fa191f5d498e10e25dc1b.html#a6e621f5fae2ba29277fde46be1cede24',1,'cutlass::ComputeThreadOffsetFromStrides< Shape< 1, T_h_, T_w_, 1 >, Shape< 1, S_h_, S_w_, 1 > >::get()'],['../classcutlass_1_1platform_1_1unique__ptr.html#a2e7c14b8a118f81c1df46ea5045e297b',1,'cutlass::platform::unique_ptr::get()']]], ['get_5fbatch_5fid',['get_batch_id',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a8f84a2b830caecff3edd052dc24635e6',1,'cutlass::gemm::IdentityBlockSwizzle::get_batch_id()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#abb21a72e2cef3217f446f70758c59c1e',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_batch_id()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#a9be74716c0e3dc6a7f4cdd64cbb16211',1,'cutlass::gemm::RowMajorBlockSwizzle::get_batch_id()']]], ['get_5fdeleter',['get_deleter',['../classcutlass_1_1platform_1_1unique__ptr.html#a5b8d8ecafb4da336acd50e40cd42b6e0',1,'cutlass::platform::unique_ptr::get_deleter() noexcept'],['../classcutlass_1_1platform_1_1unique__ptr.html#aa427ab4ea4f2336ac6db28d53a4c11ac',1,'cutlass::platform::unique_ptr::get_deleter() const noexcept']]], - ['get_5fgrid_5flayout',['get_grid_layout',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#afc20f302a5cc5b736cfc1c91dfcaa57c',1,'cutlass::gemm::IdentityBlockSwizzle::get_grid_layout()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#a927ce3eed4cd22554f9e6fe20a1ccc6e',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_grid_layout()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#aa9fc825e19404ff527cb3d2dcc55ae1c',1,'cutlass::gemm::RowMajorBlockSwizzle::get_grid_layout()']]], + ['get_5fgrid_5flayout',['get_grid_layout',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#afc20f302a5cc5b736cfc1c91dfcaa57c',1,'cutlass::gemm::IdentityBlockSwizzle::get_grid_layout()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#a927ce3eed4cd22554f9e6fe20a1ccc6e',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_grid_layout()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#aa9fc825e19404ff527cb3d2dcc55ae1c',1,'cutlass::gemm::RowMajorBlockSwizzle::get_grid_layout()'],['../structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html#a70bdfa46a246b4fd6d000ffefe8778e4',1,'cutlass::reduction::DefaultBlockSwizzle::get_grid_layout()']]], + ['get_5foffset_5fto_5fresidue',['get_offset_to_residue',['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a9c0707b48565a522884cbd077aa299ee',1,'cutlass::gemm::GlobalLoadStream::Params']]], ['get_5fpointer_5foffset',['get_pointer_offset',['../structcutlass_1_1TensorRefBatchStrided.html#a3d1922402bba34d0bc865fcc3e1a9a5c',1,'cutlass::TensorRefBatchStrided']]], ['get_5fptr',['get_ptr',['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a6b066568947df37094e4125b0347faf1',1,'cutlass::detail::ScalarOrPointer']]], ['get_5fscalar',['get_scalar',['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a81bd7b4f50b8d7c5effe5291ad920380',1,'cutlass::detail::ScalarOrPointer']]], - ['get_5fthreadblock_5foffset',['get_threadblock_offset',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a386e5cf702b0dcc3d57f9fdb4ab5d236',1,'cutlass::gemm::IdentityBlockSwizzle::get_threadblock_offset()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#a380fb7f905548c52933ea411166424b4',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_threadblock_offset()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#af7c1b4e0afb08e893cd14a169a0b47cd',1,'cutlass::gemm::RowMajorBlockSwizzle::get_threadblock_offset()']]], + ['get_5fthreadblock_5fbounds',['get_threadblock_bounds',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a4afd3f4a5c5af95d33767d7fb9cf1232',1,'cutlass::gemm::IdentityBlockSwizzle::get_threadblock_bounds()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#aa6839013e363a88eae3300fdb85d11bd',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_threadblock_bounds()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#a99077ff45f25146064d5061ee2a274da',1,'cutlass::gemm::RowMajorBlockSwizzle::get_threadblock_bounds()']]], + ['get_5fthreadblock_5foffset',['get_threadblock_offset',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a386e5cf702b0dcc3d57f9fdb4ab5d236',1,'cutlass::gemm::IdentityBlockSwizzle::get_threadblock_offset()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#a380fb7f905548c52933ea411166424b4',1,'cutlass::gemm::ColumnMajorBlockSwizzle::get_threadblock_offset()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#af7c1b4e0afb08e893cd14a169a0b47cd',1,'cutlass::gemm::RowMajorBlockSwizzle::get_threadblock_offset()'],['../structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html#ac4e26c28b5b715340a399e86213ae4d1',1,'cutlass::reduction::DefaultBlockSwizzle::get_threadblock_offset()']]], ['getlinearidx',['getLinearIdx',['../namespacecutlass_1_1gemm.html#a2336880c866ef4e73bbe0c3dbcb6c40e',1,'cutlass::gemm']]], ['getlinearidx_3c_20swizzledirection_3a_3aboustrophedon_20_3e',['getLinearIdx< swizzleDirection::Boustrophedon >',['../namespacecutlass_1_1gemm.html#a37c566ad59d61647374f215c3d33f088',1,'cutlass::gemm']]], ['globalloadstream',['GlobalLoadStream',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#aec86bdf5d7d4ad1f7b6ebebcf2da8395',1,'cutlass::gemm::GlobalLoadStream']]], - ['globalloadstreampair',['GlobalLoadStreamPair',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#ab97442e24a1d6d64727b6320ab901ad1',1,'cutlass::gemm::GlobalLoadStreamPair']]], + ['globalloadstreampair',['GlobalLoadStreamPair',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a946312383970b405c34878758c673628',1,'cutlass::gemm::GlobalLoadStreamPair']]], ['good',['good',['../classcutlass_1_1TensorRef.html#a2dbee889626b4764d30e9058ef3a7ae8',1,'cutlass::TensorRef::good()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a8e1cfab3a220175dad58239c764a5d98',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::good()']]] ]; diff --git a/docs/search/functions_9.js b/docs/search/functions_9.js index d4b69c9e..5394957f 100644 --- a/docs/search/functions_9.js +++ b/docs/search/functions_9.js @@ -3,7 +3,7 @@ var searchData= ['identityblockswizzle',['IdentityBlockSwizzle',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#a046a5dfd01164df2abd514e9a52987c3',1,'cutlass::gemm::IdentityBlockSwizzle']]], ['igemmepilogue',['IgemmEpilogue',['../structcutlass_1_1gemm_1_1IgemmEpilogue.html#a599a50becefed561d063c1b834188aca',1,'cutlass::gemm::IgemmEpilogue::IgemmEpilogue()'],['../structcutlass_1_1gemm_1_1IgemmEpilogue_3_01GemmEpilogueTraits___00_01true_01_4.html#a0a1be1aab827127161406871ca75cbe0',1,'cutlass::gemm::IgemmEpilogue< GemmEpilogueTraits_, true >::IgemmEpilogue()']]], ['igemmfloattoint8converter',['IgemmFloatToInt8Converter',['../structcutlass_1_1gemm_1_1IgemmFloatToInt8Converter.html#ac65f020e93584b1bd3cdb849ff625026',1,'cutlass::gemm::IgemmFloatToInt8Converter']]], - ['igemmglobaliteratorab',['IgemmGlobalIteratorAb',['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a489fe448cd7f7e1f3805d33504f9d336',1,'cutlass::gemm::IgemmGlobalIteratorAb']]], + ['igemmglobaliteratorab',['IgemmGlobalIteratorAb',['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a37672bf5444d07c5ff56d4e710a7ff94',1,'cutlass::gemm::IgemmGlobalIteratorAb']]], ['igemmint8tofloatconverter',['IgemmInt8ToFloatConverter',['../structcutlass_1_1gemm_1_1IgemmInt8ToFloatConverter.html#a88a55a494d3a30d50477d50bf6a8804d',1,'cutlass::gemm::IgemmInt8ToFloatConverter']]], ['igemmswizzle',['IgemmSwizzle',['../structcutlass_1_1gemm_1_1IgemmSwizzle.html#ac041d287c966cf568599d7e462e81d5a',1,'cutlass::gemm::IgemmSwizzle']]], ['imag',['imag',['../classcutlass_1_1platform_1_1complex.html#a57360dbcada12083ecb92fba32fae801',1,'cutlass::platform::complex::imag() const'],['../classcutlass_1_1platform_1_1complex.html#a835363f62c6a079496c22074ab428651',1,'cutlass::platform::complex::imag()'],['../namespacecutlass_1_1platform.html#a18bc43cfdc4d066a6c10ad2002196ee6',1,'cutlass::platform::imag(cuFloatComplex const &z)'],['../namespacecutlass_1_1platform.html#af127cab494309510051d6b45914faf33',1,'cutlass::platform::imag(cuFloatComplex &z)'],['../namespacecutlass_1_1platform.html#a1739f880ca8398f808ee57a3f0c3c30b',1,'cutlass::platform::imag(cuDoubleComplex const &z)'],['../namespacecutlass_1_1platform.html#a8f356af3c5828b7d31279a5d075c5bc9',1,'cutlass::platform::imag(cuDoubleComplex &z)'],['../namespacecutlass_1_1platform.html#a714db927a811c86cda26fc12ca830356',1,'cutlass::platform::imag(complex< T > const &z)'],['../namespacecutlass_1_1platform.html#aa35ea4f804f9ed39578b595ba2620c1d',1,'cutlass::platform::imag(complex< T > &z)']]], @@ -14,9 +14,11 @@ var searchData= ['inc_5fstage',['inc_stage',['../structcutlass_1_1gemm_1_1SharedLoadStream.html#acf22fd09aa537943c16b900d66f1ec6f',1,'cutlass::gemm::SharedLoadStream::inc_stage()'],['../structcutlass_1_1gemm_1_1SharedStreamPair.html#ad4b9b1c1fe4b0c6961842d0eff6d7db7',1,'cutlass::gemm::SharedStreamPair::inc_stage()'],['../structcutlass_1_1TileLoadIterator.html#a64ce59c5deb58e208529761a44c7661d',1,'cutlass::TileLoadIterator::inc_stage()'],['../structcutlass_1_1TileStoreIterator.html#ad61206a742c8c5ab5bcd64b76ece9f74',1,'cutlass::TileStoreIterator::inc_stage()']]], ['inc_5fw',['inc_w',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a760404b7879a38364d7eef47fc1fe209',1,'cutlass::gemm::GemmGlobalIteratorAb::inc_w()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#ab1d9e606a89d3dd315df3d3efa48bcc2',1,'cutlass::gemm::GemmGlobalIteratorCd::inc_w()'],['../structcutlass_1_1TileLoadIterator.html#af4f964364fc54a2b9a431fa529f6c44c',1,'cutlass::TileLoadIterator::inc_w()'],['../structcutlass_1_1TileStoreIterator.html#aa676184bbd4c2e3f6c09dbc548e6c4e1',1,'cutlass::TileStoreIterator::inc_w()']]], ['increment',['increment',['../classcutlass_1_1ZipTileIterator.html#a738f23c02f4a7437981d9e3e22470808',1,'cutlass::ZipTileIterator']]], - ['initialize',['initialize',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a13395bf81eabdc539c935e179c31d7ca',1,'cutlass::gemm::GemmEpilogueTraits::Params::initialize()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a054aee5b4bf288cc1f5945f2521ef835',1,'cutlass::gemm::GlobalLoadStream::Params::initialize()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html#ad0602cf5d322e98e3e5990c84ae1e3f3',1,'cutlass::gemm::GemmGlobalIteratorAb::Params::initialize()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#ae24453fcdf9f21385b2637476746bbe5',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::initialize()'],['../structcutlass_1_1gemm_1_1SharedLoadStream_1_1Params.html#adb66103b905b35a1594c6f0bab65758a',1,'cutlass::gemm::SharedLoadStream::Params::initialize()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a9b62788c187fff49b0250c0070a41fa0',1,'cutlass::gemm::SharedLoadStream::initialize()'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a40023f0ffdd8bee4ccbcaac28222e983',1,'cutlass::gemm::GemmTraits::Params::initialize(GemmDesc_ const &desc)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#ac4cd0b74130ffc09e4ccb7b0acba87f8',1,'cutlass::gemm::GemmTraits::Params::initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, ScalarB const *d_b, Index ldb, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, ScalarD *d_d, Index ldd)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a95314e9a9279c4870f37f68a2357e064',1,'cutlass::gemm::GemmTraits::Params::initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, long long int batch_stride_A, ScalarB const *d_b, Index ldb, long long int batch_stride_B, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, long long int batch_stride_C, ScalarD *d_d, Index ldd, long long int batch_stride_D, Index batch_count)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#ad4089906220d4656ba075fb9afd1012c',1,'cutlass::gemm::LinearScaling::Params::initialize(Scalar _alpha, Scalar _beta)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a4946e45e10661307f562b27bad5cb72d',1,'cutlass::gemm::LinearScaling::Params::initialize(GemmDesc_ const &desc)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ad1b2291b898091ee1966b73bd1ad56fa',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(Scalar alpha, Scalar beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ab4dbffb32daffb64d2033e3091963507',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(Scalar const *alpha, Scalar const *beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a491496037bf6613e128e667f87fda696',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(GemmDesc_ const &desc)'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_1_1Params.html#a98867f4fc4daf790e309f8365e71cc8f',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Params::initialize()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a802c270449da579ed8661e915d27ce60',1,'cutlass::TileIteratorBase::Params::initialize(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a2ef70d9e13b5aa7e4a53233b153d7edd',1,'cutlass::TileIteratorBase::Params::initialize(Coord< 4 > const &stride)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a44870d45442ec45c8eaba46ab47a3ad9',1,'cutlass::TileIteratorBase::Params::initialize(long long _stride_d, Index _stride_h, Index _stride_w)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a1776bf51e1e23cde6c58529be58aafb9',1,'cutlass::TileIteratorBase::Params::initialize()'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#ac22d9229f3f8993d52b808dced173803',1,'cutlass::TileLoadIterator::Params::initialize(TensorRef const &ref)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a61b898051d0397b013407a4c90409aa0',1,'cutlass::TileLoadIterator::Params::initialize(SharedStorage const &storage)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a8869188d1c3b867fe6389aadf04837bf',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a9a40662ff01a14e0616ce1a0fbb70662',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a53917e002fd29a5650752c65f96b353d',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a3175746438646453e93e6e08e954bc8d',1,'cutlass::TileLoadIterator::Params::initialize()'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#aca14058b112b7d5105658457341726cb',1,'cutlass::TileStoreIterator::Params::initialize(SharedStorage &storage)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a0d36c05a4a757db5ebfe5f180b174b8c',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a23c9e9d1d2bed7e5d8579df9cc42dda3',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr, long long stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a6a7702de0e88449b3d1864b208adf87a',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#ad90642d96a3b5354813fbf4d9b04b83f',1,'cutlass::TileStoreIterator::Params::initialize()']]], - ['initialize_5fpredicates',['initialize_predicates',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#aba8142a7a3b43da97f7968d98f3ba018',1,'cutlass::gemm::GemmGlobalIteratorAb::initialize_predicates()'],['../structcutlass_1_1TileIteratorBase.html#aa58daf082cf97108e2e2ad0b1fd89208',1,'cutlass::TileIteratorBase::initialize_predicates()'],['../structcutlass_1_1TileLoadIterator.html#a60bbb4d4a6a5b8fb32e176e7d33f9e82',1,'cutlass::TileLoadIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../structcutlass_1_1TileLoadIterator.html#aa566cf603a5c19c59946a41b04642e49',1,'cutlass::TileLoadIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)'],['../structcutlass_1_1TileStoreIterator.html#acb6bc889b93d25c9e483a0b7297d7c89',1,'cutlass::TileStoreIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../structcutlass_1_1TileStoreIterator.html#a890a7239a89679662aeaea797ba32d32',1,'cutlass::TileStoreIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)'],['../classcutlass_1_1ZipTileIterator.html#a8f334010614b50d962e4769904d7b76f',1,'cutlass::ZipTileIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../classcutlass_1_1ZipTileIterator.html#ab0f93878bbe5aac072450f9bf1dd8b64',1,'cutlass::ZipTileIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)']]], + ['init_5fproblem',['init_problem',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#ae447cd662efb8099f040fb0dffc4f104',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]], + ['initialize',['initialize',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#aec998017d6046436cd4e4c933a2a89a6',1,'cutlass::gemm::SplitkPIGemmTraits::Params::initialize()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a13395bf81eabdc539c935e179c31d7ca',1,'cutlass::gemm::GemmEpilogueTraits::Params::initialize()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#aeb306cd3cb97471774b425fb50a861ae',1,'cutlass::gemm::GlobalLoadStream::Params::initialize()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html#a2eeb499326e3f595bd1d23d7214b2f62',1,'cutlass::gemm::GemmGlobalIteratorAb::Params::initialize()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#acee5d95468f486fe4e49e954dd410a89',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::initialize(Pointer pointer, int stride_d_, Index ldm, Index bound, Index epilogue_stride_w, Index epilogue_delta_w)'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a2cdfdad1f129b2458e63cbcb1df1714e',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::initialize(Pointer pointer, long long _stride_d, Index _stride_h, Index _inc_advance, Index _inc_h, Index _predicate_inc_advance, Index _predicate_inc_h, Index _predicate_offset)'],['../structcutlass_1_1gemm_1_1SharedLoadStream_1_1Params.html#adb66103b905b35a1594c6f0bab65758a',1,'cutlass::gemm::SharedLoadStream::Params::initialize()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a9b62788c187fff49b0250c0070a41fa0',1,'cutlass::gemm::SharedLoadStream::initialize()'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a40023f0ffdd8bee4ccbcaac28222e983',1,'cutlass::gemm::GemmTraits::Params::initialize(GemmDesc_ const &desc)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#ac4cd0b74130ffc09e4ccb7b0acba87f8',1,'cutlass::gemm::GemmTraits::Params::initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, ScalarB const *d_b, Index ldb, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, ScalarD *d_d, Index ldd)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a95314e9a9279c4870f37f68a2357e064',1,'cutlass::gemm::GemmTraits::Params::initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, long long int batch_stride_A, ScalarB const *d_b, Index ldb, long long int batch_stride_B, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, long long int batch_stride_C, ScalarD *d_d, Index ldd, long long int batch_stride_D, Index batch_count)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a9f0b980cba9d6c5b3df70dd73f455985',1,'cutlass::gemm::GemmTraits::Params::initialize(GemmDesc_ const &partitonK_desc, Index partitionK_count_)'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#ae2ac243a087c64c1c5b024a0392bfc22',1,'cutlass::gemm::GemmTraits::Params::initialize(Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, ScalarB const *d_b, Index ldb, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, ScalarD *d_d, Index ldd, Index partitionK_count_)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#ad4089906220d4656ba075fb9afd1012c',1,'cutlass::gemm::LinearScaling::Params::initialize(Scalar _alpha, Scalar _beta)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a4946e45e10661307f562b27bad5cb72d',1,'cutlass::gemm::LinearScaling::Params::initialize(GemmDesc_ const &desc)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ad1b2291b898091ee1966b73bd1ad56fa',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(Scalar alpha, Scalar beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ab4dbffb32daffb64d2033e3091963507',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(Scalar const *alpha, Scalar const *beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a491496037bf6613e128e667f87fda696',1,'cutlass::gemm::LinearScalingDevicePtr::Params::initialize(GemmDesc_ const &desc)'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd_1_1Params.html#a98867f4fc4daf790e309f8365e71cc8f',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Params::initialize()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#ac27f42beb3625c5183b76b26677c0cb0',1,'cutlass::reduction::BatchedReductionTraits::Params::initialize()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a351c89646a1e55428dee0f504fb14a51',1,'cutlass::TileIteratorBase::Params::initialize(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a2ef70d9e13b5aa7e4a53233b153d7edd',1,'cutlass::TileIteratorBase::Params::initialize(Coord< 4 > const &stride)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a9d376b0b6e6cf6b8285eb2a30536c772',1,'cutlass::TileIteratorBase::Params::initialize(Index _stride_d, Index _stride_h, Index _stride_w)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a1776bf51e1e23cde6c58529be58aafb9',1,'cutlass::TileIteratorBase::Params::initialize()'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#ac22d9229f3f8993d52b808dced173803',1,'cutlass::TileLoadIterator::Params::initialize(TensorRef const &ref)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a61b898051d0397b013407a4c90409aa0',1,'cutlass::TileLoadIterator::Params::initialize(SharedStorage const &storage)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a8869188d1c3b867fe6389aadf04837bf',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a9d85585c3a4770ebe4b121455a88bc76',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a194e3c9d92d01d42d6233866bac9c40a',1,'cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a3175746438646453e93e6e08e954bc8d',1,'cutlass::TileLoadIterator::Params::initialize()'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#aca14058b112b7d5105658457341726cb',1,'cutlass::TileStoreIterator::Params::initialize(SharedStorage &storage)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a0d36c05a4a757db5ebfe5f180b174b8c',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#ae348f51695962af2ab49dd085a4b48c1',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr, Index stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a0aace08208ee12b82afa8469446299b2',1,'cutlass::TileStoreIterator::Params::initialize(Scalar *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#ad90642d96a3b5354813fbf4d9b04b83f',1,'cutlass::TileStoreIterator::Params::initialize()']]], + ['initialize_5fpredicates',['initialize_predicates',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#aba8142a7a3b43da97f7968d98f3ba018',1,'cutlass::gemm::GemmGlobalIteratorAb::initialize_predicates()'],['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a51b852a4023411020cb44c292f109e3d',1,'cutlass::gemm::IgemmGlobalIteratorAb::initialize_predicates()'],['../structcutlass_1_1TileIteratorBase.html#aa58daf082cf97108e2e2ad0b1fd89208',1,'cutlass::TileIteratorBase::initialize_predicates()'],['../structcutlass_1_1TileLoadIterator.html#a60bbb4d4a6a5b8fb32e176e7d33f9e82',1,'cutlass::TileLoadIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../structcutlass_1_1TileLoadIterator.html#aa566cf603a5c19c59946a41b04642e49',1,'cutlass::TileLoadIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)'],['../structcutlass_1_1TileStoreIterator.html#acb6bc889b93d25c9e483a0b7297d7c89',1,'cutlass::TileStoreIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../structcutlass_1_1TileStoreIterator.html#a890a7239a89679662aeaea797ba32d32',1,'cutlass::TileStoreIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)'],['../classcutlass_1_1ZipTileIterator.html#a8f334010614b50d962e4769904d7b76f',1,'cutlass::ZipTileIterator::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))'],['../classcutlass_1_1ZipTileIterator.html#ab0f93878bbe5aac072450f9bf1dd8b64',1,'cutlass::ZipTileIterator::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)']]], ['intermediate_5ffragment',['intermediate_fragment',['../structcutlass_1_1TileLoadStream.html#af2727fc0ddeffd1cdaef751140aa6093',1,'cutlass::TileLoadStream::intermediate_fragment()'],['../structcutlass_1_1TileStoreStream.html#aff77aed0f1b1583b01a427fc935c5d71',1,'cutlass::TileStoreStream::intermediate_fragment()']]], + ['is_5flast_5fpartition',['is_last_partition',['../structcutlass_1_1gemm_1_1IdentityBlockSwizzle.html#afb0d53bc4c077c787f01e17931e06564',1,'cutlass::gemm::IdentityBlockSwizzle::is_last_partition()'],['../structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html#a5ae6e14979379e5c917309896bd6d483',1,'cutlass::gemm::ColumnMajorBlockSwizzle::is_last_partition()'],['../structcutlass_1_1gemm_1_1RowMajorBlockSwizzle.html#aba2c62f525e46ba1e4e55bd60868b505',1,'cutlass::gemm::RowMajorBlockSwizzle::is_last_partition()']]], ['is_5fpointer',['is_pointer',['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a95373f3d1b286c61cb204ba6a1282ce0',1,'cutlass::detail::ScalarOrPointer']]], ['is_5fzero',['is_zero',['../structcutlass_1_1PredicateVector.html#a1c4fe2bec906cd7937428ed6561ac79a',1,'cutlass::PredicateVector::is_zero()'],['../namespacecutlass_1_1gemm.html#a3e30ae89e6f7501725028144cd2d88cb',1,'cutlass::gemm::is_zero(T x)'],['../namespacecutlass_1_1gemm.html#a4a12fcfae60f26efa47bf0a79483d8ac',1,'cutlass::gemm::is_zero(half x)']]], ['iterator',['Iterator',['../classcutlass_1_1PredicateVector_1_1Iterator.html#a91b7d25cbd64e696ef23c87671f0b077',1,'cutlass::PredicateVector::Iterator::Iterator(Iterator const &it)'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a83c2f584bd061f0b9b6b2a6cddf5b038',1,'cutlass::PredicateVector::Iterator::Iterator(PredicateVector &_vec, int _start=0)']]], diff --git a/docs/search/functions_b.js b/docs/search/functions_b.js index 6b8f6090..79c1329f 100644 --- a/docs/search/functions_b.js +++ b/docs/search/functions_b.js @@ -1,6 +1,6 @@ var searchData= [ - ['launch',['Launch',['../structcutlass_1_1gemm_1_1Launch.html#a8552a524b9419f60bf8ef3c6b8528d27',1,'cutlass::gemm::Launch::Launch()'],['../structcutlass_1_1gemm_1_1Launch_3_01Gemm_00_01false_01_4.html#ab7a89806834a5fa8022daae4180e6180',1,'cutlass::gemm::Launch< Gemm, false >::Launch()'],['../structcutlass_1_1gemm_1_1Gemm.html#a77ae137aec79b4061a9ffa09aabf641c',1,'cutlass::gemm::Gemm::launch(Params const &params, cudaStream_t stream=cudaStreamDefault)'],['../structcutlass_1_1gemm_1_1Gemm.html#a4f4122a2ae8b9b09a9660e5c2ca9e906',1,'cutlass::gemm::Gemm::launch(CUfunction kernel, Params const &params, CUstream stream=CU_STREAM_LEGACY)']]], + ['launch',['launch',['../structcutlass_1_1gemm_1_1DeviceGemm.html#a9fe60120b00662517208bab3734fe0b0',1,'cutlass::gemm::DeviceGemm::launch()'],['../structcutlass_1_1gemm_1_1Gemm.html#a77ae137aec79b4061a9ffa09aabf641c',1,'cutlass::gemm::Gemm::launch(Params const &params, cudaStream_t stream=cudaStreamDefault)'],['../structcutlass_1_1gemm_1_1Gemm.html#a4f4122a2ae8b9b09a9660e5c2ca9e906',1,'cutlass::gemm::Gemm::launch(CUfunction kernel, Params const &params, CUstream stream=CU_STREAM_LEGACY)'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#ab059393ac467ac365bd0b45c200befdf',1,'cutlass::reduction::BatchedReduction::launch()'],['../structcutlass_1_1gemm_1_1Launch.html#a8552a524b9419f60bf8ef3c6b8528d27',1,'cutlass::gemm::Launch::Launch()'],['../structcutlass_1_1gemm_1_1Launch_3_01Gemm_00_01false_01_4.html#ab7a89806834a5fa8022daae4180e6180',1,'cutlass::gemm::Launch< Gemm, false >::Launch()']]], ['lcm',['lcm',['../namespacecutlass.html#af07506fee11de882d926f4e8237eef09',1,'cutlass']]], ['leading_5fdim',['leading_dim',['../classcutlass_1_1TensorRef.html#aa60b92372db1da1d2aa997d6a03e01ca',1,'cutlass::TensorRef::leading_dim()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a6c580a451a36143d1eb0e409e7b13e33',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::leading_dim()']]], ['linearscaling',['LinearScaling',['../structcutlass_1_1gemm_1_1LinearScaling.html#ae5ed200fe8c45b6478d3893e67da0ebe',1,'cutlass::gemm::LinearScaling::LinearScaling()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#a46965529bd1384465c6f2b8c2a244889',1,'cutlass::gemm::LinearScaling::LinearScaling(Params const &_params)']]], diff --git a/docs/search/functions_c.js b/docs/search/functions_c.js index 2a79fffa..8a5aa80a 100644 --- a/docs/search/functions_c.js +++ b/docs/search/functions_c.js @@ -3,7 +3,8 @@ var searchData= ['m',['m',['../structcutlass_1_1gemm_1_1GemmCoord.html#a9167769a2b915eb92fb4ca37b9212793',1,'cutlass::gemm::GemmCoord::m() const'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a8199f5e336a20c31e54d68b11e9fa3d3',1,'cutlass::gemm::GemmCoord::m()']]], ['make_5fcoord',['make_Coord',['../namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9',1,'cutlass::make_Coord(int _0)'],['../namespacecutlass.html#a61d81e5363bcb8a7f6dd70f053242564',1,'cutlass::make_Coord(int _0, int _1)'],['../namespacecutlass.html#a25acf680a7d2592c957a7ac603f4c361',1,'cutlass::make_Coord(int _0, int _1, int _2)'],['../namespacecutlass.html#a9410b1f5956d3aaf4584e65d047428fc',1,'cutlass::make_Coord(int _0, int _1, int _2, int _3)']]], ['make_5fcoord_5ffrom_5fshape',['make_Coord_from_shape',['../namespacecutlass.html#a90028a415a05ce09073860e5c761aa6f',1,'cutlass']]], - ['make_5fpair',['make_pair',['../namespacecutlass_1_1platform.html#a90ce74c7faa4e27c888ce56e957b73d5',1,'cutlass::platform']]], + ['make_5fpair',['make_Pair',['../namespacecutlass_1_1platform.html#ab9c6c277b6c560f5b719502520fbe9f1',1,'cutlass::platform::make_Pair(T1 const &first, T2 const &second)'],['../namespacecutlass_1_1platform.html#a90ce74c7faa4e27c888ce56e957b73d5',1,'cutlass::platform::make_pair(T1 t, T2 u)']]], + ['make_5ftensorrefbatchstrided',['make_TensorRefBatchStrided',['../namespacecutlass.html#a71f3c955edfa2b5574a1cbff780cdff6',1,'cutlass']]], ['make_5fzero',['make_zero',['../namespacecutlass.html#aa03883e612d292e1b53eedd46e08ccd1',1,'cutlass::make_zero(Scalar_ &x)'],['../namespacecutlass.html#a55b5b15eadf125d5ddddee1ea22191ee',1,'cutlass::make_zero(Vector< Scalar_, kLanes_ > &vec)']]], ['make_5fzipconvert',['make_ZipConvert',['../namespacecutlass.html#adad916101ca58fc9714362c611a0cad8',1,'cutlass']]], ['make_5fzipfragment',['make_ZipFragment',['../namespacecutlass.html#a07b0da6c47bbd827779aa871249ff4b6',1,'cutlass']]], @@ -12,6 +13,7 @@ var searchData= ['matrixcoord',['MatrixCoord',['../structcutlass_1_1MatrixCoord.html#a36a8a680a466b55325eb0c0cb9fc29c6',1,'cutlass::MatrixCoord::MatrixCoord()'],['../structcutlass_1_1MatrixCoord.html#a64bddbf8238dc937a01a140722f7f39c',1,'cutlass::MatrixCoord::MatrixCoord(Coord< 2, Index > const &coord)'],['../structcutlass_1_1MatrixCoord.html#ac77b18e67be18cfdfe1935939e7f2017',1,'cutlass::MatrixCoord::MatrixCoord(Index row, Index column)']]], ['max',['max',['../namespacecutlass_1_1platform.html#af6a9a165e53d7e85ae121d5789aa03e0',1,'cutlass::platform']]], ['min',['min',['../namespacecutlass_1_1platform.html#a57c071d2a7305dd4ec60542e66b0c81c',1,'cutlass::platform']]], + ['mn',['mn',['../structcutlass_1_1gemm_1_1GemmCoord.html#adf22daa127e7dc1821e950843c5cff47',1,'cutlass::gemm::GemmCoord']]], ['move_5fto_5fresidue',['move_to_residue',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac269a9280a55d3988ca60f571bdf7f29',1,'cutlass::gemm::GlobalLoadStream::move_to_residue()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#ab94c0c95d6d4e019563ba8a142f9d410',1,'cutlass::gemm::GlobalLoadStreamPair::move_to_residue()']]], ['multiply',['multiply',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#a934c0d74c70fc87796ecb5cde50fd516',1,'cutlass::gemm::FragmentMultiplyAdd::multiply()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#a6bed70e7074931419e9441688aee00ea',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::multiply()']]], ['multiply_5fadd',['multiply_add',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#aafa37c2e1ffd2f7d7031c24c732157d8',1,'cutlass::gemm::FragmentMultiplyAdd::multiply_add()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#a92edee5611d25b60cdab6a1c8e32141f',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::multiply_add()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#ae0ea662652907b60140598dad777c5ab',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::multiply_add()'],['../structcutlass_1_1gemm_1_1Gemm.html#a2e844037d2527b842de3590cb783a49f',1,'cutlass::gemm::Gemm::multiply_add()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#aaf8ea4aaf393488f03ba7fb7af264940',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::multiply_add()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#ad9d8e47e8896d8d4eab538aa78b56e47',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::multiply_add()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a7989d48e4c2e16b7804b813630f347cb',1,'cutlass::gemm::ThreadMultiplyAdd::multiply_add()']]] diff --git a/docs/search/functions_e.js b/docs/search/functions_e.js index 26a243fb..1b90ec62 100644 --- a/docs/search/functions_e.js +++ b/docs/search/functions_e.js @@ -1,7 +1,6 @@ var searchData= [ ['offset',['offset',['../classcutlass_1_1TensorRef.html#a4da903ecbeaaf80c35084e8779e920a1',1,'cutlass::TensorRef::offset()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a07c7f56e724cfbc844777e8ee9f616b5',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::offset()']]], - ['operator',['operator',['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ab0ea61995928c0935ec03c260463ef15',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#aa6e59a5ecb15c9842c5ee80cc168f679',1,'cutlass::TensorRefArray::ConstIterator::operator()']]], ['operator_20_26_3d',['operator &=',['../structcutlass_1_1PredicateVector.html#a3dd9aeba8f3cbe7a8198d68d91a0bbb9',1,'cutlass::PredicateVector']]], ['operator_20b_2a',['operator B*',['../structcutlass_1_1platform_1_1is__base__of__helper_1_1dummy.html#a8d100273203db9018dffbbe84e0b6c76',1,'cutlass::platform::is_base_of_helper::dummy']]], ['operator_20bool',['operator bool',['../structcutlass_1_1Coord.html#a1781b3c5a2d653b0c1718ec3154ae48f',1,'cutlass::Coord::operator bool()'],['../classcutlass_1_1platform_1_1unique__ptr.html#a5791650488ae864f10ad04bec4a31005',1,'cutlass::platform::unique_ptr::operator bool()']]], @@ -11,26 +10,26 @@ var searchData= ['operator_20scalar',['operator Scalar',['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a896f35e776c1291ceda0f432cc3da654',1,'cutlass::detail::ScalarOrPointer']]], ['operator_20value_5ftype',['operator value_type',['../structcutlass_1_1platform_1_1integral__constant.html#a55d25116387f1c6d978462b1d245d675',1,'cutlass::platform::integral_constant']]], ['operator_21',['operator!',['../structcutlass_1_1Coord.html#a232095edae2f74c01a3c8abf68166e02',1,'cutlass::Coord']]], - ['operator_21_3d',['operator!=',['../structcutlass_1_1Coord.html#a353d847675e5ba2402c407dcd4ae4de3',1,'cutlass::Coord::operator!=()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a3d06715a77740034697686a7977cb685',1,'cutlass::PredicateVector::ConstIterator::operator!=()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a08cb4d1395b88a4451fbb1a27e010887',1,'cutlass::PredicateVector::Iterator::operator!=()'],['../namespacecutlass_1_1platform.html#aa8b8911c3529ee9d433b0c4d90bde50c',1,'cutlass::platform::operator!=(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a248f49adf09654d2cd04bd2760ab2566',1,'cutlass::platform::operator!=(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], + ['operator_21_3d',['operator!=',['../structcutlass_1_1Coord.html#a353d847675e5ba2402c407dcd4ae4de3',1,'cutlass::Coord::operator!=()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a3d06715a77740034697686a7977cb685',1,'cutlass::PredicateVector::ConstIterator::operator!=()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a08cb4d1395b88a4451fbb1a27e010887',1,'cutlass::PredicateVector::Iterator::operator!=()'],['../namespacecutlass_1_1platform.html#aa8b8911c3529ee9d433b0c4d90bde50c',1,'cutlass::platform::operator!=(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a223ac1d2272e9324809d67182bdd24b6',1,'cutlass::platform::operator!=(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#a248f49adf09654d2cd04bd2760ab2566',1,'cutlass::platform::operator!=(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], ['operator_28_29',['operator()',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset.html#ab8adb983c0573a0015469f40a75287be',1,'cutlass::gemm::GemmGlobalTileTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset.html#abaf0d4459a64b3e9533758b59600bd52',1,'cutlass::gemm::GemmGlobalTileCdTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits_1_1ThreadOffset.html#a1e357fe5bc1daef333e6be776a21a2ca',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits_1_1ThreadOffset.html#a4e35f0b2ca63a6b981230b73f843f726',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits_1_1ThreadOffset.html#a51a325b435b9a53effaa003b3670e410',1,'cutlass::gemm::GemmSharedLoadTileATraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits_1_1ThreadOffset.html#a5b4a635a521364357386259b0f84c0ba',1,'cutlass::gemm::GemmSharedLoadTileBTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits_1_1ThreadOffset.html#a4f9cca16303ac9ae29a0eaa11dcc23b6',1,'cutlass::gemm::GemmSharedStoreTileDTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits_1_1ThreadOffset.html#ace1b936cab289c6884e673312283d422',1,'cutlass::gemm::GemmSharedLoadTileDTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits_1_1ThreadOffset.html#a9fc1ca09733113f80fe5fe45db3d9b81',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits_1_1ThreadOffset.html#a80562f5ceab2049c3b7834c2891a07ee',1,'cutlass::gemm::IgemmGlobalTileTraits::ThreadOffset::operator()()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits_1_1ThreadOffset.html#ad7537f8b30ee6913cf4afa1d3c054e68',1,'cutlass::gemm::WmmaGemmGlobalIteratorCdTraits::ThreadOffset::operator()()'],['../structcutlass_1_1MatrixLayout_1_1RowMajor.html#a736620aef395e4224d7aae098573aa34',1,'cutlass::MatrixLayout::RowMajor::operator()()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajor.html#af51e07c6605524581e5d27d290c8b8d2',1,'cutlass::MatrixLayout::ColumnMajor::operator()()'],['../structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html#a5199cb7f7c10f6123c63703453b7937c',1,'cutlass::MatrixLayout::RowMajorInterleaved::operator()()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved.html#a9dbf79e5df5bcf52d54a699d2587319d',1,'cutlass::MatrixLayout::ColumnMajorInterleaved::operator()()'],['../structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html#a512248a443c5914fab6aeabc4a73978e',1,'cutlass::MatrixLayout::ContiguousLayout::operator()()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear.html#a24c06bb7e64a8015ac528b3ae954a689',1,'cutlass::MatrixLayout::ColumnMajorBlockLinear::operator()()'],['../structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear.html#abde0a4a7c487da0c78ea2519323c04af',1,'cutlass::MatrixLayout::RowMajorBlockLinear::operator()()'],['../structcutlass_1_1IdentityTensorMapFunc.html#a3922130841c34d3ce8c112ee6fae4ca1',1,'cutlass::IdentityTensorMapFunc::operator()()'],['../structcutlass_1_1RegularTilePredicateFunctor.html#a084c0a2732827a74f7a30873c5883827',1,'cutlass::RegularTilePredicateFunctor::operator()()'],['../structcutlass_1_1TiledThreadOffset.html#a7290b6ca9ef0bede634f69bd05450fa2',1,'cutlass::TiledThreadOffset::operator()()'],['../structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset.html#a0e4edffb19218ccbf77995f6d20df000',1,'cutlass::TileTraitsWarpRake::ThreadOffset::operator()()'],['../structcutlass_1_1platform_1_1plus.html#a3bf1e5147df4287bf58ad8f11ea0d98c',1,'cutlass::platform::plus::operator()()'],['../structcutlass_1_1platform_1_1less.html#adfb49ee70a700a8483c70b4b353f6bc5',1,'cutlass::platform::less::operator()()'],['../structcutlass_1_1platform_1_1greater.html#a8d56cf343dd33acebe19d0b51abe3978',1,'cutlass::platform::greater::operator()()'],['../structcutlass_1_1platform_1_1integral__constant.html#a5271a533526a535ae8b783c736252f18',1,'cutlass::platform::integral_constant::operator()()'],['../structcutlass_1_1platform_1_1default__delete.html#a59e6e3cc95685ac34fa6f9cf301b3a15',1,'cutlass::platform::default_delete::operator()()'],['../structcutlass_1_1platform_1_1default__delete_3_01T[]_4.html#a16c5595a5aec7d7ee34e38bef4a66c87',1,'cutlass::platform::default_delete< T[]>::operator()()']]], - ['operator_2a',['operator*',['../structcutlass_1_1Coord.html#a2e94c093f82908ff3dba4f23b5d10033',1,'cutlass::Coord::operator*()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a5a158b5f3c0b1779972b25aa52be1164',1,'cutlass::gemm::GemmCoord::operator*()'],['../structcutlass_1_1MatrixCoord.html#ac68a57c17811b0a04dc6fb21423ab226',1,'cutlass::MatrixCoord::operator*()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#abbc2bceb6cf8d7f168b8a00eb48c0946',1,'cutlass::PredicateVector::ConstIterator::operator*()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a049b568e0f5de011ee76ce79bcedbab4',1,'cutlass::PredicateVector::Iterator::operator*()'],['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html#a78016158f99dd87e822a2a2cbd4cec78',1,'cutlass::PredicateVector::TrivialIterator::operator*()'],['../structcutlass_1_1TileCoord.html#ab8fbb13cc5ea4f580a7fc32963de9553',1,'cutlass::TileCoord::operator*()'],['../classcutlass_1_1platform_1_1unique__ptr.html#a45a3cb6d8641a6130991d56e84cbb38b',1,'cutlass::platform::unique_ptr::operator*()'],['../namespacecutlass_1_1platform.html#a34950f01ed89108b1d79c651aa58ecba',1,'cutlass::platform::operator*(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#aef5da2c88431ab40b58fdd6afea13dba',1,'cutlass::platform::operator*(complex< T > const &lhs, T const &s)'],['../namespacecutlass_1_1platform.html#a289b6e31bdc0be1302b8dbab55eb568c',1,'cutlass::platform::operator*(T const &s, complex< T > const &rhs)']]], + ['operator_2a',['operator*',['../structcutlass_1_1Coord.html#a2e94c093f82908ff3dba4f23b5d10033',1,'cutlass::Coord::operator*()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a5a158b5f3c0b1779972b25aa52be1164',1,'cutlass::gemm::GemmCoord::operator*()'],['../structcutlass_1_1MatrixCoord.html#ac68a57c17811b0a04dc6fb21423ab226',1,'cutlass::MatrixCoord::operator*()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#abbc2bceb6cf8d7f168b8a00eb48c0946',1,'cutlass::PredicateVector::ConstIterator::operator*()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a049b568e0f5de011ee76ce79bcedbab4',1,'cutlass::PredicateVector::Iterator::operator*()'],['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html#a78016158f99dd87e822a2a2cbd4cec78',1,'cutlass::PredicateVector::TrivialIterator::operator*()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a361260c06994a39da799c8768559b45c',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator*()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#ad5ab7b50a709657cc988d139071b44d6',1,'cutlass::TensorRefArray::ConstIterator::operator*()'],['../structcutlass_1_1TileCoord.html#ab8fbb13cc5ea4f580a7fc32963de9553',1,'cutlass::TileCoord::operator*()'],['../classcutlass_1_1platform_1_1unique__ptr.html#a45a3cb6d8641a6130991d56e84cbb38b',1,'cutlass::platform::unique_ptr::operator*()'],['../namespacecutlass.html#a04d3e622868b4e08257ea498d2631219',1,'cutlass::operator*(T s, Coord< Rank, Index > coord)'],['../namespacecutlass.html#a58d4e5861f8df74dd2431a908aee887c',1,'cutlass::operator*(Coord< Rank, Index > coord, T s)'],['../namespacecutlass_1_1platform.html#a34950f01ed89108b1d79c651aa58ecba',1,'cutlass::platform::operator*(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#aef5da2c88431ab40b58fdd6afea13dba',1,'cutlass::platform::operator*(complex< T > const &lhs, T const &s)'],['../namespacecutlass_1_1platform.html#a289b6e31bdc0be1302b8dbab55eb568c',1,'cutlass::platform::operator*(T const &s, complex< T > const &rhs)']]], ['operator_2a_3d',['operator*=',['../structcutlass_1_1Coord.html#ad4303b578b72b5cb2a0198375290e168',1,'cutlass::Coord::operator*=()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a69fb0bb5e73f35d3c8df71a0174d6520',1,'cutlass::gemm::GemmCoord::operator*=()'],['../structcutlass_1_1MatrixCoord.html#a5fd3c3b58af1147a5c73657c05a16f5b',1,'cutlass::MatrixCoord::operator*=()'],['../structcutlass_1_1TileCoord.html#ae946b3af6b795d26632da7ca66b3751c',1,'cutlass::TileCoord::operator*=()'],['../namespacecutlass_1_1platform.html#a9a4928ab582beee4e7ddd337529d45ac',1,'cutlass::platform::operator*=(complex< T > &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a21adde191e48e604908ce886690c6d6b',1,'cutlass::platform::operator*=(complex< T > &lhs, T s)']]], ['operator_2b',['operator+',['../structcutlass_1_1Coord.html#ab37672637771a70910df9aa1a0cffddc',1,'cutlass::Coord::operator+()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a675efbb9ed360888faf3c333708ae4d5',1,'cutlass::gemm::GemmCoord::operator+()'],['../structcutlass_1_1MatrixCoord.html#a25236953237f965965b1c9b7a04ba26e',1,'cutlass::MatrixCoord::operator+()'],['../classcutlass_1_1TensorRef.html#a0a4fd9ace579b46bc9d575b8adc6882f',1,'cutlass::TensorRef::operator+()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#ad054f14b5580c9480d671b8fc8ef016a',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator+()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a1d48f4fea3fa85a7bf1b26b421387afd',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator+()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a9fcd43018e60f12cb328859c76ec7891',1,'cutlass::TensorRefArray::ConstIterator::operator+()'],['../classcutlass_1_1TensorView.html#aa2390d8e127a51df239affd2ca36e97a',1,'cutlass::TensorView::operator+()'],['../structcutlass_1_1TileCoord.html#a3bfa2daa0e63144c1e8510ba336f185b',1,'cutlass::TileCoord::operator+()'],['../namespacecutlass_1_1platform.html#a93b0f0d73fa3cf11c5018460b257837c',1,'cutlass::platform::operator+()']]], ['operator_2b_2b',['operator++',['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a10ee4bb2f206432aa5ee1a83cb046b70',1,'cutlass::PredicateVector::ConstIterator::operator++()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a977a99af3166a58d5bc5a613a1abe7d5',1,'cutlass::PredicateVector::ConstIterator::operator++(int)'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a7dddc0a6b5c958156beef29bedfd1bd3',1,'cutlass::PredicateVector::Iterator::operator++()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a6c7333ad14d545cafc707e78752bf1e3',1,'cutlass::PredicateVector::Iterator::operator++(int)'],['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html#ad24e9b451064e99fb19955f772c30e6a',1,'cutlass::PredicateVector::TrivialIterator::operator++()'],['../structcutlass_1_1PredicateVector_1_1TrivialIterator.html#aa35b9165920b83b9a5a888df83925051',1,'cutlass::PredicateVector::TrivialIterator::operator++(int)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a3481d6f41defd25ab574bb19ee5fe424',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator++()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#aca860ff7f125e02f35c7dc174e84708d',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator++(int)'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a8ce80124ab0f4ab9981f1a4d64d976a5',1,'cutlass::TensorRefArray::ConstIterator::operator++()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a051f34d90c0680dc5f4e4e1c4d79e929',1,'cutlass::TensorRefArray::ConstIterator::operator++(int)'],['../classcutlass_1_1ZipTileIterator.html#a47d270fc4a119d7b95b2d5dd3ee5b87b',1,'cutlass::ZipTileIterator::operator++()']]], ['operator_2b_3d',['operator+=',['../structcutlass_1_1Coord.html#ae4f2cb12b84411118cb93e7c4cb88b20',1,'cutlass::Coord::operator+=()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a5465f7308778eac5d14d8020179a65e0',1,'cutlass::gemm::GemmCoord::operator+=()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a8e79a153de72eef10d90bfd02b5dd27e',1,'cutlass::gemm::GlobalLoadStream::operator+=()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a32cd0a03868f52b172d031f23e2c08af',1,'cutlass::gemm::GemmGlobalIteratorAb::operator+=()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#aa6845b5a0fa36eb185caafea791e53ec',1,'cutlass::gemm::GemmGlobalIteratorCd::operator+=()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a769813dcffe1767aab49ac30b838a5f4',1,'cutlass::gemm::GlobalLoadStreamPair::operator+=()'],['../structcutlass_1_1MatrixCoord.html#ad105615dbf7ede75caa0e778c873bd06',1,'cutlass::MatrixCoord::operator+=()'],['../classcutlass_1_1TensorRef.html#a727d9c25d6df0aa9e795123b638b9306',1,'cutlass::TensorRef::operator+=()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a0753aeb57365a976bc0a88481af504cb',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator+=()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ab07a5d1a4ec6d96ec53e868b3a6d7cae',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator+=()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a22b87d281057c8e03b80db7046c54dd8',1,'cutlass::TensorRefArray::ConstIterator::operator+=()'],['../classcutlass_1_1TensorView.html#a4fa8fa35d00eb4d0097da492c738cddc',1,'cutlass::TensorView::operator+=()'],['../structcutlass_1_1TileCoord.html#a812760c633ea813db8a2bc24826c68df',1,'cutlass::TileCoord::operator+=()'],['../structcutlass_1_1TileLoadIterator.html#a723041057b1e8212e075959a22c0c120',1,'cutlass::TileLoadIterator::operator+=()'],['../structcutlass_1_1TileStoreIterator.html#a57b284e6cbff892d45e5cfeb0ae1e3ed',1,'cutlass::TileStoreIterator::operator+=()'],['../classcutlass_1_1ZipTileIterator.html#a60ba516d7382cb7788d5430023f7fc44',1,'cutlass::ZipTileIterator::operator+=(int count)'],['../classcutlass_1_1ZipTileIterator.html#a200a4e88ee6d23dcc80e974c77f8fa1f',1,'cutlass::ZipTileIterator::operator+=(Coord< 3 > const &offset)'],['../namespacecutlass_1_1platform.html#a34c5ca341da805d5d1bc703c53c96d9d',1,'cutlass::platform::operator+=()']]], - ['operator_2d',['operator-',['../structcutlass_1_1Coord.html#a6b876f61a85a4a4ef3763b6742bfaa6b',1,'cutlass::Coord::operator-()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a762fd45e61477d700c82bfd67443c6f9',1,'cutlass::gemm::GemmCoord::operator-()'],['../structcutlass_1_1MatrixCoord.html#aa462303d75a5d98b680b6e20080ce877',1,'cutlass::MatrixCoord::operator-()'],['../classcutlass_1_1TensorRef.html#a4a56b323aed2a3b2c843c276b68378fa',1,'cutlass::TensorRef::operator-()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#afde28cda18918d3e177d3e5024ed3dd4',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator-()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ad1d8099e8d63b6d88c53738ec68a7589',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator-(Index idx)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ab92bc090d6753ff5e17676ba85a1e478',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator-(ConstIterator const &it)'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a143ec893406d930aa4c5aa860052197e',1,'cutlass::TensorRefArray::ConstIterator::operator-()'],['../classcutlass_1_1TensorView.html#a1e4b2bb02c5843898f72f62787403add',1,'cutlass::TensorView::operator-()'],['../structcutlass_1_1TileCoord.html#a9f274d8e93f9cd3e0a9699e11b85fa7c',1,'cutlass::TileCoord::operator-()'],['../namespacecutlass_1_1platform.html#aa486433971cdd6b7648c1e5459c42763',1,'cutlass::platform::operator-()']]], + ['operator_2d',['operator-',['../structcutlass_1_1Coord.html#a6b876f61a85a4a4ef3763b6742bfaa6b',1,'cutlass::Coord::operator-()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a762fd45e61477d700c82bfd67443c6f9',1,'cutlass::gemm::GemmCoord::operator-()'],['../structcutlass_1_1MatrixCoord.html#aa462303d75a5d98b680b6e20080ce877',1,'cutlass::MatrixCoord::operator-()'],['../classcutlass_1_1TensorRef.html#a4a56b323aed2a3b2c843c276b68378fa',1,'cutlass::TensorRef::operator-()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#afde28cda18918d3e177d3e5024ed3dd4',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator-()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ad1d8099e8d63b6d88c53738ec68a7589',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator-(Index idx)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#acc042cd91214942a0861517132938f55',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator-(ConstIterator const &it)'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a143ec893406d930aa4c5aa860052197e',1,'cutlass::TensorRefArray::ConstIterator::operator-()'],['../classcutlass_1_1TensorView.html#a1e4b2bb02c5843898f72f62787403add',1,'cutlass::TensorView::operator-()'],['../structcutlass_1_1TileCoord.html#a9f274d8e93f9cd3e0a9699e11b85fa7c',1,'cutlass::TileCoord::operator-()'],['../namespacecutlass_1_1platform.html#aa486433971cdd6b7648c1e5459c42763',1,'cutlass::platform::operator-()']]], ['operator_2d_2d',['operator--',['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a2763012a9284e97650b14e20c5668286',1,'cutlass::PredicateVector::ConstIterator::operator--()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#a2910a714d34a688b8ea560ea2933436b',1,'cutlass::PredicateVector::ConstIterator::operator--(int)'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a69fb5b24eeb43331b7401768e8584e61',1,'cutlass::PredicateVector::Iterator::operator--()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#aad709a11f43b84c88e3ce3a0394f8e8a',1,'cutlass::PredicateVector::Iterator::operator--(int)'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ad5290f0e7814892cb4fff55e9518562b',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator--()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a09909fbe2e4365b5f34ddb61658f27b3',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator--(int)'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a0f395558e2c589ac48179447a23b59d8',1,'cutlass::TensorRefArray::ConstIterator::operator--()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#ac9019febbc8b6bfea06ac4d23d253d57',1,'cutlass::TensorRefArray::ConstIterator::operator--(int)'],['../classcutlass_1_1ZipTileIterator.html#a3d22dab34b2abd0d05c00668f8591151',1,'cutlass::ZipTileIterator::operator--()']]], ['operator_2d_3d',['operator-=',['../structcutlass_1_1Coord.html#a304334cbcad636d7b058fdc6310f0e6b',1,'cutlass::Coord::operator-=()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a12ba250be3d5474b7c6fc4eddd4f58d5',1,'cutlass::gemm::GemmCoord::operator-=()'],['../structcutlass_1_1MatrixCoord.html#a6feef48cf24733d22ca53a27cbc33ac0',1,'cutlass::MatrixCoord::operator-=()'],['../classcutlass_1_1TensorRef.html#a5b5af26da32278d19c27c0d5a4a18890',1,'cutlass::TensorRef::operator-=()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a11964d045ac8e41c80026515adb03008',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator-=()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#ac4018b51e78842fb252d6917738fa571',1,'cutlass::TensorRefBatchStrided::ConstIterator::operator-=()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#ae3561f863072cd7be7dcdee2cb5cc1f0',1,'cutlass::TensorRefArray::ConstIterator::operator-=()'],['../classcutlass_1_1TensorView.html#abc088fad6debb6a0ceb04c5d2767e81b',1,'cutlass::TensorView::operator-=()'],['../structcutlass_1_1TileCoord.html#a02da20e580962fe0754a772842045389',1,'cutlass::TileCoord::operator-=()'],['../classcutlass_1_1ZipTileIterator.html#a7bae0f9b789e75bb154c5f37db50e14c',1,'cutlass::ZipTileIterator::operator-=()'],['../namespacecutlass_1_1platform.html#abff9e10130849ea46f6245f4e8cc2cc9',1,'cutlass::platform::operator-=()']]], ['operator_2d_3e',['operator->',['../classcutlass_1_1platform_1_1unique__ptr.html#afa52edcaef23461ce1f9c1dac349c24b',1,'cutlass::platform::unique_ptr']]], - ['operator_2f',['operator/',['../structcutlass_1_1Coord.html#a9bb07631f09efc80219413ac8309f568',1,'cutlass::Coord::operator/()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a41770bb99f02f4debbafe95e019ce02b',1,'cutlass::gemm::GemmCoord::operator/()'],['../structcutlass_1_1MatrixCoord.html#aa89b196410d25d8c9ed3746fb6833374',1,'cutlass::MatrixCoord::operator/()'],['../structcutlass_1_1TileCoord.html#a5d2cc915343a3b90fb530348ddd329d2',1,'cutlass::TileCoord::operator/()'],['../namespacecutlass_1_1platform.html#a4fe79c19fb599cd9b85d08676a711f9f',1,'cutlass::platform::operator/(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a33f75d77ff629335c9666128837c4581',1,'cutlass::platform::operator/(complex< T > const &lhs, T const &s)'],['../namespacecutlass_1_1platform.html#ae302b414576ecb5afb0cdfdda6b30ad3',1,'cutlass::platform::operator/(T const &s, complex< T > const &rhs)']]], + ['operator_2f',['operator/',['../structcutlass_1_1Coord.html#a9bb07631f09efc80219413ac8309f568',1,'cutlass::Coord::operator/()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a41770bb99f02f4debbafe95e019ce02b',1,'cutlass::gemm::GemmCoord::operator/()'],['../structcutlass_1_1MatrixCoord.html#aa89b196410d25d8c9ed3746fb6833374',1,'cutlass::MatrixCoord::operator/()'],['../structcutlass_1_1TileCoord.html#a5d2cc915343a3b90fb530348ddd329d2',1,'cutlass::TileCoord::operator/()'],['../namespacecutlass.html#a1b86c9f4140fcf8fa4810d6b3aa4cadf',1,'cutlass::operator/(T s, Coord< Rank, Index > coord)'],['../namespacecutlass.html#ad0544ac86101c8cf1f95b543972d74d1',1,'cutlass::operator/(Coord< Rank, Index > coord, T s)'],['../namespacecutlass_1_1platform.html#a4fe79c19fb599cd9b85d08676a711f9f',1,'cutlass::platform::operator/(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a33f75d77ff629335c9666128837c4581',1,'cutlass::platform::operator/(complex< T > const &lhs, T const &s)'],['../namespacecutlass_1_1platform.html#ae302b414576ecb5afb0cdfdda6b30ad3',1,'cutlass::platform::operator/(T const &s, complex< T > const &rhs)']]], ['operator_2f_3d',['operator/=',['../structcutlass_1_1Coord.html#ac87199c4c9a4e20aac4eb6e3b9a68f28',1,'cutlass::Coord::operator/=()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#aac1e1bad751237fd76d32a1ea10f6c40',1,'cutlass::gemm::GemmCoord::operator/=()'],['../structcutlass_1_1MatrixCoord.html#aab345c8ddb8048bfe3d667bc7ce6522f',1,'cutlass::MatrixCoord::operator/=()'],['../structcutlass_1_1TileCoord.html#ac3207d8aa879c86a907cdcc93ccb2eb5',1,'cutlass::TileCoord::operator/=()'],['../namespacecutlass_1_1platform.html#ac594526ef64ecf364ae957753ce64b40',1,'cutlass::platform::operator/=()']]], - ['operator_3c',['operator<',['../structcutlass_1_1Coord.html#a148851df63840ac63e23b2f170bd1308',1,'cutlass::Coord::operator<()'],['../namespacecutlass_1_1platform.html#a412dbdbc678ecd12b55fcad4ef4155bd',1,'cutlass::platform::operator<()']]], + ['operator_3c',['operator<',['../structcutlass_1_1Coord.html#a148851df63840ac63e23b2f170bd1308',1,'cutlass::Coord::operator<()'],['../namespacecutlass_1_1platform.html#aba545c443b332f8d38fa8021e31deeb4',1,'cutlass::platform::operator<(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#a412dbdbc678ecd12b55fcad4ef4155bd',1,'cutlass::platform::operator<(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], ['operator_3c_3c',['operator<<',['../namespacecutlass.html#afe231b125bbb1e9aa51307a8abdf9a60',1,'cutlass::operator<<(std::ostream &out, Coord< Rank > const &coord)'],['../namespacecutlass.html#a30ddfc5e90b9103840cb30c9f9b96b49',1,'cutlass::operator<<(std::ostream &out, ScalarIO< T > const &scalar)'],['../namespacecutlass.html#a36690681ed19dc7e398fcdafdbfe9975',1,'cutlass::operator<<(std::ostream &out, ScalarIO< int8_t > const &scalar)'],['../namespacecutlass.html#a1a35d6b9b984a9c143957db733a93f51',1,'cutlass::operator<<(std::ostream &out, ScalarIO< uint8_t > const &scalar)'],['../namespacecutlass.html#a2fd306c63f71877f9231a7e1265752cf',1,'cutlass::operator<<(std::ostream &out, ScalarIO< cutlass::Vector< cutlass::bin1_t, 32 > > const &scalar)'],['../namespacecutlass.html#aecf2cd62eee939946b7173a110ecf76e',1,'cutlass::operator<<(std::ostream &out, ScalarIO< cutlass::Vector< cutlass::int4_t, 8 > > const &scalar)'],['../namespacecutlass.html#a3ceda5ed2d923222662a37e8f355c9b8',1,'cutlass::operator<<(std::ostream &out, ScalarIO< cutlass::Vector< cutlass::uint4_t, 8 > > const &scalar)'],['../namespacecutlass_1_1platform.html#ab4c3e4eabba020d7a9faf86ee6cf437a',1,'cutlass::platform::operator<<()']]], - ['operator_3c_3d',['operator<=',['../structcutlass_1_1Coord.html#a9dc9f063be329d475f040afd449d304c',1,'cutlass::Coord::operator<=()'],['../namespacecutlass_1_1platform.html#a41d573133357bd555f78d33afc1152d3',1,'cutlass::platform::operator<=()']]], + ['operator_3c_3d',['operator<=',['../structcutlass_1_1Coord.html#a9dc9f063be329d475f040afd449d304c',1,'cutlass::Coord::operator<=()'],['../namespacecutlass_1_1platform.html#a8ab8b5156f4bf6ec866cfee9ee3dbc01',1,'cutlass::platform::operator<=(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#a41d573133357bd555f78d33afc1152d3',1,'cutlass::platform::operator<=(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], ['operator_3d',['operator=',['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a3b29491782c3a129355fa4ef159cb970',1,'cutlass::detail::ScalarOrPointer::operator=(Scalar const &scalar_)'],['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a54357e2f1d52aa8355b2ae7796740ea3',1,'cutlass::detail::ScalarOrPointer::operator=(Scalar const *ptr_)'],['../classcutlass_1_1TensorView.html#acf0c156efb9197bc7538f7e9057d8a68',1,'cutlass::TensorView::operator=()']]], - ['operator_3d_3d',['operator==',['../structcutlass_1_1Coord.html#a7f919aeb2a895bc040599971400dec8d',1,'cutlass::Coord::operator==()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#aa2d03d88ac23051803d010f78157c357',1,'cutlass::PredicateVector::ConstIterator::operator==()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a5c5266fcef67c7b263682c4bc4a5000e',1,'cutlass::PredicateVector::Iterator::operator==()'],['../namespacecutlass_1_1platform.html#a043e8559161ee0fcaf943a1dfe1a9cbb',1,'cutlass::platform::operator==(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#ab9b8306ae9dc21fa646c49b68fa8e197',1,'cutlass::platform::operator==(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], - ['operator_3e',['operator>',['../namespacecutlass_1_1platform.html#a9e8e698d40b8df881991fde9ba2a1b12',1,'cutlass::platform']]], - ['operator_3e_3d',['operator>=',['../namespacecutlass_1_1platform.html#ab0f21e67c0a4b5c6952042b502c6816f',1,'cutlass::platform']]], + ['operator_3d_3d',['operator==',['../structcutlass_1_1Coord.html#a7f919aeb2a895bc040599971400dec8d',1,'cutlass::Coord::operator==()'],['../classcutlass_1_1PredicateVector_1_1ConstIterator.html#aa2d03d88ac23051803d010f78157c357',1,'cutlass::PredicateVector::ConstIterator::operator==()'],['../classcutlass_1_1PredicateVector_1_1Iterator.html#a5c5266fcef67c7b263682c4bc4a5000e',1,'cutlass::PredicateVector::Iterator::operator==()'],['../namespacecutlass_1_1platform.html#a043e8559161ee0fcaf943a1dfe1a9cbb',1,'cutlass::platform::operator==(complex< T > const &lhs, complex< T > const &rhs)'],['../namespacecutlass_1_1platform.html#a4572b933f5d88de4714f761a7234ab92',1,'cutlass::platform::operator==(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#ab9b8306ae9dc21fa646c49b68fa8e197',1,'cutlass::platform::operator==(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], + ['operator_3e',['operator>',['../namespacecutlass_1_1platform.html#a67e66e652a38f03d48b442d401980daa',1,'cutlass::platform::operator>(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#a9e8e698d40b8df881991fde9ba2a1b12',1,'cutlass::platform::operator>(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], + ['operator_3e_3d',['operator>=',['../namespacecutlass_1_1platform.html#a1df0f55188cb81ce74f4c7bf125356d4',1,'cutlass::platform::operator>=(Pair< T1, T2 > const &lhs, Pair< T1, T2 > const &rhs)'],['../namespacecutlass_1_1platform.html#ab0f21e67c0a4b5c6952042b502c6816f',1,'cutlass::platform::operator>=(const pair< T1, T2 > &lhs, const pair< T1, T2 > &rhs)']]], ['operator_5b_5d',['operator[]',['../structcutlass_1_1Coord.html#a6e0967541a1d74edeb93897ea6069e24',1,'cutlass::Coord::operator[](int dim)'],['../structcutlass_1_1Coord.html#a882e7ac07bbd6983659ef2e574b46454',1,'cutlass::Coord::operator[](int dim) const'],['../structcutlass_1_1Fragment.html#a77ba7cddf7822d64534b019c4ad9732e',1,'cutlass::Fragment::operator[](int i)'],['../structcutlass_1_1Fragment.html#a7795c5cf4d5626ff125abd5e8f156e9b',1,'cutlass::Fragment::operator[](int i) const'],['../structcutlass_1_1FragmentIterator.html#a21877944988f34eb69cb6eefb00c6575',1,'cutlass::FragmentIterator::operator[](int i) const'],['../structcutlass_1_1FragmentIterator.html#ad665745f3d6a3a88d7894fe0fc1bbd3e',1,'cutlass::FragmentIterator::operator[](int i)'],['../structcutlass_1_1FragmentConstIterator.html#a6216b58ffe6322f037f1e0a3ffa714c8',1,'cutlass::FragmentConstIterator::operator[]()'],['../structcutlass_1_1PredicateVector.html#a840985438ac8306ec680eb20edd4e5c5',1,'cutlass::PredicateVector::operator[]()'],['../classcutlass_1_1TensorRef.html#ada832ce3a57aaf4919b1ed89192f1fa6',1,'cutlass::TensorRef::operator[](TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef.html#a207a0dabf6c368fa1edcb32baa2110e3',1,'cutlass::TensorRef::operator[](LongIndex idx) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a64a5e91e01555b8bfd22875543573d22',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator[](TensorCoord const &coord) const'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a57f132816e51bbdb4c807d57c067b619',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::operator[](LongIndex idx) const'],['../classcutlass_1_1platform_1_1unique__ptr.html#a5c7a204af07a7d325b0a8303e199a50d',1,'cutlass::platform::unique_ptr::operator[]()'],['../unioncutlass_1_1Vector.html#a69be4f85c1dac371fa6f1c6747724adc',1,'cutlass::Vector::operator[](uint32_t i) const'],['../unioncutlass_1_1Vector.html#abf531676caf85cde1c8df435c1ebe8bb',1,'cutlass::Vector::operator[](uint32_t i)'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a12fa9366dd57fadb2d3f624ab7836dc8',1,'cutlass::Vector< half, 1 >::operator[](uint32_t i) const'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a1e6568c0f3f958db739074ab6978ff10',1,'cutlass::Vector< half, 1 >::operator[](uint32_t i)'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#ad50b5d4acbd7ead82c128091c9db9113',1,'cutlass::Vector< half, kLanes_ >::operator[](uint32_t i) const'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#a3891ce1c321a3e57e938c8864de9baf0',1,'cutlass::Vector< half, kLanes_ >::operator[](uint32_t i)'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a8eda6e6181a5333ca8350977374708cb',1,'cutlass::Vector< bin1_t, kLanes_ >::operator[]()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#a2d5ec0b76daa136dae0b4aec1edf9e0b',1,'cutlass::Vector< int4_t, kLanes_ >::operator[]()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#ae2215fe7c2c223175b4172d73a6c7a82',1,'cutlass::Vector< uint4_t, kLanes_ >::operator[]()']]], ['operator_7c_3d',['operator|=',['../structcutlass_1_1PredicateVector.html#aab9de134132c62de1c062ca57582cdbc',1,'cutlass::PredicateVector']]] ]; diff --git a/docs/search/functions_f.js b/docs/search/functions_f.js index ab75d047..59fd99b2 100644 --- a/docs/search/functions_f.js +++ b/docs/search/functions_f.js @@ -1,6 +1,7 @@ var searchData= [ - ['params',['Params',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html#afb39229d0ad334834cd2ba0c1fcc9412',1,'cutlass::gemm::GlobalLoadStreamPair::Params::Params()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html#ab26c1aaa2b7709c32bab39801d6c7772',1,'cutlass::gemm::GlobalLoadStreamPair::Params::Params(typename StreamA::Params const &_params_A, typename StreamB::Params const &_params_B)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#ae515cd98a75ff3eafffcc69692d6301a',1,'cutlass::gemm::LinearScaling::Params::Params()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ae28323819fc8950bc0fee3a34b2184ff',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a26b04702140a550f3ab598132a74cd93',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params(Scalar alpha, Scalar beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a38aa3e6beb09c7c4bea952094a2ea682',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params(Scalar const *alpha_ptr, Scalar const *beta_ptr)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#acc0341b88143aac4ffd9bc1dcfaafa71',1,'cutlass::TileIteratorBase::Params::Params()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#ab04617136a3bf909ef27eb97ea5ef81c',1,'cutlass::TileIteratorBase::Params::Params(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#ac030ea4568fa2cb6d6661df75062cd1a',1,'cutlass::TileIteratorBase::Params::Params(Coord< 4 > const &stride)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a9a1098e6c7b8c7c377031fe59a18fbf5',1,'cutlass::TileLoadIterator::Params::Params()'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a88a90437f11d029ef109ebb4f828f282',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a2de32338814d0554b05ca985dbb7e192',1,'cutlass::TileLoadIterator::Params::Params(TensorRef const &ref)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a78380e92553010656516400d51e14c7e',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a8c9856709d3392d8b70dce9a13fa529a',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a79304c022d2466c97cd671a98128815a',1,'cutlass::TileStoreIterator::Params::Params()'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#ae1cb260e7b05034ec9b7fa61c92bbc80',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#afae37ebc78884290300f38fce7c021b1',1,'cutlass::TileStoreIterator::Params::Params(TensorRef const &ref)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#aa131e0ef02ce37038c1a17bea7088ef6',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr, long long stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a9cf4cd4ecb0a81cf3c03a70c7bfc4e09',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadStream_1_1Params.html#a90772ac34f8c49f049eb62fada0a2165',1,'cutlass::TileLoadStream::Params::Params()'],['../structcutlass_1_1TileLoadStream_1_1Params.html#a50f136516b139f011939015c8c417ddd',1,'cutlass::TileLoadStream::Params::Params(typename Iterator::Params const &_iterator)'],['../structcutlass_1_1TileStoreStream_1_1Params.html#adfa2399bf13cdff16b7bfe1cb0dd2bd9',1,'cutlass::TileStoreStream::Params::Params()'],['../structcutlass_1_1TileStoreStream_1_1Params.html#acc400568f7694f818b5afbb109bd2e63',1,'cutlass::TileStoreStream::Params::Params(typename Iterator::Params const &_iterator)'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a4ed93b5319fe96457caf53e9384722d4',1,'cutlass::ZipTileIterator::Params::Params()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#ad38f6a2cc5800c0ec82b12d183040390',1,'cutlass::ZipTileIterator::Params::Params(typename First::Params const &_first, typename Second::Params const &_second)']]], + ['pair',['Pair',['../structcutlass_1_1platform_1_1Pair.html#ab17167b20d824348ce38d5ca674b3985',1,'cutlass::platform::Pair::Pair()'],['../structcutlass_1_1platform_1_1Pair.html#a1f9f87ed7630a9019c3ae49dd07c6599',1,'cutlass::platform::Pair::Pair(T1 const &first_, T2 const &second_)']]], + ['params',['Params',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a9cf3f82207f65e6178d4c3764577b657',1,'cutlass::gemm::SplitkPIGemmTraits::Params::Params()'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#ae6143cae5ebb1ee8804a55b34f3912b1',1,'cutlass::gemm::SplitkPIGemmTraits::Params::Params(Index m_, Index n_, Index k_)'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html#afb39229d0ad334834cd2ba0c1fcc9412',1,'cutlass::gemm::GlobalLoadStreamPair::Params::Params()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html#ab26c1aaa2b7709c32bab39801d6c7772',1,'cutlass::gemm::GlobalLoadStreamPair::Params::Params(typename StreamA::Params const &_params_A, typename StreamB::Params const &_params_B)'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#ae515cd98a75ff3eafffcc69692d6301a',1,'cutlass::gemm::LinearScaling::Params::Params()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#ae28323819fc8950bc0fee3a34b2184ff',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params()'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a26b04702140a550f3ab598132a74cd93',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params(Scalar alpha, Scalar beta)'],['../classcutlass_1_1gemm_1_1LinearScalingDevicePtr_1_1Params.html#a38aa3e6beb09c7c4bea952094a2ea682',1,'cutlass::gemm::LinearScalingDevicePtr::Params::Params(Scalar const *alpha_ptr, Scalar const *beta_ptr)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#acc0341b88143aac4ffd9bc1dcfaafa71',1,'cutlass::TileIteratorBase::Params::Params()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a9c480593877698c327a85272d771475c',1,'cutlass::TileIteratorBase::Params::Params(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#ac030ea4568fa2cb6d6661df75062cd1a',1,'cutlass::TileIteratorBase::Params::Params(Coord< 4 > const &stride)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a9a1098e6c7b8c7c377031fe59a18fbf5',1,'cutlass::TileLoadIterator::Params::Params()'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a88a90437f11d029ef109ebb4f828f282',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a2de32338814d0554b05ca985dbb7e192',1,'cutlass::TileLoadIterator::Params::Params(TensorRef const &ref)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a394c5cb5d588945cc430239c7f8061f5',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#aab6d7a1ab2d163cb15ee4bdbf26e821b',1,'cutlass::TileLoadIterator::Params::Params(Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a79304c022d2466c97cd671a98128815a',1,'cutlass::TileStoreIterator::Params::Params()'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#ae1cb260e7b05034ec9b7fa61c92bbc80',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#afae37ebc78884290300f38fce7c021b1',1,'cutlass::TileStoreIterator::Params::Params(TensorRef const &ref)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#aa131e0ef02ce37038c1a17bea7088ef6',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr, long long stride_d, Index stride_h, Index stride_w)'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a6690b2eb981cae4b9a7c333054d53e81',1,'cutlass::TileStoreIterator::Params::Params(Scalar *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)'],['../structcutlass_1_1TileLoadStream_1_1Params.html#a90772ac34f8c49f049eb62fada0a2165',1,'cutlass::TileLoadStream::Params::Params()'],['../structcutlass_1_1TileLoadStream_1_1Params.html#a50f136516b139f011939015c8c417ddd',1,'cutlass::TileLoadStream::Params::Params(typename Iterator::Params const &_iterator)'],['../structcutlass_1_1TileStoreStream_1_1Params.html#adfa2399bf13cdff16b7bfe1cb0dd2bd9',1,'cutlass::TileStoreStream::Params::Params()'],['../structcutlass_1_1TileStoreStream_1_1Params.html#acc400568f7694f818b5afbb109bd2e63',1,'cutlass::TileStoreStream::Params::Params(typename Iterator::Params const &_iterator)'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a4ed93b5319fe96457caf53e9384722d4',1,'cutlass::ZipTileIterator::Params::Params()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#ad38f6a2cc5800c0ec82b12d183040390',1,'cutlass::ZipTileIterator::Params::Params(typename First::Params const &_first, typename Second::Params const &_second)']]], ['polar',['polar',['../namespacecutlass_1_1platform.html#a6c9200b03868a5090027e5cfc8e27c62',1,'cutlass::platform']]], ['predicatedtileloadstream',['PredicatedTileLoadStream',['../structcutlass_1_1PredicatedTileLoadStream.html#a672a8883d16eff4ecc90dc79162084d3',1,'cutlass::PredicatedTileLoadStream']]], ['predicatedtilestorestream',['PredicatedTileStoreStream',['../structcutlass_1_1PredicatedTileStoreStream.html#ac4aafc6bcc6cf3bff5b31b9cd60fd667',1,'cutlass::PredicatedTileStoreStream']]], @@ -8,5 +9,5 @@ var searchData= ['predicatevector',['PredicateVector',['../structcutlass_1_1PredicateVector.html#aec1201df19c0ed0516810a3f19353c21',1,'cutlass::PredicateVector']]], ['proj',['proj',['../namespacecutlass_1_1platform.html#a4e57cfad9bf0b78e338d536ff1bdda39',1,'cutlass::platform']]], ['project',['project',['../structcutlass_1_1gemm_1_1ProjectOperand_3_01GemmOperand_1_1kA_00_01Kstrided_01_4.html#ae91b2350374f1734a30cbed45e14b8e3',1,'cutlass::gemm::ProjectOperand< GemmOperand::kA, Kstrided >::project()'],['../structcutlass_1_1gemm_1_1ProjectOperand_3_01GemmOperand_1_1kB_00_01Kstrided_01_4.html#a0f1579013f56fe16ebc147271f163c3c',1,'cutlass::gemm::ProjectOperand< GemmOperand::kB, Kstrided >::project()'],['../structcutlass_1_1gemm_1_1ProjectOperand_3_01GemmOperand_1_1kC_00_01true_01_4.html#af2a323461334a6b55b95074a1973d250',1,'cutlass::gemm::ProjectOperand< GemmOperand::kC, true >::project()'],['../structcutlass_1_1gemm_1_1ProjectOperand_3_01GemmOperand_1_1kD_00_01true_01_4.html#ace04040ccb13af5f9a283ca80ffe93d1',1,'cutlass::gemm::ProjectOperand< GemmOperand::kD, true >::project()']]], - ['project_5fcoordinate',['project_coordinate',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#aa634e3f786d5bf5707b94e522a10a001',1,'cutlass::gemm::GlobalLoadStream']]] + ['project_5fcoordinate',['project_coordinate',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a16542631e4a4562cc72aa50f146a9724',1,'cutlass::gemm::GlobalLoadStream']]] ]; diff --git a/docs/search/namespaces_0.js b/docs/search/namespaces_0.js index 04a4d974..a7176151 100644 --- a/docs/search/namespaces_0.js +++ b/docs/search/namespaces_0.js @@ -3,5 +3,7 @@ var searchData= ['cutlass',['cutlass',['../namespacecutlass.html',1,'']]], ['detail',['detail',['../namespacecutlass_1_1detail.html',1,'cutlass']]], ['gemm',['gemm',['../namespacecutlass_1_1gemm.html',1,'cutlass']]], - ['platform',['platform',['../namespacecutlass_1_1platform.html',1,'cutlass']]] + ['matrixlayout',['MatrixLayout',['../namespacecutlass_1_1MatrixLayout.html',1,'cutlass']]], + ['platform',['platform',['../namespacecutlass_1_1platform.html',1,'cutlass']]], + ['reduction',['reduction',['../namespacecutlass_1_1reduction.html',1,'cutlass']]] ]; diff --git a/docs/search/searchdata.js b/docs/search/searchdata.js index d9737d43..eb860103 100644 --- a/docs/search/searchdata.js +++ b/docs/search/searchdata.js @@ -3,10 +3,10 @@ var indexSectionsWithContent = 0: "_abcdefghiklmnoprstuvwyz~", 1: "abcdefghiklmnprstuvwz", 2: "c", - 3: "cdfghiklmnprstvwz", + 3: "bcdfghiklmnprstvwz", 4: "_abcdefghiklmnoprstuvwz~", - 5: "abcdefgiklmnoprstv", - 6: "abcdefgiklmnopstvwy", + 5: "abcdefgiklmnoprstvw", + 6: "abcdefgiklmnoprstvwy", 7: "k", 8: "abkmov", 9: "_cns", diff --git a/docs/search/typedefs_1.js b/docs/search/typedefs_1.js index 45a9fd77..06a8f6af 100644 --- a/docs/search/typedefs_1.js +++ b/docs/search/typedefs_1.js @@ -2,6 +2,6 @@ var searchData= [ ['base',['Base',['../structcutlass_1_1gemm_1_1GemmCoord.html#a790f6552ad26964fa808b51f4aba433b',1,'cutlass::gemm::GemmCoord::Base()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#a581b7cdeef3e620f246923fa07f9db5a',1,'cutlass::gemm::GemmGlobalTileCdTraits::Base()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#ae13e0d30a941e16875f196b4844b03ed',1,'cutlass::gemm::GemmGlobalIteratorAb::Base()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a8f8fbb65070589769468c6b1ac6ba7a5',1,'cutlass::gemm::GemmGlobalIteratorCd::Base()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits.html#ac0c372c24c4c5340153b11edab874741',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::Base()'],['../structcutlass_1_1gemm_1_1HgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a7ec19bf90207a7f598f2ec5166649495',1,'cutlass::gemm::HgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::Base()'],['../structcutlass_1_1gemm_1_1HgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#aca63ec1099444c555299dc144282dded',1,'cutlass::gemm::HgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::Base()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a4b23ba8c14e26672a516aa43063250c2',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::Base()'],['../structcutlass_1_1gemm_1_1IgemmEpilogue.html#a07f9a934f04610db41aa1aac2f4cdf04',1,'cutlass::gemm::IgemmEpilogue::Base()'],['../structcutlass_1_1gemm_1_1IgemmEpilogue_3_01GemmEpilogueTraits___00_01true_01_4.html#a98b415dbe6f7b6cb0c41a4e6b3ad5abf',1,'cutlass::gemm::IgemmEpilogue< GemmEpilogueTraits_, true >::Base()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits.html#ac14f4ef560bd8068d16c0471af6df82c',1,'cutlass::gemm::IgemmGlobalTileTraits::Base()'],['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a82a9cfc61ecc117592bdb30f57bd35c9',1,'cutlass::gemm::IgemmGlobalIteratorAb::Base()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#adbbf19c2f86c198bbe4cc596c63e65ae',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::Base()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a4f7dfa33f6b6e52aac05ad5072710aa9',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::Base()'],['../structcutlass_1_1gemm_1_1LinearScalingDevicePtr.html#ad10463da3f5a421f9b87638775ef0a85',1,'cutlass::gemm::LinearScalingDevicePtr::Base()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits.html#a194aa2762885c3d556a84ff410200b86',1,'cutlass::gemm::WmmaGemmGlobalIteratorCdTraits::Base()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#aea87c73ae2d4e027014ebd4d8141c89e',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Base()'],['../structcutlass_1_1MatrixCoord.html#a07f7e0ff4347aa6d75a5b3a63676d51d',1,'cutlass::MatrixCoord::Base()'],['../structcutlass_1_1TensorRefBatchStrided.html#ac92b0cbb46cea7a04ee4660c2603b000',1,'cutlass::TensorRefBatchStrided::Base()'],['../classcutlass_1_1TensorView.html#a2d0d8ed1c19485318e84db99b8b4e9e6',1,'cutlass::TensorView::Base()'],['../structcutlass_1_1TileCoord.html#ab40c6bb58967d6be5a349bf6276c2eca',1,'cutlass::TileCoord::Base()'],['../structcutlass_1_1TileLoadIterator.html#a1dcbf633eac61ff06980e4992fbe8264',1,'cutlass::TileLoadIterator::Base()'],['../structcutlass_1_1TileStoreIterator.html#a24fa369165de783a72311d8ec3115c48',1,'cutlass::TileStoreIterator::Base()'],['../structcutlass_1_1PredicatedTileLoadStream.html#ac7f57248d3e10c9309f042e5d41440c1',1,'cutlass::PredicatedTileLoadStream::Base()'],['../structcutlass_1_1PredicatedTileStoreStream.html#afc320f4d29f05102e9de0064ca31e49b',1,'cutlass::PredicatedTileStoreStream::Base()']]], ['baseparams',['BaseParams',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a09268125f1e323874f6c12b50185c517',1,'cutlass::gemm::GemmGlobalIteratorAb::BaseParams()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#afd2bed46f4cf04aaf331fb2ecae953f8',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::BaseParams()'],['../structcutlass_1_1TileLoadIterator.html#a9aebb9153659320f1391671c215c519e',1,'cutlass::TileLoadIterator::BaseParams()'],['../structcutlass_1_1TileStoreIterator.html#a5dd2a31d41d9098e928c559af12cbe66',1,'cutlass::TileStoreIterator::BaseParams()']]], - ['blockswizzle',['BlockSwizzle',['../structcutlass_1_1gemm_1_1GemmTraits.html#a50672b5fa67d858aeff8f254cf28e941',1,'cutlass::gemm::GemmTraits']]], + ['blockswizzle',['BlockSwizzle',['../structcutlass_1_1gemm_1_1GemmTraits.html#a50672b5fa67d858aeff8f254cf28e941',1,'cutlass::gemm::GemmTraits::BlockSwizzle()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ae0c016bcbe687063774d8abd554939b6',1,'cutlass::reduction::BatchedReductionTraits::BlockSwizzle()']]], ['btype',['BType',['../structcutlass_1_1gemm_1_1GemmDesc.html#a23317c22122ea2721a7a3e0c12e07a49',1,'cutlass::gemm::GemmDesc']]] ]; diff --git a/docs/search/typedefs_10.js b/docs/search/typedefs_10.js index 4d47f80a..dd564932 100644 --- a/docs/search/typedefs_10.js +++ b/docs/search/typedefs_10.js @@ -1,6 +1,31 @@ var searchData= [ - ['value_5ftype',['value_type',['../classcutlass_1_1platform_1_1complex.html#aa7c319b0c67f8ffeee3d1bb4b83ea0d6',1,'cutlass::platform::complex::value_type()'],['../structcutlass_1_1platform_1_1integral__constant.html#ab2ed0b3506818139f1f96639742e79fd',1,'cutlass::platform::integral_constant::value_type()']]], - ['vector',['Vector',['../structcutlass_1_1VectorTraits.html#a4ac6196c07e0d3ba8a03cd72a05026a2',1,'cutlass::VectorTraits::Vector()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#a12b9084c48d2d829730f907485dfb5e5',1,'cutlass::VectorTraits< Vector< T, Lanes > >::Vector()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#aff21f15596731eacf8c587811bb4ccdb',1,'cutlass::VectorTraits< Vector< T, Lanes > const >::Vector()']]], - ['vectorizedtile',['VectorizedTile',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a6cb3196f1fe3958d1656ba8b493c82ac',1,'cutlass::gemm::GemmGlobalTileTraits']]] + ['tensorcoord',['TensorCoord',['../classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65',1,'cutlass::TensorRef::TensorCoord()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aeca2ec193d8a07dc9073c6b199215c88',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorCoord()'],['../structcutlass_1_1TensorRefBatchStrided.html#a9d07d96c2eccba10c3a9e4bef58d4e01',1,'cutlass::TensorRefBatchStrided::TensorCoord()'],['../classcutlass_1_1TensorView.html#ada8a241b6b2c5439183b0d6c456c934e',1,'cutlass::TensorView::TensorCoord()']]], + ['tensorref',['TensorRef',['../structcutlass_1_1gemm_1_1SharedLoadStream.html#aff5202428b0e7207456c97204d4d219a',1,'cutlass::gemm::SharedLoadStream::TensorRef()'],['../structcutlass_1_1TensorRefBatchStrided.html#a0d5f100b9b87f881e7ecaced63bce9dd',1,'cutlass::TensorRefBatchStrided::TensorRef()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a5557f98c75b51751f834c4a7d6385efc',1,'cutlass::TensorRefBatchStrided::ConstIterator::TensorRef()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#a8126b194210599b40b5c3ffaf16cb2d2',1,'cutlass::TensorRefArray::ConstIterator::TensorRef()'],['../structcutlass_1_1TensorRefArray.html#a066d684240f8a24e1ba621ae3904ec75',1,'cutlass::TensorRefArray::TensorRef()'],['../classcutlass_1_1TensorView.html#af0237fca8d8df1cf4f17d9cb43eae507',1,'cutlass::TensorView::TensorRef()'],['../structcutlass_1_1TileAllocation.html#aa0bf6caeab13dc004350c6c0cfe0df80',1,'cutlass::TileAllocation::TensorRef()'],['../structcutlass_1_1ZipTileAllocation.html#a1c274bfb4401beabaf62fed9c2054ddf',1,'cutlass::ZipTileAllocation::TensorRef()'],['../structcutlass_1_1TileLoadIterator.html#a146adfb1951efd70995b05a7a31fd548',1,'cutlass::TileLoadIterator::TensorRef()'],['../structcutlass_1_1TileStoreIterator.html#acd3c170dd70bee777cb9e9dc662c5eac',1,'cutlass::TileStoreIterator::TensorRef()'],['../structcutlass_1_1TileLoadStream.html#a8c9256c5cdd1fd129dbcc6536375aca7',1,'cutlass::TileLoadStream::TensorRef()'],['../structcutlass_1_1TileStoreStream.html#a2255d760e812cfe8e31f114cdb5793fe',1,'cutlass::TileStoreStream::TensorRef()'],['../classcutlass_1_1ZipTileIterator.html#a1dea96f5cf56aade14bd815aee91d09c',1,'cutlass::ZipTileIterator::TensorRef()']]], + ['tensorref_5ft',['TensorRef_t',['../classcutlass_1_1TensorView.html#a25eb8c0fe380114ddaabb37453be4606',1,'cutlass::TensorView']]], + ['tensorrefa',['TensorRefA',['../structcutlass_1_1gemm_1_1GemmDesc.html#aea3a523662dc801bf9abf205a8e400fe',1,'cutlass::gemm::GemmDesc']]], + ['tensorrefb',['TensorRefB',['../structcutlass_1_1gemm_1_1GemmDesc.html#a7de7de97d237d9dcc0d89de7b04342ab',1,'cutlass::gemm::GemmDesc']]], + ['tensorrefc',['TensorRefC',['../structcutlass_1_1gemm_1_1GemmDesc.html#a51f77118d545308068b0dc287abf4e8b',1,'cutlass::gemm::GemmDesc']]], + ['tensorrefd',['TensorRefD',['../structcutlass_1_1gemm_1_1GemmDesc.html#a1f59ad60a529aa1db6e66ade3cb65052',1,'cutlass::gemm::GemmDesc']]], + ['tensorview',['TensorView',['../structcutlass_1_1TileAllocation.html#a759e998135d5f25e689afdc676d95141',1,'cutlass::TileAllocation']]], + ['this_5f',['This_',['../structcutlass_1_1Fragment.html#a32f7ff86b73576a15c5ddaa40c4e0a95',1,'cutlass::Fragment::This_()'],['../structcutlass_1_1FragmentIterator.html#ae320d9672450f5341abcdb24a8b09369',1,'cutlass::FragmentIterator::This_()'],['../structcutlass_1_1FragmentConstIterator.html#add14f695231c2bdd6284bf22b1e66f8f',1,'cutlass::FragmentConstIterator::This_()'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a1f24afe5bfc7c5f529dab49c8297fd44',1,'cutlass::gemm::SplitkPIGemmTraits::This_()'],['../structcutlass_1_1gemm_1_1Gemm.html#a26c13e8bbad805760443ef6df475e317',1,'cutlass::gemm::Gemm::This_()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a2892be253a3de5bffc3edcef2890d3a8',1,'cutlass::gemm::GemmGlobalIteratorAb::This_()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6a745d66c4c7de352041f779e54e6b2b',1,'cutlass::gemm::GemmGlobalIteratorCd::This_()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#aa6214a0ad09d155ed79feadc6647b989',1,'cutlass::gemm::GemmTraits::This_()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#aa8b453116c2d96ea2c56e08cb981346c',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::This_()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#ae0c48344c7457f17429e6ae7a76dba37',1,'cutlass::reduction::BatchedReduction::This_()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#acfeed4cb4e5eec9d8e1ae2b787cc88e2',1,'cutlass::reduction::BatchedReductionTraits::This_()'],['../structcutlass_1_1ZipFragment.html#a2f038ddb37879cbc54dbadaeb7085fb1',1,'cutlass::ZipFragment::This_()']]], + ['threadblocktile',['ThreadBlockTile',['../structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html#a5e43f3c9aa8d7dc5f01dfc63b1ea97dc',1,'cutlass::gemm::GemmMultiplicandTraits']]], + ['threadblocktileref',['ThreadblockTileRef',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a011287c8289b7b026f9993da663abd77',1,'cutlass::gemm::GlobalLoadStream::ThreadblockTileRef()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a79b783f02eaa4cf8fc8f929448e121be',1,'cutlass::gemm::GlobalLoadStreamPair::ThreadblockTileRef()'],['../structcutlass_1_1gemm_1_1SharedStreamPair.html#ae2c64823a7a5af01187bd3dda6bc309d',1,'cutlass::gemm::SharedStreamPair::ThreadblockTileRef()']]], + ['threadblocktilestorage',['ThreadblockTileStorage',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a17804b01904a9a4ee7a857905833f7a8',1,'cutlass::gemm::GlobalLoadStream::ThreadblockTileStorage()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a5eef540f82acea5d9cb12965707ba158',1,'cutlass::gemm::GlobalLoadStreamPair::ThreadblockTileStorage()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#abfecd4a57dfbf82e8fa74a50e01fc4ee',1,'cutlass::gemm::GemmTraits::ThreadblockTileStorage()']]], + ['threadgemmshape',['ThreadGemmShape',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a8bbf1a5eac01585438c639da0e40e5c8',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ThreadGemmShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#ac095b403212e23cb95e70cee9013099e',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ThreadGemmShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#ac5cde71eb825b0a4311bd0ce982f47aa',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ThreadGemmShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a33a68b52cca697bd505bfd982938143e',1,'cutlass::gemm::ThreadMultiplyAdd::ThreadGemmShape()']]], + ['threadoffset',['ThreadOffset',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#afd09d3b8e5ca04eab7edc2e5723816e5',1,'cutlass::gemm::GemmGlobalIteratorAb::ThreadOffset()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6d985f8e93be21e56f72ec1400d73df1',1,'cutlass::gemm::GemmGlobalIteratorCd::ThreadOffset()'],['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a07ff2f97fdd57c4df05ef8e817265b30',1,'cutlass::gemm::IgemmGlobalIteratorAb::ThreadOffset()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a667cae4a9fa78a6df073f5ee48ef9664',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::ThreadOffset()'],['../structcutlass_1_1TileTraits.html#a671ef48f4141a9de30b6ec6fb0be1feb',1,'cutlass::TileTraits::ThreadOffset()'],['../structcutlass_1_1TileIteratorBase.html#a0fec2c1f9c0b8fbde4ca6faf123b59a5',1,'cutlass::TileIteratorBase::ThreadOffset()'],['../structcutlass_1_1TileLoadIterator.html#ae8cb43a98cd2fa28f6457afbda8ec58a',1,'cutlass::TileLoadIterator::ThreadOffset()'],['../structcutlass_1_1TileStoreIterator.html#a076357a165302f01f449fd91f9ed402a',1,'cutlass::TileStoreIterator::ThreadOffset()'],['../structcutlass_1_1TileTraitsStrideMajor.html#ae8d14a3c6871072febfd75ed08aba32c',1,'cutlass::TileTraitsStrideMajor::ThreadOffset()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a823ba83e9ca680da0af7d63be772a351',1,'cutlass::TileTraitsContiguousMajor::ThreadOffset()']]], + ['threads',['Threads',['../structcutlass_1_1gemm_1_1ReshapeThreads.html#afd3614ff45f0fc77ad4967951cb5ab57',1,'cutlass::gemm::ReshapeThreads::Threads()'],['../structcutlass_1_1gemm_1_1ReshapeThreads_3_01Tile___00_01Threads___00_01true_01_4.html#a894932ad04fae3aea06eb6d259e01c1c',1,'cutlass::gemm::ReshapeThreads< Tile_, Threads_, true >::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#aae7128f5522383c857d2639031b64c30',1,'cutlass::gemm::GemmGlobalTileTraits::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#a9aff3e2ff0db5a5169257e964e5895c6',1,'cutlass::gemm::GemmGlobalTileCdTraits::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a33e4dcd4449f324fed5ceaa2cde01b50',1,'cutlass::gemm::GemmGlobalIteratorAb::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#afdd08b4f4c1feaa426f997d15cd28c02',1,'cutlass::gemm::GemmGlobalIteratorCd::Threads()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a1acf2a1d8bf73fda142e7d82e05f00a2',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Threads()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a9bef06b59f27c6e673066a7f0280aa06',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Threads()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits.html#ae7a4f120805421ac0712604723612b7e',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::Threads()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits.html#a72fe2fb9077d072f8266f07374624a1f',1,'cutlass::gemm::IgemmGlobalTileTraits::Threads()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#aeb866237318ac7983e554a08395c5125',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Threads()']]], + ['threadsdelta',['ThreadsDelta',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a428750e54eabd15b2a3f7ac2a96af0a9',1,'cutlass::gemm::GemmGlobalTileTraits::ThreadsDelta()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#ae2f8331619e735e620f8a8cf2cdde077',1,'cutlass::gemm::GemmGlobalTileCdTraits::ThreadsDelta()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits.html#a61907b1afa07c12de74545d2e23a4281',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::ThreadsDelta()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits.html#a160d1ecd86de4742f550d11bc281786b',1,'cutlass::gemm::IgemmGlobalTileTraits::ThreadsDelta()']]], + ['threadshape',['ThreadShape',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#a29e8adec50bc7e5c0a91f975dff4a7f3',1,'cutlass::reduction::BatchedReductionTraits::ThreadShape()'],['../structcutlass_1_1TileTraitsStrideMajor.html#a03567f41ce616ebb4cdb309c85820599',1,'cutlass::TileTraitsStrideMajor::ThreadShape()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a33116b67e580292d4e354ca17ecd4167',1,'cutlass::TileTraitsContiguousMajor::ThreadShape()'],['../structcutlass_1_1TileTraitsWarpRake.html#ad6619e0b5d876fafd51c78e39f2c029e',1,'cutlass::TileTraitsWarpRake::ThreadShape()']]], + ['threadsperwarp',['ThreadsPerWarp',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#aea4b928b0cfd4082e93851104838c5d7',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a0761c497c41a45652368fc0d54def98f',1,'cutlass::gemm::GemmSharedLoadTileATraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#aed92656a074e915d97a1b6a990aeba66',1,'cutlass::gemm::GemmSharedLoadTileBTraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#adf72ea773b8d4d3eb184f59c8cdf9543',1,'cutlass::gemm::GemmSharedStoreTileDTraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a9022ffc49b32503fd3639341e7e291a3',1,'cutlass::gemm::GemmSharedLoadTileDTraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a61ed3d8bb4ca6db39d16b632f58d75dc',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a6bb1afd96da05370e61b38f2a93e40df',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a19bd7eb621b08f192bc01a4634853a9b',1,'cutlass::gemm::ThreadMultiplyAdd::ThreadsPerWarp()']]], + ['threadsstrides',['ThreadsStrides',['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#ae540e7ea7106552682aa4c97b833b3b1',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::ThreadsStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a2053e4b9cb3ed2727c89960354ea0b29',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::ThreadsStrides()']]], + ['tile',['Tile',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a260543a618fb187c2da40c9f630925ec',1,'cutlass::gemm::GlobalLoadStream::Tile()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a52ba72984ea8ce84eda28d07c6c8ec19',1,'cutlass::gemm::GemmGlobalTileTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a646bd38ab95cdf0379ecb372839a9111',1,'cutlass::gemm::GemmGlobalIteratorAb::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#ab96f324083e51ce4c2b73c18803c69a7',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a74196946c28e98ee60346b0eeede1471',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a9a00be672617162c4c7ac94c7d8980cc',1,'cutlass::gemm::GemmSharedLoadTileATraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#ac242508ec46db0493a69a589dbfc19e4',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a2bc41b907417b47f3dca9c3dd358f8bc',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a63f980fea1ff3dd83ac276cfd83a4ce5',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Tile()'],['../structcutlass_1_1ReshapeTile.html#a8d57fe6422aa920d9815a66e5a85b5f5',1,'cutlass::ReshapeTile::Tile()'],['../structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4.html#a966a9432cf42dfdff8ad6b89ebd74f06',1,'cutlass::ReshapeTile< Tile_, kAccessSize_, true >::Tile()'],['../structcutlass_1_1WmmaReshapeTile.html#a62fad12013351dca5a1a78526f607558',1,'cutlass::WmmaReshapeTile::Tile()'],['../structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4.html#a4c71fd7ca9040b57458f469a82a8c3f8',1,'cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true >::Tile()'],['../structcutlass_1_1TileTraits.html#a3632c351a28f71f6c140dd33089d80b0',1,'cutlass::TileTraits::Tile()'],['../structcutlass_1_1TileIteratorBase.html#a7fcf13023c85cf1e1150d867bd1559d4',1,'cutlass::TileIteratorBase::Tile()'],['../structcutlass_1_1TileLoadIterator.html#a88eaa581e0b5419b98ee5a71073d0539',1,'cutlass::TileLoadIterator::Tile()'],['../structcutlass_1_1TileStoreIterator.html#ad18ee6f519b03e1dbf711339b63e16d6',1,'cutlass::TileStoreIterator::Tile()'],['../structcutlass_1_1TileTraitsStrideMajor.html#afbb78ece048b868475d4a6802e6894ac',1,'cutlass::TileTraitsStrideMajor::Tile()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a1607d53544302c12278793bc9b283763',1,'cutlass::TileTraitsContiguousMajor::Tile()'],['../structcutlass_1_1TileTraitsWarpRake.html#adcd658d9daf286368a9d51c8c1647f89',1,'cutlass::TileTraitsWarpRake::Tile()'],['../structcutlass_1_1TileTraitsStandard.html#aee3fee526bc4d4820c03665a2f5f166b',1,'cutlass::TileTraitsStandard::Tile()']]], + ['tilewithoutskew',['TileWithoutSkew',['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a050cf5964a2d3683491bc4313ead5450',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::TileWithoutSkew()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a5a5a36fc570e1225b20ce0a48c89d213',1,'cutlass::gemm::GemmSharedLoadTileATraits::TileWithoutSkew()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a1f35981a6d661635dfbcf7c7a76056a2',1,'cutlass::gemm::GemmSharedLoadTileBTraits::TileWithoutSkew()']]], + ['tilewithoutskew_5f',['TileWithoutSkew_',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a93ae99460695718babaef6d1ef597e38',1,'cutlass::gemm::GemmSharedLoadTileATraits::TileWithoutSkew_()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a3d8be9ddea1cab53d1b4b3d508f9eab8',1,'cutlass::gemm::GemmSharedLoadTileBTraits::TileWithoutSkew_()']]], + ['tilewithskew',['TileWithSkew',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a72e0214f86cf8b3711d006dcd69d7a17',1,'cutlass::gemm::GemmSharedLoadTileATraits::TileWithSkew()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a69c7ec2a779718556e6d9119588e791c',1,'cutlass::gemm::GemmSharedLoadTileBTraits::TileWithSkew()']]], + ['traits',['Traits',['../structcutlass_1_1gemm_1_1DeviceGemm.html#abc61ecd50d4a56b09c31b2118368c4dc',1,'cutlass::gemm::DeviceGemm::Traits()'],['../structcutlass_1_1gemm_1_1Gemm.html#a29f52e33e1f1cf150f5062d9ad2590ff',1,'cutlass::gemm::Gemm::Traits()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a645ab6e9e63163ee6bf536717a30fb1b',1,'cutlass::gemm::GemmEpilogue::Traits()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#af2b5682b8e6dd13590ec258a44636430',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Traits()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#aa50195fcf53f6d69ccfa37f44a524a99',1,'cutlass::reduction::BatchedReduction::Traits()'],['../structcutlass_1_1TileIteratorBase.html#aac9e5b7890a53d46e5d49912b254ded7',1,'cutlass::TileIteratorBase::Traits()'],['../structcutlass_1_1TileLoadIterator.html#a6a5d065939282fa1b9454b28a1e73948',1,'cutlass::TileLoadIterator::Traits()'],['../structcutlass_1_1TileStoreIterator.html#a5016bd7b24938026a2879ec0054eb3b6',1,'cutlass::TileStoreIterator::Traits()']]], + ['transformedfragment',['TransformedFragment',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a9eb2fb49698d0d018c04e7712e239ce9',1,'cutlass::gemm::GlobalLoadStream::TransformedFragment()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#aa2227d7fa1edef3f6730c7db41b132b4',1,'cutlass::gemm::SharedLoadStream::TransformedFragment()'],['../structcutlass_1_1TileLoadStream.html#a94cde8bcdcedc934cc14de19e43375d1',1,'cutlass::TileLoadStream::TransformedFragment()'],['../structcutlass_1_1TileStoreStream.html#ae14c71f6bb331030429d346f0140c993',1,'cutlass::TileStoreStream::TransformedFragment()'],['../structcutlass_1_1PredicatedTileLoadStream.html#adeb35451885c1c4fb930ae8c914ceb20',1,'cutlass::PredicatedTileLoadStream::TransformedFragment()'],['../structcutlass_1_1PredicatedTileStoreStream.html#af349831b19bb91d414a83c67d14f6927',1,'cutlass::PredicatedTileStoreStream::TransformedFragment()']]], + ['transformer',['Transformer',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#aa79a27cbe2420882fbaca55e42803f02',1,'cutlass::gemm::GlobalLoadStream::Transformer()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#ad1f70f0dd1027da1353ff7a38f524904',1,'cutlass::gemm::SharedLoadStream::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerA_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a882c10bed18f62ece97f5f20f9de3296',1,'cutlass::gemm::HgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerA_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a42c5bafcb226623b3326dbd01fc72f3b',1,'cutlass::gemm::HgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerB_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#aaaccb3f02a857e0c80d2891c6c6dcdb7',1,'cutlass::gemm::HgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerB_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#ae66bb2c1f87e19278ff471c32e71ea85',1,'cutlass::gemm::HgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalStoreTransformer.html#a98aefa95117dbfdf2e577890318a6c13',1,'cutlass::gemm::IgemmGlobalStoreTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalStoreTransformer_3_01float_00_01Fragment_3_01int8__t_00_01kElements___01_4_01_4.html#a52ecdfd8b94d8d7f4881048e11a33aba',1,'cutlass::gemm::IgemmGlobalStoreTransformer< float, Fragment< int8_t, kElements_ > >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalLoadTransformer.html#ad3190650741cef20c1aca919eddd9d72',1,'cutlass::gemm::IgemmGlobalLoadTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalLoadTransformer_3_01Fragment_3_01int8__t_00_01kElements___01_4_00_01float_01_4.html#a49c249026be24ec8a66f5eda99cb855c',1,'cutlass::gemm::IgemmGlobalLoadTransformer< Fragment< int8_t, kElements_ >, float >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmSharedStoreTransformer.html#a9edd08d595327a8cc3b8da50622b3bd2',1,'cutlass::gemm::IgemmSharedStoreTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerA_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a0b53e18f109ac0fd116e0d01ed6ec197',1,'cutlass::gemm::IgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerA_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a8a4e3ce1174789e2b695bda7b863079f',1,'cutlass::gemm::IgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerB_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a92320b7224a77a8af61e55beef30ad49',1,'cutlass::gemm::IgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerB_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a9728f71c2e7a6a649bd28d8c11241b0a',1,'cutlass::gemm::IgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1TileLoadStream.html#ad531770d336b2541c303c19148ef5cd7',1,'cutlass::TileLoadStream::Transformer()'],['../structcutlass_1_1TileStoreStream.html#aa8c192da812ec83329350e5838838f5e',1,'cutlass::TileStoreStream::Transformer()'],['../structcutlass_1_1PredicatedTileLoadStream.html#a9f79fd30231825b38694bf7c1d12ec2a',1,'cutlass::PredicatedTileLoadStream::Transformer()'],['../structcutlass_1_1PredicatedTileStoreStream.html#a0f91f328ed2b6bd65ef4eeafe18f9afd',1,'cutlass::PredicatedTileStoreStream::Transformer()']]], + ['true_5ftype',['true_type',['../namespacecutlass_1_1platform.html#a0eddc4a3921e137f31fd8014be96e807',1,'cutlass::platform']]], + ['type',['type',['../structcutlass_1_1platform_1_1integral__constant.html#af58810ccead8f16ed88cd6a4afdc6e52',1,'cutlass::platform::integral_constant::type()'],['../structcutlass_1_1platform_1_1enable__if.html#aff9c0f270020cf097addf77e53a5af99',1,'cutlass::platform::enable_if::type()'],['../structcutlass_1_1platform_1_1conditional.html#ab6484d0dd6449b5195c4e868026fed11',1,'cutlass::platform::conditional::type()'],['../structcutlass_1_1platform_1_1conditional_3_01false_00_01T_00_01F_01_4.html#a8d55f500f667de560650554e9c220644',1,'cutlass::platform::conditional< false, T, F >::type()'],['../structcutlass_1_1platform_1_1remove__const.html#ac3662947fa50251daf58240a9c798085',1,'cutlass::platform::remove_const::type()'],['../structcutlass_1_1platform_1_1remove__const_3_01const_01T_01_4.html#af68706cfaa6af14edc26ad5b974b47e3',1,'cutlass::platform::remove_const< const T >::type()'],['../structcutlass_1_1platform_1_1remove__volatile.html#a4f5b043d46206248d1bbbcf650707dd1',1,'cutlass::platform::remove_volatile::type()'],['../structcutlass_1_1platform_1_1remove__volatile_3_01volatile_01T_01_4.html#aca9bb93efe43106321e4afe0b67542a3',1,'cutlass::platform::remove_volatile< volatile T >::type()'],['../structcutlass_1_1platform_1_1remove__cv.html#a19e5b12cf4eb15ce13d6306735b6de08',1,'cutlass::platform::remove_cv::type()'],['../structcutlass_1_1platform_1_1aligned__storage.html#a9cf0360f335bcd1e9d9e1b266b6dd6c1',1,'cutlass::platform::aligned_storage::type()'],['../structcutlass_1_1StorageType.html#abb0d270cdf38d46347261cac36dc619b',1,'cutlass::StorageType::Type()'],['../structcutlass_1_1StorageType_3_014_01_4.html#aa6754c0eb530544a1457afe1ae94a807',1,'cutlass::StorageType< 4 >::Type()'],['../structcutlass_1_1StorageType_3_012_01_4.html#a66c52fe770774ea01c511aea1af1f8d4',1,'cutlass::StorageType< 2 >::Type()'],['../structcutlass_1_1StorageType_3_011_01_4.html#a4a70002785c378c1f180800f2a65bcd4',1,'cutlass::StorageType< 1 >::Type()'],['../structcutlass_1_1Vectorize.html#a070ec95f4297d769ee53a4d8a650c05e',1,'cutlass::Vectorize::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4.html#a5c32d50c6c97d7489034efb7188c8186',1,'cutlass::Vectorize< Vector< bin1_t, 32 >, kLanes_ >::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4.html#a40dac8fb50ddccb5c1e2a98200ac3a06',1,'cutlass::Vectorize< Vector< int4_t, 8 >, kLanes_ >::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4.html#a9db5873c0d4df1452129022a280247ca',1,'cutlass::Vectorize< Vector< uint4_t, 8 >, kLanes_ >::Type()']]] ]; diff --git a/docs/search/typedefs_11.js b/docs/search/typedefs_11.js index 1ad66a09..4d47f80a 100644 --- a/docs/search/typedefs_11.js +++ b/docs/search/typedefs_11.js @@ -1,4 +1,6 @@ var searchData= [ - ['warps',['Warps',['../structcutlass_1_1gemm_1_1GemmConfig.html#a9b987cfb25a32e671a47cb6376a361f3',1,'cutlass::gemm::GemmConfig::Warps()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#aaff4a5e0f9e4256f184a22cad0ce8cf4',1,'cutlass::gemm::GemmSharedLoadTileATraits::Warps()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a7ad7a4e33ed43926e165e66162eb620b',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Warps()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#af4597927405d8bb1ad2c464fad064703',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Warps()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a4764f70691cb3fee91ce47653363aa4f',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Warps()']]] + ['value_5ftype',['value_type',['../classcutlass_1_1platform_1_1complex.html#aa7c319b0c67f8ffeee3d1bb4b83ea0d6',1,'cutlass::platform::complex::value_type()'],['../structcutlass_1_1platform_1_1integral__constant.html#ab2ed0b3506818139f1f96639742e79fd',1,'cutlass::platform::integral_constant::value_type()']]], + ['vector',['Vector',['../structcutlass_1_1VectorTraits.html#a4ac6196c07e0d3ba8a03cd72a05026a2',1,'cutlass::VectorTraits::Vector()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#a12b9084c48d2d829730f907485dfb5e5',1,'cutlass::VectorTraits< Vector< T, Lanes > >::Vector()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#aff21f15596731eacf8c587811bb4ccdb',1,'cutlass::VectorTraits< Vector< T, Lanes > const >::Vector()']]], + ['vectorizedtile',['VectorizedTile',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a6cb3196f1fe3958d1656ba8b493c82ac',1,'cutlass::gemm::GemmGlobalTileTraits']]] ]; diff --git a/docs/search/typedefs_12.js b/docs/search/typedefs_12.js index d8526488..1ad66a09 100644 --- a/docs/search/typedefs_12.js +++ b/docs/search/typedefs_12.js @@ -1,4 +1,4 @@ var searchData= [ - ['yes',['yes',['../structcutlass_1_1platform_1_1is__base__of__helper.html#ac1cf3f804e7686213fd42c678cc6d669',1,'cutlass::platform::is_base_of_helper']]] + ['warps',['Warps',['../structcutlass_1_1gemm_1_1GemmConfig.html#a9b987cfb25a32e671a47cb6376a361f3',1,'cutlass::gemm::GemmConfig::Warps()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#aaff4a5e0f9e4256f184a22cad0ce8cf4',1,'cutlass::gemm::GemmSharedLoadTileATraits::Warps()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a7ad7a4e33ed43926e165e66162eb620b',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Warps()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#af4597927405d8bb1ad2c464fad064703',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Warps()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a4764f70691cb3fee91ce47653363aa4f',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Warps()']]] ]; diff --git a/docs/search/typedefs_13.html b/docs/search/typedefs_13.html new file mode 100644 index 00000000..33ab4aaa --- /dev/null +++ b/docs/search/typedefs_13.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/typedefs_13.js b/docs/search/typedefs_13.js new file mode 100644 index 00000000..d8526488 --- /dev/null +++ b/docs/search/typedefs_13.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['yes',['yes',['../structcutlass_1_1platform_1_1is__base__of__helper.html#ac1cf3f804e7686213fd42c678cc6d669',1,'cutlass::platform::is_base_of_helper']]] +]; diff --git a/docs/search/typedefs_2.js b/docs/search/typedefs_2.js index 3fe0e321..8b4a3629 100644 --- a/docs/search/typedefs_2.js +++ b/docs/search/typedefs_2.js @@ -3,7 +3,7 @@ var searchData= ['clearaccumulators',['ClearAccumulators',['../structcutlass_1_1gemm_1_1GemmTraits.html#ae1cf7988c9cff79a2c3252aaf91fc165',1,'cutlass::gemm::GemmTraits::ClearAccumulators()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a8574faffd18e4aa8420a4e32e07b62d6',1,'cutlass::gemm::HgemmTraitsHelper::ClearAccumulators()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#af6c45c949a8dee887924bba4de92e760',1,'cutlass::gemm::IgemmTraitsHelper::ClearAccumulators()']]], ['consttensorref',['ConstTensorRef',['../classcutlass_1_1TensorRef.html#a8281d11677512d6e229504ab4babad17',1,'cutlass::TensorRef::ConstTensorRef()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a0c95903f2b959003534cd2d78d4b9496',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::ConstTensorRef()'],['../classcutlass_1_1TensorView.html#a3861f7f09da0b8153d0e3686f2c7cf57',1,'cutlass::TensorView::ConstTensorRef()'],['../structcutlass_1_1TileAllocation.html#a122fa067390f45b29946286271654033',1,'cutlass::TileAllocation::ConstTensorRef()'],['../structcutlass_1_1ZipTileAllocation.html#aba6d5cfb32cfed340d8af2971ec50af4',1,'cutlass::ZipTileAllocation::ConstTensorRef()']]], ['consttensorref_5ft',['ConstTensorRef_t',['../classcutlass_1_1TensorView.html#a162c4cb4f4e866892d63cd37f7f72165',1,'cutlass::TensorView']]], - ['consttensorview',['ConstTensorView',['../classcutlass_1_1TensorView.html#ab879a7b6552c879a81c49cbc0946d719',1,'cutlass::TensorView']]], + ['consttensorview',['ConstTensorView',['../classcutlass_1_1TensorView.html#ab879a7b6552c879a81c49cbc0946d719',1,'cutlass::TensorView::ConstTensorView()'],['../structcutlass_1_1TileAllocation.html#ac39b045286bd3669042f3b223629d73e',1,'cutlass::TileAllocation::ConstTensorView()']]], ['coord_5ft',['Coord_t',['../classcutlass_1_1TensorRef.html#a758f24783e36ffc393b360d0b8640bc6',1,'cutlass::TensorRef::Coord_t()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a705c22cb328c4dc9365c2f370ece2031',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Coord_t()'],['../classcutlass_1_1TensorView.html#ab16a0244199ca2800ea5460ed8ed6ae2',1,'cutlass::TensorView::Coord_t()']]], ['ctype',['CType',['../structcutlass_1_1gemm_1_1GemmDesc.html#aa46907b69a3b1d0db5c3db1709867704',1,'cutlass::gemm::GemmDesc']]] ]; diff --git a/docs/search/typedefs_5.js b/docs/search/typedefs_5.js index 37a4cd06..64187d15 100644 --- a/docs/search/typedefs_5.js +++ b/docs/search/typedefs_5.js @@ -3,6 +3,7 @@ var searchData= ['false_5ftype',['false_type',['../namespacecutlass_1_1platform.html#ad8c95b2109070847b13d355120344380',1,'cutlass::platform']]], ['fetchedfragment',['FetchedFragment',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7d9b4339129c1ab4f21f1df1144faddf',1,'cutlass::gemm::GlobalLoadStream::FetchedFragment()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a41b45085f17532a6394de3f5ccf201e7',1,'cutlass::gemm::SharedLoadStream::FetchedFragment()']]], ['first',['First',['../structcutlass_1_1ZipTileAllocation.html#acbdbed808b27997a0e8c22adfa9cc9b2',1,'cutlass::ZipTileAllocation::First()'],['../structcutlass_1_1ZipFragment.html#a97332506a4834bcced49301b1ac7a4c4',1,'cutlass::ZipFragment::First()'],['../structcutlass_1_1ZipConvert.html#a215173f8ac00f67848cae872db94c2f4',1,'cutlass::ZipConvert::First()'],['../structcutlass_1_1ZipTensorRef.html#a44deb7a83049ee80dfd0419d4a0206d9',1,'cutlass::ZipTensorRef::First()'],['../classcutlass_1_1ZipTileIterator.html#a0c3046a077ef69a9325d7df817865bf7',1,'cutlass::ZipTileIterator::First()']]], + ['first_5ftype',['first_type',['../structcutlass_1_1platform_1_1Pair.html#aa7e33bdd8f23ebe688ea8aaf20f99a17',1,'cutlass::platform::Pair']]], ['fragment',['Fragment',['../structcutlass_1_1FragmentIterator.html#afd15cbe1c9a0fd7871b12f3f3042c808',1,'cutlass::FragmentIterator::Fragment()'],['../structcutlass_1_1FragmentConstIterator.html#acac5b62b365f36f370adb0fee11cea05',1,'cutlass::FragmentConstIterator::Fragment()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ab7e315253b3301c191581bce05644106',1,'cutlass::gemm::GlobalLoadStream::Fragment()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a2180cfbb482d300472ad2993e4b555d4',1,'cutlass::gemm::GemmGlobalIteratorAb::Fragment()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a9f025ed2609bf33230f6a390c22b11b7',1,'cutlass::gemm::SharedLoadStream::Fragment()'],['../structcutlass_1_1gemm_1_1HgemmSwizzle.html#a82dc6d9a10de7aba9a69e6025b2cc2b7',1,'cutlass::gemm::HgemmSwizzle::Fragment()'],['../structcutlass_1_1gemm_1_1IgemmSwizzle.html#a67693ee79f93cb61fc37f2e632eaea8d',1,'cutlass::gemm::IgemmSwizzle::Fragment()'],['../structcutlass_1_1TileIteratorBase.html#a9ffa12dcd7ed1e96845e1cd273d9f219',1,'cutlass::TileIteratorBase::Fragment()'],['../structcutlass_1_1TileLoadIterator.html#a4604b230174b11bc7ddf5f3e9a922139',1,'cutlass::TileLoadIterator::Fragment()'],['../structcutlass_1_1TileStoreIterator.html#aa5386367e805cdaf47a5e7564bedc2fb',1,'cutlass::TileStoreIterator::Fragment()'],['../structcutlass_1_1TileLoadStream.html#aea86cbd64781caabeee293cfa2070e81',1,'cutlass::TileLoadStream::Fragment()'],['../structcutlass_1_1TileStoreStream.html#aea4357a67b8abef10f91a45e64840878',1,'cutlass::TileStoreStream::Fragment()'],['../structcutlass_1_1PredicatedTileLoadStream.html#a7f802c4c733375d0a63f91c58196e6a0',1,'cutlass::PredicatedTileLoadStream::Fragment()'],['../structcutlass_1_1PredicatedTileStoreStream.html#a6c9737f5b09e7eb1aa7daabb00ae2e69',1,'cutlass::PredicatedTileStoreStream::Fragment()'],['../classcutlass_1_1ZipTileIterator.html#ae239840776fe7c3bd679b798188d9d06',1,'cutlass::ZipTileIterator::Fragment()']]], ['fragmenta',['FragmentA',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#abe217e2e1a21b9f7cff5bb0a56bfa959',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::FragmentA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a1889bdc9e88265a8afdaeeca217a3372',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::FragmentA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a8d0734b8e797576adcf89f70c62160d4',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::FragmentA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a7c1cc536ac6ad12800f9e2b5ec682649',1,'cutlass::gemm::ThreadMultiplyAdd::FragmentA()']]], ['fragmentb',['FragmentB',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a8d74401ef0bfa076caad70669fb8d100',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::FragmentB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#ae8f4db1465f5e082c6855bf13a4751c7',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::FragmentB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a6439d8fc71727cc6d50f87eae549157e',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::FragmentB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a1401162276ea0858ea85a8e4785adbad',1,'cutlass::gemm::ThreadMultiplyAdd::FragmentB()']]], @@ -11,5 +12,5 @@ var searchData= ['fragmentiterator',['FragmentIterator',['../structcutlass_1_1TileIteratorBase.html#a59d40c5bd544fdabf42787b9f11cce51',1,'cutlass::TileIteratorBase::FragmentIterator()'],['../structcutlass_1_1TileLoadIterator.html#ad9c77ca0521d18a90dd3542a3941f016',1,'cutlass::TileLoadIterator::FragmentIterator()'],['../structcutlass_1_1TileStoreIterator.html#ace8a65d90db264a0ee93a810be38918f',1,'cutlass::TileStoreIterator::FragmentIterator()']]], ['fragmentmultiplyadd',['FragmentMultiplyAdd',['../structcutlass_1_1gemm_1_1LinearScaling.html#aa697d4eaced1ef08247aeb1fcc0f0ea8',1,'cutlass::gemm::LinearScaling']]], ['fragmentshape',['FragmentShape',['../structcutlass_1_1FragmentIterator.html#a63ff1767c4923b0a2b6b64487306ed76',1,'cutlass::FragmentIterator::FragmentShape()'],['../structcutlass_1_1FragmentConstIterator.html#a880f12d0cd42cdae7ce6009d2233f577',1,'cutlass::FragmentConstIterator::FragmentShape()'],['../structcutlass_1_1gemm_1_1HgemmSwizzle.html#afe44fedcf24b90c0cf6ac7d1495b89e4',1,'cutlass::gemm::HgemmSwizzle::FragmentShape()'],['../structcutlass_1_1gemm_1_1IgemmSwizzle.html#a13a3b052cd8b714471489a9cc4dc7004',1,'cutlass::gemm::IgemmSwizzle::FragmentShape()'],['../structcutlass_1_1TileIteratorBase.html#a064aaca9cc27e34bdae9684447a3f5be',1,'cutlass::TileIteratorBase::FragmentShape()'],['../structcutlass_1_1TileLoadIterator.html#a46a2cbf407d3f43a7441323d150d96f1',1,'cutlass::TileLoadIterator::FragmentShape()'],['../structcutlass_1_1TileStoreIterator.html#a82ceeea55603dbb0c6e5bf9c22ac692e',1,'cutlass::TileStoreIterator::FragmentShape()']]], - ['functor',['Functor',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a6c30bea1b2a1bd2e981025851d5b12d1',1,'cutlass::gemm::GemmEpilogue::Functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a8acbe7bfa905258a964ef56e634d4c99',1,'cutlass::gemm::GemmEpilogueTraits::Functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a981134cf87d85aa28570a62d9e878b10',1,'cutlass::gemm::GemmEpilogueTraitsHelper::Functor()']]] + ['functor',['Functor',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a6c30bea1b2a1bd2e981025851d5b12d1',1,'cutlass::gemm::GemmEpilogue::Functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a8acbe7bfa905258a964ef56e634d4c99',1,'cutlass::gemm::GemmEpilogueTraits::Functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a981134cf87d85aa28570a62d9e878b10',1,'cutlass::gemm::GemmEpilogueTraitsHelper::Functor()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#a30605f35d51e4364fe80edb80eac5e80',1,'cutlass::reduction::BatchedReduction::Functor()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#af62fd99fae22a4e4d93cfa0560f1dcc5',1,'cutlass::reduction::BatchedReductionTraits::Functor()']]] ]; diff --git a/docs/search/typedefs_6.js b/docs/search/typedefs_6.js index aac9a675..c489a4e7 100644 --- a/docs/search/typedefs_6.js +++ b/docs/search/typedefs_6.js @@ -4,6 +4,7 @@ var searchData= ['gemmepiloguetraits',['GemmEpilogueTraits',['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#aeb825b6575955a714ff24df2e142c047',1,'cutlass::gemm::HgemmTraitsHelper']]], ['gemmtiletraitshelpera',['GemmTileTraitsHelperA',['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a4f3afb4b1f37a2c43a1935a3000b2a02',1,'cutlass::gemm::HgemmTraitsHelper::GemmTileTraitsHelperA()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#aee1dfb15e1b63f838a712af93777e5d3',1,'cutlass::gemm::IgemmTraitsHelper::GemmTileTraitsHelperA()']]], ['gemmtiletraitshelperb',['GemmTileTraitsHelperB',['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#ada910ee63493bc3c70f7395127268a1d',1,'cutlass::gemm::HgemmTraitsHelper::GemmTileTraitsHelperB()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a7f175193ac6bcdccba012f5d80324685',1,'cutlass::gemm::IgemmTraitsHelper::GemmTileTraitsHelperB()']]], + ['gemmtraits',['GemmTraits',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a3336900d79b54d872451c7a62dbc3212',1,'cutlass::gemm::SplitkPIGemmTraits']]], ['globalfragmentc',['GlobalFragmentC',['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#ad8e5337f3d19437e9c4cafcfcc3e3d3e',1,'cutlass::gemm::IgemmEpilogueTraitsHelper']]], ['globalfragmentd',['GlobalFragmentD',['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a723cd69ee4d5c26579b36e02c531ea88',1,'cutlass::gemm::IgemmEpilogueTraitsHelper']]], ['globaliterator',['GlobalIterator',['../structcutlass_1_1gemm_1_1HgemmSwizzle.html#a56d3f2606f9464ec57aa61aae378c642',1,'cutlass::gemm::HgemmSwizzle::GlobalIterator()'],['../structcutlass_1_1gemm_1_1IgemmSwizzle.html#a880878914c25db44a1781725c24af514',1,'cutlass::gemm::IgemmSwizzle::GlobalIterator()']]], diff --git a/docs/search/typedefs_7.js b/docs/search/typedefs_7.js index 8920b604..599558b0 100644 --- a/docs/search/typedefs_7.js +++ b/docs/search/typedefs_7.js @@ -2,7 +2,7 @@ var searchData= [ ['igemmconfig',['IgemmConfig',['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a5a52727bb9b5d5f8afa7d0384f564036',1,'cutlass::gemm::IgemmEpilogueTraitsHelper']]], ['immediateoffsetstrides',['ImmediateOffsetStrides',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#abc47717230ddde3edc88d2770f6841bf',1,'cutlass::gemm::GemmGlobalTileTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#a14e9713b0cd34af433c3cae9b283b54c',1,'cutlass::gemm::GemmGlobalTileCdTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a027bebceeda2287b40915ffd95d494a7',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a39414f484da7f993bc96d61c97273614',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#ad012add21d9393d136720f609467e121',1,'cutlass::gemm::GemmSharedLoadTileATraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a99017ecc737060f53fd9804ea6f9583f',1,'cutlass::gemm::GemmSharedLoadTileBTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#ac585815d08290d9a5a9cdbd611ffdac4',1,'cutlass::gemm::GemmSharedStoreTileDTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a57b065abb737bee1c17398c90b5bc39b',1,'cutlass::gemm::GemmSharedLoadTileDTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#af53d49bad7060b87a2761fe8a82a7ddd',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::ImmediateOffsetStrides()'],['../structcutlass_1_1TileTraits.html#a3db8202befa891bbc7c0a53c535cd21f',1,'cutlass::TileTraits::ImmediateOffsetStrides()'],['../structcutlass_1_1TileIteratorBase.html#ab37eec43846be90d558201bd6bb27ee4',1,'cutlass::TileIteratorBase::ImmediateOffsetStrides()']]], - ['index',['Index',['../structcutlass_1_1Coord.html#a7c73966e94b4f45854f16e33683bc02c',1,'cutlass::Coord::Index()'],['../structcutlass_1_1gemm_1_1Gemm.html#a0aca711d07245f3071adeb1111fedd34',1,'cutlass::gemm::Gemm::Index()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a8e3f0250e2265503862354c729dca892',1,'cutlass::gemm::GemmCoord::Index()'],['../structcutlass_1_1gemm_1_1GemmDesc.html#abd12fea9779ada02c0f2266909602171',1,'cutlass::gemm::GemmDesc::Index()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a07c93d583bfddd8f916fba6ef809832e',1,'cutlass::gemm::GemmEpilogue::Index()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a23b0e6a448e51f2e0837af95802c23b0',1,'cutlass::gemm::GemmEpilogueTraits::Index()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7c46d6eb83b43e099d53784bb2a09f02',1,'cutlass::gemm::GlobalLoadStream::Index()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a7ff9cae930c8a6bb9c8ee6d81cb1953f',1,'cutlass::gemm::GemmGlobalIteratorAb::Index()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a56847e834b31b88544093c3df54d299f',1,'cutlass::gemm::GemmGlobalIteratorCd::Index()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a3e22454d24cadb7d335f2a0152caae2a',1,'cutlass::gemm::GlobalLoadStreamPair::Index()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#ae67227cecbe84f5c8497d9a7ff82b367',1,'cutlass::gemm::GemmTraits::Index()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a3f45216454a550a116935aede0bda3de',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Index()'],['../structcutlass_1_1MatrixCoord.html#a33eea222c3dcaf22cf62502e41afb24f',1,'cutlass::MatrixCoord::Index()'],['../classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890',1,'cutlass::TensorRef::Index()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aa72857a51fafb4764ef338aea16ddfa3',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Index()'],['../structcutlass_1_1TensorRefBatchStrided.html#ab12d9d196122dc3075185ab239a27fb4',1,'cutlass::TensorRefBatchStrided::Index()'],['../structcutlass_1_1TensorRefArray.html#a8f4658dd194b305ae4f150cf371869d9',1,'cutlass::TensorRefArray::Index()'],['../classcutlass_1_1TensorView.html#a5a3f096a01e6a2dfe984d7e605380599',1,'cutlass::TensorView::Index()'],['../structcutlass_1_1TileCoord.html#a7018df7f2dbc7d70345d5f076fb26259',1,'cutlass::TileCoord::Index()'],['../structcutlass_1_1TileIteratorBase.html#ab49ff66953031a8cfcfa11ddc092025c',1,'cutlass::TileIteratorBase::Index()'],['../structcutlass_1_1TileLoadIterator.html#aaa5d98b72576478ba04e4ad554faa827',1,'cutlass::TileLoadIterator::Index()'],['../structcutlass_1_1TileStoreIterator.html#aae07fdedeef68abd4e6c099924c70910',1,'cutlass::TileStoreIterator::Index()'],['../structcutlass_1_1TileLoadStream.html#a90ca6bbd882e39b5624ee0cd17e0d652',1,'cutlass::TileLoadStream::Index()'],['../structcutlass_1_1TileStoreStream.html#aa0e894a30d3a979ac56e5134360a08f4',1,'cutlass::TileStoreStream::Index()'],['../classcutlass_1_1ZipTileIterator.html#ab48ad3cf2ffeec356d8592d94f6b81f0',1,'cutlass::ZipTileIterator::Index()']]], + ['index',['Index',['../structcutlass_1_1Coord.html#a7c73966e94b4f45854f16e33683bc02c',1,'cutlass::Coord::Index()'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a3037291a463c6daa06e9a3ef2120f9c7',1,'cutlass::gemm::SplitkPIGemmTraits::Index()'],['../structcutlass_1_1gemm_1_1Gemm.html#a0aca711d07245f3071adeb1111fedd34',1,'cutlass::gemm::Gemm::Index()'],['../structcutlass_1_1gemm_1_1GemmCoord.html#a8e3f0250e2265503862354c729dca892',1,'cutlass::gemm::GemmCoord::Index()'],['../structcutlass_1_1gemm_1_1GemmDesc.html#abd12fea9779ada02c0f2266909602171',1,'cutlass::gemm::GemmDesc::Index()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a07c93d583bfddd8f916fba6ef809832e',1,'cutlass::gemm::GemmEpilogue::Index()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a23b0e6a448e51f2e0837af95802c23b0',1,'cutlass::gemm::GemmEpilogueTraits::Index()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7c46d6eb83b43e099d53784bb2a09f02',1,'cutlass::gemm::GlobalLoadStream::Index()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a7ff9cae930c8a6bb9c8ee6d81cb1953f',1,'cutlass::gemm::GemmGlobalIteratorAb::Index()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a56847e834b31b88544093c3df54d299f',1,'cutlass::gemm::GemmGlobalIteratorCd::Index()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a3e22454d24cadb7d335f2a0152caae2a',1,'cutlass::gemm::GlobalLoadStreamPair::Index()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#ae67227cecbe84f5c8497d9a7ff82b367',1,'cutlass::gemm::GemmTraits::Index()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a3f45216454a550a116935aede0bda3de',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Index()'],['../structcutlass_1_1MatrixCoord.html#a33eea222c3dcaf22cf62502e41afb24f',1,'cutlass::MatrixCoord::Index()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ab0c9e548f3ee62746e727127e387a8f4',1,'cutlass::reduction::BatchedReductionTraits::Index()'],['../classcutlass_1_1TensorRef.html#a2beda7a1946bde2858e730bece21b890',1,'cutlass::TensorRef::Index()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aa72857a51fafb4764ef338aea16ddfa3',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Index()'],['../structcutlass_1_1TensorRefBatchStrided.html#ab12d9d196122dc3075185ab239a27fb4',1,'cutlass::TensorRefBatchStrided::Index()'],['../structcutlass_1_1TensorRefArray.html#a8f4658dd194b305ae4f150cf371869d9',1,'cutlass::TensorRefArray::Index()'],['../classcutlass_1_1TensorView.html#a5a3f096a01e6a2dfe984d7e605380599',1,'cutlass::TensorView::Index()'],['../structcutlass_1_1TileCoord.html#a7018df7f2dbc7d70345d5f076fb26259',1,'cutlass::TileCoord::Index()'],['../structcutlass_1_1TileIteratorBase.html#ab49ff66953031a8cfcfa11ddc092025c',1,'cutlass::TileIteratorBase::Index()'],['../structcutlass_1_1TileLoadIterator.html#aaa5d98b72576478ba04e4ad554faa827',1,'cutlass::TileLoadIterator::Index()'],['../structcutlass_1_1TileStoreIterator.html#aae07fdedeef68abd4e6c099924c70910',1,'cutlass::TileStoreIterator::Index()'],['../structcutlass_1_1TileLoadStream.html#a90ca6bbd882e39b5624ee0cd17e0d652',1,'cutlass::TileLoadStream::Index()'],['../structcutlass_1_1TileStoreStream.html#aa0e894a30d3a979ac56e5134360a08f4',1,'cutlass::TileStoreStream::Index()'],['../classcutlass_1_1ZipTileIterator.html#a2b054859fda34cba271e8a325ee7662f',1,'cutlass::ZipTileIterator::Index()']]], ['inputfragment',['InputFragment',['../structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ofca5985d18bcb54bc1f49355f3cee121.html#ac7906301019c3e6d60985c3851f1e95e',1,'cutlass::Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > >::InputFragment()'],['../structcutlass_1_1Copy.html#aed254bbc1ad94ed9d335ab02f199ceb1',1,'cutlass::Copy::InputFragment()'],['../structcutlass_1_1gemm_1_1HgemmSwizzle.html#ab5fab63d83eb0444c08bda16491d2627',1,'cutlass::gemm::HgemmSwizzle::InputFragment()'],['../structcutlass_1_1gemm_1_1IgemmFloatToInt8Converter.html#aa9a4b05f9fc28b80a4ae4aabb2ce1e8c',1,'cutlass::gemm::IgemmFloatToInt8Converter::InputFragment()'],['../structcutlass_1_1gemm_1_1IgemmInt8ToFloatConverter.html#a702ca51abc077355a2d7343976a0cfdb',1,'cutlass::gemm::IgemmInt8ToFloatConverter::InputFragment()'],['../structcutlass_1_1gemm_1_1IgemmSwizzle.html#a24a0bd5a9251ba5204b35eb4c4ac7727',1,'cutlass::gemm::IgemmSwizzle::InputFragment()'],['../structcutlass_1_1ZipConvert.html#a20d8f64fce1ad330969323f6959209d3',1,'cutlass::ZipConvert::InputFragment()']]], ['instructionshape',['InstructionShape',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#aa101be5d45e2be54bb4056517b6d5e76',1,'cutlass::gemm::FragmentMultiplyAdd::InstructionShape()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#a7d83cf5bde360251a252c6e728ea80ff',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::InstructionShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#afc7858e849a2967631761986512dbfb7',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::InstructionShape()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#ad83132bd03f8bd844487d1a9da908c8b',1,'cutlass::gemm::GemmConfig::InstructionShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a245bdf059794144d04d2823d2b39588e',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::InstructionShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#aa84c3d4efc7947d6efb75536c88043bd',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::InstructionShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a56d687b878397c694e7338fa750995af',1,'cutlass::gemm::ThreadMultiplyAdd::InstructionShape()']]], ['iterations',['Iterations',['../structcutlass_1_1FragmentIterator.html#a4324ae522c6463e66a64f05d2e58b5f0',1,'cutlass::FragmentIterator::Iterations()'],['../structcutlass_1_1FragmentConstIterator.html#a527100e34ed700787b1419157710dbb2',1,'cutlass::FragmentConstIterator::Iterations()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a8e3c978da6ed56239783bf4db0a936ae',1,'cutlass::gemm::GemmEpilogue::Iterations()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a7cf2e703f78b877ad551d0516982da10',1,'cutlass::gemm::GemmEpilogueTraits::Iterations()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#ad7b23352072b1509d3383ee775756d2a',1,'cutlass::gemm::GemmEpilogueTraitsHelper::Iterations()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a893cb2cc67676b44c1f3ad5908a4ab0c',1,'cutlass::gemm::GemmGlobalTileTraits::Iterations()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#a72eebc18d31900db57fa77508016f64a',1,'cutlass::gemm::GemmGlobalTileCdTraits::Iterations()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a6125e052e47296c3ef53c8a149ffd31b',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Iterations()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a025445699c5c86237d8c3e48f01081ea',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Iterations()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#ae96e490d38ade6db4d853fb6c8f3378b',1,'cutlass::gemm::GemmSharedLoadTileATraits::Iterations()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a27bc06b72a94e34d5da6fbfb950459b5',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Iterations()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a6bacc866485330f80596f634e6d14336',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Iterations()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a1b33700f904dd15e3533fec15d9d71bd',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Iterations()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits.html#a2dc8573498bcda33273b86db76dbd511',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::Iterations()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a0b9b2b7838cb13a61a16501a2662fa51',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::Iterations()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits.html#ae1d930fa295d8ddfaa10bda5978258de',1,'cutlass::gemm::IgemmGlobalTileTraits::Iterations()'],['../structcutlass_1_1PredicateTileAdapter.html#a1f2d52eec9f488c2a53c4d62af824450',1,'cutlass::PredicateTileAdapter::Iterations()'],['../structcutlass_1_1ConstPredicateTileAdapter.html#a5e461e0eb376de60605a6ab5fdc38058',1,'cutlass::ConstPredicateTileAdapter::Iterations()'],['../structcutlass_1_1TileTraits.html#a46b9e04bb8d33fcf8fc116cc48a555fc',1,'cutlass::TileTraits::Iterations()'],['../structcutlass_1_1TileIteratorBase.html#adbf563ecda4ffd4110d288f521c7e0da',1,'cutlass::TileIteratorBase::Iterations()'],['../structcutlass_1_1TileLoadIterator.html#a6c570dfa1cb68d436d8da6bd23cce6ce',1,'cutlass::TileLoadIterator::Iterations()'],['../structcutlass_1_1TileStoreIterator.html#a8628ea7116f736b59c644fc0d85d395f',1,'cutlass::TileStoreIterator::Iterations()'],['../structcutlass_1_1TileTraitsStrideMajor.html#a03a32694da75bb95422c6b550e3324e2',1,'cutlass::TileTraitsStrideMajor::Iterations()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a425a20b642ae8736c12626b2de9b8b82',1,'cutlass::TileTraitsContiguousMajor::Iterations()'],['../structcutlass_1_1TileTraitsWarpRake.html#a410e44aa83f2179152a48f7aceb05323',1,'cutlass::TileTraitsWarpRake::Iterations()']]], diff --git a/docs/search/typedefs_8.js b/docs/search/typedefs_8.js index d3b667c2..1b17640a 100644 --- a/docs/search/typedefs_8.js +++ b/docs/search/typedefs_8.js @@ -1,4 +1,4 @@ var searchData= [ - ['kernelclass',['KernelClass',['../structcutlass_1_1gemm_1_1GemmTraits.html#a28c32832f0353f00e93e867373cf6cae',1,'cutlass::gemm::GemmTraits']]] + ['kernelclass',['KernelClass',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#ab8cfa958ecc3b032d81003831b02feb1',1,'cutlass::gemm::SplitkPIGemmTraits::KernelClass()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a28c32832f0353f00e93e867373cf6cae',1,'cutlass::gemm::GemmTraits::KernelClass()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#a085c72d54426f5eb60f5bffa9c383229',1,'cutlass::reduction::BatchedReductionTraits::KernelClass()']]] ]; diff --git a/docs/search/typedefs_9.js b/docs/search/typedefs_9.js index 6eb3858e..ad947324 100644 --- a/docs/search/typedefs_9.js +++ b/docs/search/typedefs_9.js @@ -1,5 +1,5 @@ var searchData= [ ['loaditerator',['LoadIterator',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a905c219287a7342b2ddb58b84e413d64',1,'cutlass::gemm::GlobalLoadStream']]], - ['longindex',['LongIndex',['../classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1',1,'cutlass::TensorRef::LongIndex()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a9ad2f8da5e7e6b616dd05f792032699b',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::LongIndex()'],['../structcutlass_1_1TensorRefBatchStrided.html#aa3df5b7337d41d8f96717ea73bf3e24e',1,'cutlass::TensorRefBatchStrided::LongIndex()'],['../structcutlass_1_1TensorRefArray.html#a6220549b72ed8451dbf76466b50a96c0',1,'cutlass::TensorRefArray::LongIndex()']]] + ['longindex',['LongIndex',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#af89096da16d4ec40cb2d388a28cc69be',1,'cutlass::gemm::GemmEpilogueTraits::LongIndex()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ae033a49a784964e75a5c1b6135b21e47',1,'cutlass::gemm::GlobalLoadStream::LongIndex()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a220e04d5122bdb37b4967ad4e37253fe',1,'cutlass::gemm::GemmGlobalIteratorAb::LongIndex()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#af921ea4ba6a83e5db8deb519207e035d',1,'cutlass::gemm::GemmGlobalIteratorCd::LongIndex()'],['../classcutlass_1_1TensorRef.html#a42ca6a39ab0e44296fed71a77c57b7b1',1,'cutlass::TensorRef::LongIndex()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a9ad2f8da5e7e6b616dd05f792032699b',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::LongIndex()'],['../structcutlass_1_1TensorRefBatchStrided.html#aa3df5b7337d41d8f96717ea73bf3e24e',1,'cutlass::TensorRefBatchStrided::LongIndex()'],['../structcutlass_1_1TensorRefArray.html#a6220549b72ed8451dbf76466b50a96c0',1,'cutlass::TensorRefArray::LongIndex()'],['../structcutlass_1_1TileIteratorBase.html#ad2967c7bb5c6c5eacdea285a63040d94',1,'cutlass::TileIteratorBase::LongIndex()'],['../structcutlass_1_1TileLoadIterator.html#a6cdf9b87147f51f85c973ab435f58339',1,'cutlass::TileLoadIterator::LongIndex()'],['../structcutlass_1_1TileStoreIterator.html#a3543ff8dcabc935d2f2f6646d7cf2d7c',1,'cutlass::TileStoreIterator::LongIndex()'],['../classcutlass_1_1ZipTileIterator.html#a2b37d5c256318aa7054858cf85c9bbf4',1,'cutlass::ZipTileIterator::LongIndex()']]] ]; diff --git a/docs/search/typedefs_c.js b/docs/search/typedefs_c.js index 612b8f90..57925714 100644 --- a/docs/search/typedefs_c.js +++ b/docs/search/typedefs_c.js @@ -2,5 +2,5 @@ var searchData= [ ['offset_5ft',['Offset_t',['../classcutlass_1_1TensorView.html#a408d9a8026115bdaf70a37c86dc720b1',1,'cutlass::TensorView']]], ['outputfragment',['OutputFragment',['../structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ofca5985d18bcb54bc1f49355f3cee121.html#a8ef69ab595489e142911e8e240fb405a',1,'cutlass::Convert< Fragment< InputScalar_, kScalars_ >, Fragment< OutputScalar_, kScalars_ > >::OutputFragment()'],['../structcutlass_1_1Copy.html#a545be6c284d625b0841a10cc9126e14a',1,'cutlass::Copy::OutputFragment()'],['../structcutlass_1_1gemm_1_1HgemmSwizzle.html#a9c04f0b0eb0293325f661b72168d4fa8',1,'cutlass::gemm::HgemmSwizzle::OutputFragment()'],['../structcutlass_1_1gemm_1_1IgemmFloatToInt8Converter.html#a3d89bfc0d94cd695cbe4a61859e5e553',1,'cutlass::gemm::IgemmFloatToInt8Converter::OutputFragment()'],['../structcutlass_1_1gemm_1_1IgemmInt8ToFloatConverter.html#a66ac385a1cd771b95f70ee36cd74e8f7',1,'cutlass::gemm::IgemmInt8ToFloatConverter::OutputFragment()'],['../structcutlass_1_1gemm_1_1IgemmSwizzle.html#ac0a4e31e95f8e0c77ae087284bb02ff8',1,'cutlass::gemm::IgemmSwizzle::OutputFragment()'],['../structcutlass_1_1ZipConvert.html#ae0276951ad92b253de673c63ec88c584',1,'cutlass::ZipConvert::OutputFragment()']]], - ['outputtile',['OutputTile',['../structcutlass_1_1gemm_1_1GemmConfig.html#a9dd9c3efc3dfd9b5c6acd12236697399',1,'cutlass::gemm::GemmConfig::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a92a135fac401d43a8d2f14982d90274b',1,'cutlass::gemm::GemmEpilogue::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#af4d17d3774382fc0ba63d329bd12772c',1,'cutlass::gemm::GemmEpilogueTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#ac30a062bed1a65e45961c4f301b69101',1,'cutlass::gemm::GemmEpilogueTraitsHelper::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#ad52b81080731ee1f0d3c2c7eaba6f60d',1,'cutlass::gemm::GemmSharedStoreTileDTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#acb16feebdcad5bbebe9d4d3383c37899',1,'cutlass::gemm::GemmSharedLoadTileDTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a97d7ee63e5d180410b370f095648f367',1,'cutlass::gemm::GemmTraits::OutputTile()']]] + ['outputtile',['OutputTile',['../structcutlass_1_1gemm_1_1GemmConfig.html#a9dd9c3efc3dfd9b5c6acd12236697399',1,'cutlass::gemm::GemmConfig::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a92a135fac401d43a8d2f14982d90274b',1,'cutlass::gemm::GemmEpilogue::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#af4d17d3774382fc0ba63d329bd12772c',1,'cutlass::gemm::GemmEpilogueTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#ac30a062bed1a65e45961c4f301b69101',1,'cutlass::gemm::GemmEpilogueTraitsHelper::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#ad52b81080731ee1f0d3c2c7eaba6f60d',1,'cutlass::gemm::GemmSharedStoreTileDTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#acb16feebdcad5bbebe9d4d3383c37899',1,'cutlass::gemm::GemmSharedLoadTileDTraits::OutputTile()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a97d7ee63e5d180410b370f095648f367',1,'cutlass::gemm::GemmTraits::OutputTile()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#a3b0e98519b7e551ef6adac69e7406d8f',1,'cutlass::reduction::BatchedReductionTraits::OutputTile()']]] ]; diff --git a/docs/search/typedefs_d.js b/docs/search/typedefs_d.js index 7d07a834..4e7cae86 100644 --- a/docs/search/typedefs_d.js +++ b/docs/search/typedefs_d.js @@ -1,6 +1,6 @@ var searchData= [ - ['params',['Params',['../structcutlass_1_1gemm_1_1Gemm.html#a054d5e87f1985ae7e53fc07f4c16d916',1,'cutlass::gemm::Gemm::Params()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#ae5209fa80705442693833c63d535161e',1,'cutlass::gemm::GemmEpilogue::Params()'],['../structcutlass_1_1PredicatedTileLoadStream.html#a3af1a02201f53d4d09adc483fdcc23a6',1,'cutlass::PredicatedTileLoadStream::Params()'],['../structcutlass_1_1PredicatedTileStoreStream.html#ad0c7a51f1b98111ce332ed906601a4ba',1,'cutlass::PredicatedTileStoreStream::Params()']]], + ['params',['Params',['../structcutlass_1_1gemm_1_1DeviceGemm.html#a0e0fd3f326b73197886c8428b95cfcfc',1,'cutlass::gemm::DeviceGemm::Params()'],['../structcutlass_1_1gemm_1_1Gemm.html#a054d5e87f1985ae7e53fc07f4c16d916',1,'cutlass::gemm::Gemm::Params()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#ae5209fa80705442693833c63d535161e',1,'cutlass::gemm::GemmEpilogue::Params()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#a213c6812458c008435ed3ea710fe2454',1,'cutlass::reduction::BatchedReduction::Params()'],['../structcutlass_1_1PredicatedTileLoadStream.html#a3af1a02201f53d4d09adc483fdcc23a6',1,'cutlass::PredicatedTileLoadStream::Params()'],['../structcutlass_1_1PredicatedTileStoreStream.html#ad0c7a51f1b98111ce332ed906601a4ba',1,'cutlass::PredicatedTileStoreStream::Params()']]], ['pointer',['pointer',['../classcutlass_1_1platform_1_1unique__ptr.html#ab6ce60d03d11b269c1e151dfa7c696f9',1,'cutlass::platform::unique_ptr::pointer()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac4452df991f57f9bb0b86dfd380179b2',1,'cutlass::gemm::GlobalLoadStream::Pointer()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a3ff6f630b6b317ace1cf6e13fdf3a0cd',1,'cutlass::gemm::GemmGlobalTileTraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a3abcfa68ae9904a13195d32d6e6c4bc6',1,'cutlass::gemm::GemmGlobalIteratorCd::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a5be0c995c57faafaad7ae55ae015fc00',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#ab883c2a8b90262152faca9cabe515dc4',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#adc4946dfbe914140c6852d0c05b30864',1,'cutlass::gemm::GemmSharedLoadTileATraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#afafb3d9ae470c8ef56ec4ca5e66e2182',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a20471c2f569c28538dad8a220ab25624',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Pointer()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a1e72b69cf2147e4d194893a64417b920',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Pointer()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a84a73da2a07210fcfad10853b941c85e',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Pointer()'],['../structcutlass_1_1TileLoadIterator.html#a39acc5c35c8db019a3aeef79e8005b7f',1,'cutlass::TileLoadIterator::Pointer()'],['../structcutlass_1_1TileStoreIterator.html#adc4182adb78e34b7741f297eca86fe35',1,'cutlass::TileStoreIterator::Pointer()']]], ['predicatefunctor',['PredicateFunctor',['../structcutlass_1_1PredicatedTileLoadStream.html#aedafb6329f8c484071e04ffd8949edc5',1,'cutlass::PredicatedTileLoadStream::PredicateFunctor()'],['../structcutlass_1_1PredicatedTileStoreStream.html#aa6d4c263e057678b9f1b8ba6a9feb59f',1,'cutlass::PredicatedTileStoreStream::PredicateFunctor()']]], ['predicatevector',['PredicateVector',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a3dd74f6e12339a87c0eb8f75fbdc7b9c',1,'cutlass::gemm::GemmGlobalIteratorAb::PredicateVector()'],['../structcutlass_1_1PredicateTileAdapter.html#a72669300eb0bd18ea8124f780862a0e4',1,'cutlass::PredicateTileAdapter::PredicateVector()'],['../structcutlass_1_1ConstPredicateTileAdapter.html#ab9143288811a1262f7007f1b76b32e8f',1,'cutlass::ConstPredicateTileAdapter::PredicateVector()'],['../structcutlass_1_1TileIteratorBase.html#a05065dadf7b8a20284c566c82cda8000',1,'cutlass::TileIteratorBase::PredicateVector()'],['../structcutlass_1_1TileLoadIterator.html#ad71f865c61f02eba981c056ef71653f5',1,'cutlass::TileLoadIterator::PredicateVector()'],['../structcutlass_1_1TileStoreIterator.html#a6157fe8a2ffefd45eba6f3953f0e2994',1,'cutlass::TileStoreIterator::PredicateVector()'],['../classcutlass_1_1ZipTileIterator.html#aa853fa2a2e73397d8950567f3f5b7a15',1,'cutlass::ZipTileIterator::PredicateVector()']]] diff --git a/docs/search/typedefs_e.js b/docs/search/typedefs_e.js index 4131dc29..b5d0ba31 100644 --- a/docs/search/typedefs_e.js +++ b/docs/search/typedefs_e.js @@ -1,37 +1,4 @@ var searchData= [ - ['scalar',['Scalar',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a0d38914bf97084e04102e7897aee4295',1,'cutlass::gemm::GemmEpilogue::Scalar()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a8f15d59a7571d406d5ef593c342f0d4a',1,'cutlass::gemm::GemmEpilogueTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#ae2b82b9b62aefa15005091bb84ac20e8',1,'cutlass::gemm::GemmEpilogueTraitsHelper::Scalar()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7073b32c2cc62ffcad70a9ca46995c4c',1,'cutlass::gemm::GlobalLoadStream::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a6894b653fffa59bcb847bc3295643d6b',1,'cutlass::gemm::GemmGlobalTileTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a5817b81c7013db9a3f7394ad4b1db79a',1,'cutlass::gemm::GemmGlobalIteratorAb::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6b5b207eb1147e9669215e192901df9e',1,'cutlass::gemm::GemmGlobalIteratorCd::Scalar()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a5da116ae7e3f8ac2168bcf9bb964a429',1,'cutlass::gemm::SharedLoadStream::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a8b04fd003fc2db46d749360e8838438b',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#aaa439a0bb6b9de5e2722ea7b011effea',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a1b6956adc65254202864520b668edd14',1,'cutlass::gemm::GemmSharedLoadTileATraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a2a6065e583155b3e389253d3bfb64d73',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a9a2218b570dada2f1e3ccd8004c47856',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a1b025cb056729706f36469e74a9799dc',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af511f0ff83166b2a77d4cad4150c8e8f',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#ac618881d66790e4c280dc5692e5ddf95',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a8ae7db3f2f0c57779729d500386c004c',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a7639ccd7f6419a9f232db173a228e756',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#ae4128bba3f1df6ef7824e2db79745b00',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#aa37f285c74bb63c8bb8cbfc767378c41',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#a1ebf24984863d0422356031615b74c53',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueScalar.html#ab1068ba72468f9ede1d05ba41ea31317',1,'cutlass::gemm::IgemmEpilogueScalar::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueScalar_3_01int_01_4.html#a0983fd25494f6a7ed5af37a02e99f650',1,'cutlass::gemm::IgemmEpilogueScalar< int >::Scalar()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#ae6b053ca059932f7c0d3c99243854183',1,'cutlass::gemm::LinearScaling::Scalar()'],['../structcutlass_1_1gemm_1_1LinearScalingDevicePtr.html#a0599650f5cc68b430782d2db74e73d2e',1,'cutlass::gemm::LinearScalingDevicePtr::Scalar()'],['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a9d3006fc0c8bd98b9262606858b26cad',1,'cutlass::detail::ScalarOrPointer::Scalar()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#ab9979f3f1f6d31e1466780c5777de25e',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Scalar()'],['../structcutlass_1_1TileAllocation.html#a98f1243dc279999e3ff083ef45dee3f6',1,'cutlass::TileAllocation::Scalar()'],['../structcutlass_1_1TileIteratorBase.html#affac5a91f0659bb6739db25d20822c34',1,'cutlass::TileIteratorBase::Scalar()'],['../structcutlass_1_1TileLoadIterator.html#aafbb7a2137a07f0e07a12838b66bd511',1,'cutlass::TileLoadIterator::Scalar()'],['../structcutlass_1_1TileStoreIterator.html#ac3273690cdd0a1c2e61d29b289daf5b5',1,'cutlass::TileStoreIterator::Scalar()'],['../unioncutlass_1_1Vector.html#a56875d7cbf921261e68e1f63212db5bd',1,'cutlass::Vector::Scalar()'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a394b6e6ea7b97e076ae6445eb75d47ac',1,'cutlass::Vector< half, 1 >::Scalar()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#a03199df1287d263f7267239c014f1d9b',1,'cutlass::Vector< half, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a05914a7339b9d399ac7d8cf7ef617c31',1,'cutlass::Vector< bin1_t, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#af60049062cedca55d8cb4a3cae82641f',1,'cutlass::Vector< int4_t, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a602530542f526bd151f8a32deda015a1',1,'cutlass::Vector< uint4_t, kLanes_ >::Scalar()'],['../structcutlass_1_1VectorTraits.html#ab3b49d7fb52050c13e50e3c75bf72599',1,'cutlass::VectorTraits::Scalar()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#aaf35570b10829356762dcec925a5b4bc',1,'cutlass::VectorTraits< Vector< T, Lanes > >::Scalar()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#a6e99dde8432b13472971dc41573a574e',1,'cutlass::VectorTraits< Vector< T, Lanes > const >::Scalar()']]], - ['scalara',['ScalarA',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a4f4a40f3e77a7c36425449fa97bf2324',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarA()'],['../structcutlass_1_1gemm_1_1Gemm.html#a6fcf9daef57558e1bb932c6eba99721b',1,'cutlass::gemm::Gemm::ScalarA()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#aa97b0e7f369f927c4db6d683dbb7f53b',1,'cutlass::gemm::GemmConfig::ScalarA()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a96d64bdc48db4971798b620d6b49b3f6',1,'cutlass::gemm::GemmTraits::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a1a8f6feed85c7e88b36bc1a2637c716f',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a11be198f90afb859be51ec5feb5dcd2b',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a6bb4f6a102edc2c8fba5b67abf05c363',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarA()']]], - ['scalaraccum',['ScalarAccum',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#a1e854c281072db280ae90c2569b5f64c',1,'cutlass::gemm::FragmentMultiplyAdd::ScalarAccum()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#ab3774e6aa28266b25e3822fc9e72edc2',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::ScalarAccum()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#ae80882255b71c1ec94c6caeded2d0309',1,'cutlass::gemm::LinearScaling::ScalarAccum()']]], - ['scalaralphabeta',['ScalarAlphaBeta',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#aea565efe23b7a5c17eeab5e8cd0d1322',1,'cutlass::gemm::FragmentMultiplyAdd::ScalarAlphaBeta()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#ae7a333f7aa3f52226c76cec9d2da042d',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::ScalarAlphaBeta()']]], - ['scalarb',['ScalarB',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a3f4a2d052e6701f5d0ff950a850eabe3',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarB()'],['../structcutlass_1_1gemm_1_1Gemm.html#ae6f11bb666c2c8510e99200a2c0fc2f4',1,'cutlass::gemm::Gemm::ScalarB()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a389c0980e978463d3cc126342d8413c6',1,'cutlass::gemm::GemmConfig::ScalarB()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#aa0e8fd28f5247764dfb7843f7670c698',1,'cutlass::gemm::GemmTraits::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a70dfd2f33548dbd104d798f728526fbc',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a6a9c4f906a4930f4fc415009ead2e05d',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a6c9a73da33b5ba70307a719db988b56c',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarB()']]], - ['scalarc',['ScalarC',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a726556cb28d1515c89ac841f1140c781',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarC()'],['../structcutlass_1_1gemm_1_1Gemm.html#a71f0c91768a1a87e94030c8c2db51e55',1,'cutlass::gemm::Gemm::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a30d9cfbbede42166e4e1964145dfe05d',1,'cutlass::gemm::GemmConfig::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#abb0741601652df8fdf927d49c2c0e4d0',1,'cutlass::gemm::GemmEpilogue::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#aa794b5f04ce736cdba0d778861ce3a9c',1,'cutlass::gemm::GemmEpilogueTraits::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a8f78d4a68817760099081523aa7fd443',1,'cutlass::gemm::GemmTraits::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a48a641d601c88d95aa542b636f94d60d',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a703b329ebf14d78f576e83c5e6fe23a7',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#af41778b170d940d10bd53f13d34912b1',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarC()']]], - ['scalard',['ScalarD',['../structcutlass_1_1gemm_1_1Gemm.html#ae2aa3663f9f6f5708e816dcf7cd66694',1,'cutlass::gemm::Gemm::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a7ad231b16f05a58900dca8ff0e0e7bfa',1,'cutlass::gemm::GemmConfig::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a4887b56a96694ce6350db77f78bb505f',1,'cutlass::gemm::GemmEpilogue::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#ad9a81c3ff36a4f3aa376e2cff94cbb50',1,'cutlass::gemm::GemmEpilogueTraits::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a3129be75ee087603170f8367e10e070e',1,'cutlass::gemm::GemmTraits::ScalarD()']]], - ['scalarepilogue',['ScalarEpilogue',['../structcutlass_1_1gemm_1_1Gemm.html#a9349fc5f20215c1c6508e250b0b4e936',1,'cutlass::gemm::Gemm']]], - ['second',['Second',['../structcutlass_1_1ZipTileAllocation.html#ac6b988a7e6cd8ec83fae642342209527',1,'cutlass::ZipTileAllocation::Second()'],['../structcutlass_1_1ZipFragment.html#af93e3396f0f2ca8d5e439ca5803af92a',1,'cutlass::ZipFragment::Second()'],['../structcutlass_1_1ZipConvert.html#a525a08b41696d53d6e542aea9c8e2f10',1,'cutlass::ZipConvert::Second()'],['../structcutlass_1_1ZipTensorRef.html#a3e77904f83d1b33f0bac054355f3432e',1,'cutlass::ZipTensorRef::Second()'],['../classcutlass_1_1ZipTileIterator.html#ae34d88ee2878174707dcfdda4f3fa76c',1,'cutlass::ZipTileIterator::Second()']]], - ['shape',['Shape',['../structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html#a89f1d9599b418c8bb81c104ca86cf00e',1,'cutlass::gemm::GemmMultiplicandTraits::Shape()'],['../structcutlass_1_1ShapeScale.html#aae9cfc35c517cd89018e4f914acbac29',1,'cutlass::ShapeScale::Shape()'],['../structcutlass_1_1ShapeAdd.html#ad4712a1339445038949445de1dd74e71',1,'cutlass::ShapeAdd::Shape()'],['../structcutlass_1_1ShapeSub.html#a24b6dd8cb6171b85c4e2f37407f9a5c9',1,'cutlass::ShapeSub::Shape()'],['../structcutlass_1_1ShapeMul.html#a8875fc5e861339f981360ed774e8cc94',1,'cutlass::ShapeMul::Shape()'],['../structcutlass_1_1ShapeDiv.html#a108ded386ef6708afc6fe769a77a234b',1,'cutlass::ShapeDiv::Shape()'],['../structcutlass_1_1ShapeDivCeiling.html#a0e3b032e241a8ead89e1d9ffb472d799',1,'cutlass::ShapeDivCeiling::Shape()'],['../structcutlass_1_1ShapeMax.html#ad566aceac2563024982eeabb78c6c961',1,'cutlass::ShapeMax::Shape()'],['../structcutlass_1_1ShapeMin.html#a5c813e4c34ea612431d31b36120f8549',1,'cutlass::ShapeMin::Shape()'],['../structcutlass_1_1ShapeStrides.html#a76cde4c3ebd1d191e0191826b2663be4',1,'cutlass::ShapeStrides::Shape()'],['../structcutlass_1_1TileAllocation.html#a2254302a3ce0b4da5c3657ada0cb8ccc',1,'cutlass::TileAllocation::Shape()']]], - ['sharedloaditeratora',['SharedLoadIteratorA',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a365aed4c0e2ad1bffea517ee36998557',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadIteratorA()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a8978603203221020113ec79e3f2c0d64',1,'cutlass::gemm::HgemmTraitsHelper::SharedLoadIteratorA()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a03d7378c46b517438fce25e0f1e4d98c',1,'cutlass::gemm::IgemmTraitsHelper::SharedLoadIteratorA()']]], - ['sharedloaditeratorb',['SharedLoadIteratorB',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a4de905aadc734df69fd0db83f01be56e',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadIteratorB()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a14b4720b7522684a98b653d70353233a',1,'cutlass::gemm::HgemmTraitsHelper::SharedLoadIteratorB()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a94111367763890341e88450f43b59312',1,'cutlass::gemm::IgemmTraitsHelper::SharedLoadIteratorB()']]], - ['sharedloaditeratord',['SharedLoadIteratorD',['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#adbff60de6f90ef4d5ae0c7096692e2c0',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedLoadIteratorD()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#ad33ee44527a7fcfd41b4e677927fd4fa',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::SharedLoadIteratorD()']]], - ['sharedloadstreama',['SharedLoadStreamA',['../structcutlass_1_1gemm_1_1GemmTraits.html#ae01371eb31b88fa83c4926564cecafdc',1,'cutlass::gemm::GemmTraits::SharedLoadStreamA()'],['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#aa5ebe3a857b55412a86ec65ad1c55dd8',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadStreamA()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#aaa35c4d2a90f137f50c9ccd24d5c4f5c',1,'cutlass::gemm::HgemmTraitsHelper::SharedLoadStreamA()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a7e035ceab26dc904726ddbf14371f476',1,'cutlass::gemm::IgemmTraitsHelper::SharedLoadStreamA()']]], - ['sharedloadstreamb',['SharedLoadStreamB',['../structcutlass_1_1gemm_1_1GemmTraits.html#acaeb27063a444e2a3b93f3cb70e3c290',1,'cutlass::gemm::GemmTraits::SharedLoadStreamB()'],['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a12447ce4d11601a625662f9d177cc3d8',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadStreamB()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a1d458fe1e416ddc4565f2b802592268b',1,'cutlass::gemm::HgemmTraitsHelper::SharedLoadStreamB()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#aff287e2ca10a437a82736baab2d7c28d',1,'cutlass::gemm::IgemmTraitsHelper::SharedLoadStreamB()']]], - ['sharedloadstreamd',['SharedLoadStreamD',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a8e5d38a7795b50a021fc43dc7424288b',1,'cutlass::gemm::GemmEpilogue::SharedLoadStreamD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a5bb3232a2f15d8263d058c69b0839e2f',1,'cutlass::gemm::GemmEpilogueTraits::SharedLoadStreamD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a9e511e1852668e0a242315c24888dee3',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedLoadStreamD()']]], - ['sharedloadtiletraits',['SharedLoadTileTraits',['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a076ea17d901d22d3b69bf9c621858235',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af534fc5698513af3c6724b68ae03316d',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a9335aca8b152ff1167763de8ff8fb882',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a851113bffb5b656c5c649845852b3b8d',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a53dd72126a43a1c5811ed92a2313d19d',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#ad8f1b0fda40f1fb7dc598cc841f38afe',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::SharedLoadTileTraits()']]], - ['sharedstorage',['SharedStorage',['../structcutlass_1_1gemm_1_1Gemm.html#ad10627d508fad0efae1fb91b26d7a6b7',1,'cutlass::gemm::Gemm::SharedStorage()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#ac36dad8a7b6bc7fc6ef88e44068468dc',1,'cutlass::gemm::GemmEpilogue::SharedStorage()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a22c671494d487511c71f2b0f26fdb404',1,'cutlass::gemm::SharedLoadStream::SharedStorage()'],['../structcutlass_1_1TileLoadIterator.html#a57eff980f6b1086abe39dd617de5b948',1,'cutlass::TileLoadIterator::SharedStorage()'],['../structcutlass_1_1TileStoreIterator.html#af6c297bb43573a13f6b721cc8ff730ca',1,'cutlass::TileStoreIterator::SharedStorage()']]], - ['sharedstorefragmentd',['SharedStoreFragmentD',['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a5e64440830b36899f9c0ed8b369665c8',1,'cutlass::gemm::IgemmEpilogueTraitsHelper']]], - ['sharedstoreiteratora',['SharedStoreIteratorA',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a3a20852daeb46c625b2391d078b30d73',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedStoreIteratorA()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a366c89f8ecfbf0aef894cfb6fae25be9',1,'cutlass::gemm::HgemmTraitsHelper::SharedStoreIteratorA()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a3d2b39cacb975afbfeae9e368f0656ae',1,'cutlass::gemm::IgemmTraitsHelper::SharedStoreIteratorA()']]], - ['sharedstoreiteratorb',['SharedStoreIteratorB',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a43713f534798b1e27c4ba38b72e63c08',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedStoreIteratorB()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a463dddee069606fd4ecf7c386ff23fce',1,'cutlass::gemm::HgemmTraitsHelper::SharedStoreIteratorB()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a2953ae145fdb2eadf871aee8219e92d1',1,'cutlass::gemm::IgemmTraitsHelper::SharedStoreIteratorB()']]], - ['sharedstoreiteratord',['SharedStoreIteratorD',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#aab0a964efe223c5c29bc816c393b5a9a',1,'cutlass::gemm::GemmEpilogue::SharedStoreIteratorD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a48dee5c2aafb86e999732a1347c9f668',1,'cutlass::gemm::GemmEpilogueTraits::SharedStoreIteratorD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a02a517fd246fb961727d3bd1b4f954be',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedStoreIteratorD()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#af7024128202d642d3535e1ae5cf5f43d',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::SharedStoreIteratorD()']]], - ['sharedstoretiletraits',['SharedStoreTileTraits',['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#aad9a6190cccbc5c23a86f09c45c0e507',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#aaa198fed841af6bf26bf2e9544d0a877',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#acbeea56f0ce95ddd632db3482c1021e5',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#ad7659dc0eaa491447ad127ef7098924f',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#aa21c231aa56c9e5f2705cac62b17bbbe',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a11d02ea6e4ab68a0f4dff1eb8ecf4f9d',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#a86ed2ebc5b6e4426ab35a1f30a3e47bb',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a872dc2d0b8ed6c75c41d258a23183861',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::SharedStoreTileTraits()']]], - ['sharedstoretransformerd',['SharedStoreTransformerD',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a9063e7fc044a679652d5a3a31aa77e7c',1,'cutlass::gemm::GemmEpilogue::SharedStoreTransformerD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a685d59ee03a226e62660e83c4c60ca69',1,'cutlass::gemm::GemmEpilogueTraits::SharedStoreTransformerD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#aa5cea8dbebda9a12a503ae1416c4da33',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedStoreTransformerD()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a00000e0cd14b9e6e242eafb5133af8cf',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::SharedStoreTransformerD()']]], - ['sharedstream',['SharedStream',['../structcutlass_1_1gemm_1_1GemmTraits.html#a7864969e774c0f7155951e1ab599ed17',1,'cutlass::gemm::GemmTraits']]], - ['skew',['Skew',['../structcutlass_1_1TileIteratorBase.html#ae50ca325a827bdf1d1bfab3ba6e204c1',1,'cutlass::TileIteratorBase::Skew()'],['../structcutlass_1_1TileLoadIterator.html#aeb6cc0e2990c06c83b789b579a03b15f',1,'cutlass::TileLoadIterator::Skew()'],['../structcutlass_1_1TileStoreIterator.html#a18248da35dc9a0ae2411121bee323085',1,'cutlass::TileStoreIterator::Skew()']]], - ['storage',['Storage',['../structcutlass_1_1PredicateVector.html#afe85a07b9f311327c6bf04e3a5f94e5a',1,'cutlass::PredicateVector::Storage()'],['../classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009',1,'cutlass::TensorRef::Storage()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#ab5dbedeff1ae3d2936b6ce76023a18f7',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Storage()'],['../structcutlass_1_1TensorRefBatchStrided.html#aa86a59779c0830e8cf82066853dc1089',1,'cutlass::TensorRefBatchStrided::Storage()'],['../structcutlass_1_1TensorRefArray.html#ab6a6ed8af1a4b3da33e840409c0a72d8',1,'cutlass::TensorRefArray::Storage()'],['../classcutlass_1_1TensorView.html#a52fb77744c7c7ecf0f8a3a725556293d',1,'cutlass::TensorView::Storage()'],['../structcutlass_1_1TileAllocation.html#ace1f396620f3eb69c367bdf69aa27ebd',1,'cutlass::TileAllocation::Storage()'],['../structcutlass_1_1TileIteratorBase.html#a2e682380b5ea9ea05ee8ffd68a1205f0',1,'cutlass::TileIteratorBase::Storage()']]], - ['storagecoord',['StorageCoord',['../classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d',1,'cutlass::TensorRef::StorageCoord()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a6893c1a9057713560b46a9062b29b116',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::StorageCoord()'],['../classcutlass_1_1TensorView.html#abaf7ec0e96bc99cf0ce243e703b8711c',1,'cutlass::TensorView::StorageCoord()']]], - ['storeiterator',['StoreIterator',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac16e31930c346068d7522dd8de9d93d2',1,'cutlass::gemm::GlobalLoadStream']]], - ['streama',['StreamA',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#ae2c4829f874ef9e83aaa52c412fa1227',1,'cutlass::gemm::GlobalLoadStreamPair::StreamA()'],['../structcutlass_1_1gemm_1_1SharedStreamPair.html#aa1e8da4d8a313881d5e6509cf6e852d4',1,'cutlass::gemm::SharedStreamPair::StreamA()']]], - ['streamb',['StreamB',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a08171f4eae2442c98f81acc88e8bd55c',1,'cutlass::gemm::GlobalLoadStreamPair::StreamB()'],['../structcutlass_1_1gemm_1_1SharedStreamPair.html#a8be3e50ce5b65b777972720c77b51529',1,'cutlass::gemm::SharedStreamPair::StreamB()']]], - ['strides',['Strides',['../structcutlass_1_1FragmentIterator.html#a2e93985d759d904ac858054eeaa9e50e',1,'cutlass::FragmentIterator::Strides()'],['../structcutlass_1_1TileAllocation.html#aba9164abe2fd7a091a858b23c0d3ac9c',1,'cutlass::TileAllocation::Strides()']]], - ['stridevector',['StrideVector',['../classcutlass_1_1TensorRef.html#a07c4b1ace7c8799537553b54cfe0a059',1,'cutlass::TensorRef::StrideVector()'],['../classcutlass_1_1TensorView.html#a625892aa9063eebf769bb2ed0cba7684',1,'cutlass::TensorView::StrideVector()']]], - ['stype',['SType',['../structcutlass_1_1gemm_1_1GemmDesc.html#a258e8c008db365b88654f46df3017ec2',1,'cutlass::gemm::GemmDesc']]] + ['reductiontraits',['ReductionTraits',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a2fc7b6473f7e4c69a7f53ee9573b0e61',1,'cutlass::gemm::SplitkPIGemmTraits']]] ]; diff --git a/docs/search/typedefs_f.js b/docs/search/typedefs_f.js index 2cc14d93..5d709b70 100644 --- a/docs/search/typedefs_f.js +++ b/docs/search/typedefs_f.js @@ -1,30 +1,39 @@ var searchData= [ - ['tensorcoord',['TensorCoord',['../classcutlass_1_1TensorRef.html#a35b7e1fc59298e0f06f484652d62fd65',1,'cutlass::TensorRef::TensorCoord()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#aeca2ec193d8a07dc9073c6b199215c88',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::TensorCoord()'],['../structcutlass_1_1TensorRefBatchStrided.html#a9d07d96c2eccba10c3a9e4bef58d4e01',1,'cutlass::TensorRefBatchStrided::TensorCoord()'],['../classcutlass_1_1TensorView.html#ada8a241b6b2c5439183b0d6c456c934e',1,'cutlass::TensorView::TensorCoord()']]], - ['tensorref',['TensorRef',['../structcutlass_1_1gemm_1_1SharedLoadStream.html#aff5202428b0e7207456c97204d4d219a',1,'cutlass::gemm::SharedLoadStream::TensorRef()'],['../structcutlass_1_1TensorRefBatchStrided.html#a0d5f100b9b87f881e7ecaced63bce9dd',1,'cutlass::TensorRefBatchStrided::TensorRef()'],['../classcutlass_1_1TensorRefBatchStrided_1_1ConstIterator.html#a5557f98c75b51751f834c4a7d6385efc',1,'cutlass::TensorRefBatchStrided::ConstIterator::TensorRef()'],['../structcutlass_1_1TensorRefArray.html#a066d684240f8a24e1ba621ae3904ec75',1,'cutlass::TensorRefArray::TensorRef()'],['../classcutlass_1_1TensorRefArray_1_1ConstIterator.html#ad19f348ecb951eae63a3ef2c47d34f4f',1,'cutlass::TensorRefArray::ConstIterator::TensorRef()'],['../classcutlass_1_1TensorView.html#af0237fca8d8df1cf4f17d9cb43eae507',1,'cutlass::TensorView::TensorRef()'],['../structcutlass_1_1TileAllocation.html#aa0bf6caeab13dc004350c6c0cfe0df80',1,'cutlass::TileAllocation::TensorRef()'],['../structcutlass_1_1ZipTileAllocation.html#a1c274bfb4401beabaf62fed9c2054ddf',1,'cutlass::ZipTileAllocation::TensorRef()'],['../structcutlass_1_1TileLoadIterator.html#a146adfb1951efd70995b05a7a31fd548',1,'cutlass::TileLoadIterator::TensorRef()'],['../structcutlass_1_1TileStoreIterator.html#acd3c170dd70bee777cb9e9dc662c5eac',1,'cutlass::TileStoreIterator::TensorRef()'],['../structcutlass_1_1TileLoadStream.html#a8c9256c5cdd1fd129dbcc6536375aca7',1,'cutlass::TileLoadStream::TensorRef()'],['../structcutlass_1_1TileStoreStream.html#a2255d760e812cfe8e31f114cdb5793fe',1,'cutlass::TileStoreStream::TensorRef()'],['../classcutlass_1_1ZipTileIterator.html#a1dea96f5cf56aade14bd815aee91d09c',1,'cutlass::ZipTileIterator::TensorRef()']]], - ['tensorref_5ft',['TensorRef_t',['../classcutlass_1_1TensorView.html#a25eb8c0fe380114ddaabb37453be4606',1,'cutlass::TensorView']]], - ['tensorrefa',['TensorRefA',['../structcutlass_1_1gemm_1_1GemmDesc.html#aea3a523662dc801bf9abf205a8e400fe',1,'cutlass::gemm::GemmDesc']]], - ['tensorrefb',['TensorRefB',['../structcutlass_1_1gemm_1_1GemmDesc.html#a7de7de97d237d9dcc0d89de7b04342ab',1,'cutlass::gemm::GemmDesc']]], - ['tensorrefc',['TensorRefC',['../structcutlass_1_1gemm_1_1GemmDesc.html#a51f77118d545308068b0dc287abf4e8b',1,'cutlass::gemm::GemmDesc']]], - ['tensorrefd',['TensorRefD',['../structcutlass_1_1gemm_1_1GemmDesc.html#a1f59ad60a529aa1db6e66ade3cb65052',1,'cutlass::gemm::GemmDesc']]], - ['this_5f',['This_',['../structcutlass_1_1Fragment.html#a32f7ff86b73576a15c5ddaa40c4e0a95',1,'cutlass::Fragment::This_()'],['../structcutlass_1_1FragmentIterator.html#ae320d9672450f5341abcdb24a8b09369',1,'cutlass::FragmentIterator::This_()'],['../structcutlass_1_1FragmentConstIterator.html#add14f695231c2bdd6284bf22b1e66f8f',1,'cutlass::FragmentConstIterator::This_()'],['../structcutlass_1_1gemm_1_1Gemm.html#a26c13e8bbad805760443ef6df475e317',1,'cutlass::gemm::Gemm::This_()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a2892be253a3de5bffc3edcef2890d3a8',1,'cutlass::gemm::GemmGlobalIteratorAb::This_()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6a745d66c4c7de352041f779e54e6b2b',1,'cutlass::gemm::GemmGlobalIteratorCd::This_()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#aa6214a0ad09d155ed79feadc6647b989',1,'cutlass::gemm::GemmTraits::This_()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#aa8b453116c2d96ea2c56e08cb981346c',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::This_()'],['../structcutlass_1_1ZipFragment.html#a2f038ddb37879cbc54dbadaeb7085fb1',1,'cutlass::ZipFragment::This_()']]], - ['threadblocktile',['ThreadBlockTile',['../structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html#a5e43f3c9aa8d7dc5f01dfc63b1ea97dc',1,'cutlass::gemm::GemmMultiplicandTraits']]], - ['threadblocktileref',['ThreadblockTileRef',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a011287c8289b7b026f9993da663abd77',1,'cutlass::gemm::GlobalLoadStream::ThreadblockTileRef()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a79b783f02eaa4cf8fc8f929448e121be',1,'cutlass::gemm::GlobalLoadStreamPair::ThreadblockTileRef()'],['../structcutlass_1_1gemm_1_1SharedStreamPair.html#ae2c64823a7a5af01187bd3dda6bc309d',1,'cutlass::gemm::SharedStreamPair::ThreadblockTileRef()']]], - ['threadblocktilestorage',['ThreadblockTileStorage',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a17804b01904a9a4ee7a857905833f7a8',1,'cutlass::gemm::GlobalLoadStream::ThreadblockTileStorage()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a5eef540f82acea5d9cb12965707ba158',1,'cutlass::gemm::GlobalLoadStreamPair::ThreadblockTileStorage()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#abfecd4a57dfbf82e8fa74a50e01fc4ee',1,'cutlass::gemm::GemmTraits::ThreadblockTileStorage()']]], - ['threadgemmshape',['ThreadGemmShape',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a8bbf1a5eac01585438c639da0e40e5c8',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ThreadGemmShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#ac095b403212e23cb95e70cee9013099e',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ThreadGemmShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#ac5cde71eb825b0a4311bd0ce982f47aa',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ThreadGemmShape()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a33a68b52cca697bd505bfd982938143e',1,'cutlass::gemm::ThreadMultiplyAdd::ThreadGemmShape()']]], - ['threadoffset',['ThreadOffset',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#afd09d3b8e5ca04eab7edc2e5723816e5',1,'cutlass::gemm::GemmGlobalIteratorAb::ThreadOffset()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6d985f8e93be21e56f72ec1400d73df1',1,'cutlass::gemm::GemmGlobalIteratorCd::ThreadOffset()'],['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#a07ff2f97fdd57c4df05ef8e817265b30',1,'cutlass::gemm::IgemmGlobalIteratorAb::ThreadOffset()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#a667cae4a9fa78a6df073f5ee48ef9664',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::ThreadOffset()'],['../structcutlass_1_1TileTraits.html#a671ef48f4141a9de30b6ec6fb0be1feb',1,'cutlass::TileTraits::ThreadOffset()'],['../structcutlass_1_1TileIteratorBase.html#a0fec2c1f9c0b8fbde4ca6faf123b59a5',1,'cutlass::TileIteratorBase::ThreadOffset()'],['../structcutlass_1_1TileLoadIterator.html#ae8cb43a98cd2fa28f6457afbda8ec58a',1,'cutlass::TileLoadIterator::ThreadOffset()'],['../structcutlass_1_1TileStoreIterator.html#a076357a165302f01f449fd91f9ed402a',1,'cutlass::TileStoreIterator::ThreadOffset()'],['../structcutlass_1_1TileTraitsStrideMajor.html#ae8d14a3c6871072febfd75ed08aba32c',1,'cutlass::TileTraitsStrideMajor::ThreadOffset()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a823ba83e9ca680da0af7d63be772a351',1,'cutlass::TileTraitsContiguousMajor::ThreadOffset()']]], - ['threads',['Threads',['../structcutlass_1_1gemm_1_1ReshapeThreads.html#afd3614ff45f0fc77ad4967951cb5ab57',1,'cutlass::gemm::ReshapeThreads::Threads()'],['../structcutlass_1_1gemm_1_1ReshapeThreads_3_01Tile___00_01Threads___00_01true_01_4.html#a894932ad04fae3aea06eb6d259e01c1c',1,'cutlass::gemm::ReshapeThreads< Tile_, Threads_, true >::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#aae7128f5522383c857d2639031b64c30',1,'cutlass::gemm::GemmGlobalTileTraits::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#a9aff3e2ff0db5a5169257e964e5895c6',1,'cutlass::gemm::GemmGlobalTileCdTraits::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a33e4dcd4449f324fed5ceaa2cde01b50',1,'cutlass::gemm::GemmGlobalIteratorAb::Threads()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#afdd08b4f4c1feaa426f997d15cd28c02',1,'cutlass::gemm::GemmGlobalIteratorCd::Threads()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a1acf2a1d8bf73fda142e7d82e05f00a2',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Threads()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a9bef06b59f27c6e673066a7f0280aa06',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Threads()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits.html#ae7a4f120805421ac0712604723612b7e',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::Threads()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits.html#a72fe2fb9077d072f8266f07374624a1f',1,'cutlass::gemm::IgemmGlobalTileTraits::Threads()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#aeb866237318ac7983e554a08395c5125',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Threads()']]], - ['threadsdelta',['ThreadsDelta',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a428750e54eabd15b2a3f7ac2a96af0a9',1,'cutlass::gemm::GemmGlobalTileTraits::ThreadsDelta()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#ae2f8331619e735e620f8a8cf2cdde077',1,'cutlass::gemm::GemmGlobalTileCdTraits::ThreadsDelta()'],['../structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits.html#a61907b1afa07c12de74545d2e23a4281',1,'cutlass::gemm::HgemmCrosswiseGlobalTileTraits::ThreadsDelta()'],['../structcutlass_1_1gemm_1_1IgemmGlobalTileTraits.html#a160d1ecd86de4742f550d11bc281786b',1,'cutlass::gemm::IgemmGlobalTileTraits::ThreadsDelta()']]], - ['threadshape',['ThreadShape',['../structcutlass_1_1TileTraitsStrideMajor.html#a03567f41ce616ebb4cdb309c85820599',1,'cutlass::TileTraitsStrideMajor::ThreadShape()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a33116b67e580292d4e354ca17ecd4167',1,'cutlass::TileTraitsContiguousMajor::ThreadShape()'],['../structcutlass_1_1TileTraitsWarpRake.html#ad6619e0b5d876fafd51c78e39f2c029e',1,'cutlass::TileTraitsWarpRake::ThreadShape()']]], - ['threadsperwarp',['ThreadsPerWarp',['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#aea4b928b0cfd4082e93851104838c5d7',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a0761c497c41a45652368fc0d54def98f',1,'cutlass::gemm::GemmSharedLoadTileATraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#aed92656a074e915d97a1b6a990aeba66',1,'cutlass::gemm::GemmSharedLoadTileBTraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#adf72ea773b8d4d3eb184f59c8cdf9543',1,'cutlass::gemm::GemmSharedStoreTileDTraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a9022ffc49b32503fd3639341e7e291a3',1,'cutlass::gemm::GemmSharedLoadTileDTraits::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a61ed3d8bb4ca6db39d16b632f58d75dc',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a6bb1afd96da05370e61b38f2a93e40df',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a19bd7eb621b08f192bc01a4634853a9b',1,'cutlass::gemm::ThreadMultiplyAdd::ThreadsPerWarp()']]], - ['threadsstrides',['ThreadsStrides',['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#ae540e7ea7106552682aa4c97b833b3b1',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::ThreadsStrides()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a2053e4b9cb3ed2727c89960354ea0b29',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::ThreadsStrides()']]], - ['tile',['Tile',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a260543a618fb187c2da40c9f630925ec',1,'cutlass::gemm::GlobalLoadStream::Tile()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a52ba72984ea8ce84eda28d07c6c8ec19',1,'cutlass::gemm::GemmGlobalTileTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a646bd38ab95cdf0379ecb372839a9111',1,'cutlass::gemm::GemmGlobalIteratorAb::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#ab96f324083e51ce4c2b73c18803c69a7',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a74196946c28e98ee60346b0eeede1471',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a9a00be672617162c4c7ac94c7d8980cc',1,'cutlass::gemm::GemmSharedLoadTileATraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#ac242508ec46db0493a69a589dbfc19e4',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a2bc41b907417b47f3dca9c3dd358f8bc',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Tile()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a63f980fea1ff3dd83ac276cfd83a4ce5',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Tile()'],['../structcutlass_1_1ReshapeTile.html#a8d57fe6422aa920d9815a66e5a85b5f5',1,'cutlass::ReshapeTile::Tile()'],['../structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4.html#a966a9432cf42dfdff8ad6b89ebd74f06',1,'cutlass::ReshapeTile< Tile_, kAccessSize_, true >::Tile()'],['../structcutlass_1_1TileTraits.html#a3632c351a28f71f6c140dd33089d80b0',1,'cutlass::TileTraits::Tile()'],['../structcutlass_1_1TileIteratorBase.html#a7fcf13023c85cf1e1150d867bd1559d4',1,'cutlass::TileIteratorBase::Tile()'],['../structcutlass_1_1TileLoadIterator.html#a88eaa581e0b5419b98ee5a71073d0539',1,'cutlass::TileLoadIterator::Tile()'],['../structcutlass_1_1TileStoreIterator.html#ad18ee6f519b03e1dbf711339b63e16d6',1,'cutlass::TileStoreIterator::Tile()'],['../structcutlass_1_1TileTraitsStrideMajor.html#afbb78ece048b868475d4a6802e6894ac',1,'cutlass::TileTraitsStrideMajor::Tile()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a1607d53544302c12278793bc9b283763',1,'cutlass::TileTraitsContiguousMajor::Tile()'],['../structcutlass_1_1TileTraitsWarpRake.html#adcd658d9daf286368a9d51c8c1647f89',1,'cutlass::TileTraitsWarpRake::Tile()'],['../structcutlass_1_1TileTraitsStandard.html#aee3fee526bc4d4820c03665a2f5f166b',1,'cutlass::TileTraitsStandard::Tile()']]], - ['tilewithoutskew',['TileWithoutSkew',['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#a050cf5964a2d3683491bc4313ead5450',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::TileWithoutSkew()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a5a5a36fc570e1225b20ce0a48c89d213',1,'cutlass::gemm::GemmSharedLoadTileATraits::TileWithoutSkew()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a1f35981a6d661635dfbcf7c7a76056a2',1,'cutlass::gemm::GemmSharedLoadTileBTraits::TileWithoutSkew()']]], - ['tilewithoutskew_5f',['TileWithoutSkew_',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a93ae99460695718babaef6d1ef597e38',1,'cutlass::gemm::GemmSharedLoadTileATraits::TileWithoutSkew_()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a3d8be9ddea1cab53d1b4b3d508f9eab8',1,'cutlass::gemm::GemmSharedLoadTileBTraits::TileWithoutSkew_()']]], - ['tilewithskew',['TileWithSkew',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a72e0214f86cf8b3711d006dcd69d7a17',1,'cutlass::gemm::GemmSharedLoadTileATraits::TileWithSkew()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a69c7ec2a779718556e6d9119588e791c',1,'cutlass::gemm::GemmSharedLoadTileBTraits::TileWithSkew()']]], - ['traits',['Traits',['../structcutlass_1_1gemm_1_1Gemm.html#a29f52e33e1f1cf150f5062d9ad2590ff',1,'cutlass::gemm::Gemm::Traits()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a645ab6e9e63163ee6bf536717a30fb1b',1,'cutlass::gemm::GemmEpilogue::Traits()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#af2b5682b8e6dd13590ec258a44636430',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Traits()'],['../structcutlass_1_1TileIteratorBase.html#aac9e5b7890a53d46e5d49912b254ded7',1,'cutlass::TileIteratorBase::Traits()'],['../structcutlass_1_1TileLoadIterator.html#a6a5d065939282fa1b9454b28a1e73948',1,'cutlass::TileLoadIterator::Traits()'],['../structcutlass_1_1TileStoreIterator.html#a5016bd7b24938026a2879ec0054eb3b6',1,'cutlass::TileStoreIterator::Traits()']]], - ['transformedfragment',['TransformedFragment',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a9eb2fb49698d0d018c04e7712e239ce9',1,'cutlass::gemm::GlobalLoadStream::TransformedFragment()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#aa2227d7fa1edef3f6730c7db41b132b4',1,'cutlass::gemm::SharedLoadStream::TransformedFragment()'],['../structcutlass_1_1TileLoadStream.html#a94cde8bcdcedc934cc14de19e43375d1',1,'cutlass::TileLoadStream::TransformedFragment()'],['../structcutlass_1_1TileStoreStream.html#ae14c71f6bb331030429d346f0140c993',1,'cutlass::TileStoreStream::TransformedFragment()'],['../structcutlass_1_1PredicatedTileLoadStream.html#adeb35451885c1c4fb930ae8c914ceb20',1,'cutlass::PredicatedTileLoadStream::TransformedFragment()'],['../structcutlass_1_1PredicatedTileStoreStream.html#af349831b19bb91d414a83c67d14f6927',1,'cutlass::PredicatedTileStoreStream::TransformedFragment()']]], - ['transformer',['Transformer',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#aa79a27cbe2420882fbaca55e42803f02',1,'cutlass::gemm::GlobalLoadStream::Transformer()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#ad1f70f0dd1027da1353ff7a38f524904',1,'cutlass::gemm::SharedLoadStream::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerA_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a882c10bed18f62ece97f5f20f9de3296',1,'cutlass::gemm::HgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerA_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a42c5bafcb226623b3326dbd01fc72f3b',1,'cutlass::gemm::HgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerB_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#aaaccb3f02a857e0c80d2891c6c6dcdb7',1,'cutlass::gemm::HgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1HgemmTransformerB_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#ae66bb2c1f87e19278ff471c32e71ea85',1,'cutlass::gemm::HgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalStoreTransformer.html#a98aefa95117dbfdf2e577890318a6c13',1,'cutlass::gemm::IgemmGlobalStoreTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalStoreTransformer_3_01float_00_01Fragment_3_01int8__t_00_01kElements___01_4_01_4.html#a52ecdfd8b94d8d7f4881048e11a33aba',1,'cutlass::gemm::IgemmGlobalStoreTransformer< float, Fragment< int8_t, kElements_ > >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalLoadTransformer.html#ad3190650741cef20c1aca919eddd9d72',1,'cutlass::gemm::IgemmGlobalLoadTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmGlobalLoadTransformer_3_01Fragment_3_01int8__t_00_01kElements___01_4_00_01float_01_4.html#a49c249026be24ec8a66f5eda99cb855c',1,'cutlass::gemm::IgemmGlobalLoadTransformer< Fragment< int8_t, kElements_ >, float >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmSharedStoreTransformer.html#a9edd08d595327a8cc3b8da50622b3bd2',1,'cutlass::gemm::IgemmSharedStoreTransformer::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerA_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a0b53e18f109ac0fd116e0d01ed6ec197',1,'cutlass::gemm::IgemmTransformerA< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerA_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a8a4e3ce1174789e2b695bda7b863079f',1,'cutlass::gemm::IgemmTransformerA< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerB_3_01MatrixLayout_1_1kColumnMajor_00_01Iterator___01_4.html#a92320b7224a77a8af61e55beef30ad49',1,'cutlass::gemm::IgemmTransformerB< MatrixLayout::kColumnMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1gemm_1_1IgemmTransformerB_3_01MatrixLayout_1_1kRowMajor_00_01Iterator___01_4.html#a9728f71c2e7a6a649bd28d8c11241b0a',1,'cutlass::gemm::IgemmTransformerB< MatrixLayout::kRowMajor, Iterator_ >::Transformer()'],['../structcutlass_1_1TileLoadStream.html#ad531770d336b2541c303c19148ef5cd7',1,'cutlass::TileLoadStream::Transformer()'],['../structcutlass_1_1TileStoreStream.html#aa8c192da812ec83329350e5838838f5e',1,'cutlass::TileStoreStream::Transformer()'],['../structcutlass_1_1PredicatedTileLoadStream.html#a9f79fd30231825b38694bf7c1d12ec2a',1,'cutlass::PredicatedTileLoadStream::Transformer()'],['../structcutlass_1_1PredicatedTileStoreStream.html#a0f91f328ed2b6bd65ef4eeafe18f9afd',1,'cutlass::PredicatedTileStoreStream::Transformer()']]], - ['true_5ftype',['true_type',['../namespacecutlass_1_1platform.html#a0eddc4a3921e137f31fd8014be96e807',1,'cutlass::platform']]], - ['type',['Type',['../structcutlass_1_1StorageType.html#abb0d270cdf38d46347261cac36dc619b',1,'cutlass::StorageType::Type()'],['../structcutlass_1_1StorageType_3_014_01_4.html#aa6754c0eb530544a1457afe1ae94a807',1,'cutlass::StorageType< 4 >::Type()'],['../structcutlass_1_1StorageType_3_012_01_4.html#a66c52fe770774ea01c511aea1af1f8d4',1,'cutlass::StorageType< 2 >::Type()'],['../structcutlass_1_1StorageType_3_011_01_4.html#a4a70002785c378c1f180800f2a65bcd4',1,'cutlass::StorageType< 1 >::Type()'],['../structcutlass_1_1Vectorize.html#a070ec95f4297d769ee53a4d8a650c05e',1,'cutlass::Vectorize::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4.html#a5c32d50c6c97d7489034efb7188c8186',1,'cutlass::Vectorize< Vector< bin1_t, 32 >, kLanes_ >::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4.html#a40dac8fb50ddccb5c1e2a98200ac3a06',1,'cutlass::Vectorize< Vector< int4_t, 8 >, kLanes_ >::Type()'],['../structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4.html#a9db5873c0d4df1452129022a280247ca',1,'cutlass::Vectorize< Vector< uint4_t, 8 >, kLanes_ >::Type()'],['../structcutlass_1_1platform_1_1integral__constant.html#af58810ccead8f16ed88cd6a4afdc6e52',1,'cutlass::platform::integral_constant::type()'],['../structcutlass_1_1platform_1_1enable__if.html#aff9c0f270020cf097addf77e53a5af99',1,'cutlass::platform::enable_if::type()'],['../structcutlass_1_1platform_1_1conditional.html#ab6484d0dd6449b5195c4e868026fed11',1,'cutlass::platform::conditional::type()'],['../structcutlass_1_1platform_1_1conditional_3_01false_00_01T_00_01F_01_4.html#a8d55f500f667de560650554e9c220644',1,'cutlass::platform::conditional< false, T, F >::type()'],['../structcutlass_1_1platform_1_1remove__const.html#ac3662947fa50251daf58240a9c798085',1,'cutlass::platform::remove_const::type()'],['../structcutlass_1_1platform_1_1remove__const_3_01const_01T_01_4.html#af68706cfaa6af14edc26ad5b974b47e3',1,'cutlass::platform::remove_const< const T >::type()'],['../structcutlass_1_1platform_1_1remove__volatile.html#a4f5b043d46206248d1bbbcf650707dd1',1,'cutlass::platform::remove_volatile::type()'],['../structcutlass_1_1platform_1_1remove__volatile_3_01volatile_01T_01_4.html#aca9bb93efe43106321e4afe0b67542a3',1,'cutlass::platform::remove_volatile< volatile T >::type()'],['../structcutlass_1_1platform_1_1remove__cv.html#a19e5b12cf4eb15ce13d6306735b6de08',1,'cutlass::platform::remove_cv::type()'],['../structcutlass_1_1platform_1_1aligned__storage.html#a9cf0360f335bcd1e9d9e1b266b6dd6c1',1,'cutlass::platform::aligned_storage::type()']]] + ['scalar',['Scalar',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a98dd6bfe225412dc86f850b07bf8f232',1,'cutlass::gemm::SplitkPIGemmTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a0d38914bf97084e04102e7897aee4295',1,'cutlass::gemm::GemmEpilogue::Scalar()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a8f15d59a7571d406d5ef593c342f0d4a',1,'cutlass::gemm::GemmEpilogueTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#ae2b82b9b62aefa15005091bb84ac20e8',1,'cutlass::gemm::GemmEpilogueTraitsHelper::Scalar()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7073b32c2cc62ffcad70a9ca46995c4c',1,'cutlass::gemm::GlobalLoadStream::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a6894b653fffa59bcb847bc3295643d6b',1,'cutlass::gemm::GemmGlobalTileTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a5817b81c7013db9a3f7394ad4b1db79a',1,'cutlass::gemm::GemmGlobalIteratorAb::Scalar()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a6b5b207eb1147e9669215e192901df9e',1,'cutlass::gemm::GemmGlobalIteratorCd::Scalar()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a5da116ae7e3f8ac2168bcf9bb964a429',1,'cutlass::gemm::SharedLoadStream::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a8b04fd003fc2db46d749360e8838438b',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#aaa439a0bb6b9de5e2722ea7b011effea',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a1b6956adc65254202864520b668edd14',1,'cutlass::gemm::GemmSharedLoadTileATraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a2a6065e583155b3e389253d3bfb64d73',1,'cutlass::gemm::GemmSharedLoadTileBTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a9a2218b570dada2f1e3ccd8004c47856',1,'cutlass::gemm::GemmSharedStoreTileDTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a1b025cb056729706f36469e74a9799dc',1,'cutlass::gemm::GemmSharedLoadTileDTraits::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af511f0ff83166b2a77d4cad4150c8e8f',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#ac618881d66790e4c280dc5692e5ddf95',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#a8ae7db3f2f0c57779729d500386c004c',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a7639ccd7f6419a9f232db173a228e756',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#ae4128bba3f1df6ef7824e2db79745b00',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#aa37f285c74bb63c8bb8cbfc767378c41',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#a1ebf24984863d0422356031615b74c53',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueScalar.html#ab1068ba72468f9ede1d05ba41ea31317',1,'cutlass::gemm::IgemmEpilogueScalar::Scalar()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueScalar_3_01int_01_4.html#a0983fd25494f6a7ed5af37a02e99f650',1,'cutlass::gemm::IgemmEpilogueScalar< int >::Scalar()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#ae6b053ca059932f7c0d3c99243854183',1,'cutlass::gemm::LinearScaling::Scalar()'],['../structcutlass_1_1gemm_1_1LinearScalingDevicePtr.html#a0599650f5cc68b430782d2db74e73d2e',1,'cutlass::gemm::LinearScalingDevicePtr::Scalar()'],['../classcutlass_1_1detail_1_1ScalarOrPointer.html#a9d3006fc0c8bd98b9262606858b26cad',1,'cutlass::detail::ScalarOrPointer::Scalar()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#ab9979f3f1f6d31e1466780c5777de25e',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::Scalar()'],['../structcutlass_1_1TileAllocation.html#a98f1243dc279999e3ff083ef45dee3f6',1,'cutlass::TileAllocation::Scalar()'],['../structcutlass_1_1TileIteratorBase.html#affac5a91f0659bb6739db25d20822c34',1,'cutlass::TileIteratorBase::Scalar()'],['../structcutlass_1_1TileLoadIterator.html#aafbb7a2137a07f0e07a12838b66bd511',1,'cutlass::TileLoadIterator::Scalar()'],['../structcutlass_1_1TileStoreIterator.html#ac3273690cdd0a1c2e61d29b289daf5b5',1,'cutlass::TileStoreIterator::Scalar()'],['../unioncutlass_1_1Vector.html#a56875d7cbf921261e68e1f63212db5bd',1,'cutlass::Vector::Scalar()'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a394b6e6ea7b97e076ae6445eb75d47ac',1,'cutlass::Vector< half, 1 >::Scalar()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#a03199df1287d263f7267239c014f1d9b',1,'cutlass::Vector< half, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a05914a7339b9d399ac7d8cf7ef617c31',1,'cutlass::Vector< bin1_t, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#af60049062cedca55d8cb4a3cae82641f',1,'cutlass::Vector< int4_t, kLanes_ >::Scalar()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a602530542f526bd151f8a32deda015a1',1,'cutlass::Vector< uint4_t, kLanes_ >::Scalar()'],['../structcutlass_1_1VectorTraits.html#ab3b49d7fb52050c13e50e3c75bf72599',1,'cutlass::VectorTraits::Scalar()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#aaf35570b10829356762dcec925a5b4bc',1,'cutlass::VectorTraits< Vector< T, Lanes > >::Scalar()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#a6e99dde8432b13472971dc41573a574e',1,'cutlass::VectorTraits< Vector< T, Lanes > const >::Scalar()']]], + ['scalara',['ScalarA',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a79afe0be2f0ac59c4e755784651aa332',1,'cutlass::gemm::SplitkPIGemmTraits::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a4f4a40f3e77a7c36425449fa97bf2324',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarA()'],['../structcutlass_1_1gemm_1_1Gemm.html#a6fcf9daef57558e1bb932c6eba99721b',1,'cutlass::gemm::Gemm::ScalarA()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#aa97b0e7f369f927c4db6d683dbb7f53b',1,'cutlass::gemm::GemmConfig::ScalarA()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a96d64bdc48db4971798b620d6b49b3f6',1,'cutlass::gemm::GemmTraits::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a1a8f6feed85c7e88b36bc1a2637c716f',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a11be198f90afb859be51ec5feb5dcd2b',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarA()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a6bb4f6a102edc2c8fba5b67abf05c363',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarA()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#a1c6cd0a76b2b2fc9cd021b016f30f459',1,'cutlass::reduction::BatchedReductionTraits::ScalarA()']]], + ['scalaraccum',['ScalarAccum',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#a1e854c281072db280ae90c2569b5f64c',1,'cutlass::gemm::FragmentMultiplyAdd::ScalarAccum()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#ab3774e6aa28266b25e3822fc9e72edc2',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::ScalarAccum()'],['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a8cffb7f3d493d56bc2bfc113db29bad1',1,'cutlass::gemm::SplitkPIGemmTraits::ScalarAccum()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#ae80882255b71c1ec94c6caeded2d0309',1,'cutlass::gemm::LinearScaling::ScalarAccum()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ae7e468b1d372b4b807e2e1089af885ec',1,'cutlass::reduction::BatchedReductionTraits::ScalarAccum()']]], + ['scalaralphabeta',['ScalarAlphaBeta',['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html#aea565efe23b7a5c17eeab5e8cd0d1322',1,'cutlass::gemm::FragmentMultiplyAdd::ScalarAlphaBeta()'],['../structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html#ae7a333f7aa3f52226c76cec9d2da042d',1,'cutlass::gemm::FragmentMultiplyAdd< half, half, true >::ScalarAlphaBeta()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ab89c35cfce0017a47341a1e3b2894e0f',1,'cutlass::reduction::BatchedReductionTraits::ScalarAlphaBeta()']]], + ['scalarb',['ScalarB',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a748e224a8789694e4f6bfc36a1262103',1,'cutlass::gemm::SplitkPIGemmTraits::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a3f4a2d052e6701f5d0ff950a850eabe3',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarB()'],['../structcutlass_1_1gemm_1_1Gemm.html#ae6f11bb666c2c8510e99200a2c0fc2f4',1,'cutlass::gemm::Gemm::ScalarB()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a389c0980e978463d3cc126342d8413c6',1,'cutlass::gemm::GemmConfig::ScalarB()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#aa0e8fd28f5247764dfb7843f7670c698',1,'cutlass::gemm::GemmTraits::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a70dfd2f33548dbd104d798f728526fbc',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a6a9c4f906a4930f4fc415009ead2e05d',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarB()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#a6c9a73da33b5ba70307a719db988b56c',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarB()']]], + ['scalarc',['ScalarC',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#aa7f85820b1392f80157e14bbbb639689',1,'cutlass::gemm::SplitkPIGemmTraits::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01float_01_4.html#a726556cb28d1515c89ac841f1140c781',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, float >::ScalarC()'],['../structcutlass_1_1gemm_1_1Gemm.html#a71f0c91768a1a87e94030c8c2db51e55',1,'cutlass::gemm::Gemm::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a30d9cfbbede42166e4e1964145dfe05d',1,'cutlass::gemm::GemmConfig::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#abb0741601652df8fdf927d49c2c0e4d0',1,'cutlass::gemm::GemmEpilogue::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#aa794b5f04ce736cdba0d778861ce3a9c',1,'cutlass::gemm::GemmEpilogueTraits::ScalarC()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a8f78d4a68817760099081523aa7fd443',1,'cutlass::gemm::GemmTraits::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01half_00_01half_00_01half_01_4.html#a48a641d601c88d95aa542b636f94d60d',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, half, half, half >::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd_3_01ThreadGemmShape___00_01ThreadsPerWarp___00_01int8__t_00_01int8__t_00_01int_01_4.html#a703b329ebf14d78f576e83c5e6fe23a7',1,'cutlass::gemm::ThreadMultiplyAdd< ThreadGemmShape_, ThreadsPerWarp_, int8_t, int8_t, int >::ScalarC()'],['../structcutlass_1_1gemm_1_1ThreadMultiplyAdd.html#af41778b170d940d10bd53f13d34912b1',1,'cutlass::gemm::ThreadMultiplyAdd::ScalarC()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#adb39cf54a839bdb2e38fbc8a0bf304a8',1,'cutlass::reduction::BatchedReductionTraits::ScalarC()']]], + ['scalard',['ScalarD',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a36d747ce477872482920402f00b604be',1,'cutlass::gemm::SplitkPIGemmTraits::ScalarD()'],['../structcutlass_1_1gemm_1_1Gemm.html#ae2aa3663f9f6f5708e816dcf7cd66694',1,'cutlass::gemm::Gemm::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#a7ad231b16f05a58900dca8ff0e0e7bfa',1,'cutlass::gemm::GemmConfig::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a4887b56a96694ce6350db77f78bb505f',1,'cutlass::gemm::GemmEpilogue::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#ad9a81c3ff36a4f3aa376e2cff94cbb50',1,'cutlass::gemm::GemmEpilogueTraits::ScalarD()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a3129be75ee087603170f8367e10e070e',1,'cutlass::gemm::GemmTraits::ScalarD()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#abb54e3addfee4097b37deb5cb30fb582',1,'cutlass::reduction::BatchedReductionTraits::ScalarD()']]], + ['scalarepilogue',['ScalarEpilogue',['../structcutlass_1_1gemm_1_1Gemm.html#a9349fc5f20215c1c6508e250b0b4e936',1,'cutlass::gemm::Gemm']]], + ['second',['Second',['../structcutlass_1_1ZipTileAllocation.html#ac6b988a7e6cd8ec83fae642342209527',1,'cutlass::ZipTileAllocation::Second()'],['../structcutlass_1_1ZipFragment.html#af93e3396f0f2ca8d5e439ca5803af92a',1,'cutlass::ZipFragment::Second()'],['../structcutlass_1_1ZipConvert.html#a525a08b41696d53d6e542aea9c8e2f10',1,'cutlass::ZipConvert::Second()'],['../structcutlass_1_1ZipTensorRef.html#a3e77904f83d1b33f0bac054355f3432e',1,'cutlass::ZipTensorRef::Second()'],['../classcutlass_1_1ZipTileIterator.html#ae34d88ee2878174707dcfdda4f3fa76c',1,'cutlass::ZipTileIterator::Second()']]], + ['second_5ftype',['second_type',['../structcutlass_1_1platform_1_1Pair.html#a68ed7ccdb98672955eafdf559e17e134',1,'cutlass::platform::Pair']]], + ['shape',['Shape',['../structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html#a89f1d9599b418c8bb81c104ca86cf00e',1,'cutlass::gemm::GemmMultiplicandTraits::Shape()'],['../structcutlass_1_1ShapeScale.html#aae9cfc35c517cd89018e4f914acbac29',1,'cutlass::ShapeScale::Shape()'],['../structcutlass_1_1ShapeAdd.html#ad4712a1339445038949445de1dd74e71',1,'cutlass::ShapeAdd::Shape()'],['../structcutlass_1_1ShapeSub.html#a24b6dd8cb6171b85c4e2f37407f9a5c9',1,'cutlass::ShapeSub::Shape()'],['../structcutlass_1_1ShapeMul.html#a8875fc5e861339f981360ed774e8cc94',1,'cutlass::ShapeMul::Shape()'],['../structcutlass_1_1ShapeDiv.html#a108ded386ef6708afc6fe769a77a234b',1,'cutlass::ShapeDiv::Shape()'],['../structcutlass_1_1ShapeDivCeiling.html#a0e3b032e241a8ead89e1d9ffb472d799',1,'cutlass::ShapeDivCeiling::Shape()'],['../structcutlass_1_1ShapeMax.html#ad566aceac2563024982eeabb78c6c961',1,'cutlass::ShapeMax::Shape()'],['../structcutlass_1_1ShapeMin.html#a5c813e4c34ea612431d31b36120f8549',1,'cutlass::ShapeMin::Shape()'],['../structcutlass_1_1ShapeStrides.html#a76cde4c3ebd1d191e0191826b2663be4',1,'cutlass::ShapeStrides::Shape()'],['../structcutlass_1_1TileAllocation.html#a2254302a3ce0b4da5c3657ada0cb8ccc',1,'cutlass::TileAllocation::Shape()']]], + ['sharedloaditeratora',['SharedLoadIteratorA',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a365aed4c0e2ad1bffea517ee36998557',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadIteratorA()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a8978603203221020113ec79e3f2c0d64',1,'cutlass::gemm::HgemmTraitsHelper::SharedLoadIteratorA()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a03d7378c46b517438fce25e0f1e4d98c',1,'cutlass::gemm::IgemmTraitsHelper::SharedLoadIteratorA()']]], + ['sharedloaditeratorb',['SharedLoadIteratorB',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a4de905aadc734df69fd0db83f01be56e',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadIteratorB()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a14b4720b7522684a98b653d70353233a',1,'cutlass::gemm::HgemmTraitsHelper::SharedLoadIteratorB()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a94111367763890341e88450f43b59312',1,'cutlass::gemm::IgemmTraitsHelper::SharedLoadIteratorB()']]], + ['sharedloaditeratord',['SharedLoadIteratorD',['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#adbff60de6f90ef4d5ae0c7096692e2c0',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedLoadIteratorD()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#ad33ee44527a7fcfd41b4e677927fd4fa',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::SharedLoadIteratorD()']]], + ['sharedloadstreama',['SharedLoadStreamA',['../structcutlass_1_1gemm_1_1GemmTraits.html#ae01371eb31b88fa83c4926564cecafdc',1,'cutlass::gemm::GemmTraits::SharedLoadStreamA()'],['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#aa5ebe3a857b55412a86ec65ad1c55dd8',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadStreamA()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#aaa35c4d2a90f137f50c9ccd24d5c4f5c',1,'cutlass::gemm::HgemmTraitsHelper::SharedLoadStreamA()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a7e035ceab26dc904726ddbf14371f476',1,'cutlass::gemm::IgemmTraitsHelper::SharedLoadStreamA()']]], + ['sharedloadstreamb',['SharedLoadStreamB',['../structcutlass_1_1gemm_1_1GemmTraits.html#acaeb27063a444e2a3b93f3cb70e3c290',1,'cutlass::gemm::GemmTraits::SharedLoadStreamB()'],['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a12447ce4d11601a625662f9d177cc3d8',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedLoadStreamB()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a1d458fe1e416ddc4565f2b802592268b',1,'cutlass::gemm::HgemmTraitsHelper::SharedLoadStreamB()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#aff287e2ca10a437a82736baab2d7c28d',1,'cutlass::gemm::IgemmTraitsHelper::SharedLoadStreamB()']]], + ['sharedloadstreamd',['SharedLoadStreamD',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a8e5d38a7795b50a021fc43dc7424288b',1,'cutlass::gemm::GemmEpilogue::SharedLoadStreamD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a5bb3232a2f15d8263d058c69b0839e2f',1,'cutlass::gemm::GemmEpilogueTraits::SharedLoadStreamD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a9e511e1852668e0a242315c24888dee3',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedLoadStreamD()']]], + ['sharedloadtiletraits',['SharedLoadTileTraits',['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a076ea17d901d22d3b69bf9c621858235',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#af534fc5698513af3c6724b68ae03316d',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a9335aca8b152ff1167763de8ff8fb882',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a851113bffb5b656c5c649845852b3b8d',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a53dd72126a43a1c5811ed92a2313d19d',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::SharedLoadTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#ad8f1b0fda40f1fb7dc598cc841f38afe',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::SharedLoadTileTraits()']]], + ['sharedstorage',['SharedStorage',['../structcutlass_1_1gemm_1_1Gemm.html#ad10627d508fad0efae1fb91b26d7a6b7',1,'cutlass::gemm::Gemm::SharedStorage()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#ac36dad8a7b6bc7fc6ef88e44068468dc',1,'cutlass::gemm::GemmEpilogue::SharedStorage()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a22c671494d487511c71f2b0f26fdb404',1,'cutlass::gemm::SharedLoadStream::SharedStorage()'],['../structcutlass_1_1TileLoadIterator.html#a57eff980f6b1086abe39dd617de5b948',1,'cutlass::TileLoadIterator::SharedStorage()'],['../structcutlass_1_1TileStoreIterator.html#af6c297bb43573a13f6b721cc8ff730ca',1,'cutlass::TileStoreIterator::SharedStorage()']]], + ['sharedstorefragmentd',['SharedStoreFragmentD',['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a5e64440830b36899f9c0ed8b369665c8',1,'cutlass::gemm::IgemmEpilogueTraitsHelper']]], + ['sharedstoreiteratora',['SharedStoreIteratorA',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a3a20852daeb46c625b2391d078b30d73',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedStoreIteratorA()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a366c89f8ecfbf0aef894cfb6fae25be9',1,'cutlass::gemm::HgemmTraitsHelper::SharedStoreIteratorA()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a3d2b39cacb975afbfeae9e368f0656ae',1,'cutlass::gemm::IgemmTraitsHelper::SharedStoreIteratorA()']]], + ['sharedstoreiteratorb',['SharedStoreIteratorB',['../structcutlass_1_1gemm_1_1SimplifiedGemmTraitsHelper.html#a43713f534798b1e27c4ba38b72e63c08',1,'cutlass::gemm::SimplifiedGemmTraitsHelper::SharedStoreIteratorB()'],['../structcutlass_1_1gemm_1_1HgemmTraitsHelper.html#a463dddee069606fd4ecf7c386ff23fce',1,'cutlass::gemm::HgemmTraitsHelper::SharedStoreIteratorB()'],['../structcutlass_1_1gemm_1_1IgemmTraitsHelper.html#a2953ae145fdb2eadf871aee8219e92d1',1,'cutlass::gemm::IgemmTraitsHelper::SharedStoreIteratorB()']]], + ['sharedstoreiteratord',['SharedStoreIteratorD',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#aab0a964efe223c5c29bc816c393b5a9a',1,'cutlass::gemm::GemmEpilogue::SharedStoreIteratorD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a48dee5c2aafb86e999732a1347c9f668',1,'cutlass::gemm::GemmEpilogueTraits::SharedStoreIteratorD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#a02a517fd246fb961727d3bd1b4f954be',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedStoreIteratorD()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#af7024128202d642d3535e1ae5cf5f43d',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::SharedStoreIteratorD()']]], + ['sharedstoretiletraits',['SharedStoreTileTraits',['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#aad9a6190cccbc5c23a86f09c45c0e507',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#aaa198fed841af6bf26bf2e9544d0a877',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#acbeea56f0ce95ddd632db3482c1021e5',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#ad7659dc0eaa491447ad127ef7098924f',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#aa21c231aa56c9e5f2705cac62b17bbbe',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a11d02ea6e4ab68a0f4dff1eb8ecf4f9d',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#a86ed2ebc5b6e4426ab35a1f30a3e47bb',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::SharedStoreTileTraits()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a872dc2d0b8ed6c75c41d258a23183861',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::SharedStoreTileTraits()']]], + ['sharedstoretransformerd',['SharedStoreTransformerD',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a9063e7fc044a679652d5a3a31aa77e7c',1,'cutlass::gemm::GemmEpilogue::SharedStoreTransformerD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a685d59ee03a226e62660e83c4c60ca69',1,'cutlass::gemm::GemmEpilogueTraits::SharedStoreTransformerD()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#aa5cea8dbebda9a12a503ae1416c4da33',1,'cutlass::gemm::GemmEpilogueTraitsHelper::SharedStoreTransformerD()'],['../structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#a00000e0cd14b9e6e242eafb5133af8cf',1,'cutlass::gemm::IgemmEpilogueTraitsHelper::SharedStoreTransformerD()']]], + ['sharedstream',['SharedStream',['../structcutlass_1_1gemm_1_1GemmTraits.html#a7864969e774c0f7155951e1ab599ed17',1,'cutlass::gemm::GemmTraits']]], + ['skew',['Skew',['../structcutlass_1_1TileIteratorBase.html#ae50ca325a827bdf1d1bfab3ba6e204c1',1,'cutlass::TileIteratorBase::Skew()'],['../structcutlass_1_1TileLoadIterator.html#aeb6cc0e2990c06c83b789b579a03b15f',1,'cutlass::TileLoadIterator::Skew()'],['../structcutlass_1_1TileStoreIterator.html#a18248da35dc9a0ae2411121bee323085',1,'cutlass::TileStoreIterator::Skew()']]], + ['storage',['Storage',['../structcutlass_1_1PredicateVector.html#afe85a07b9f311327c6bf04e3a5f94e5a',1,'cutlass::PredicateVector::Storage()'],['../classcutlass_1_1TensorRef.html#ad327edfe1f8085632ff682d354922009',1,'cutlass::TensorRef::Storage()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#ab5dbedeff1ae3d2936b6ce76023a18f7',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Storage()'],['../structcutlass_1_1TensorRefBatchStrided.html#aa86a59779c0830e8cf82066853dc1089',1,'cutlass::TensorRefBatchStrided::Storage()'],['../structcutlass_1_1TensorRefArray.html#ab6a6ed8af1a4b3da33e840409c0a72d8',1,'cutlass::TensorRefArray::Storage()'],['../classcutlass_1_1TensorView.html#a52fb77744c7c7ecf0f8a3a725556293d',1,'cutlass::TensorView::Storage()'],['../structcutlass_1_1TileAllocation.html#ace1f396620f3eb69c367bdf69aa27ebd',1,'cutlass::TileAllocation::Storage()'],['../structcutlass_1_1TileIteratorBase.html#a2e682380b5ea9ea05ee8ffd68a1205f0',1,'cutlass::TileIteratorBase::Storage()']]], + ['storagecoord',['StorageCoord',['../classcutlass_1_1TensorRef.html#a455a2df539b53086699c210d06df1c5d',1,'cutlass::TensorRef::StorageCoord()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a6893c1a9057713560b46a9062b29b116',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::StorageCoord()'],['../classcutlass_1_1TensorView.html#abaf7ec0e96bc99cf0ce243e703b8711c',1,'cutlass::TensorView::StorageCoord()']]], + ['storeiterator',['StoreIterator',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac16e31930c346068d7522dd8de9d93d2',1,'cutlass::gemm::GlobalLoadStream']]], + ['streama',['StreamA',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#ae2c4829f874ef9e83aaa52c412fa1227',1,'cutlass::gemm::GlobalLoadStreamPair::StreamA()'],['../structcutlass_1_1gemm_1_1SharedStreamPair.html#aa1e8da4d8a313881d5e6509cf6e852d4',1,'cutlass::gemm::SharedStreamPair::StreamA()']]], + ['streamb',['StreamB',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a08171f4eae2442c98f81acc88e8bd55c',1,'cutlass::gemm::GlobalLoadStreamPair::StreamB()'],['../structcutlass_1_1gemm_1_1SharedStreamPair.html#a8be3e50ce5b65b777972720c77b51529',1,'cutlass::gemm::SharedStreamPair::StreamB()']]], + ['strides',['Strides',['../structcutlass_1_1FragmentIterator.html#a2e93985d759d904ac858054eeaa9e50e',1,'cutlass::FragmentIterator::Strides()'],['../structcutlass_1_1TileAllocation.html#aba9164abe2fd7a091a858b23c0d3ac9c',1,'cutlass::TileAllocation::Strides()']]], + ['stridevector',['StrideVector',['../classcutlass_1_1TensorRef.html#a07c4b1ace7c8799537553b54cfe0a059',1,'cutlass::TensorRef::StrideVector()'],['../classcutlass_1_1TensorView.html#a625892aa9063eebf769bb2ed0cba7684',1,'cutlass::TensorView::StrideVector()']]], + ['stype',['SType',['../structcutlass_1_1gemm_1_1GemmDesc.html#a258e8c008db365b88654f46df3017ec2',1,'cutlass::gemm::GemmDesc']]], + ['subtile',['SubTile',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ad9d4dcb20a69869ebda639747a16e647',1,'cutlass::reduction::BatchedReductionTraits']]] ]; diff --git a/docs/search/variables_0.js b/docs/search/variables_0.js index 542bfed4..c78b0740 100644 --- a/docs/search/variables_0.js +++ b/docs/search/variables_0.js @@ -2,5 +2,5 @@ var searchData= [ ['a',['A',['../structcutlass_1_1gemm_1_1GemmDesc.html#a80b0aae6e67b733ae5bf289d979a7c9b',1,'cutlass::gemm::GemmDesc']]], ['aligned_5f',['aligned_',['../unioncutlass_1_1Vector.html#a9e9352594fcd022526d5b69b6c25c99c',1,'cutlass::Vector::aligned_()'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#acc698443a38fd0ad63f931bdf172ad99',1,'cutlass::Vector< half, 1 >::aligned_()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#a9e41dbe541a7dddf1e461e0390fe8896',1,'cutlass::Vector< half, kLanes_ >::aligned_()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a1df3324868465331db13bd7775b55e87',1,'cutlass::Vector< bin1_t, kLanes_ >::aligned_()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#ad6784e347f068ad20af52379286337c0',1,'cutlass::Vector< int4_t, kLanes_ >::aligned_()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a4eab187b6f7650bd88ccd421c8330d3c',1,'cutlass::Vector< uint4_t, kLanes_ >::aligned_()']]], - ['alpha',['alpha',['../structcutlass_1_1gemm_1_1GemmDesc.html#aa82600c82e17ea1233f2f74be4aa3785',1,'cutlass::gemm::GemmDesc::alpha()'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a3248d6b3d9bcc59365d582b879292a70',1,'cutlass::gemm::LinearScaling::Params::alpha()']]] + ['alpha',['alpha',['../structcutlass_1_1gemm_1_1GemmDesc.html#aa82600c82e17ea1233f2f74be4aa3785',1,'cutlass::gemm::GemmDesc::alpha()'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a3248d6b3d9bcc59365d582b879292a70',1,'cutlass::gemm::LinearScaling::Params::alpha()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#afada1cbad87636228fb58d8577bb8470',1,'cutlass::reduction::BatchedReductionTraits::Params::alpha()']]] ]; diff --git a/docs/search/variables_1.js b/docs/search/variables_1.js index dcd8404c..d108efcf 100644 --- a/docs/search/variables_1.js +++ b/docs/search/variables_1.js @@ -1,11 +1,12 @@ var searchData= [ ['b',['B',['../structcutlass_1_1gemm_1_1GemmDesc.html#af0ac89b161f9cad96307f1ff3c80a774',1,'cutlass::gemm::GemmDesc']]], + ['batch_5fstride',['batch_stride',['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#ab5d9e5de9b1cc3462920ce7a8f52bbec',1,'cutlass::gemm::GlobalLoadStream::Params']]], ['batch_5fstride_5fa',['batch_stride_A',['../structcutlass_1_1gemm_1_1GemmDesc.html#a8b5a86d14eba0d3c5173753212d62599',1,'cutlass::gemm::GemmDesc']]], ['batch_5fstride_5fb',['batch_stride_B',['../structcutlass_1_1gemm_1_1GemmDesc.html#a95e3fe05e4ca0d4019cbef2b1a54419a',1,'cutlass::gemm::GemmDesc']]], - ['batch_5fstride_5fc',['batch_stride_C',['../structcutlass_1_1gemm_1_1GemmDesc.html#aad3590dffa2e1ba82c834efae6b35ad2',1,'cutlass::gemm::GemmDesc']]], - ['batch_5fstride_5fd',['batch_stride_D',['../structcutlass_1_1gemm_1_1GemmDesc.html#a7b9afcc7e3105da1d002b1baa68d83de',1,'cutlass::gemm::GemmDesc']]], - ['beta',['beta',['../structcutlass_1_1gemm_1_1GemmDesc.html#adac41a0baad9e65aa4a6fe12d249a02b',1,'cutlass::gemm::GemmDesc::beta()'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a0e455ad2e4eba67259867f9123ca817b',1,'cutlass::gemm::LinearScaling::Params::beta()']]], + ['batch_5fstride_5fc',['batch_stride_C',['../structcutlass_1_1gemm_1_1GemmDesc.html#aad3590dffa2e1ba82c834efae6b35ad2',1,'cutlass::gemm::GemmDesc::batch_stride_C()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a4aa03c14de3f0c3c1cf46c3d5f52d802',1,'cutlass::gemm::GemmEpilogueTraits::Params::batch_stride_C()']]], + ['batch_5fstride_5fd',['batch_stride_D',['../structcutlass_1_1gemm_1_1GemmDesc.html#a7b9afcc7e3105da1d002b1baa68d83de',1,'cutlass::gemm::GemmDesc::batch_stride_D()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a5208998277daef204983989d24707008',1,'cutlass::gemm::GemmEpilogueTraits::Params::batch_stride_D()']]], + ['beta',['beta',['../structcutlass_1_1gemm_1_1GemmDesc.html#adac41a0baad9e65aa4a6fe12d249a02b',1,'cutlass::gemm::GemmDesc::beta()'],['../structcutlass_1_1gemm_1_1LinearScaling_1_1Params.html#a0e455ad2e4eba67259867f9123ca817b',1,'cutlass::gemm::LinearScaling::Params::beta()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#a805f78cae27c3305c988f251207d85f7',1,'cutlass::reduction::BatchedReductionTraits::Params::beta()']]], ['block',['block',['../structcutlass_1_1KernelLaunchConfiguration.html#a09535026bf08f94c6940c358d95d1edd',1,'cutlass::KernelLaunchConfiguration']]], ['bounds',['bounds',['../structcutlass_1_1RegularTilePredicateFunctor.html#ac2f49374e6f0a27ad2daffcb1f74708a',1,'cutlass::RegularTilePredicateFunctor']]], ['byte',['byte',['../structcutlass_1_1platform_1_1alignment__of_1_1pad.html#a86f075f91b80918e968951713430f0b4',1,'cutlass::platform::alignment_of::pad']]] diff --git a/docs/search/variables_10.js b/docs/search/variables_10.js index 9f7e84fb..705a7e0c 100644 --- a/docs/search/variables_10.js +++ b/docs/search/variables_10.js @@ -4,6 +4,7 @@ var searchData= ['thread_5foffset',['thread_offset',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#a1864c5556529afdc8445021cad780b04',1,'cutlass::gemm::GemmGlobalIteratorAb::thread_offset()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a56601dc34e8f9a070db5dc48c37d55a0',1,'cutlass::gemm::GemmGlobalIteratorCd::thread_offset()'],['../structcutlass_1_1TileLoadIterator.html#a7808588ce0b12017379dcbe1ba9c511f',1,'cutlass::TileLoadIterator::thread_offset()'],['../structcutlass_1_1TileStoreIterator.html#a00a33d258b9d60c8f9d4bfc48e2c6825',1,'cutlass::TileStoreIterator::thread_offset()']]], ['threadblock_5foffset',['threadblock_offset',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a563961c326d2e55f5b8682a30b64a24a',1,'cutlass::gemm::GlobalLoadStream']]], ['threadblock_5ftile',['threadblock_tile',['../structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#af8f0050e818b788402526857afc7c919',1,'cutlass::gemm::GemmTraits::MainLoopSharedStorage']]], + ['threadshapemultiple2',['ThreadShapeMultiple2',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ab4f5f457dbfa6bd250a4c34e1d573a85',1,'cutlass::reduction::BatchedReductionTraits']]], ['transformed',['transformed',['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a7583af38ca0fb446882b28c0e2dcae88',1,'cutlass::gemm::SharedLoadStream']]], ['transformed_5ffragment',['transformed_fragment',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a7d7042e60aaab0dd00772b239e1f1db1',1,'cutlass::gemm::GlobalLoadStream::transformed_fragment()'],['../structcutlass_1_1TileLoadStream.html#ac61d45d91faf9d060509cf1e5c34fe01',1,'cutlass::TileLoadStream::transformed_fragment()'],['../structcutlass_1_1TileStoreStream.html#aeb5be2edcc35c7876abe5234663f9c48',1,'cutlass::TileStoreStream::transformed_fragment()']]], ['transformer',['transformer',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ab68ba57fe69430c557379b3457faebc4',1,'cutlass::gemm::GlobalLoadStream::transformer()'],['../structcutlass_1_1gemm_1_1SharedLoadStream.html#af846390ad0e5b80ccb4e8b95c5fe64a7',1,'cutlass::gemm::SharedLoadStream::transformer()'],['../structcutlass_1_1TileLoadStream.html#a54399d7a42c1330ef0e756949483c552',1,'cutlass::TileLoadStream::transformer()'],['../structcutlass_1_1TileStoreStream.html#a61d57147150bffda0c1662d6131a3934',1,'cutlass::TileStoreStream::transformer()']]] diff --git a/docs/search/variables_12.html b/docs/search/variables_12.html new file mode 100644 index 00000000..bba5857f --- /dev/null +++ b/docs/search/variables_12.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_12.js b/docs/search/variables_12.js new file mode 100644 index 00000000..b6bed790 --- /dev/null +++ b/docs/search/variables_12.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['workspace_5fptr',['workspace_ptr',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a38de876c29aaccc45ec8d194814b102a',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]], + ['workspace_5fsize',['workspace_size',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#aff11608efe9ced3a4862ce78399aa86e',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]] +]; diff --git a/docs/search/variables_3.js b/docs/search/variables_3.js index 614ae370..c69ee2a7 100644 --- a/docs/search/variables_3.js +++ b/docs/search/variables_3.js @@ -1,5 +1,8 @@ var searchData= [ ['d',['D',['../structcutlass_1_1gemm_1_1GemmDesc.html#adf95451422c529587d55aac0fecf0d9f',1,'cutlass::gemm::GemmDesc']]], + ['d_5fa',['d_a',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#af1b12ba220602692e84616b420b00f1c',1,'cutlass::reduction::BatchedReductionTraits::Params']]], + ['d_5fc',['d_c',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#ac79830eaf080ea0ffddd2100db6cf3e1',1,'cutlass::reduction::BatchedReductionTraits::Params']]], + ['d_5fd',['d_d',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#abf9744373a72f3819a616b5a5b3bff22',1,'cutlass::reduction::BatchedReductionTraits::Params']]], ['dynamic_5fsmem',['dynamic_smem',['../structcutlass_1_1KernelLaunchConfiguration.html#a4a6ac693d4284c84301279219623e2bc',1,'cutlass::KernelLaunchConfiguration']]] ]; diff --git a/docs/search/variables_5.js b/docs/search/variables_5.js index a940fd69..5b88aa95 100644 --- a/docs/search/variables_5.js +++ b/docs/search/variables_5.js @@ -2,6 +2,7 @@ var searchData= [ ['fetched',['fetched',['../structcutlass_1_1gemm_1_1SharedLoadStream.html#a8ae6f60b5fb3642542a6cb833d83c8e4',1,'cutlass::gemm::SharedLoadStream']]], ['fetched_5ffragment',['fetched_fragment',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a1c117b87024937f1dc3da128795b6e03',1,'cutlass::gemm::GlobalLoadStream::fetched_fragment()'],['../structcutlass_1_1TileLoadStream.html#a89b0f92764b5492a8d1de2c1ada60869',1,'cutlass::TileLoadStream::fetched_fragment()']]], - ['first',['first',['../structcutlass_1_1ZipTileAllocation.html#a6c0f139eef549521763b36cb1e45a014',1,'cutlass::ZipTileAllocation::first()'],['../structcutlass_1_1ZipFragment.html#aea444ab3b52b6f0e994401cf2e0b7f3c',1,'cutlass::ZipFragment::first()'],['../structcutlass_1_1ZipConvert.html#a6c59c5bda43da84da92f244103dfab6f',1,'cutlass::ZipConvert::first()'],['../structcutlass_1_1ZipTensorRef.html#a535f0e6fc79d0e305f651efed099275c',1,'cutlass::ZipTensorRef::first()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a5dd69883d6b3f16fe28ebfe79235743e',1,'cutlass::ZipTileIterator::Params::first()'],['../classcutlass_1_1ZipTileIterator.html#af961a2621c6b42f2b3ba645afcb250a9',1,'cutlass::ZipTileIterator::first()']]], - ['functor',['functor',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a5aa254702fcf24630e04ceb174aa3d57',1,'cutlass::gemm::GemmEpilogue::functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#adb04e5990ab7faae9e8c0b110d2e3bee',1,'cutlass::gemm::GemmEpilogueTraits::Params::functor()']]] + ['first',['first',['../structcutlass_1_1ZipTileAllocation.html#a6c0f139eef549521763b36cb1e45a014',1,'cutlass::ZipTileAllocation::first()'],['../structcutlass_1_1platform_1_1Pair.html#a0eed7c99e9385ff2877b03ab71efca48',1,'cutlass::platform::Pair::first()'],['../structcutlass_1_1ZipFragment.html#aea444ab3b52b6f0e994401cf2e0b7f3c',1,'cutlass::ZipFragment::first()'],['../structcutlass_1_1ZipConvert.html#a6c59c5bda43da84da92f244103dfab6f',1,'cutlass::ZipConvert::first()'],['../structcutlass_1_1ZipTensorRef.html#a535f0e6fc79d0e305f651efed099275c',1,'cutlass::ZipTensorRef::first()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a5dd69883d6b3f16fe28ebfe79235743e',1,'cutlass::ZipTileIterator::Params::first()'],['../classcutlass_1_1ZipTileIterator.html#af961a2621c6b42f2b3ba645afcb250a9',1,'cutlass::ZipTileIterator::first()']]], + ['functor',['functor',['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a5aa254702fcf24630e04ceb174aa3d57',1,'cutlass::gemm::GemmEpilogue::functor()'],['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#adb04e5990ab7faae9e8c0b110d2e3bee',1,'cutlass::gemm::GemmEpilogueTraits::Params::functor()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#a0f6b38c1b3a5800e6f29d9a2c6c1928d',1,'cutlass::reduction::BatchedReduction::functor()']]], + ['functorparams',['functorParams',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#a11e54597165b66e3054c6b9f43210760',1,'cutlass::reduction::BatchedReductionTraits::Params']]] ]; diff --git a/docs/search/variables_6.js b/docs/search/variables_6.js index e3c09b99..edd56821 100644 --- a/docs/search/variables_6.js +++ b/docs/search/variables_6.js @@ -1,5 +1,6 @@ var searchData= [ + ['gemmparams',['GemmParams',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a52264bdfeb4d95313a8dbda81e87ede0',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]], ['global_5fto_5fshared_5fstream',['global_to_shared_stream',['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a8dba1bcd9ddab830bc121afc728296c3',1,'cutlass::gemm::GemmTraits::Params::global_to_shared_stream()'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1MainLoopSharedStorage.html#a61fcc63cb0df6754eef16f5cf138f3a2',1,'cutlass::gemm::GemmTraits::MainLoopSharedStorage::global_to_shared_stream()']]], ['grid',['grid',['../structcutlass_1_1KernelLaunchConfiguration.html#ab86ba1464dd9c6cd15ae0de4a552201b',1,'cutlass::KernelLaunchConfiguration']]] ]; diff --git a/docs/search/variables_7.js b/docs/search/variables_7.js index c33caec1..2662380a 100644 --- a/docs/search/variables_7.js +++ b/docs/search/variables_7.js @@ -1,8 +1,8 @@ var searchData= [ ['idx',['idx',['../structcutlass_1_1Coord.html#a872e1e0d9cc255fa438c04daaf10ad68',1,'cutlass::Coord']]], - ['inc_5fadvance',['inc_advance',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a8c2618ac16362a8362dcddeed71c41d4',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::inc_advance()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a6d8f1e07f286ed8d5761e2a878b807d3',1,'cutlass::TileIteratorBase::Params::inc_advance()']]], - ['inc_5fd',['inc_d',['../structcutlass_1_1TileIteratorBase_1_1Params.html#a7b4293bf8291b0383dee695a60f2e0fd',1,'cutlass::TileIteratorBase::Params']]], + ['inc_5fadvance',['inc_advance',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a8c2618ac16362a8362dcddeed71c41d4',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::inc_advance()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a366c41dbc3bb82521db46b6d0db127b9',1,'cutlass::TileIteratorBase::Params::inc_advance()']]], + ['inc_5fd',['inc_d',['../structcutlass_1_1TileIteratorBase_1_1Params.html#a901e9df85e9eee0e89a025b874e1b61b',1,'cutlass::TileIteratorBase::Params']]], ['inc_5fh',['inc_h',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#aed94505e5a269d5f33499e71284104f5',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::inc_h()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a15227102466522445261b6ea65c89c06',1,'cutlass::TileIteratorBase::Params::inc_h()']]], ['inc_5fw',['inc_w',['../structcutlass_1_1TileIteratorBase_1_1Params.html#af0be1271cfe6d6c03a9a76ff992d8a5c',1,'cutlass::TileIteratorBase::Params']]], ['isvector',['IsVector',['../structcutlass_1_1VectorTraits.html#abf96ea5dfd3212d388cb91e48cc0e6a2',1,'cutlass::VectorTraits::IsVector()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#aead181209c756f25ab5870682670bb99',1,'cutlass::VectorTraits< Vector< T, Lanes > >::IsVector()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#a893488718d8437970c1b4ed4f4056620',1,'cutlass::VectorTraits< Vector< T, Lanes > const >::IsVector()']]], diff --git a/docs/search/variables_8.js b/docs/search/variables_8.js index 114a0042..6df63e36 100644 --- a/docs/search/variables_8.js +++ b/docs/search/variables_8.js @@ -33,8 +33,8 @@ var searchData= ['klanes',['kLanes',['../structcutlass_1_1VectorTraits.html#a052e1e5963a9e04482b16cb881d1eaf8',1,'cutlass::VectorTraits::kLanes()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#aca745b59c6c21292f119943e5a480f39',1,'cutlass::VectorTraits< Vector< T, Lanes > >::kLanes()'],['../structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#a43ac200035052a2c352c8c4b84aac73c',1,'cutlass::VectorTraits< Vector< T, Lanes > const >::kLanes()']]], ['klaunchbounds',['kLaunchBounds',['../structcutlass_1_1gemm_1_1GemmConfig.html#a54e252cedbfee75e7c4ac2f7fe5ce45b',1,'cutlass::gemm::GemmConfig']]], ['klayout',['kLayout',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac29cd1ba94e802762d665c300e22e7db',1,'cutlass::gemm::GlobalLoadStream::kLayout()'],['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a74bc07cb021a73513ab2fbacd572be90',1,'cutlass::gemm::GemmGlobalTileTraits::kLayout()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#afe016e0c6234075a8d69ba7341555ece',1,'cutlass::gemm::GemmGlobalIteratorAb::kLayout()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#a27b88818f5b094372bf2c6e090c9148a',1,'cutlass::gemm::GemmGlobalIteratorCd::kLayout()'],['../structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html#a19076e58e60d296da74cf504e2a473fd',1,'cutlass::gemm::GemmMultiplicandTraits::kLayout()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#ad2010686bceb21aec9a1924ae379edc1',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kColumnMajor, GemmConfig_ >::kLayout()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#aedd49525e2c849baecf88cdfd9e3515c',1,'cutlass::gemm::GemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_ >::kLayout()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___01_4.html#afbd350793888a7e7b299548dca854c13',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_ >::kLayout()'],['../structcutlass_1_1gemm_1_1GemmTileTraitsHelperB_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___01_4.html#a31fa28168811e2d04fbd74029df785ab',1,'cutlass::gemm::GemmTileTraitsHelperB< MatrixLayout::kRowMajor, GemmConfig_ >::kLayout()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperA_3_01MatrixLayout_1_1kRowMajor_00_01GemmConfig___00_01Index___01_4.html#a32729d0fad10fcbbcf2643a2fa5671d6',1,'cutlass::gemm::IgemmTileTraitsHelperA< MatrixLayout::kRowMajor, GemmConfig_, Index_ >::kLayout()'],['../structcutlass_1_1gemm_1_1IgemmTileTraitsHelperB_3_01MatrixLayout_1_1kColumnMajor_00_01GemmConfig___00_01Index___01_4.html#a11026d05b2b32f1373020c049f2cfa66',1,'cutlass::gemm::IgemmTileTraitsHelperB< MatrixLayout::kColumnMajor, GemmConfig_, Index_ >::kLayout()'],['../structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCd.html#ae0f176733ba9dee0cce45435ac5d53ba',1,'cutlass::gemm::WmmaGemmGlobalIteratorCd::kLayout()']]], - ['klayouta',['kLayoutA',['../structcutlass_1_1gemm_1_1GemmTraits.html#ac5bb5931a707ed7672f69267753ba41b',1,'cutlass::gemm::GemmTraits']]], - ['klayoutb',['kLayoutB',['../structcutlass_1_1gemm_1_1GemmTraits.html#a078e8d9cfa1b182e1b96a2cc8c54b684',1,'cutlass::gemm::GemmTraits']]], + ['klayouta',['kLayoutA',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#ae33c34c292562ffe3c460dbd7bd96654',1,'cutlass::gemm::SplitkPIGemmTraits::kLayoutA()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#ac5bb5931a707ed7672f69267753ba41b',1,'cutlass::gemm::GemmTraits::kLayoutA()']]], + ['klayoutb',['kLayoutB',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits.html#a08476ea584d90bab353f9c0ef84c3692',1,'cutlass::gemm::SplitkPIGemmTraits::kLayoutB()'],['../structcutlass_1_1gemm_1_1GemmTraits.html#a078e8d9cfa1b182e1b96a2cc8c54b684',1,'cutlass::gemm::GemmTraits::kLayoutB()']]], ['km',['kM',['../structcutlass_1_1gemm_1_1GemmCoord.html#af1f5c03c35eaa406c6a63082da26bec3',1,'cutlass::gemm::GemmCoord']]], ['kmemoryspace',['kMemorySpace',['../structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#af219ece6e66e2866169e06e15cc4472d',1,'cutlass::gemm::GemmGlobalTileTraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a59c981aa720f983b846bed7c3e4a7cab',1,'cutlass::gemm::GemmSharedStoreTileAbTraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#ae5a07814b9cfe9a64f69bac0f0772f20',1,'cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a4456e4c8048bfb378e5b80833a0d19e5',1,'cutlass::gemm::GemmSharedLoadTileATraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a7007093a4abf79a0b4bfb3fc85a02620',1,'cutlass::gemm::GemmSharedLoadTileBTraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a8914bc5154f21fa5fd182b0009c44c39',1,'cutlass::gemm::GemmSharedStoreTileDTraits::kMemorySpace()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#afb4687520eff9c6a21c35a5e04f69de8',1,'cutlass::gemm::GemmSharedLoadTileDTraits::kMemorySpace()'],['../structcutlass_1_1TileIteratorBase.html#ab8bfa9914c4ba49a583d1cfaa8a62d56',1,'cutlass::TileIteratorBase::kMemorySpace()'],['../structcutlass_1_1TileLoadIterator.html#a44424164c9347f9916b2b86858706043',1,'cutlass::TileLoadIterator::kMemorySpace()'],['../structcutlass_1_1TileStoreIterator.html#a993e1e7d8cc461a9cfa009b61b42621f',1,'cutlass::TileStoreIterator::kMemorySpace()']]], ['kn',['kN',['../structcutlass_1_1gemm_1_1GemmCoord.html#a67f08a03dabee497fa5547cff0f1faea',1,'cutlass::gemm::GemmCoord']]], @@ -42,7 +42,7 @@ var searchData= ['kpredicates',['kPredicates',['../structcutlass_1_1PredicateVector.html#afff3a2142d9853606d6ad7c3a459f492',1,'cutlass::PredicateVector']]], ['kpredicatesperbyte',['kPredicatesPerByte',['../structcutlass_1_1PredicateVector.html#a1387c4a964f971ed4611d750a09ec0b5',1,'cutlass::PredicateVector']]], ['kpredicatestart',['kPredicateStart',['../structcutlass_1_1PredicateVector.html#acf848dce84c01453ab8a2d00c8d4f86e',1,'cutlass::PredicateVector']]], - ['krank',['kRank',['../structcutlass_1_1Coord.html#a23e1b9a7f5fa8fd4afeadfb85de7c5c3',1,'cutlass::Coord::kRank()'],['../classcutlass_1_1TensorRef.html#a429692d4ac03a3427fbd8fdfaac4ae31',1,'cutlass::TensorRef::kRank()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#abff03af38d99413315824c476e9a7d78',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::kRank()']]], + ['krank',['kRank',['../structcutlass_1_1Coord.html#a23e1b9a7f5fa8fd4afeadfb85de7c5c3',1,'cutlass::Coord::kRank()'],['../classcutlass_1_1TensorRef.html#a429692d4ac03a3427fbd8fdfaac4ae31',1,'cutlass::TensorRef::kRank()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#abff03af38d99413315824c476e9a7d78',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::kRank()'],['../structcutlass_1_1TensorRefBatchStrided.html#adb5a794993083f02fab0d12f513bf4c1',1,'cutlass::TensorRefBatchStrided::kRank()']]], ['kresidueinprolog',['kResidueInProlog',['../structcutlass_1_1gemm_1_1GemmConfig.html#a600746def904eeca46d7f92a4b223b46',1,'cutlass::gemm::GemmConfig']]], ['kresidueseparate',['kResidueSeparate',['../structcutlass_1_1gemm_1_1GemmConfig.html#a64c1e0d794c1bdfa8b2f3a53e387155c',1,'cutlass::gemm::GemmConfig']]], ['krow',['kRow',['../structcutlass_1_1MatrixCoord.html#a5149f4a37407746407251efc0779bb53',1,'cutlass::MatrixCoord::kRow()'],['../structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html#ae97a9ba9d5045bef258d8994eb732256',1,'cutlass::MatrixLayout::ContiguousLayout::kRow()']]], @@ -66,7 +66,7 @@ var searchData= ['kstages',['kStages',['../structcutlass_1_1gemm_1_1GemmConfig.html#ab26d76515e394118bfc530d6a81b9508',1,'cutlass::gemm::GemmConfig']]], ['kstoragerank',['kStorageRank',['../structcutlass_1_1MatrixLayout_1_1RowMajor.html#a87fe43681c95afc9ef46818fd84d9f30',1,'cutlass::MatrixLayout::RowMajor::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajor.html#ab6be000553d79c0a6e39ccabe1f38c70',1,'cutlass::MatrixLayout::ColumnMajor::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html#a7be6d445e879f042a0b8aa2c9a378800',1,'cutlass::MatrixLayout::RowMajorInterleaved::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved.html#af32144a5875e5db43cf395307a4ab00f',1,'cutlass::MatrixLayout::ColumnMajorInterleaved::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html#a68bde445429b6b3a5156460eaff6a8a7',1,'cutlass::MatrixLayout::ContiguousLayout::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear.html#a626305f3e11ad87e8185e028095a91d3',1,'cutlass::MatrixLayout::ColumnMajorBlockLinear::kStorageRank()'],['../structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear.html#ab1ef1db408fd1e4bda8d6ef203d50c3d',1,'cutlass::MatrixLayout::RowMajorBlockLinear::kStorageRank()'],['../structcutlass_1_1IdentityTensorMapFunc.html#ac609498e7fe858b4fb3791d1039438f4',1,'cutlass::IdentityTensorMapFunc::kStorageRank()'],['../classcutlass_1_1TensorRef.html#a425ff3d894ed1153eee79b1944fa5ed2',1,'cutlass::TensorRef::kStorageRank()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a9bae6c2fd5ac6c97c97786c89862c298',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::kStorageRank()'],['../structcutlass_1_1TensorRefArray.html#a131bdcf213e3d46672c9b3b34d6bf243',1,'cutlass::TensorRefArray::kStorageRank()']]], ['kstrideh',['kStrideH',['../structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#a87918f4d67a9c1e19dcd3c6bfc243e97',1,'cutlass::gemm::GemmGlobalTileCdTraits']]], - ['kthreads',['kThreads',['../structcutlass_1_1gemm_1_1Gemm.html#a41239809be4ebc730dd8ff28c9efc58b',1,'cutlass::gemm::Gemm::kThreads()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#acf461f0ba3067cc5d66a04f0a176308f',1,'cutlass::gemm::GemmConfig::kThreads()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a05039ba8b7d9890903064b1a834dcd3e',1,'cutlass::gemm::GemmSharedStoreTileDTraits::kThreads()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a8325bc9d56155ecb6f2ddbd56f4ed23d',1,'cutlass::gemm::GemmSharedLoadTileDTraits::kThreads()'],['../structcutlass_1_1TileTraitsStrideMajor.html#a2b6ad449269a178018f02b8cc64ddb85',1,'cutlass::TileTraitsStrideMajor::kThreads()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a53d10552356855bf7379632e72bbe0c9',1,'cutlass::TileTraitsContiguousMajor::kThreads()'],['../structcutlass_1_1TileTraitsWarpRake.html#a11d943e15e397cbc5233b09071dff642',1,'cutlass::TileTraitsWarpRake::kThreads()'],['../structcutlass_1_1TileTraitsStandard.html#a9cbcbe09aa6e9465b63dd22d59435af1',1,'cutlass::TileTraitsStandard::kThreads()']]], + ['kthreads',['kThreads',['../structcutlass_1_1gemm_1_1Gemm.html#a41239809be4ebc730dd8ff28c9efc58b',1,'cutlass::gemm::Gemm::kThreads()'],['../structcutlass_1_1gemm_1_1GemmConfig.html#acf461f0ba3067cc5d66a04f0a176308f',1,'cutlass::gemm::GemmConfig::kThreads()'],['../structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a05039ba8b7d9890903064b1a834dcd3e',1,'cutlass::gemm::GemmSharedStoreTileDTraits::kThreads()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a8325bc9d56155ecb6f2ddbd56f4ed23d',1,'cutlass::gemm::GemmSharedLoadTileDTraits::kThreads()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ab35edeae5cd8767bd376fad5f6680e25',1,'cutlass::reduction::BatchedReductionTraits::kThreads()'],['../structcutlass_1_1TileTraitsStrideMajor.html#a2b6ad449269a178018f02b8cc64ddb85',1,'cutlass::TileTraitsStrideMajor::kThreads()'],['../structcutlass_1_1TileTraitsContiguousMajor.html#a53d10552356855bf7379632e72bbe0c9',1,'cutlass::TileTraitsContiguousMajor::kThreads()'],['../structcutlass_1_1TileTraitsWarpRake.html#a11d943e15e397cbc5233b09071dff642',1,'cutlass::TileTraitsWarpRake::kThreads()'],['../structcutlass_1_1TileTraitsStandard.html#a9cbcbe09aa6e9465b63dd22d59435af1',1,'cutlass::TileTraitsStandard::kThreads()']]], ['kthreadsperwarp',['kThreadsPerWarp',['../structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a4246185b8279f245ef5d0650c1eec14f',1,'cutlass::gemm::GemmSharedLoadTileATraits::kThreadsPerWarp()'],['../structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#a049b0bcdf8c5318ee84edeb1e42eaf78',1,'cutlass::gemm::GemmSharedLoadTileBTraits::kThreadsPerWarp()']]], ['kusage',['kUsage',['../structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html#a962ffde3b3db78792b67dd1f57ab0a05',1,'cutlass::gemm::GemmMultiplicandTraits']]], ['kvalue',['kValue',['../structcutlass_1_1Min.html#a97e6dd3ff6fb5404e8a6e6109f73f429',1,'cutlass::Min::kValue()'],['../structcutlass_1_1Max.html#a6ed8be7ed855eea8f8d08921f7b5d763',1,'cutlass::Max::kValue()'],['../structcutlass_1_1Extent.html#a2cb62986b9a7c168bf79b083f33c4bad',1,'cutlass::Extent::kValue()'],['../structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#a10f7184a9a50de0268efa45dab5dc304',1,'cutlass::Extent< Vector< T, Lanes > >::kValue()'],['../structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#a87917a6dfbb1662416c4ea4831669aaf',1,'cutlass::Extent< Vector< T, Lanes > const >::kValue()']]], diff --git a/docs/search/variables_9.js b/docs/search/variables_9.js index 8041de3c..6541b931 100644 --- a/docs/search/variables_9.js +++ b/docs/search/variables_9.js @@ -1,5 +1,8 @@ var searchData= [ + ['lda',['lda',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#ab14fa69759f1d600a28df4fabaf59c28',1,'cutlass::reduction::BatchedReductionTraits::Params']]], + ['ldc',['ldc',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#a6bdb4dfce17da648b55c7aa68ef5b191',1,'cutlass::reduction::BatchedReductionTraits::Params']]], + ['ldd',['ldd',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#ad24096385e51009866b5aafd90b42ad2',1,'cutlass::reduction::BatchedReductionTraits::Params']]], ['load',['load',['../unioncutlass_1_1gemm_1_1GemmEpilogueTraits_1_1StreamSharedStorage.html#ae7bc498e4976814111114091de4e43af',1,'cutlass::gemm::GemmEpilogueTraits::StreamSharedStorage']]], ['load_5fiterator',['load_iterator',['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a46f2546f9b88f4fc87f1396d0f08b065',1,'cutlass::gemm::GlobalLoadStream::Params::load_iterator()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a5ef4cc42c7cec73523550e5ea56df88c',1,'cutlass::gemm::GlobalLoadStream::load_iterator()']]] ]; diff --git a/docs/search/variables_a.js b/docs/search/variables_a.js index a26f7fe2..33457aaf 100644 --- a/docs/search/variables_a.js +++ b/docs/search/variables_a.js @@ -2,5 +2,7 @@ var searchData= [ ['main_5floop',['main_loop',['../unioncutlass_1_1gemm_1_1GemmTraits_1_1SharedStorage.html#aa5dd7edc3cffa785eb1e5b62c18c74c4',1,'cutlass::gemm::GemmTraits::SharedStorage']]], ['mask_5f',['mask_',['../structcutlass_1_1gemm_1_1IgemmGlobalIteratorAb.html#aa6e76073303f5f5a95053a781ec8b762',1,'cutlass::gemm::IgemmGlobalIteratorAb']]], + ['maxinreg',['maxInReg',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#af11a3284195a24e580d2f379f179f05a',1,'cutlass::reduction::BatchedReductionTraits']]], + ['maxoutreg',['maxOutReg',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#ac28e31791c5888bbe7b04abe6376a422',1,'cutlass::reduction::BatchedReductionTraits']]], ['multiplicand_5fbounds',['multiplicand_bounds',['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a386f2f4d2e239075f0fe1489ed7788c1',1,'cutlass::gemm::GlobalLoadStream']]] ]; diff --git a/docs/search/variables_c.js b/docs/search/variables_c.js index 1dfe6b3e..65c31ace 100644 --- a/docs/search/variables_c.js +++ b/docs/search/variables_c.js @@ -1,4 +1,5 @@ var searchData= [ - ['offset_5fto_5fresidue',['offset_to_residue',['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a73bb518f85aee62310b3c886a1fba3f1',1,'cutlass::gemm::GlobalLoadStream::Params']]] + ['offset_5fto_5fresidue',['offset_to_residue',['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a73bb518f85aee62310b3c886a1fba3f1',1,'cutlass::gemm::GlobalLoadStream::Params']]], + ['offset_5fto_5fresidue_5flast_5fpartition',['offset_to_residue_last_partition',['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a7cad4eeadacc7efbfe9d2442997eeb82',1,'cutlass::gemm::GlobalLoadStream::Params']]] ]; diff --git a/docs/search/variables_d.js b/docs/search/variables_d.js index 32f5df5c..06d23c4d 100644 --- a/docs/search/variables_d.js +++ b/docs/search/variables_d.js @@ -1,11 +1,13 @@ var searchData= [ - ['params',['params',['../structcutlass_1_1gemm_1_1Gemm.html#a3c292637ab0ec8e73856d0cf6efb6da2',1,'cutlass::gemm::Gemm::params()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a81b028a18df51d3caa1b0ba0c990e362',1,'cutlass::gemm::GemmEpilogue::params()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac8ff1a3e10b25c212cd3cf5ed997fc0e',1,'cutlass::gemm::GlobalLoadStream::params()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#ab8c79cb1a8157dd00429c93cb4a41322',1,'cutlass::gemm::GemmGlobalIteratorAb::params()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#ac368b1ea1c5ad2209a6ac6bec597600f',1,'cutlass::gemm::GemmGlobalIteratorCd::params()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#a7bbf90dc0938698a0fa22468f9df315d',1,'cutlass::gemm::LinearScaling::params()'],['../structcutlass_1_1TileLoadIterator.html#a5561e676148200c2fc85a603847cc596',1,'cutlass::TileLoadIterator::params()'],['../structcutlass_1_1TileStoreIterator.html#a64e0c9fb1f7d8fcc77bf0a915445ee6d',1,'cutlass::TileStoreIterator::params()']]], + ['params',['params',['../structcutlass_1_1gemm_1_1Gemm.html#a3c292637ab0ec8e73856d0cf6efb6da2',1,'cutlass::gemm::Gemm::params()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a81b028a18df51d3caa1b0ba0c990e362',1,'cutlass::gemm::GemmEpilogue::params()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#ac8ff1a3e10b25c212cd3cf5ed997fc0e',1,'cutlass::gemm::GlobalLoadStream::params()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#ab8c79cb1a8157dd00429c93cb4a41322',1,'cutlass::gemm::GemmGlobalIteratorAb::params()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#ac368b1ea1c5ad2209a6ac6bec597600f',1,'cutlass::gemm::GemmGlobalIteratorCd::params()'],['../structcutlass_1_1gemm_1_1LinearScaling.html#a7bbf90dc0938698a0fa22468f9df315d',1,'cutlass::gemm::LinearScaling::params()'],['../structcutlass_1_1reduction_1_1BatchedReduction.html#a9c9d8378c735597f39927c6ab32519ef',1,'cutlass::reduction::BatchedReduction::params()'],['../structcutlass_1_1TileLoadIterator.html#a5561e676148200c2fc85a603847cc596',1,'cutlass::TileLoadIterator::params()'],['../structcutlass_1_1TileStoreIterator.html#a64e0c9fb1f7d8fcc77bf0a915445ee6d',1,'cutlass::TileStoreIterator::params()']]], + ['partitionk_5frange',['partitionK_range',['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#a44b9a0d6210561d3b0d538b2c0a38886',1,'cutlass::gemm::GemmTraits::Params']]], ['pointer',['pointer',['../structcutlass_1_1FragmentIterator.html#af667793926cdb24d701eb75e0345bbd6',1,'cutlass::FragmentIterator::pointer()'],['../structcutlass_1_1FragmentConstIterator.html#aee37f8ea06127b94a304bb776945509b',1,'cutlass::FragmentConstIterator::pointer()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#ad764f98e770d4685006e6888214dcd4d',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::pointer()'],['../structcutlass_1_1TileLoadIterator_1_1Params.html#a388d464c35cc1bcd509d22937f38dcf6',1,'cutlass::TileLoadIterator::Params::pointer()'],['../structcutlass_1_1TileStoreIterator_1_1Params.html#a9e50043acd3b851cce169310a04c6827',1,'cutlass::TileStoreIterator::Params::pointer()']]], ['pointers',['pointers',['../structcutlass_1_1TensorRefArray.html#ae322501a04b0008e5db4f7fccb6e903e',1,'cutlass::TensorRefArray']]], ['predicate_5finc_5fadvance',['predicate_inc_advance',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a2b5d2b02d241e89677c41eb658ace129',1,'cutlass::gemm::GemmGlobalIteratorCd::Params']]], ['predicate_5finc_5fh',['predicate_inc_h',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a36afe18f94aacd0746c8946866371d3c',1,'cutlass::gemm::GemmGlobalIteratorCd::Params']]], ['predicate_5foffset',['predicate_offset',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a3e8f6cf08d23318f3e3263b55cf3b84a',1,'cutlass::gemm::GemmGlobalIteratorCd::Params']]], ['predicates',['predicates',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html#af323c9db74f0de3376edd35eb377bc9c',1,'cutlass::gemm::GemmGlobalIteratorAb::predicates()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html#ad23e6224e37ec1d13dc237ce8ec6e977',1,'cutlass::gemm::GemmGlobalIteratorCd::predicates()'],['../structcutlass_1_1PredicatedTileLoadStream.html#a8f8c7c54dba8a0c8cd0799b89130564f',1,'cutlass::PredicatedTileLoadStream::predicates()'],['../structcutlass_1_1PredicatedTileStoreStream.html#a2ecdfa152dcf7b3acaf8767f3e69cfbe',1,'cutlass::PredicatedTileStoreStream::predicates()']]], - ['problem_5fsize',['problem_size',['../structcutlass_1_1gemm_1_1GemmDesc.html#a52a5538b1b5208090417cf98d8735e3f',1,'cutlass::gemm::GemmDesc::problem_size()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a6bea57249e3645a4b08a11619cb1687e',1,'cutlass::gemm::GemmEpilogue::problem_size()'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#af2233a6ebf39788e27f051f8c614ab90',1,'cutlass::gemm::GemmTraits::Params::problem_size()']]] + ['problem_5fsize',['problem_size',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a542a371bf39a9e58889d78e782af3aae',1,'cutlass::gemm::SplitkPIGemmTraits::Params::problem_size()'],['../structcutlass_1_1gemm_1_1GemmDesc.html#a52a5538b1b5208090417cf98d8735e3f',1,'cutlass::gemm::GemmDesc::problem_size()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a6bea57249e3645a4b08a11619cb1687e',1,'cutlass::gemm::GemmEpilogue::problem_size()'],['../structcutlass_1_1gemm_1_1GemmTraits_1_1Params.html#af2233a6ebf39788e27f051f8c614ab90',1,'cutlass::gemm::GemmTraits::Params::problem_size()'],['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#adbd0cf20c4f7033016d1b8fdaca6aeae',1,'cutlass::reduction::BatchedReductionTraits::Params::problem_size()']]], + ['problem_5fsize_5finitialized',['problem_size_initialized',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a966f73ad90754f53eed5faf68fc77d87',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]] ]; diff --git a/docs/search/variables_e.js b/docs/search/variables_e.js index a908e7a2..db9a06d7 100644 --- a/docs/search/variables_e.js +++ b/docs/search/variables_e.js @@ -1,5 +1,8 @@ var searchData= [ ['rank',['Rank',['../classcutlass_1_1TensorRef.html#a2088b39881deef375af08511bca1e90a',1,'cutlass::TensorRef::Rank()'],['../classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a233fba9abdbbd0fe3a2cc7465ea76a41',1,'cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ >::Rank()'],['../classcutlass_1_1TensorView.html#a8dbb7043546fae133547d2c3e46dddab',1,'cutlass::TensorView::Rank()']]], + ['reduction_5fstride',['reduction_stride',['../structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#a5d1463d473d4226b0d19c581b16ed3b2',1,'cutlass::reduction::BatchedReductionTraits::Params']]], + ['reductionparams',['ReductionParams',['../structcutlass_1_1gemm_1_1SplitkPIGemmTraits_1_1Params.html#a62adba1d7d9c309049c636f3e0379527',1,'cutlass::gemm::SplitkPIGemmTraits::Params']]], + ['reductionsize',['ReductionSize',['../structcutlass_1_1reduction_1_1BatchedReductionTraits.html#a00c71c9a18aaad84f4a48023dbbb454e',1,'cutlass::reduction::BatchedReductionTraits']]], ['registers',['registers',['../unioncutlass_1_1Vector.html#a29dab07949206cc1609543ffcefd1e5a',1,'cutlass::Vector::registers()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#abd116dc7a5b82ac9b1481fb1d2bfc93f',1,'cutlass::Vector< half, kLanes_ >::registers()'],['../unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#af27a36f604513f05aebe0624a9c539ab',1,'cutlass::Vector< bin1_t, kLanes_ >::registers()'],['../unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#ace5e03860b434b2d2a4590bd2bc8c147',1,'cutlass::Vector< int4_t, kLanes_ >::registers()'],['../unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a15d5103e46d53e030100dedaecb0220a',1,'cutlass::Vector< uint4_t, kLanes_ >::registers()']]] ]; diff --git a/docs/search/variables_f.js b/docs/search/variables_f.js index c8429bd4..b6082bda 100644 --- a/docs/search/variables_f.js +++ b/docs/search/variables_f.js @@ -1,7 +1,7 @@ var searchData= [ ['scalars',['scalars',['../unioncutlass_1_1Vector.html#a091080b4e9db9e89734f44ceb985d78f',1,'cutlass::Vector::scalars()'],['../unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a81709dacea12d6bd3bb328a3f0a519b0',1,'cutlass::Vector< half, 1 >::scalars()'],['../unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#ab4a119a4813f80aa10c25e32f8b115f3',1,'cutlass::Vector< half, kLanes_ >::scalars()']]], - ['second',['second',['../structcutlass_1_1ZipTileAllocation.html#a94abc7e74632b14718fd2d5b78cceafc',1,'cutlass::ZipTileAllocation::second()'],['../structcutlass_1_1ZipFragment.html#a1812254d5fd77cd6dfdf7d7f2e81130c',1,'cutlass::ZipFragment::second()'],['../structcutlass_1_1ZipConvert.html#ad0daa6c3b89db0a058958a6eba72c6b9',1,'cutlass::ZipConvert::second()'],['../structcutlass_1_1ZipTensorRef.html#ad981b056cc96709a23e6d51dba4cd451',1,'cutlass::ZipTensorRef::second()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a6eb742dc39b1d776cf5d62719835fe26',1,'cutlass::ZipTileIterator::Params::second()'],['../classcutlass_1_1ZipTileIterator.html#ab88ce07b3012ae2e6a92ad784c8067f0',1,'cutlass::ZipTileIterator::second()']]], + ['second',['second',['../structcutlass_1_1ZipTileAllocation.html#a94abc7e74632b14718fd2d5b78cceafc',1,'cutlass::ZipTileAllocation::second()'],['../structcutlass_1_1platform_1_1Pair.html#abfe0541c2fcd9d08e92a01340d3d1822',1,'cutlass::platform::Pair::second()'],['../structcutlass_1_1ZipFragment.html#a1812254d5fd77cd6dfdf7d7f2e81130c',1,'cutlass::ZipFragment::second()'],['../structcutlass_1_1ZipConvert.html#ad0daa6c3b89db0a058958a6eba72c6b9',1,'cutlass::ZipConvert::second()'],['../structcutlass_1_1ZipTensorRef.html#ad981b056cc96709a23e6d51dba4cd451',1,'cutlass::ZipTensorRef::second()'],['../structcutlass_1_1ZipTileIterator_1_1Params.html#a6eb742dc39b1d776cf5d62719835fe26',1,'cutlass::ZipTileIterator::Params::second()'],['../classcutlass_1_1ZipTileIterator.html#ab88ce07b3012ae2e6a92ad784c8067f0',1,'cutlass::ZipTileIterator::second()']]], ['shared_5fload_5fstream_5fd',['shared_load_stream_d',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a5d3d1abd85f18476a74bcf616a717f9d',1,'cutlass::gemm::GemmEpilogueTraits::Params']]], ['shared_5fstorage',['shared_storage',['../structcutlass_1_1gemm_1_1Gemm.html#a6b0119ed8d92698dab4de68987c8cc1b',1,'cutlass::gemm::Gemm::shared_storage()'],['../structcutlass_1_1gemm_1_1GemmEpilogue.html#a442b5b5688cd658c3b3476650c00281e',1,'cutlass::gemm::GemmEpilogue::shared_storage()']]], ['shared_5fstore_5fiterator_5fd',['shared_store_iterator_d',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#adfdf3eca06ea4061fbfe016336a3f276',1,'cutlass::gemm::GemmEpilogueTraits::Params']]], @@ -13,7 +13,7 @@ var searchData= ['store_5fiterator',['store_iterator',['../structcutlass_1_1gemm_1_1GlobalLoadStream_1_1Params.html#a289ac736c0c098ae6da6a21c9abfe63f',1,'cutlass::gemm::GlobalLoadStream::Params::store_iterator()'],['../structcutlass_1_1gemm_1_1GlobalLoadStream.html#a45a4bceb72fcb856e32eaa20eec11e9d',1,'cutlass::gemm::GlobalLoadStream::store_iterator()']]], ['stream_5fa',['stream_a',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html#a235c77b257b93dace812d2f7b9340705',1,'cutlass::gemm::GlobalLoadStreamPair::Params::stream_a()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1SharedStorage.html#a87d507b703a0eb654265f4529ed18f66',1,'cutlass::gemm::GlobalLoadStreamPair::SharedStorage::stream_a()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a93cde16f4aef554603fcf27fa23d5127',1,'cutlass::gemm::GlobalLoadStreamPair::stream_a()'],['../structcutlass_1_1gemm_1_1SharedStreamPair_1_1Params.html#afb56016927b59b8d5447c3656f0b634e',1,'cutlass::gemm::SharedStreamPair::Params::stream_a()'],['../structcutlass_1_1gemm_1_1SharedStreamPair.html#a157cec4ae2881fd37e0244614bc4ab7a',1,'cutlass::gemm::SharedStreamPair::stream_a()']]], ['stream_5fb',['stream_b',['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1Params.html#a12b5e3e21137480047b8b0f55cbf7258',1,'cutlass::gemm::GlobalLoadStreamPair::Params::stream_b()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair_1_1SharedStorage.html#a6d9444ed13ed544febe196e3e835ea16',1,'cutlass::gemm::GlobalLoadStreamPair::SharedStorage::stream_b()'],['../structcutlass_1_1gemm_1_1GlobalLoadStreamPair.html#a9aeaeabd4f8af2d864f28c76c6a301d9',1,'cutlass::gemm::GlobalLoadStreamPair::stream_b()'],['../structcutlass_1_1gemm_1_1SharedStreamPair_1_1Params.html#a4a8f9207ffb3bbcdb000af62808371f5',1,'cutlass::gemm::SharedStreamPair::Params::stream_b()'],['../structcutlass_1_1gemm_1_1SharedStreamPair.html#a698586bcc25212e8cd65ab6a4e5c42a9',1,'cutlass::gemm::SharedStreamPair::stream_b()']]], - ['stride_5fd',['stride_d',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a1a53695ce7f3cb267225d3ab86a0d5aa',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::stride_d()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a235647baff946e483dd61a2069aa01d2',1,'cutlass::TileIteratorBase::Params::stride_d()']]], + ['stride_5fd',['stride_d',['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a1a53695ce7f3cb267225d3ab86a0d5aa',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::stride_d()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a408f837f3bdd349aabbf59451e999712',1,'cutlass::TileIteratorBase::Params::stride_d()']]], ['stride_5fh',['stride_h',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#a497b91e93d0eb29ca54553f8de4c694f',1,'cutlass::gemm::GemmEpilogueTraits::Params::stride_h()'],['../structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html#a0c6b03c635e14ad4424a83f8c7f8025e',1,'cutlass::gemm::GemmGlobalIteratorCd::Params::stride_h()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#a4f029a268387bd63112d9074c185c623',1,'cutlass::TileIteratorBase::Params::stride_h()']]], ['stride_5fw',['stride_w',['../structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html#ae814ac640d05358a3ce0ea70ed13ea68',1,'cutlass::gemm::GemmEpilogueTraits::Params::stride_w()'],['../structcutlass_1_1TileIteratorBase_1_1Params.html#af7e7a71a9fa41cc3f6d0e5963963339d',1,'cutlass::TileIteratorBase::Params::stride_w()']]], ['strides',['strides',['../structcutlass_1_1TensorRefArray.html#a76228819a72b8ed341e680ba84a960be',1,'cutlass::TensorRefArray']]] diff --git a/docs/sgemm__traits_8h.html b/docs/sgemm__traits_8h.html index ad0a7e50..be61e22e 100644 --- a/docs/sgemm__traits_8h.html +++ b/docs/sgemm__traits_8h.html @@ -112,7 +112,7 @@ Namespaces diff --git a/docs/sgemm__traits_8h_source.html b/docs/sgemm__traits_8h_source.html index 01b42b7b..ba92a10d 100644 --- a/docs/sgemm__traits_8h_source.html +++ b/docs/sgemm__traits_8h_source.html @@ -76,9 +76,10 @@ $(function() {
    sgemm_traits.h
    -Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/gemm/gemm.h"
    37 
    38 namespace cutlass {
    39 namespace gemm {
    40 
    42 
    43 template <
    45  typename OutputTile_,
    47  typename ThreadGemmShape_,
    49  int kScalarsPerLdgA_ = 1,
    51  int kScalarsPerLdgB_ = 1,
    53  bool kLaunchBounds = true>
    54 struct SgemmConfig : public GemmConfig<
    56  float,
    58  float,
    60  float,
    62  float,
    64  OutputTile_,
    66  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, float, float, float>,
    68  kScalarsPerLdgA_,
    70  kScalarsPerLdgA_,
    72  4,
    74  kScalarsPerLdgB_,
    76  kScalarsPerLdgB_,
    78  4,
    80  1,
    82  4,
    84  1,
    86  2,
    88  false,
    90  true,
    92  kLaunchBounds> {};
    93 
    95 
    96 template <
    98  MatrixLayout::Kind kLayoutA_,
    100  MatrixLayout::Kind kLayoutB_,
    102  typename OutputTile_ = Shape<8, 128, 128>,
    104  typename EpilogueFunctor_ = LinearScaling<float>,
    106  typename ThreadGemmShape_ = Shape<8, 8, 8>,
    108  int kScalarsPerLdgA_ = 1,
    110  int kScalarsPerLdgB_ = 1,
    112  typename Index_ = int,
    114  typename GemmConfig_ =
    117  typename GemmEpilogueTraits_ =
    120  // The layout for A.
    121  kLayoutA_,
    122  // The layout for B.
    123  kLayoutB_,
    124  // The config.
    125  GemmConfig_,
    126  // The epilogue.
    127  GemmEpilogue<GemmEpilogueTraits_>,
    128  // The index.
    129  Index_> {};
    130 
    132 
    134 template <
    136  MatrixLayout::Kind kLayoutA_,
    138  MatrixLayout::Kind kLayoutB_,
    140  typename OutputTile_ = Shape<8, 128, 128>,
    142  typename EpilogueFunctor_ = LinearScaling<float>,
    144  typename ThreadGemmShape_ = Shape<8, 8, 8>,
    146  int kScalarsPerLdgA_ = 1,
    148  int kScalarsPerLdgB_ = 1,
    150  typename Index_ = int,
    152  typename GemmConfig_ =
    155  typename GemmEpilogueTraits_ =
    158  // The layout for A.
    159  kLayoutA_,
    160  // The layout for B.
    161  kLayoutB_,
    162  // The config.
    163  GemmConfig_,
    164  // The epilogue.
    165  GemmEpilogue<GemmEpilogueTraits_>,
    166  // The index.
    167  Index_> {};
    168 
    170 
    171 } // namespace gemm
    172 } // namespace cutlass
    Definition: convert.h:33
    +Go to the documentation of this file.
    1 /***************************************************************************************************
    2  * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without modification, are permitted
    5  * provided that the following conditions are met:
    6  * * Redistributions of source code must retain the above copyright notice, this list of
    7  * conditions and the following disclaimer.
    8  * * Redistributions in binary form must reproduce the above copyright notice, this list of
    9  * conditions and the following disclaimer in the documentation and/or other materials
    10  * provided with the distribution.
    11  * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used
    12  * to endorse or promote products derived from this software without specific prior written
    13  * permission.
    14  *
    15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
    16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    17  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE
    18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    19  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    21  * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    22  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    23  *
    24  **************************************************************************************************/
    28 #pragma once
    29 
    30 #include "cutlass/gemm/gemm.h"
    37 
    38 namespace cutlass {
    39 namespace gemm {
    40 
    42 
    43 template <
    45  typename OutputTile_,
    47  typename ThreadGemmShape_,
    49  int kScalarsPerLdgA_ = 1,
    51  int kScalarsPerLdgB_ = 1,
    53  bool kLaunchBounds = true>
    54 struct SgemmConfig : public GemmConfig<
    56  float,
    58  float,
    60  float,
    62  float,
    64  OutputTile_,
    66  ThreadMultiplyAdd<ThreadGemmShape_, Shape<1, 4, 8>, float, float, float>,
    68  kScalarsPerLdgA_,
    70  kScalarsPerLdgA_,
    72  4,
    74  kScalarsPerLdgB_,
    76  kScalarsPerLdgB_,
    78  4,
    80  1,
    82  4,
    84  1,
    86  2,
    88  false,
    90  true,
    92  kLaunchBounds> {};
    93 
    95 
    96 template <
    98  MatrixLayout::Kind kLayoutA_,
    100  MatrixLayout::Kind kLayoutB_,
    102  typename OutputTile_ = Shape<8, 128, 128>,
    104  typename EpilogueFunctor_ = LinearScaling<float>,
    106  typename ThreadGemmShape_ = Shape<8, 8, 8>,
    108  int kScalarsPerLdgA_ = 1,
    110  int kScalarsPerLdgB_ = 1,
    112  typename Index_ = int,
    114  typename GemmConfig_ =
    117  typename GemmEpilogueTraits_ =
    120  // The layout for A.
    121  kLayoutA_,
    122  // The layout for B.
    123  kLayoutB_,
    124  // The config.
    125  GemmConfig_,
    126  // The epilogue.
    127  GemmEpilogue<GemmEpilogueTraits_>,
    128  // The index.
    129  Index_> {};
    130 
    132 
    134 template <
    136  MatrixLayout::Kind kLayoutA_,
    138  MatrixLayout::Kind kLayoutB_,
    140  typename OutputTile_ = Shape<8, 128, 128>,
    142  typename EpilogueFunctor_ = LinearScaling<float>,
    144  typename ThreadGemmShape_ = Shape<8, 8, 8>,
    146  int kScalarsPerLdgA_ = 1,
    148  int kScalarsPerLdgB_ = 1,
    150  typename Index_ = int,
    152  typename GemmConfig_ =
    155  typename GemmEpilogueTraits_ =
    158  // The layout for A.
    159  kLayoutA_,
    160  // The layout for B.
    161  kLayoutB_,
    162  // The config.
    163  GemmConfig_,
    164  // The epilogue.
    165  GemmEpilogue<GemmEpilogueTraits_>,
    166  // The index.
    167  Index_> {};
    168 
    170 
    171 } // namespace gemm
    172 } // namespace cutlass
    Definition: convert.h:33
    Defines iterators for efficiently loading and storing to global memory.
    Defines structural properties of complete GEMM computation.
    +
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    Definition: sgemm_traits.h:54
    Template implementing matrix multiply-add operations on fragments.
    Helper to define SGEMM traits using Launch Bounds.
    Definition: sgemm_traits.h:157
    @@ -86,17 +87,16 @@ $(function() {
    Defines iterators for efficiently loading and storing tiles to and from shared memory.
    Definition: gemm_config.h:76
    A Shape implementing Layout Concept describing the dimensions of a cube.
    Definition: shape.h:64
    -
    Definition: gemm_epilogue_traits.h:323
    -
    Kind
    Enumeration defining fundamental contiguous layouts.
    Definition: matrix_traits.h:159
    +
    Definition: gemm_epilogue_traits.h:340
    Definition: sgemm_traits.h:119
    Functor to compute linear combination of fragments.
    Definition: linear_scaling.h:51
    Implements a software-pipelined efficient GEMM.
    Defines structural properties of the GEMM epilogue.
    -
    Definition: gemm_traits.h:650
    +
    Definition: gemm_traits.h:773
    diff --git a/docs/shape_8h.html b/docs/shape_8h.html index 9c876db2..3af7462e 100644 --- a/docs/shape_8h.html +++ b/docs/shape_8h.html @@ -136,7 +136,7 @@ Namespaces
    diff --git a/docs/shape_8h_source.html b/docs/shape_8h_source.html index 0e48d6eb..bc7ae2be 100644 --- a/docs/shape_8h_source.html +++ b/docs/shape_8h_source.html @@ -115,7 +115,7 @@ $(function() { diff --git a/docs/structDebugType.html b/docs/structDebugType.html index 20491d0e..38058543 100644 --- a/docs/structDebugType.html +++ b/docs/structDebugType.html @@ -80,7 +80,7 @@ $(function() { diff --git a/docs/structDebugValue.html b/docs/structDebugValue.html index 1d8cedbf..e60f3a32 100644 --- a/docs/structDebugValue.html +++ b/docs/structDebugValue.html @@ -80,7 +80,7 @@ $(function() { diff --git a/docs/structcutlass_1_1AlignedStruct.html b/docs/structcutlass_1_1AlignedStruct.html index 44eed348..1b55404d 100644 --- a/docs/structcutlass_1_1AlignedStruct.html +++ b/docs/structcutlass_1_1AlignedStruct.html @@ -93,7 +93,7 @@ Inheritance diagram for cutlass::AlignedStruct< kAlignment_ >: diff --git a/docs/structcutlass_1_1ComputeOffsetFromShape-members.html b/docs/structcutlass_1_1ComputeOffsetFromShape-members.html index 831824c1..590b90e0 100644 --- a/docs/structcutlass_1_1ComputeOffsetFromShape-members.html +++ b/docs/structcutlass_1_1ComputeOffsetFromShape-members.html @@ -83,7 +83,7 @@ $(function() {

    Namespaces

    diff --git a/docs/structcutlass_1_1ComputeOffsetFromShape.html b/docs/structcutlass_1_1ComputeOffsetFromShape.html index 0bc8b423..fb391bd3 100644 --- a/docs/structcutlass_1_1ComputeOffsetFromShape.html +++ b/docs/structcutlass_1_1ComputeOffsetFromShape.html @@ -157,7 +157,7 @@ template<typename Shape_ > diff --git a/docs/structcutlass_1_1ComputeOffsetFromStrides-members.html b/docs/structcutlass_1_1ComputeOffsetFromStrides-members.html index ea6eabbb..6f5e2ff8 100644 --- a/docs/structcutlass_1_1ComputeOffsetFromStrides-members.html +++ b/docs/structcutlass_1_1ComputeOffsetFromStrides-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ComputeOffsetFromStrides.html b/docs/structcutlass_1_1ComputeOffsetFromStrides.html index 4ab5b8c8..cf3d412b 100644 --- a/docs/structcutlass_1_1ComputeOffsetFromStrides.html +++ b/docs/structcutlass_1_1ComputeOffsetFromStrides.html @@ -157,7 +157,7 @@ template<typename Strides_ > diff --git a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides-members.html b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides-members.html index 935079e9..cc87ebdc 100644 --- a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides-members.html +++ b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides.html b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides.html index 783481f4..6b600d87 100644 --- a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides.html +++ b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides.html @@ -135,7 +135,7 @@ template<typename Threads_ , typename Strides_ > diff --git a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_011_03ed682791cf043da79a7cc93228a8c85.html b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_011_03ed682791cf043da79a7cc93228a8c85.html index eda304df..1ec2dbb0 100644 --- a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_011_03ed682791cf043da79a7cc93228a8c85.html +++ b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_011_03ed682791cf043da79a7cc93228a8c85.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_011_0e75281d7e02fa191f5d498e10e25dc1b.html b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_011_0e75281d7e02fa191f5d498e10e25dc1b.html index 1f99dd6f..a55ef503 100644 --- a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_011_0e75281d7e02fa191f5d498e10e25dc1b.html +++ b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_011_0e75281d7e02fa191f5d498e10e25dc1b.html @@ -124,7 +124,7 @@ template<int T_h_, int T_w_, int S_h_, int S_w_> diff --git a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_01T__dd54c41f6edb97d3c208cb7c6fe4ab9b.html b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_01T__dd54c41f6edb97d3c208cb7c6fe4ab9b.html index 60bbf6ae..866dd420 100644 --- a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_01T__dd54c41f6edb97d3c208cb7c6fe4ab9b.html +++ b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_01T__dd54c41f6edb97d3c208cb7c6fe4ab9b.html @@ -124,7 +124,7 @@ template<int T_h_, int T_w_, int T_c_, int S_h_, int S_w_, int S_c_> diff --git a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_01T__f2e6d84a53db391977c787a65ed62aca.html b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_01T__f2e6d84a53db391977c787a65ed62aca.html index 6ed4a5e9..f3b5cbfe 100644 --- a/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_01T__f2e6d84a53db391977c787a65ed62aca.html +++ b/docs/structcutlass_1_1ComputeThreadOffsetFromStrides_3_01Shape_3_011_00_01T__h___00_01T__w___00_01T__f2e6d84a53db391977c787a65ed62aca.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ConstPredicateTileAdapter-members.html b/docs/structcutlass_1_1ConstPredicateTileAdapter-members.html index 95313d92..f08e074b 100644 --- a/docs/structcutlass_1_1ConstPredicateTileAdapter-members.html +++ b/docs/structcutlass_1_1ConstPredicateTileAdapter-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ConstPredicateTileAdapter.html b/docs/structcutlass_1_1ConstPredicateTileAdapter.html index 80e8be3e..c8217862 100644 --- a/docs/structcutlass_1_1ConstPredicateTileAdapter.html +++ b/docs/structcutlass_1_1ConstPredicateTileAdapter.html @@ -223,7 +223,7 @@ template<typename PredicateVector_ , typename Iterations_ > diff --git a/docs/structcutlass_1_1Convert.html b/docs/structcutlass_1_1Convert.html index da9ae6fd..40956c11 100644 --- a/docs/structcutlass_1_1Convert.html +++ b/docs/structcutlass_1_1Convert.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ob568b5e19b6f78a5fa50d1f821f0bc2a.html b/docs/structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ob568b5e19b6f78a5fa50d1f821f0bc2a.html index a1f22df5..b286dbbe 100644 --- a/docs/structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ob568b5e19b6f78a5fa50d1f821f0bc2a.html +++ b/docs/structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ob568b5e19b6f78a5fa50d1f821f0bc2a.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ofca5985d18bcb54bc1f49355f3cee121.html b/docs/structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ofca5985d18bcb54bc1f49355f3cee121.html index b86bde66..09f3ce97 100644 --- a/docs/structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ofca5985d18bcb54bc1f49355f3cee121.html +++ b/docs/structcutlass_1_1Convert_3_01Fragment_3_01InputScalar___00_01kScalars___01_4_00_01Fragment_3_01Ofca5985d18bcb54bc1f49355f3cee121.html @@ -257,7 +257,7 @@ template<typename Fragment_ > diff --git a/docs/structcutlass_1_1Coord-members.html b/docs/structcutlass_1_1Coord-members.html index 095b79b9..51eb8b18 100644 --- a/docs/structcutlass_1_1Coord-members.html +++ b/docs/structcutlass_1_1Coord-members.html @@ -114,7 +114,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Coord.html b/docs/structcutlass_1_1Coord.html index 63fa2f71..7391f822 100644 --- a/docs/structcutlass_1_1Coord.html +++ b/docs/structcutlass_1_1Coord.html @@ -1110,7 +1110,7 @@ template<int Rank_, typename Index_ = int> diff --git a/docs/structcutlass_1_1Copy-members.html b/docs/structcutlass_1_1Copy-members.html index b05b6d6f..6d605750 100644 --- a/docs/structcutlass_1_1Copy-members.html +++ b/docs/structcutlass_1_1Copy-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Copy.html b/docs/structcutlass_1_1Copy.html index 379c65ac..764519fe 100644 --- a/docs/structcutlass_1_1Copy.html +++ b/docs/structcutlass_1_1Copy.html @@ -257,7 +257,7 @@ template<typename InputFragment_ > diff --git a/docs/structcutlass_1_1DumpType.html b/docs/structcutlass_1_1DumpType.html index 1a89100e..4fade435 100644 --- a/docs/structcutlass_1_1DumpType.html +++ b/docs/structcutlass_1_1DumpType.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Extent-members.html b/docs/structcutlass_1_1Extent-members.html index 1d4b2899..8b46fd84 100644 --- a/docs/structcutlass_1_1Extent-members.html +++ b/docs/structcutlass_1_1Extent-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Extent.html b/docs/structcutlass_1_1Extent.html index 6ea17e37..641433c4 100644 --- a/docs/structcutlass_1_1Extent.html +++ b/docs/structcutlass_1_1Extent.html @@ -121,7 +121,7 @@ template<typename T > diff --git a/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01_4-members.html b/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01_4-members.html index 3a80e402..91cf5f27 100644 --- a/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01_4-members.html +++ b/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01_4-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html b/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html index 48cb9f01..ebf7077c 100644 --- a/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html +++ b/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html @@ -121,7 +121,7 @@ template<typename T , int Lanes> diff --git a/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4-members.html b/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4-members.html index 2d22e08c..daadf1fd 100644 --- a/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4-members.html +++ b/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html b/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html index ffb5903c..70ca903b 100644 --- a/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html +++ b/docs/structcutlass_1_1Extent_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html @@ -121,7 +121,7 @@ template<typename T , int Lanes> diff --git a/docs/structcutlass_1_1Fragment-members.html b/docs/structcutlass_1_1Fragment-members.html index 614cc97f..db730ff1 100644 --- a/docs/structcutlass_1_1Fragment-members.html +++ b/docs/structcutlass_1_1Fragment-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Fragment.html b/docs/structcutlass_1_1Fragment.html index 98573fcc..1953d6e8 100644 --- a/docs/structcutlass_1_1Fragment.html +++ b/docs/structcutlass_1_1Fragment.html @@ -299,7 +299,7 @@ template<typename Element_, int kElements_, size_t kAlignment_ = 16> diff --git a/docs/structcutlass_1_1FragmentConstIterator-members.html b/docs/structcutlass_1_1FragmentConstIterator-members.html index d92eb943..06859345 100644 --- a/docs/structcutlass_1_1FragmentConstIterator-members.html +++ b/docs/structcutlass_1_1FragmentConstIterator-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/structcutlass_1_1FragmentConstIterator.html b/docs/structcutlass_1_1FragmentConstIterator.html index 3b681722..b69a02f1 100644 --- a/docs/structcutlass_1_1FragmentConstIterator.html +++ b/docs/structcutlass_1_1FragmentConstIterator.html @@ -498,7 +498,7 @@ template<typename Fragment_ , typename Iterations_ , typename AccessType_ > diff --git a/docs/structcutlass_1_1FragmentElementType-members.html b/docs/structcutlass_1_1FragmentElementType-members.html index 44c05c23..5d2fba86 100644 --- a/docs/structcutlass_1_1FragmentElementType-members.html +++ b/docs/structcutlass_1_1FragmentElementType-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/structcutlass_1_1FragmentElementType.html b/docs/structcutlass_1_1FragmentElementType.html index ba546632..84d46ac5 100644 --- a/docs/structcutlass_1_1FragmentElementType.html +++ b/docs/structcutlass_1_1FragmentElementType.html @@ -117,7 +117,7 @@ Public Types diff --git a/docs/structcutlass_1_1FragmentIterator-members.html b/docs/structcutlass_1_1FragmentIterator-members.html index e2f03aa9..004644cb 100644 --- a/docs/structcutlass_1_1FragmentIterator-members.html +++ b/docs/structcutlass_1_1FragmentIterator-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/docs/structcutlass_1_1FragmentIterator.html b/docs/structcutlass_1_1FragmentIterator.html index 4c359093..015bfe23 100644 --- a/docs/structcutlass_1_1FragmentIterator.html +++ b/docs/structcutlass_1_1FragmentIterator.html @@ -554,7 +554,7 @@ template<typename Fragment_, typename Iterations_, typename AccessType_> < diff --git a/docs/structcutlass_1_1GemmOperand-members.html b/docs/structcutlass_1_1GemmOperand-members.html index 4086172c..8145a33c 100644 --- a/docs/structcutlass_1_1GemmOperand-members.html +++ b/docs/structcutlass_1_1GemmOperand-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/structcutlass_1_1GemmOperand.html b/docs/structcutlass_1_1GemmOperand.html index 54e028a2..8ee0b0b7 100644 --- a/docs/structcutlass_1_1GemmOperand.html +++ b/docs/structcutlass_1_1GemmOperand.html @@ -121,7 +121,7 @@ Public Types diff --git a/docs/structcutlass_1_1Identity-members.html b/docs/structcutlass_1_1Identity-members.html index 04e63064..7ab05fa3 100644 --- a/docs/structcutlass_1_1Identity-members.html +++ b/docs/structcutlass_1_1Identity-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Identity.html b/docs/structcutlass_1_1Identity.html index d4b8d627..08c44e11 100644 --- a/docs/structcutlass_1_1Identity.html +++ b/docs/structcutlass_1_1Identity.html @@ -118,7 +118,7 @@ Public Types diff --git a/docs/structcutlass_1_1IdentityTensorMapFunc-members.html b/docs/structcutlass_1_1IdentityTensorMapFunc-members.html index d0878596..7e8e9c4b 100644 --- a/docs/structcutlass_1_1IdentityTensorMapFunc-members.html +++ b/docs/structcutlass_1_1IdentityTensorMapFunc-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1IdentityTensorMapFunc.html b/docs/structcutlass_1_1IdentityTensorMapFunc.html index 9c350a38..0e9afd8e 100644 --- a/docs/structcutlass_1_1IdentityTensorMapFunc.html +++ b/docs/structcutlass_1_1IdentityTensorMapFunc.html @@ -158,7 +158,7 @@ template<int Rank> diff --git a/docs/structcutlass_1_1IteratorAdvance-members.html b/docs/structcutlass_1_1IteratorAdvance-members.html index b012bd91..5a690d60 100644 --- a/docs/structcutlass_1_1IteratorAdvance-members.html +++ b/docs/structcutlass_1_1IteratorAdvance-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/structcutlass_1_1IteratorAdvance.html b/docs/structcutlass_1_1IteratorAdvance.html index a4a49940..84ea400f 100644 --- a/docs/structcutlass_1_1IteratorAdvance.html +++ b/docs/structcutlass_1_1IteratorAdvance.html @@ -119,7 +119,7 @@ Public Types diff --git a/docs/structcutlass_1_1KernelLaunchConfiguration-members.html b/docs/structcutlass_1_1KernelLaunchConfiguration-members.html index f93f3de0..7389c4df 100644 --- a/docs/structcutlass_1_1KernelLaunchConfiguration-members.html +++ b/docs/structcutlass_1_1KernelLaunchConfiguration-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/structcutlass_1_1KernelLaunchConfiguration.html b/docs/structcutlass_1_1KernelLaunchConfiguration.html index 305f68ec..97866d5c 100644 --- a/docs/structcutlass_1_1KernelLaunchConfiguration.html +++ b/docs/structcutlass_1_1KernelLaunchConfiguration.html @@ -205,7 +205,7 @@ Public Attributes diff --git a/docs/structcutlass_1_1Load-members.html b/docs/structcutlass_1_1Load-members.html index 894aba6c..a64f28fe 100644 --- a/docs/structcutlass_1_1Load-members.html +++ b/docs/structcutlass_1_1Load-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Load.html b/docs/structcutlass_1_1Load.html index 856358b4..522e90b0 100644 --- a/docs/structcutlass_1_1Load.html +++ b/docs/structcutlass_1_1Load.html @@ -163,7 +163,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_, Fragm diff --git a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS1b28106546bd22002cd52e60197548ce.html b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS1b28106546bd22002cd52e60197548ce.html index 78072035..63247aca 100644 --- a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS1b28106546bd22002cd52e60197548ce.html +++ b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS1b28106546bd22002cd52e60197548ce.html @@ -163,7 +163,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_, int k diff --git a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS3de71ba9ef724a37fb1cf315da8bf9b5.html b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS3de71ba9ef724a37fb1cf315da8bf9b5.html index 11d00716..dea99411 100644 --- a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS3de71ba9ef724a37fb1cf315da8bf9b5.html +++ b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS3de71ba9ef724a37fb1cf315da8bf9b5.html @@ -163,7 +163,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_, int k diff --git a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS840de374cd1e3ee3a4aa6a70a9fa83d1.html b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS840de374cd1e3ee3a4aa6a70a9fa83d1.html index 37f16cdd..62fc8bc5 100644 --- a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS840de374cd1e3ee3a4aa6a70a9fa83d1.html +++ b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS840de374cd1e3ee3a4aa6a70a9fa83d1.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS91ff65dd36f118bca4542df6128d6d99.html b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS91ff65dd36f118bca4542df6128d6d99.html index ea576ee8..2fe2915e 100644 --- a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS91ff65dd36f118bca4542df6128d6d99.html +++ b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS91ff65dd36f118bca4542df6128d6d99.html @@ -163,7 +163,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_, int k diff --git a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS966cdf9ba449f056a92458bf87878053.html b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS966cdf9ba449f056a92458bf87878053.html index e147efbb..8175f80e 100644 --- a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS966cdf9ba449f056a92458bf87878053.html +++ b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kS966cdf9ba449f056a92458bf87878053.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSc8e65d97c8f615e98ac2e03f0bcd236e.html b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSc8e65d97c8f615e98ac2e03f0bcd236e.html index 89767956..3ffd767e 100644 --- a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSc8e65d97c8f615e98ac2e03f0bcd236e.html +++ b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSc8e65d97c8f615e98ac2e03f0bcd236e.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSf1f63874ddc1302ed9e60e0478e1a8ad.html b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSf1f63874ddc1302ed9e60e0478e1a8ad.html index b40fdf83..da838aae 100644 --- a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSf1f63874ddc1302ed9e60e0478e1a8ad.html +++ b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSf1f63874ddc1302ed9e60e0478e1a8ad.html @@ -166,7 +166,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_> diff --git a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSf2952bcb62d20c76c595eac4c59f7239.html b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSf2952bcb62d20c76c595eac4c59f7239.html index 4f69e6d5..4d9b0370 100644 --- a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSf2952bcb62d20c76c595eac4c59f7239.html +++ b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kSf2952bcb62d20c76c595eac4c59f7239.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kW847237836867f08e1121b00b7e44d8ae.html b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kW847237836867f08e1121b00b7e44d8ae.html index 9436b3d5..51c92c4c 100644 --- a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kW847237836867f08e1121b00b7e44d8ae.html +++ b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kW847237836867f08e1121b00b7e44d8ae.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kWe58d0048e24352beeec002fd483c53b2.html b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kWe58d0048e24352beeec002fd483c53b2.html index 9d5dad43..1499b5ee 100644 --- a/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kWe58d0048e24352beeec002fd483c53b2.html +++ b/docs/structcutlass_1_1Load_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kWe58d0048e24352beeec002fd483c53b2.html @@ -163,7 +163,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_, typen diff --git a/docs/structcutlass_1_1Load_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kAccessSize_00_01Memory___00_01Fr16ad55dd7bca84e6a7fc608c26eee889.html b/docs/structcutlass_1_1Load_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kAccessSize_00_01Memory___00_01Fr16ad55dd7bca84e6a7fc608c26eee889.html index 87656141..c43176c0 100644 --- a/docs/structcutlass_1_1Load_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kAccessSize_00_01Memory___00_01Fr16ad55dd7bca84e6a7fc608c26eee889.html +++ b/docs/structcutlass_1_1Load_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kAccessSize_00_01Memory___00_01Fr16ad55dd7bca84e6a7fc608c26eee889.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Load_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kAccessSize_00_01Memory___00_01Fra240d9c28383cd3945277ec3a927c538.html b/docs/structcutlass_1_1Load_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kAccessSize_00_01Memory___00_01Fra240d9c28383cd3945277ec3a927c538.html index e44efece..a17d857b 100644 --- a/docs/structcutlass_1_1Load_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kAccessSize_00_01Memory___00_01Fra240d9c28383cd3945277ec3a927c538.html +++ b/docs/structcutlass_1_1Load_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kAccessSize_00_01Memory___00_01Fra240d9c28383cd3945277ec3a927c538.html @@ -163,7 +163,7 @@ template<int kAccessSize, MemorySpace::Kind Memory_, typename FragmentElement diff --git a/docs/structcutlass_1_1Load_3_01Vector_3_01int4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fra03475418f27732d726d18feb23feeed2.html b/docs/structcutlass_1_1Load_3_01Vector_3_01int4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fra03475418f27732d726d18feb23feeed2.html index 4ddb71a6..be696406 100644 --- a/docs/structcutlass_1_1Load_3_01Vector_3_01int4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fra03475418f27732d726d18feb23feeed2.html +++ b/docs/structcutlass_1_1Load_3_01Vector_3_01int4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fra03475418f27732d726d18feb23feeed2.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Load_3_01Vector_3_01int4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fra934529165fa8fecdd392b5302d25ef26.html b/docs/structcutlass_1_1Load_3_01Vector_3_01int4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fra934529165fa8fecdd392b5302d25ef26.html index 6ff5e6ea..cd03f623 100644 --- a/docs/structcutlass_1_1Load_3_01Vector_3_01int4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fra934529165fa8fecdd392b5302d25ef26.html +++ b/docs/structcutlass_1_1Load_3_01Vector_3_01int4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fra934529165fa8fecdd392b5302d25ef26.html @@ -163,7 +163,7 @@ template<int kAccessSize, MemorySpace::Kind Memory_, typename FragmentElement diff --git a/docs/structcutlass_1_1Load_3_01Vector_3_01uint4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fr23088b868c6eeec9377c46892553686f.html b/docs/structcutlass_1_1Load_3_01Vector_3_01uint4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fr23088b868c6eeec9377c46892553686f.html index f6e7b108..2548ae26 100644 --- a/docs/structcutlass_1_1Load_3_01Vector_3_01uint4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fr23088b868c6eeec9377c46892553686f.html +++ b/docs/structcutlass_1_1Load_3_01Vector_3_01uint4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Fr23088b868c6eeec9377c46892553686f.html @@ -163,7 +163,7 @@ template<int kAccessSize, MemorySpace::Kind Memory_, typename FragmentElement diff --git a/docs/structcutlass_1_1Load_3_01Vector_3_01uint4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Frc8b0aa6ddd9b4317158c26574a6881de.html b/docs/structcutlass_1_1Load_3_01Vector_3_01uint4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Frc8b0aa6ddd9b4317158c26574a6881de.html index b5f9c24a..64429c2f 100644 --- a/docs/structcutlass_1_1Load_3_01Vector_3_01uint4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Frc8b0aa6ddd9b4317158c26574a6881de.html +++ b/docs/structcutlass_1_1Load_3_01Vector_3_01uint4__t_00_018_01_4_00_01kAccessSize_00_01Memory___00_01Frc8b0aa6ddd9b4317158c26574a6881de.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Load_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_01d9e675253ca19588f1ae4bd898579523f.html b/docs/structcutlass_1_1Load_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_01d9e675253ca19588f1ae4bd898579523f.html index c89be5a6..51de00e2 100644 --- a/docs/structcutlass_1_1Load_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_01d9e675253ca19588f1ae4bd898579523f.html +++ b/docs/structcutlass_1_1Load_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_01d9e675253ca19588f1ae4bd898579523f.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Load_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_01double_00_01kStride_00_0116_01_4.html b/docs/structcutlass_1_1Load_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_01double_00_01kStride_00_0116_01_4.html index 1e361ce5..7aa737ba 100644 --- a/docs/structcutlass_1_1Load_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_01double_00_01kStride_00_0116_01_4.html +++ b/docs/structcutlass_1_1Load_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_01double_00_01kStride_00_0116_01_4.html @@ -163,7 +163,7 @@ template<MemorySpace::Kind Memory_, int kStride> diff --git a/docs/structcutlass_1_1MatrixCoord-members.html b/docs/structcutlass_1_1MatrixCoord-members.html index c1e67390..67773dbf 100644 --- a/docs/structcutlass_1_1MatrixCoord-members.html +++ b/docs/structcutlass_1_1MatrixCoord-members.html @@ -132,7 +132,7 @@ $(function() { diff --git a/docs/structcutlass_1_1MatrixCoord.html b/docs/structcutlass_1_1MatrixCoord.html index ca323c47..9c4ce553 100644 --- a/docs/structcutlass_1_1MatrixCoord.html +++ b/docs/structcutlass_1_1MatrixCoord.html @@ -740,7 +740,7 @@ Additional Inherited Members diff --git a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajor-members.html b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajor-members.html index 99d2c3e3..fd8b35eb 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajor-members.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajor-members.html @@ -68,7 +68,7 @@ $(function() {
    @@ -84,7 +84,7 @@ $(function() {
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajor.html b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajor.html index 87d058e9..6605f81e 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajor.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajor.html @@ -68,7 +68,7 @@ $(function() {
    @@ -153,7 +153,7 @@ Static Public Attributes
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear-members.html b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear-members.html index 21c856dc..756169b2 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear-members.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear-members.html @@ -68,7 +68,7 @@ $(function() {
    @@ -87,7 +87,7 @@ $(function() {
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear.html b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear.html index d1d73872..278e3226 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorBlockLinear.html @@ -68,7 +68,7 @@ $(function() {
    @@ -249,7 +249,7 @@ template<int BlockRows, int BlockColumns>
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved-members.html b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved-members.html index 6282ce95..2bf48bcc 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved-members.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved-members.html @@ -68,7 +68,7 @@ $(function() {
    @@ -86,7 +86,7 @@ $(function() {
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved.html b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved.html index dfdb2a48..dda2e324 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1ColumnMajorInterleaved.html @@ -68,7 +68,7 @@ $(function() {
    @@ -222,7 +222,7 @@ template<int Interleave>
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1ContiguousLayout-members.html b/docs/structcutlass_1_1MatrixLayout_1_1ContiguousLayout-members.html index bd9e4cfe..908df2db 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1ContiguousLayout-members.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1ContiguousLayout-members.html @@ -68,7 +68,7 @@ $(function() {
    @@ -87,7 +87,7 @@ $(function() {
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html b/docs/structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html index b3718802..50078139 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1ContiguousLayout.html @@ -68,7 +68,7 @@ $(function() {
    @@ -91,7 +91,7 @@ Public Member Functions - +

    Static Public Member Functions

    static CUTLASS_HOST_DEVICE Coord< kStorageRankstride (MatrixLayout::Kind layout, int ldm)
    static CUTLASS_HOST_DEVICE Coord< kStorageRankstride (MatrixLayout::Kind layout, int ldm)
     Helper to construct a stride vector based on contiguous matrix layout and leading dimension. More...
     
    @@ -149,7 +149,7 @@ Static Public Attributes - + @@ -246,7 +246,7 @@ Static Public Attributes diff --git a/docs/structcutlass_1_1MatrixLayout_1_1RowMajor-members.html b/docs/structcutlass_1_1MatrixLayout_1_1RowMajor-members.html index c985ea4a..5e0a9f2c 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1RowMajor-members.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1RowMajor-members.html @@ -68,7 +68,7 @@ $(function() {
    @@ -84,7 +84,7 @@ $(function() {
    static CUTLASS_HOST_DEVICE Coord<kStorageRank> cutlass::MatrixLayout::ContiguousLayout::stride (MatrixLayout::Kind MatrixLayout::Kind  layout,
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1RowMajor.html b/docs/structcutlass_1_1MatrixLayout_1_1RowMajor.html index a264edfc..a6bc6e16 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1RowMajor.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1RowMajor.html @@ -68,7 +68,7 @@ $(function() {
    @@ -153,7 +153,7 @@ Static Public Attributes
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear-members.html b/docs/structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear-members.html index 390121d6..ea507123 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear-members.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear-members.html @@ -68,7 +68,7 @@ $(function() {
    @@ -87,7 +87,7 @@ $(function() {
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear.html b/docs/structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear.html index 9db6c0f7..731bc9e3 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1RowMajorBlockLinear.html @@ -68,7 +68,7 @@ $(function() {
    @@ -249,7 +249,7 @@ template<int BlockRows, int BlockColumns>
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved-members.html b/docs/structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved-members.html index 49463c33..8ae25a21 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved-members.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved-members.html @@ -68,7 +68,7 @@ $(function() {
    @@ -86,7 +86,7 @@ $(function() {
    diff --git a/docs/structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html b/docs/structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html index 1a596c6e..57de9ad8 100644 --- a/docs/structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html +++ b/docs/structcutlass_1_1MatrixLayout_1_1RowMajorInterleaved.html @@ -68,7 +68,7 @@ $(function() {
    @@ -222,7 +222,7 @@ template<int Interleave>
    diff --git a/docs/structcutlass_1_1MatrixTransform-members.html b/docs/structcutlass_1_1MatrixTransform-members.html index b662a473..d18993e1 100644 --- a/docs/structcutlass_1_1MatrixTransform-members.html +++ b/docs/structcutlass_1_1MatrixTransform-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/structcutlass_1_1MatrixTransform.html b/docs/structcutlass_1_1MatrixTransform.html index 32a41d68..bf99a446 100644 --- a/docs/structcutlass_1_1MatrixTransform.html +++ b/docs/structcutlass_1_1MatrixTransform.html @@ -118,7 +118,7 @@ Public Types diff --git a/docs/structcutlass_1_1Max-members.html b/docs/structcutlass_1_1Max-members.html index d35dbc07..7106deb6 100644 --- a/docs/structcutlass_1_1Max-members.html +++ b/docs/structcutlass_1_1Max-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Max.html b/docs/structcutlass_1_1Max.html index a100e616..22ddc13c 100644 --- a/docs/structcutlass_1_1Max.html +++ b/docs/structcutlass_1_1Max.html @@ -118,7 +118,7 @@ template<int A, int B> diff --git a/docs/structcutlass_1_1MemorySpace-members.html b/docs/structcutlass_1_1MemorySpace-members.html index a14b4d6f..8613413b 100644 --- a/docs/structcutlass_1_1MemorySpace-members.html +++ b/docs/structcutlass_1_1MemorySpace-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/structcutlass_1_1MemorySpace.html b/docs/structcutlass_1_1MemorySpace.html index 4d8eb1d7..35411ef0 100644 --- a/docs/structcutlass_1_1MemorySpace.html +++ b/docs/structcutlass_1_1MemorySpace.html @@ -119,7 +119,7 @@ Public Types diff --git a/docs/structcutlass_1_1Min-members.html b/docs/structcutlass_1_1Min-members.html index 39e0939a..4bc05ffa 100644 --- a/docs/structcutlass_1_1Min-members.html +++ b/docs/structcutlass_1_1Min-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Min.html b/docs/structcutlass_1_1Min.html index 47933e87..ef5942a7 100644 --- a/docs/structcutlass_1_1Min.html +++ b/docs/structcutlass_1_1Min.html @@ -118,7 +118,7 @@ template<int A, int B> diff --git a/docs/structcutlass_1_1PredicateTileAdapter-members.html b/docs/structcutlass_1_1PredicateTileAdapter-members.html index d035ab60..a947b37e 100644 --- a/docs/structcutlass_1_1PredicateTileAdapter-members.html +++ b/docs/structcutlass_1_1PredicateTileAdapter-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/structcutlass_1_1PredicateTileAdapter.html b/docs/structcutlass_1_1PredicateTileAdapter.html index db7b19a8..dc0307c2 100644 --- a/docs/structcutlass_1_1PredicateTileAdapter.html +++ b/docs/structcutlass_1_1PredicateTileAdapter.html @@ -282,7 +282,7 @@ template<typename PredicateVector_ , typename Iterations_ > diff --git a/docs/structcutlass_1_1PredicateVector-members.html b/docs/structcutlass_1_1PredicateVector-members.html index 26cf69c5..f68f6f10 100644 --- a/docs/structcutlass_1_1PredicateVector-members.html +++ b/docs/structcutlass_1_1PredicateVector-members.html @@ -100,7 +100,7 @@ $(function() { diff --git a/docs/structcutlass_1_1PredicateVector.html b/docs/structcutlass_1_1PredicateVector.html index 66be2023..612d567a 100644 --- a/docs/structcutlass_1_1PredicateVector.html +++ b/docs/structcutlass_1_1PredicateVector.html @@ -650,7 +650,7 @@ template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ diff --git a/docs/structcutlass_1_1PredicateVector_1_1TrivialIterator-members.html b/docs/structcutlass_1_1PredicateVector_1_1TrivialIterator-members.html index aa56770e..2d14b11e 100644 --- a/docs/structcutlass_1_1PredicateVector_1_1TrivialIterator-members.html +++ b/docs/structcutlass_1_1PredicateVector_1_1TrivialIterator-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/structcutlass_1_1PredicateVector_1_1TrivialIterator.html b/docs/structcutlass_1_1PredicateVector_1_1TrivialIterator.html index e4dd1015..837428c9 100644 --- a/docs/structcutlass_1_1PredicateVector_1_1TrivialIterator.html +++ b/docs/structcutlass_1_1PredicateVector_1_1TrivialIterator.html @@ -279,7 +279,7 @@ template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ diff --git a/docs/structcutlass_1_1PredicatedTileLoadStream-members.html b/docs/structcutlass_1_1PredicatedTileLoadStream-members.html index 338c0d3a..cef840ad 100644 --- a/docs/structcutlass_1_1PredicatedTileLoadStream-members.html +++ b/docs/structcutlass_1_1PredicatedTileLoadStream-members.html @@ -103,7 +103,7 @@ $(function() { diff --git a/docs/structcutlass_1_1PredicatedTileLoadStream.html b/docs/structcutlass_1_1PredicatedTileLoadStream.html index 6873775d..87bbc781 100644 --- a/docs/structcutlass_1_1PredicatedTileLoadStream.html +++ b/docs/structcutlass_1_1PredicatedTileLoadStream.html @@ -394,7 +394,7 @@ template<typename Iterator_ , typename PredicateFunctor_ = RegularTilePredic diff --git a/docs/structcutlass_1_1PredicatedTileStoreStream-members.html b/docs/structcutlass_1_1PredicatedTileStoreStream-members.html index 647f8fa7..48f6c21a 100644 --- a/docs/structcutlass_1_1PredicatedTileStoreStream-members.html +++ b/docs/structcutlass_1_1PredicatedTileStoreStream-members.html @@ -104,7 +104,7 @@ $(function() { diff --git a/docs/structcutlass_1_1PredicatedTileStoreStream.html b/docs/structcutlass_1_1PredicatedTileStoreStream.html index b2c31fd8..6c6513c8 100644 --- a/docs/structcutlass_1_1PredicatedTileStoreStream.html +++ b/docs/structcutlass_1_1PredicatedTileStoreStream.html @@ -458,7 +458,7 @@ template<typename Iterator_ , typename PredicateFunctor_ = RegularTilePredic diff --git a/docs/structcutlass_1_1RegularTilePredicateFunctor-members.html b/docs/structcutlass_1_1RegularTilePredicateFunctor-members.html index 327913ca..bed09bbc 100644 --- a/docs/structcutlass_1_1RegularTilePredicateFunctor-members.html +++ b/docs/structcutlass_1_1RegularTilePredicateFunctor-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/structcutlass_1_1RegularTilePredicateFunctor.html b/docs/structcutlass_1_1RegularTilePredicateFunctor.html index 2ea8c91f..bcbd07f3 100644 --- a/docs/structcutlass_1_1RegularTilePredicateFunctor.html +++ b/docs/structcutlass_1_1RegularTilePredicateFunctor.html @@ -215,7 +215,7 @@ template<typename Delta_ > diff --git a/docs/structcutlass_1_1ReshapeTile-members.html b/docs/structcutlass_1_1ReshapeTile-members.html index 29ee1fde..624ebb23 100644 --- a/docs/structcutlass_1_1ReshapeTile-members.html +++ b/docs/structcutlass_1_1ReshapeTile-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ReshapeTile.html b/docs/structcutlass_1_1ReshapeTile.html index 5c4a6c3b..302f8662 100644 --- a/docs/structcutlass_1_1ReshapeTile.html +++ b/docs/structcutlass_1_1ReshapeTile.html @@ -110,7 +110,7 @@ template<typename Tile_, int kAccessSize_, bool = (Tile_::kC < kAccessSiz diff --git a/docs/structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4-members.html b/docs/structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4-members.html index 579c1fd6..09691228 100644 --- a/docs/structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4-members.html +++ b/docs/structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4.html b/docs/structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4.html index 3d2b1724..b6f771b4 100644 --- a/docs/structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4.html +++ b/docs/structcutlass_1_1ReshapeTile_3_01Tile___00_01kAccessSize___00_01true_01_4.html @@ -110,7 +110,7 @@ template<typename Tile_ , int kAccessSize_> diff --git a/docs/structcutlass_1_1ScalarIO-members.html b/docs/structcutlass_1_1ScalarIO-members.html index 4828a33b..2ab4bbec 100644 --- a/docs/structcutlass_1_1ScalarIO-members.html +++ b/docs/structcutlass_1_1ScalarIO-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ScalarIO.html b/docs/structcutlass_1_1ScalarIO.html index cb186c39..83ddd38f 100644 --- a/docs/structcutlass_1_1ScalarIO.html +++ b/docs/structcutlass_1_1ScalarIO.html @@ -180,7 +180,7 @@ template<typename T > diff --git a/docs/structcutlass_1_1Shape-members.html b/docs/structcutlass_1_1Shape-members.html index ccbdefb6..10334eb4 100644 --- a/docs/structcutlass_1_1Shape-members.html +++ b/docs/structcutlass_1_1Shape-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Shape.html b/docs/structcutlass_1_1Shape.html index d6df8f9f..aebb441e 100644 --- a/docs/structcutlass_1_1Shape.html +++ b/docs/structcutlass_1_1Shape.html @@ -203,7 +203,7 @@ template<int kD_ = 1, int kH_ = 1, int kW_ = 1, int kC_ = 1> diff --git a/docs/structcutlass_1_1ShapeAdd-members.html b/docs/structcutlass_1_1ShapeAdd-members.html index 35d9ac77..8822045d 100644 --- a/docs/structcutlass_1_1ShapeAdd-members.html +++ b/docs/structcutlass_1_1ShapeAdd-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ShapeAdd.html b/docs/structcutlass_1_1ShapeAdd.html index eea44133..3d711a62 100644 --- a/docs/structcutlass_1_1ShapeAdd.html +++ b/docs/structcutlass_1_1ShapeAdd.html @@ -110,7 +110,7 @@ template<typename A_ , typename B_ > diff --git a/docs/structcutlass_1_1ShapeCount-members.html b/docs/structcutlass_1_1ShapeCount-members.html index 4daed24e..f4e537dc 100644 --- a/docs/structcutlass_1_1ShapeCount-members.html +++ b/docs/structcutlass_1_1ShapeCount-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ShapeCount.html b/docs/structcutlass_1_1ShapeCount.html index f0f16623..2cedfff8 100644 --- a/docs/structcutlass_1_1ShapeCount.html +++ b/docs/structcutlass_1_1ShapeCount.html @@ -257,7 +257,7 @@ template<typename Shape> diff --git a/docs/structcutlass_1_1ShapeDiv-members.html b/docs/structcutlass_1_1ShapeDiv-members.html index 7deb9592..bde5003e 100644 --- a/docs/structcutlass_1_1ShapeDiv-members.html +++ b/docs/structcutlass_1_1ShapeDiv-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ShapeDiv.html b/docs/structcutlass_1_1ShapeDiv.html index 7e6fa73e..43eb9f32 100644 --- a/docs/structcutlass_1_1ShapeDiv.html +++ b/docs/structcutlass_1_1ShapeDiv.html @@ -110,7 +110,7 @@ template<typename A_, typename B_> diff --git a/docs/structcutlass_1_1ShapeDivCeiling-members.html b/docs/structcutlass_1_1ShapeDivCeiling-members.html index e520eb28..beecedc6 100644 --- a/docs/structcutlass_1_1ShapeDivCeiling-members.html +++ b/docs/structcutlass_1_1ShapeDivCeiling-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ShapeDivCeiling.html b/docs/structcutlass_1_1ShapeDivCeiling.html index 84faee30..b6e03c91 100644 --- a/docs/structcutlass_1_1ShapeDivCeiling.html +++ b/docs/structcutlass_1_1ShapeDivCeiling.html @@ -110,7 +110,7 @@ template<typename A_ , typename B_ > diff --git a/docs/structcutlass_1_1ShapeMax-members.html b/docs/structcutlass_1_1ShapeMax-members.html index 09ddca9e..5ed9dc46 100644 --- a/docs/structcutlass_1_1ShapeMax-members.html +++ b/docs/structcutlass_1_1ShapeMax-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ShapeMax.html b/docs/structcutlass_1_1ShapeMax.html index 096a05a6..608590a2 100644 --- a/docs/structcutlass_1_1ShapeMax.html +++ b/docs/structcutlass_1_1ShapeMax.html @@ -110,7 +110,7 @@ template<typename A_ , typename B_ > diff --git a/docs/structcutlass_1_1ShapeMin-members.html b/docs/structcutlass_1_1ShapeMin-members.html index 44c12021..e3cb9fbb 100644 --- a/docs/structcutlass_1_1ShapeMin-members.html +++ b/docs/structcutlass_1_1ShapeMin-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ShapeMin.html b/docs/structcutlass_1_1ShapeMin.html index 3a1e8fb0..a2c9fd1e 100644 --- a/docs/structcutlass_1_1ShapeMin.html +++ b/docs/structcutlass_1_1ShapeMin.html @@ -110,7 +110,7 @@ template<typename A_ , typename B_ > diff --git a/docs/structcutlass_1_1ShapeMul-members.html b/docs/structcutlass_1_1ShapeMul-members.html index 70cb9897..dd171ce2 100644 --- a/docs/structcutlass_1_1ShapeMul-members.html +++ b/docs/structcutlass_1_1ShapeMul-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ShapeMul.html b/docs/structcutlass_1_1ShapeMul.html index 2a7aea61..f1ce3be2 100644 --- a/docs/structcutlass_1_1ShapeMul.html +++ b/docs/structcutlass_1_1ShapeMul.html @@ -110,7 +110,7 @@ template<typename A_, typename B_> diff --git a/docs/structcutlass_1_1ShapeScale-members.html b/docs/structcutlass_1_1ShapeScale-members.html index ef947250..40fda41b 100644 --- a/docs/structcutlass_1_1ShapeScale-members.html +++ b/docs/structcutlass_1_1ShapeScale-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ShapeScale.html b/docs/structcutlass_1_1ShapeScale.html index 6873a996..a9f1bef4 100644 --- a/docs/structcutlass_1_1ShapeScale.html +++ b/docs/structcutlass_1_1ShapeScale.html @@ -110,7 +110,7 @@ template<typename A_ , int kScale_> diff --git a/docs/structcutlass_1_1ShapeStrides-members.html b/docs/structcutlass_1_1ShapeStrides-members.html index 7ab09363..0fd14b6f 100644 --- a/docs/structcutlass_1_1ShapeStrides-members.html +++ b/docs/structcutlass_1_1ShapeStrides-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ShapeStrides.html b/docs/structcutlass_1_1ShapeStrides.html index 9d3882b4..98876c3d 100644 --- a/docs/structcutlass_1_1ShapeStrides.html +++ b/docs/structcutlass_1_1ShapeStrides.html @@ -110,7 +110,7 @@ template<typename Shape_, int elementsPerAccess> diff --git a/docs/structcutlass_1_1ShapeSub-members.html b/docs/structcutlass_1_1ShapeSub-members.html index d5b1f97f..d128fda7 100644 --- a/docs/structcutlass_1_1ShapeSub-members.html +++ b/docs/structcutlass_1_1ShapeSub-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ShapeSub.html b/docs/structcutlass_1_1ShapeSub.html index 8b5589b5..f0f3b563 100644 --- a/docs/structcutlass_1_1ShapeSub.html +++ b/docs/structcutlass_1_1ShapeSub.html @@ -110,7 +110,7 @@ template<typename A_ , typename B_ > diff --git a/docs/structcutlass_1_1StorageType-members.html b/docs/structcutlass_1_1StorageType-members.html index 8672a7be..6aa54373 100644 --- a/docs/structcutlass_1_1StorageType-members.html +++ b/docs/structcutlass_1_1StorageType-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1StorageType.html b/docs/structcutlass_1_1StorageType.html index 7b30d252..e6a962c3 100644 --- a/docs/structcutlass_1_1StorageType.html +++ b/docs/structcutlass_1_1StorageType.html @@ -110,7 +110,7 @@ template<int alignment> diff --git a/docs/structcutlass_1_1StorageType_3_011_01_4-members.html b/docs/structcutlass_1_1StorageType_3_011_01_4-members.html index 38398168..accb30ae 100644 --- a/docs/structcutlass_1_1StorageType_3_011_01_4-members.html +++ b/docs/structcutlass_1_1StorageType_3_011_01_4-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1StorageType_3_011_01_4.html b/docs/structcutlass_1_1StorageType_3_011_01_4.html index ecef1bc2..321790d7 100644 --- a/docs/structcutlass_1_1StorageType_3_011_01_4.html +++ b/docs/structcutlass_1_1StorageType_3_011_01_4.html @@ -108,7 +108,7 @@ Public Types diff --git a/docs/structcutlass_1_1StorageType_3_012_01_4-members.html b/docs/structcutlass_1_1StorageType_3_012_01_4-members.html index ae4e0451..2b3db2e9 100644 --- a/docs/structcutlass_1_1StorageType_3_012_01_4-members.html +++ b/docs/structcutlass_1_1StorageType_3_012_01_4-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1StorageType_3_012_01_4.html b/docs/structcutlass_1_1StorageType_3_012_01_4.html index 3c9d5b3d..c1e202f6 100644 --- a/docs/structcutlass_1_1StorageType_3_012_01_4.html +++ b/docs/structcutlass_1_1StorageType_3_012_01_4.html @@ -108,7 +108,7 @@ Public Types diff --git a/docs/structcutlass_1_1StorageType_3_014_01_4-members.html b/docs/structcutlass_1_1StorageType_3_014_01_4-members.html index 4a6a49f3..461e7a03 100644 --- a/docs/structcutlass_1_1StorageType_3_014_01_4-members.html +++ b/docs/structcutlass_1_1StorageType_3_014_01_4-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1StorageType_3_014_01_4.html b/docs/structcutlass_1_1StorageType_3_014_01_4.html index 3640ba5f..c0c8b3d5 100644 --- a/docs/structcutlass_1_1StorageType_3_014_01_4.html +++ b/docs/structcutlass_1_1StorageType_3_014_01_4.html @@ -108,7 +108,7 @@ Public Types diff --git a/docs/structcutlass_1_1Store-members.html b/docs/structcutlass_1_1Store-members.html index 90990727..6ba03165 100644 --- a/docs/structcutlass_1_1Store-members.html +++ b/docs/structcutlass_1_1Store-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Store.html b/docs/structcutlass_1_1Store.html index 893444c2..4718ac49 100644 --- a/docs/structcutlass_1_1Store.html +++ b/docs/structcutlass_1_1Store.html @@ -163,7 +163,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_, Fragm diff --git a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k004b304998a534d76357f834068909f8.html b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k004b304998a534d76357f834068909f8.html index 469365a9..f17bd3e4 100644 --- a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k004b304998a534d76357f834068909f8.html +++ b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k004b304998a534d76357f834068909f8.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k12f5c8a016a307e76de374322fc00a66.html b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k12f5c8a016a307e76de374322fc00a66.html index b9b3985d..410e1a78 100644 --- a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k12f5c8a016a307e76de374322fc00a66.html +++ b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k12f5c8a016a307e76de374322fc00a66.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k220d5790f803f10840e2a92fb9a51dac.html b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k220d5790f803f10840e2a92fb9a51dac.html index 14e68741..cd2316ae 100644 --- a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k220d5790f803f10840e2a92fb9a51dac.html +++ b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k220d5790f803f10840e2a92fb9a51dac.html @@ -163,7 +163,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_, int k diff --git a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k28cc0b88a16efca73d258128312d2a7e.html b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k28cc0b88a16efca73d258128312d2a7e.html index b5f8d29d..6cd63f90 100644 --- a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k28cc0b88a16efca73d258128312d2a7e.html +++ b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k28cc0b88a16efca73d258128312d2a7e.html @@ -163,7 +163,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_> diff --git a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k40d038d4bce377843c21a56ebf97d011.html b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k40d038d4bce377843c21a56ebf97d011.html index 2e3d7118..9616b07c 100644 --- a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k40d038d4bce377843c21a56ebf97d011.html +++ b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k40d038d4bce377843c21a56ebf97d011.html @@ -163,7 +163,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_, int k diff --git a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k60eedca420c41e94fd40b41299967ef2.html b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k60eedca420c41e94fd40b41299967ef2.html index 7b902f52..12f1c894 100644 --- a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k60eedca420c41e94fd40b41299967ef2.html +++ b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k60eedca420c41e94fd40b41299967ef2.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k775a1d27affec5236489735ed4503c92.html b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k775a1d27affec5236489735ed4503c92.html index 4d170558..26b0b4ab 100644 --- a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k775a1d27affec5236489735ed4503c92.html +++ b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k775a1d27affec5236489735ed4503c92.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k84da7dcd68ee74b8d2bdb67885b0ca56.html b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k84da7dcd68ee74b8d2bdb67885b0ca56.html index 1f1c686d..52d1da52 100644 --- a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k84da7dcd68ee74b8d2bdb67885b0ca56.html +++ b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1k84da7dcd68ee74b8d2bdb67885b0ca56.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kd9a7e85f80a21c504388612a60462417.html b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kd9a7e85f80a21c504388612a60462417.html index 41a456e7..5c0393ca 100644 --- a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kd9a7e85f80a21c504388612a60462417.html +++ b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1kd9a7e85f80a21c504388612a60462417.html @@ -163,7 +163,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_, typen diff --git a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1ke6d73d34fa7b5254cf828804a19842e1.html b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1ke6d73d34fa7b5254cf828804a19842e1.html index 46c9d9b4..126da5ef 100644 --- a/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1ke6d73d34fa7b5254cf828804a19842e1.html +++ b/docs/structcutlass_1_1Store_3_01Scalar___00_01kAccessSize_00_01Memory___00_01FragmentElementType_1_1ke6d73d34fa7b5254cf828804a19842e1.html @@ -163,7 +163,7 @@ template<typename Scalar_ , int kAccessSize, MemorySpace::Kind Memory_, int k diff --git a/docs/structcutlass_1_1Store_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_013d38935f41bf709e067932b9e042255a.html b/docs/structcutlass_1_1Store_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_013d38935f41bf709e067932b9e042255a.html index 70da9ff6..cc2d8003 100644 --- a/docs/structcutlass_1_1Store_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_013d38935f41bf709e067932b9e042255a.html +++ b/docs/structcutlass_1_1Store_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_013d38935f41bf709e067932b9e042255a.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Store_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_0160391c6be5cb1d3f99e012a6a18e486d.html b/docs/structcutlass_1_1Store_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_0160391c6be5cb1d3f99e012a6a18e486d.html index 2bbfac98..093f1ebd 100644 --- a/docs/structcutlass_1_1Store_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_0160391c6be5cb1d3f99e012a6a18e486d.html +++ b/docs/structcutlass_1_1Store_3_01double_00_012_00_01Memory___00_01FragmentElementType_1_1kScalar_00_0160391c6be5cb1d3f99e012a6a18e486d.html @@ -163,7 +163,7 @@ template<MemorySpace::Kind Memory_, int kStride> diff --git a/docs/structcutlass_1_1TensorRefArray-members.html b/docs/structcutlass_1_1TensorRefArray-members.html index 1a0ae6f7..edec7755 100644 --- a/docs/structcutlass_1_1TensorRefArray-members.html +++ b/docs/structcutlass_1_1TensorRefArray-members.html @@ -79,7 +79,7 @@ $(function() {

    This is the complete list of members for cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >, including all inherited members.

    - + @@ -87,13 +87,13 @@ $(function() { - - + +
    at(Index idx) constcutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    at(Index idx=0) constcutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    begin()cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    Index typedefcutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
    kStorageRankcutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >static
    pointerscutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
    Storage typedefcutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
    stridescutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
    TensorArrayRef()cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    TensorArrayRef(Storage **_pointers, Index _strides[kStorageRank - 1])cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    TensorRef typedefcutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
    TensorRefArray()cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    TensorRefArray(Storage **_pointers, Index _strides[kStorageRank - 1])cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    diff --git a/docs/structcutlass_1_1TensorRefArray.html b/docs/structcutlass_1_1TensorRefArray.html index 6aa5adbe..12e0e737 100644 --- a/docs/structcutlass_1_1TensorRefArray.html +++ b/docs/structcutlass_1_1TensorRefArray.html @@ -94,9 +94,6 @@ Classes - - - @@ -106,15 +103,18 @@ Public Types + + +

    Public Types

    typedef TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > TensorRef
     TensorRef type obtained from the TensorRefArray. More...
     
    typedef Storage_ Storage
     Element pointed to by the TensorRef. More...
     
    typedef LongIndex_ LongIndex
     Typically, strides in memory can be very large. More...
     
    typedef TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > TensorRef
     TensorRef type obtained from the TensorRefArray. More...
     
    - - - - - - + + + + + + @@ -130,7 +130,7 @@ Public Attributes

    Public Member Functions

    CUTLASS_HOST_DEVICE TensorArrayRef ()
     
    CUTLASS_HOST_DEVICE TensorArrayRef (Storage **_pointers, Index _strides[kStorageRank - 1])
     
    CUTLASS_HOST_DEVICE TensorRef at (Index idx) const
     
    CUTLASS_HOST_DEVICE TensorRefArray ()
     
    CUTLASS_HOST_DEVICE TensorRefArray (Storage **_pointers, Index _strides[kStorageRank - 1])
     
    CUTLASS_HOST_DEVICE TensorRef at (Index idx=0) const
     
    CUTLASS_HOST_DEVICE ConstIterator begin ()
     Returns an TesnorRefIterator over the TensorRef objects in this collection. More...
     
    - +

    Static Public Attributes

    static int const kStorageRank = TensorRef::kStorageRank
    static int const kStorageRank = StorageRank_
     Rank of the stride vector. More...
     
    @@ -204,11 +204,77 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa
    +
    + +

    Constructor & Destructor Documentation

    + +

    ◆ TensorRefArray() [1/2]

    + +
    +
    +
    +template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMapFunc<Rank_>, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long>
    + + + + + +
    + + + + + + + +
    CUTLASS_HOST_DEVICE cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::TensorRefArray ()
    +
    +inline
    +
    + +
    +
    + +

    ◆ TensorRefArray() [2/2]

    + +
    +
    +
    +template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMapFunc<Rank_>, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::TensorRefArray (Storage ** _pointers,
    Index _strides[kStorageRank - 1] 
    )
    +
    +inline
    +
    +

    Member Function Documentation

    - -

    ◆ at()

    + +

    ◆ at()

    @@ -222,7 +288,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa CUTLASS_HOST_DEVICE TensorRef cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::at ( Index  - idx) + idx = 0) const @@ -260,71 +326,6 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa
    -
    -
    - -

    ◆ TensorArrayRef() [1/2]

    - -
    -
    -
    -template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMapFunc<Rank_>, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long>
    - - - - - -
    - - - - - - - -
    CUTLASS_HOST_DEVICE cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::TensorArrayRef ()
    -
    -inline
    -
    - -
    -
    - -

    ◆ TensorArrayRef() [2/2]

    - -
    -
    -
    -template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMapFunc<Rank_>, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long>
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    CUTLASS_HOST_DEVICE cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::TensorArrayRef (Storage ** _pointers,
    Index _strides[kStorageRank - 1] 
    )
    -
    -inline
    -
    -

    Member Data Documentation

    @@ -340,7 +341,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa - +
    int const cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::kStorageRank = TensorRef::kStorageRankint const cutlass::TensorRefArray< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::kStorageRank = StorageRank_
    @@ -390,7 +391,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa diff --git a/docs/structcutlass_1_1TensorRefBatchStrided-members.html b/docs/structcutlass_1_1TensorRefBatchStrided-members.html index 0319ad82..3ea9509a 100644 --- a/docs/structcutlass_1_1TensorRefBatchStrided-members.html +++ b/docs/structcutlass_1_1TensorRefBatchStrided-members.html @@ -80,7 +80,7 @@ $(function() {

    This is the complete list of members for cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >, including all inherited members.

    - + @@ -92,7 +92,7 @@ $(function() { - + @@ -126,7 +126,7 @@ $(function() {
    add_pointer_offset(LongIndex delta)cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    at(Index idx) constcutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    at(Index idx=0) constcutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    cutlass::TensorRef::at(TensorCoord const &coord) constcutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    cutlass::TensorRef::at(LongIndex idx) constcutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    Base typedefcutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
    get_pointer_offset(Index idx) constcutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    good() constcutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    Index typedefcutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
    kRankcutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >static
    kRankcutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >static
    kStorageRankcutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >static
    leading_dim(int idx=0) constcutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >inline
    LongIndex typedefcutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
    diff --git a/docs/structcutlass_1_1TensorRefBatchStrided.html b/docs/structcutlass_1_1TensorRefBatchStrided.html index b1c96931..8c08aae7 100644 --- a/docs/structcutlass_1_1TensorRefBatchStrided.html +++ b/docs/structcutlass_1_1TensorRefBatchStrided.html @@ -77,6 +77,7 @@ $(function() { Public Types | Public Member Functions | Public Attributes | +Static Public Attributes | List of all members
    cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ > Struct Template Reference
    @@ -114,7 +115,7 @@ Public Types typedef LongIndex_ LongIndex  Typically, strides in memory can be very large. More...
      -typedef Coord< kRankTensorCoord +typedef Coord< kRankTensorCoord  Coordinate in logical tensor space. More...
      typedef Base TensorRef @@ -157,8 +158,8 @@ Public Member Functions CUTLASS_HOST_DEVICE LongIndex get_pointer_offset (Index idx) const  Gets the pointer offset. More...
      -CUTLASS_HOST_DEVICE TensorRef at (Index idx) const -  +CUTLASS_HOST_DEVICE TensorRef at (Index idx=0) const +  CUTLASS_HOST_DEVICE ConstIterator begin ()  Returns an iterator. More...
      @@ -241,8 +242,11 @@ Public Attributes  Stride between tensors. More...
      - + + + + @@ -333,7 +337,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMapFunc<Rank_>, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long>

    -Additional Inherited Members

    +Static Public Attributes

    static int const kRank = Rank_
     Rank of the logical tensor. More...
     
    - Static Public Attributes inherited from cutlass::TensorRef< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >
    static int const kRank = Rank_
     Logical rank of tensor index space. More...
    - +
    typedef Coord<kRank> cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::TensorCoordtypedef Coord<kRank> cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::TensorCoord
    @@ -423,8 +427,8 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa

    Member Function Documentation

    - -

    ◆ at()

    + +

    ◆ at()

    @@ -438,7 +442,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa CUTLASS_HOST_DEVICE TensorRef cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::at ( Index  - idx) + idx = 0) const @@ -507,6 +511,30 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa

    Member Data Documentation

    + +

    ◆ kRank

    + +
    +
    +
    +template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMapFunc<Rank_>, int StorageRank_ = MapFunc_::kStorageRank, typename Index_ = int, typename LongIndex_ = long long>
    + + + + + +
    + + + + +
    int const cutlass::TensorRefBatchStrided< Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ >::kRank = Rank_
    +
    +static
    +
    + +
    +

    ◆ tensor_stride

    @@ -529,7 +557,7 @@ template<typename Storage_ , int Rank_, typename MapFunc_ = IdentityTensorMa diff --git a/docs/structcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4_1_1StrideVector.html b/docs/structcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4_1_1StrideVector.html index 76d7a9ec..360f847f 100644 --- a/docs/structcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4_1_1StrideVector.html +++ b/docs/structcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4_1_1StrideVector.html @@ -89,7 +89,7 @@ struct cutlass::TensorRef< Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ & diff --git a/docs/structcutlass_1_1TileAllocation-members.html b/docs/structcutlass_1_1TileAllocation-members.html index 11af9697..faf2ebc9 100644 --- a/docs/structcutlass_1_1TileAllocation-members.html +++ b/docs/structcutlass_1_1TileAllocation-members.html @@ -80,20 +80,24 @@ $(function() {

    This is the complete list of members for cutlass::TileAllocation< Scalar_, Shape_ >, including all inherited members.

    - - - - - - - + + + + + + + - - + + + + + +
    ConstTensorRef typedefcutlass::TileAllocation< Scalar_, Shape_ >
    data()cutlass::TileAllocation< Scalar_, Shape_ >inline
    data() constcutlass::TileAllocation< Scalar_, Shape_ >inline
    reference()cutlass::TileAllocation< Scalar_, Shape_ >inline
    reference() constcutlass::TileAllocation< Scalar_, Shape_ >inline
    Scalar typedefcutlass::TileAllocation< Scalar_, Shape_ >
    Shape typedefcutlass::TileAllocation< Scalar_, Shape_ >
    Storage typedefcutlass::TileAllocation< Scalar_, Shape_ >
    ConstTensorView typedefcutlass::TileAllocation< Scalar_, Shape_ >
    data()cutlass::TileAllocation< Scalar_, Shape_ >inline
    data() constcutlass::TileAllocation< Scalar_, Shape_ >inline
    reference()cutlass::TileAllocation< Scalar_, Shape_ >inline
    reference() constcutlass::TileAllocation< Scalar_, Shape_ >inline
    Scalar typedefcutlass::TileAllocation< Scalar_, Shape_ >
    Shape typedefcutlass::TileAllocation< Scalar_, Shape_ >
    storagecutlass::TileAllocation< Scalar_, Shape_ >
    Strides typedefcutlass::TileAllocation< Scalar_, Shape_ >
    TensorRef typedefcutlass::TileAllocation< Scalar_, Shape_ >
    Storage typedefcutlass::TileAllocation< Scalar_, Shape_ >
    Strides typedefcutlass::TileAllocation< Scalar_, Shape_ >
    TensorRef typedefcutlass::TileAllocation< Scalar_, Shape_ >
    TensorView typedefcutlass::TileAllocation< Scalar_, Shape_ >
    view()cutlass::TileAllocation< Scalar_, Shape_ >inline
    view() constcutlass::TileAllocation< Scalar_, Shape_ >inline
    diff --git a/docs/structcutlass_1_1TileAllocation.html b/docs/structcutlass_1_1TileAllocation.html index 7f5ad2df..0e162633 100644 --- a/docs/structcutlass_1_1TileAllocation.html +++ b/docs/structcutlass_1_1TileAllocation.html @@ -107,6 +107,12 @@ Public Types typedef TensorRef< Scalar, 4 > TensorRef  Defines the tensor reference for this allocation. More...
      +typedef TensorView< Scalar const, 4 > ConstTensorView + View of memory. More...
    +  +typedef TensorView< Scalar, 4 > TensorView + View of memory. More...
    +  @@ -122,6 +128,12 @@ Public Member Functions + + + + + +

    Public Member Functions

    CUTLASS_DEVICE ConstTensorRef reference () const
     Returns a TensorRef object pointing to the data. More...
     
    CUTLASS_DEVICE TensorView view ()
     Returns a TensorView object pointing to the data. More...
     
    CUTLASS_DEVICE ConstTensorView view () const
     Returns a TensorView object pointing to the data. More...
     
    @@ -144,6 +156,22 @@ template<typename Scalar_ , typename Shape_ >

    Public Attributes

    +
    + + +

    ◆ ConstTensorView

    + +
    +
    +
    +template<typename Scalar_ , typename Shape_ >
    + + + + +
    typedef TensorView<Scalar const, 4> cutlass::TileAllocation< Scalar_, Shape_ >::ConstTensorView
    +
    +
    @@ -224,6 +252,22 @@ template<typename Scalar_ , typename Shape_ >
    +
    + + +

    ◆ TensorView

    + +
    +
    +
    +template<typename Scalar_ , typename Shape_ >
    + + + + +
    typedef TensorView<Scalar, 4> cutlass::TileAllocation< Scalar_, Shape_ >::TensorView
    +
    +

    Member Function Documentation

    @@ -333,6 +377,60 @@ template<typename Scalar_ , typename Shape_ >
    +
    + + +

    ◆ view() [1/2]

    + +
    +
    +
    +template<typename Scalar_ , typename Shape_ >
    + + + + + +
    + + + + + + + +
    CUTLASS_DEVICE TensorView cutlass::TileAllocation< Scalar_, Shape_ >::view ()
    +
    +inline
    +
    + +
    +
    + +

    ◆ view() [2/2]

    + +
    +
    +
    +template<typename Scalar_ , typename Shape_ >
    + + + + + +
    + + + + + + + +
    CUTLASS_DEVICE ConstTensorView cutlass::TileAllocation< Scalar_, Shape_ >::view () const
    +
    +inline
    +
    +

    Member Data Documentation

    @@ -358,7 +456,7 @@ template<typename Scalar_ , typename Shape_ > diff --git a/docs/structcutlass_1_1TileCoord-members.html b/docs/structcutlass_1_1TileCoord-members.html index 73a3fef5..7bbc782d 100644 --- a/docs/structcutlass_1_1TileCoord-members.html +++ b/docs/structcutlass_1_1TileCoord-members.html @@ -143,7 +143,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TileCoord.html b/docs/structcutlass_1_1TileCoord.html index e0684be4..fba17461 100644 --- a/docs/structcutlass_1_1TileCoord.html +++ b/docs/structcutlass_1_1TileCoord.html @@ -1119,7 +1119,7 @@ template<typename Index_ = int> diff --git a/docs/structcutlass_1_1TileIteratorBase-members.html b/docs/structcutlass_1_1TileIteratorBase-members.html index ce46e77f..6ff6d358 100644 --- a/docs/structcutlass_1_1TileIteratorBase-members.html +++ b/docs/structcutlass_1_1TileIteratorBase-members.html @@ -95,18 +95,19 @@ $(function() { kFragmentElementTypecutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >static kFragmentSizecutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >static kMemorySpacecutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >static - PredicateVector typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > - Scalar typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > - Skew typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > - Storage typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > - ThreadOffset typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > - Tile typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > - Traits typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > - valid(int d, int h, int w, int c) constcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline + LongIndex typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > + PredicateVector typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > + Scalar typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > + Skew typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > + Storage typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > + ThreadOffset typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > + Tile typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > + Traits typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ > + valid(int d, int h, int w, int c) constcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline diff --git a/docs/structcutlass_1_1TileIteratorBase.html b/docs/structcutlass_1_1TileIteratorBase.html index b0191520..a7d87048 100644 --- a/docs/structcutlass_1_1TileIteratorBase.html +++ b/docs/structcutlass_1_1TileIteratorBase.html @@ -119,6 +119,9 @@ Public Types typedef Index_ Index  Index type. More...
      +typedef long long LongIndex + Long index. More...
    +  typedef Skew_ Skew  Skew quantity. More...
      @@ -349,6 +352,22 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =
    +
    + + +

    ◆ LongIndex

    + +
    +
    +
    +template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, FragmentElementType::Kind FragmentElementType_ = FragmentElementType::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
    + + + + +
    typedef long long cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::LongIndex
    +
    +
    @@ -687,7 +706,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = diff --git a/docs/structcutlass_1_1TileIteratorBase_1_1Params-members.html b/docs/structcutlass_1_1TileIteratorBase_1_1Params-members.html index c3855bd1..609708ef 100644 --- a/docs/structcutlass_1_1TileIteratorBase_1_1Params-members.html +++ b/docs/structcutlass_1_1TileIteratorBase_1_1Params-members.html @@ -79,24 +79,24 @@ $(function() {

    This is the complete list of members for cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params, including all inherited members.

    - - + + - + - + - + - +
    inc_advancecutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_advancecutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_hcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_wcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    initialize(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Coord< 4 > const &stride)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(long long _stride_d, Index _stride_h, Index _stride_w)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Index _stride_d, Index _stride_h, Index _stride_w)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize()cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params()cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Coord< 4 > const &stride)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    stride_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_hcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_wcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    diff --git a/docs/structcutlass_1_1TileIteratorBase_1_1Params.html b/docs/structcutlass_1_1TileIteratorBase_1_1Params.html index 19a16384..5d22d0f2 100644 --- a/docs/structcutlass_1_1TileIteratorBase_1_1Params.html +++ b/docs/structcutlass_1_1TileIteratorBase_1_1Params.html @@ -102,41 +102,41 @@ Public Member Functions CUTLASS_HOST_DEVICE Params ()  Constructs params. More...
      -CUTLASS_HOST_DEVICE Params (long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance) - Constructs params. More...
    -  +CUTLASS_HOST_DEVICE Params (Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) + Constructs params. More...
    CUTLASS_HOST_DEVICE Params (Coord< 4 > const &stride)  Constructs params with a stride vector. More...
      -CUTLASS_HOST_DEVICE int initialize (long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance) - Initializes params. More...
    -  +CUTLASS_HOST_DEVICE int initialize (Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) + Initializes params. More...
    CUTLASS_HOST_DEVICE int initialize (Coord< 4 > const &stride)  Initializes the parameters object from a vector of strides. More...
      -CUTLASS_HOST_DEVICE int initialize (long long _stride_d, Index _stride_h, Index _stride_w) - Initializes the parameters object from a vector of strides. More...
    -  +CUTLASS_HOST_DEVICE int initialize (Index _stride_d, Index _stride_h, Index _stride_w) + Initializes the parameters object from a vector of strides. More...
    CUTLASS_HOST_DEVICE int initialize ()  Gotta have this. More...
      - - + + - - + + - - + +

    Public Attributes

    long long stride_d
     
    Index stride_d
     
    Index stride_h
     
    Index stride_w
     
    long long inc_d
     
    Index inc_d
     
    Index inc_h
     
    Index inc_w
     
    long long inc_advance
     
    Index inc_advance
     

    Constructor & Destructor Documentation

    @@ -166,8 +166,8 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - -

    ◆ Params() [2/3]

    + +

    ◆ Params() [2/3]

    @@ -180,7 +180,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = CUTLASS_HOST_DEVICE cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params::Params ( - long long  + Index  _stride_d, @@ -198,7 +198,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - long long  + Index  _inc_d, @@ -216,7 +216,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - long long  + Index  _inc_advance  @@ -263,8 +263,8 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =

    Member Function Documentation

    - -

    ◆ initialize() [1/4]

    + +

    ◆ initialize() [1/4]

    @@ -277,7 +277,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = CUTLASS_HOST_DEVICE int cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params::initialize ( - long long  + Index  _stride_d, @@ -295,7 +295,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - long long  + Index  _inc_d, @@ -313,7 +313,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - long long  + Index  _inc_advance  @@ -359,8 +359,8 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =
    - -

    ◆ initialize() [3/4]

    + +

    ◆ initialize() [3/4]

    @@ -373,7 +373,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = CUTLASS_HOST_DEVICE int cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params::initialize ( - long long  + Index  _stride_d, @@ -431,8 +431,8 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =

    Member Data Documentation

    - -

    ◆ inc_advance

    + +

    ◆ inc_advance

    @@ -440,15 +440,15 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, FragmentElementType::Kind FragmentElementType_ = FragmentElementType::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
    - +
    long long cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params::inc_advanceIndex cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params::inc_advance
    - -

    ◆ inc_d

    + +

    ◆ inc_d

    @@ -456,7 +456,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, FragmentElementType::Kind FragmentElementType_ = FragmentElementType::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
    - +
    long long cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params::inc_dIndex cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params::inc_d
    @@ -495,8 +495,8 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =
    - -

    ◆ stride_d

    + +

    ◆ stride_d

    @@ -504,7 +504,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, FragmentElementType::Kind FragmentElementType_ = FragmentElementType::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
    - +
    long long cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params::stride_dIndex cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params::stride_d
    @@ -549,7 +549,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =
    diff --git a/docs/structcutlass_1_1TileLoadIterator-members.html b/docs/structcutlass_1_1TileLoadIterator-members.html index 7d9755f9..98796986 100644 --- a/docs/structcutlass_1_1TileLoadIterator-members.html +++ b/docs/structcutlass_1_1TileLoadIterator-members.html @@ -80,7 +80,7 @@ $(function() {

    This is the complete list of members for cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >, including all inherited members.

    - + @@ -111,29 +111,30 @@ $(function() { - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +
    AccessType typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    add_pointer_offset(Index offset)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    add_pointer_offset(LongIndex offset)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    Base typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    BaseParams typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Delta typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    load_element(AccessType &value, int d, int h, int w, int c) constcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    load_post_increment(Fragment &fragment, PredicateIterator pred_it)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    load_post_increment(Fragment &fragment)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    operator+=(Coord< 3 > const &offset)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    paramscutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Pointer typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    PredicateVector typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Scalar typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    SharedStorage typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Skew typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    stagecutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Storage typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    stride_advance(void)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TensorRef typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    thread_offsetcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    ThreadOffset typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Tile typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    TileLoadIterator()cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TileLoadIterator(Params const &_params, Coord< 3 > const &block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset())cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TileLoadIterator(Params const &, Scalar const *ptr, Coord< 3 > const &block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset())cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    Traits typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    valid(int d, int h, int w, int c) constcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    LongIndex typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    operator+=(Coord< 3 > const &offset)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    paramscutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Pointer typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    PredicateVector typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Scalar typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    SharedStorage typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Skew typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    stagecutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Storage typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    stride_advance(void)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TensorRef typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    thread_offsetcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    ThreadOffset typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Tile typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    TileLoadIterator()cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TileLoadIterator(Params const &_params, Coord< 3 > const &block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset())cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TileLoadIterator(Params const &, Scalar const *ptr, Coord< 3 > const &block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset())cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    Traits typedefcutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    valid(int d, int h, int w, int c) constcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    diff --git a/docs/structcutlass_1_1TileLoadIterator.html b/docs/structcutlass_1_1TileLoadIterator.html index f9e5ad7e..cc665115 100644 --- a/docs/structcutlass_1_1TileLoadIterator.html +++ b/docs/structcutlass_1_1TileLoadIterator.html @@ -125,6 +125,9 @@ Public Types typedef Base::Index Index  Index type. More...
      +typedef Base::LongIndex LongIndex + Index type. More...
    +  typedef Base::Skew Skew  Skew quantity. More...
      @@ -183,6 +186,9 @@ Public Types typedef Index_ Index  Index type. More...
      +typedef long long LongIndex + Long index. More...
    +  typedef Skew_ Skew  Skew quantity. More...
      @@ -263,9 +269,9 @@ Public Member Functions CUTLASS_HOST_DEVICE TileLoadIteratoroperator+= (Coord< 3 > const &offset)  Adds a vector offset to the iterator. More...
      -CUTLASS_HOST_DEVICE void add_pointer_offset (Index offset) - Adds a raw offset to the pointer. More...
    -  +CUTLASS_HOST_DEVICE void add_pointer_offset (LongIndex offset) + Adds a raw offset to the pointer. More...
    CUTLASS_HOST_DEVICE Index stride_advance (void)   template<typename Fragment , typename PredicateIterator > @@ -519,6 +525,22 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =
    +
    + + +

    ◆ LongIndex

    + +
    +
    +
    +template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, FragmentElementType::Kind FragmentElementType_ = FragmentElementType::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
    + + + + +
    typedef Base::LongIndex cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::LongIndex
    +
    +
    @@ -808,8 +830,8 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =

    Member Function Documentation

    - -

    ◆ add_pointer_offset()

    + +

    ◆ add_pointer_offset()

    @@ -822,7 +844,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = CUTLASS_HOST_DEVICE void cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::add_pointer_offset ( - Index  + LongIndex  offset) @@ -1506,7 +1528,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =
    diff --git a/docs/structcutlass_1_1TileLoadIterator_1_1Params-members.html b/docs/structcutlass_1_1TileLoadIterator_1_1Params-members.html index 25b1fdad..ac2be8d1 100644 --- a/docs/structcutlass_1_1TileLoadIterator_1_1Params-members.html +++ b/docs/structcutlass_1_1TileLoadIterator_1_1Params-members.html @@ -79,34 +79,34 @@ $(function() {

    This is the complete list of members for cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params, including all inherited members.

    - - + + - - + + - + - + - - - + + + - +
    inc_advancecutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_advancecutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_hcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_wcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    initialize(TensorRef const &ref)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(SharedStorage const &storage)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Scalar const *ptr)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize()cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(Coord< 4 > const &stride)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(long long _stride_d, Index _stride_h, Index _stride_w)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(Index _stride_d, Index _stride_h, Index _stride_w)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params()cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar const *ptr)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(TensorRef const &ref)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::Params(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::Params(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::Params(Coord< 4 > const &stride)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    pointercutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_hcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_wcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    diff --git a/docs/structcutlass_1_1TileLoadIterator_1_1Params.html b/docs/structcutlass_1_1TileLoadIterator_1_1Params.html index 70ae9afb..03d4a999 100644 --- a/docs/structcutlass_1_1TileLoadIterator_1_1Params.html +++ b/docs/structcutlass_1_1TileLoadIterator_1_1Params.html @@ -107,12 +107,12 @@ Public Member Functions CUTLASS_HOST_DEVICE Params (TensorRef const &ref)  Constructs with a CompactTensorRef<> More...
      -CUTLASS_HOST_DEVICE Params (Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) - Initialize params to access storage object. More...
    -  -CUTLASS_HOST_DEVICE Params (Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w) - Initialize params to access storage object. More...
    -  +CUTLASS_HOST_DEVICE Params (Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) + Initialize params to access storage object. More...
    +  +CUTLASS_HOST_DEVICE Params (Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w) + Initialize params to access storage object. More...
    CUTLASS_HOST_DEVICE int initialize (TensorRef const &ref)  Initializes params to access a raw pointer. More...
      @@ -122,33 +122,33 @@ Public Member Functions CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr)  Initialize params to access storage object. More...
      -CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w) - Initializes params to access a raw pointer. More...
    -  -CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) - Initializes params. More...
    -  +CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w) + Initializes params to access a raw pointer. More...
    +  +CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) + Initializes params. More...
    CUTLASS_HOST_DEVICE int initialize ()   - Public Member Functions inherited from cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params CUTLASS_HOST_DEVICE Params ()  Constructs params. More...
      -CUTLASS_HOST_DEVICE Params (long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance) - Constructs params. More...
    -  +CUTLASS_HOST_DEVICE Params (Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) + Constructs params. More...
    CUTLASS_HOST_DEVICE Params (Coord< 4 > const &stride)  Constructs params with a stride vector. More...
      -CUTLASS_HOST_DEVICE int initialize (long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance) - Initializes params. More...
    -  +CUTLASS_HOST_DEVICE int initialize (Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) + Initializes params. More...
    CUTLASS_HOST_DEVICE int initialize (Coord< 4 > const &stride)  Initializes the parameters object from a vector of strides. More...
      -CUTLASS_HOST_DEVICE int initialize (long long _stride_d, Index _stride_h, Index _stride_w) - Initializes the parameters object from a vector of strides. More...
    -  +CUTLASS_HOST_DEVICE int initialize (Index _stride_d, Index _stride_h, Index _stride_w) + Initializes the parameters object from a vector of strides. More...
    CUTLASS_HOST_DEVICE int initialize ()  Gotta have this. More...
      @@ -159,20 +159,20 @@ Public Attributes  Pointer to memory. More...
      - Public Attributes inherited from cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params -long long stride_d -  +Index stride_dIndex stride_h   Index stride_w   -long long inc_d -  +Index inc_dIndex inc_h   Index inc_w   -long long inc_advance -  +Index inc_advance

    Constructor & Destructor Documentation

    @@ -258,8 +258,8 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - -

    ◆ Params() [4/5]

    + +

    ◆ Params() [4/5]

    @@ -278,7 +278,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - long long  + Index  _stride_d, @@ -296,7 +296,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - long long  + Index  _inc_d, @@ -332,8 +332,8 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =
    - -

    ◆ Params() [5/5]

    + +

    ◆ Params() [5/5]

    @@ -352,7 +352,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - long long  + Index  stride_d, @@ -467,8 +467,8 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =
    - -

    ◆ initialize() [4/6]

    + +

    ◆ initialize() [4/6]

    @@ -487,7 +487,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - long long  + Index  stride_d, @@ -517,8 +517,8 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =
    - -

    ◆ initialize() [5/6]

    + +

    ◆ initialize() [5/6]

    @@ -537,7 +537,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - long long  + Index  _stride_d, @@ -555,7 +555,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ = - long long  + Index  _inc_d, @@ -641,7 +641,7 @@ template<typename Traits_, typename Scalar_, IteratorAdvance::Kind Advance_ =
    diff --git a/docs/structcutlass_1_1TileLoadStream-members.html b/docs/structcutlass_1_1TileLoadStream-members.html index 463ff214..0e136e2b 100644 --- a/docs/structcutlass_1_1TileLoadStream-members.html +++ b/docs/structcutlass_1_1TileLoadStream-members.html @@ -98,7 +98,7 @@ $(function() {
    diff --git a/docs/structcutlass_1_1TileLoadStream.html b/docs/structcutlass_1_1TileLoadStream.html index ca065a3d..a0edc80d 100644 --- a/docs/structcutlass_1_1TileLoadStream.html +++ b/docs/structcutlass_1_1TileLoadStream.html @@ -517,7 +517,7 @@ template<typename Iterator_ , typename Transformer_ = Copy<typename Itera diff --git a/docs/structcutlass_1_1TileLoadStream_1_1Params-members.html b/docs/structcutlass_1_1TileLoadStream_1_1Params-members.html index bafa4e14..7d3d8467 100644 --- a/docs/structcutlass_1_1TileLoadStream_1_1Params-members.html +++ b/docs/structcutlass_1_1TileLoadStream_1_1Params-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TileLoadStream_1_1Params.html b/docs/structcutlass_1_1TileLoadStream_1_1Params.html index 34eec4d3..c4d5b65a 100644 --- a/docs/structcutlass_1_1TileLoadStream_1_1Params.html +++ b/docs/structcutlass_1_1TileLoadStream_1_1Params.html @@ -180,7 +180,7 @@ template<typename Iterator_ , typename Transformer_ = Copy<typename Itera diff --git a/docs/structcutlass_1_1TileLoadStream_1_1PredicateVector.html b/docs/structcutlass_1_1TileLoadStream_1_1PredicateVector.html index 2ff76de1..da164ab1 100644 --- a/docs/structcutlass_1_1TileLoadStream_1_1PredicateVector.html +++ b/docs/structcutlass_1_1TileLoadStream_1_1PredicateVector.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TileStoreIterator-members.html b/docs/structcutlass_1_1TileStoreIterator-members.html index 9499cf97..77357204 100644 --- a/docs/structcutlass_1_1TileStoreIterator-members.html +++ b/docs/structcutlass_1_1TileStoreIterator-members.html @@ -80,7 +80,7 @@ $(function() {

    This is the complete list of members for cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >, including all inherited members.

    - + @@ -110,33 +110,34 @@ $(function() { - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +
    AccessType typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    add_pointer_offset(Index offset)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    add_pointer_offset(LongIndex offset)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    Base typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    BaseParams typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Delta typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    load_element(AccessType &value, int d, int h, int w, int c) constcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    load_post_increment(Fragment &fragment, PredicateIterator pred_it)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    load_post_increment(Fragment &fragment)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    operator+=(Coord< 3 > const &offset)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    paramscutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Pointer typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    PredicateVector typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Scalar typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    SharedStorage typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Skew typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    stagecutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Storage typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    store(Fragment const &fragment, PredicateIterator pred_it) constcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    store(Fragment const &fragment) constcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    store_element(AccessType const &value, int d, int h, int w, int c)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    store_post_increment(Fragment const &fragment, PredicateIterator pred_it)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    store_post_increment(Fragment const &fragment)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TensorRef typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    thread_offsetcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    ThreadOffset typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Tile typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    TileStoreIterator()cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TileStoreIterator(Params const &_params, Coord< 3 > const &block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset())cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TileStoreIterator(Params const &, Scalar *ptr, ThreadOffset thread_offset_func=ThreadOffset())cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    Traits typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    valid(int d, int h, int w, int c) constcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    LongIndex typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    operator+=(Coord< 3 > const &offset)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    paramscutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Pointer typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    PredicateVector typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Scalar typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    SharedStorage typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Skew typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    stagecutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Storage typedefcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    store(Fragment const &fragment, PredicateIterator pred_it) constcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    store(Fragment const &fragment) constcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    store_element(AccessType const &value, int d, int h, int w, int c)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    store_post_increment(Fragment const &fragment, PredicateIterator pred_it)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    store_post_increment(Fragment const &fragment)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TensorRef typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    thread_offsetcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    ThreadOffset typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    Tile typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    TileStoreIterator()cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TileStoreIterator(Params const &_params, Coord< 3 > const &block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset())cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    TileStoreIterator(Params const &, Scalar *ptr, ThreadOffset thread_offset_func=ThreadOffset())cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    Traits typedefcutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >
    valid(int d, int h, int w, int c) constcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >inline
    diff --git a/docs/structcutlass_1_1TileStoreIterator.html b/docs/structcutlass_1_1TileStoreIterator.html index e1b7f0bd..4e651e4b 100644 --- a/docs/structcutlass_1_1TileStoreIterator.html +++ b/docs/structcutlass_1_1TileStoreIterator.html @@ -121,6 +121,9 @@ Public Types typedef Base::Index Index  Index type. More...
      +typedef Base::LongIndex LongIndex + Long index type. More...
    +  typedef Base::Skew Skew  Skew quantity. More...
      @@ -179,6 +182,9 @@ Public Types typedef Index_ Index  Index type. More...
      +typedef long long LongIndex + Long index. More...
    +  typedef Skew_ Skew  Skew quantity. More...
      @@ -256,9 +262,9 @@ Public Member Functions CUTLASS_HOST_DEVICE TileStoreIteratoroperator+= (Coord< 3 > const &offset)  Adds a vector offset to the iterator. More...
      -CUTLASS_HOST_DEVICE void add_pointer_offset (Index offset) - Adds a raw offset to the pointer. More...
    -  +CUTLASS_HOST_DEVICE void add_pointer_offset (LongIndex offset) + Adds a raw offset to the pointer. More...
    CUTLASS_HOST_DEVICE void store_element (AccessType const &value, int d, int h, int w, int c)  Stores a single fragment element into memory. More...
      @@ -532,6 +538,22 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_
    +
    + + +

    ◆ LongIndex

    + +
    +
    +
    +template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, FragmentElementType::Kind FragmentElementType_ = FragmentElementType::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
    + + + + +
    typedef Base::LongIndex cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::LongIndex
    +
    +
    @@ -795,8 +817,8 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_

    Member Function Documentation

    - -

    ◆ add_pointer_offset()

    + +

    ◆ add_pointer_offset()

    @@ -809,7 +831,7 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ CUTLASS_HOST_DEVICE void cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::add_pointer_offset ( - Index  + LongIndex  offset) @@ -1661,7 +1683,7 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_
    diff --git a/docs/structcutlass_1_1TileStoreIterator_1_1Params-members.html b/docs/structcutlass_1_1TileStoreIterator_1_1Params-members.html index 9a12c482..d044b80d 100644 --- a/docs/structcutlass_1_1TileStoreIterator_1_1Params-members.html +++ b/docs/structcutlass_1_1TileStoreIterator_1_1Params-members.html @@ -79,33 +79,33 @@ $(function() {

    This is the complete list of members for cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params, including all inherited members.

    - - + + - - + + - + - + - - + + - +
    inc_advancecutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_advancecutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_hcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_wcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    initialize(SharedStorage &storage)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Scalar *ptr)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Scalar *ptr, long long stride_d, Index stride_h, Index stride_w)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Scalar *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Scalar *ptr, Index stride_d, Index stride_h, Index stride_w)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize(Scalar *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    initialize()cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(Coord< 4 > const &stride)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(long long _stride_d, Index _stride_h, Index _stride_w)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(Index _stride_d, Index _stride_h, Index _stride_w)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params()cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar *ptr)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(TensorRef const &ref)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar *ptr, long long stride_d, Index stride_h, Index stride_w)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::Params(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::Params(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::Params(Coord< 4 > const &stride)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    pointercutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_hcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_wcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    diff --git a/docs/structcutlass_1_1TileStoreIterator_1_1Params.html b/docs/structcutlass_1_1TileStoreIterator_1_1Params.html index 909a87cc..b0dcfc7b 100644 --- a/docs/structcutlass_1_1TileStoreIterator_1_1Params.html +++ b/docs/structcutlass_1_1TileStoreIterator_1_1Params.html @@ -104,22 +104,22 @@ Public Member Functions CUTLASS_HOST_DEVICE Params (TensorRef const &ref)  Constructs with a CompactTensorRef<> More...
      -CUTLASS_HOST_DEVICE Params (Scalar *ptr, long long stride_d, Index stride_h, Index stride_w) +CUTLASS_HOST_DEVICE Params (Scalar *ptr, long long stride_d, Index stride_h, Index stride_w)   -CUTLASS_HOST_DEVICE Params (Scalar *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) -  +CUTLASS_HOST_DEVICE Params (Scalar *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) +  CUTLASS_HOST_DEVICE int initialize (SharedStorage &storage)  Initialize params to access storage object. More...
      CUTLASS_HOST_DEVICE int initialize (Scalar *ptr)  Initialize params to access storage object. More...
      -CUTLASS_HOST_DEVICE int initialize (Scalar *ptr, long long stride_d, Index stride_h, Index stride_w) - Initializes params to access a raw pointer. More...
    -  -CUTLASS_HOST_DEVICE int initialize (Scalar *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) - Initializes params. More...
    -  +CUTLASS_HOST_DEVICE int initialize (Scalar *ptr, Index stride_d, Index stride_h, Index stride_w) + Initializes params to access a raw pointer. More...
    +  +CUTLASS_HOST_DEVICE int initialize (Scalar *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) + Initializes params. More...
    CUTLASS_HOST_DEVICE int initialize ()  Initializes params to default values. More...
      @@ -127,21 +127,21 @@ Public Member Functions CUTLASS_HOST_DEVICE Params ()  Constructs params. More...
      -CUTLASS_HOST_DEVICE Params (long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance) - Constructs params. More...
    -  +CUTLASS_HOST_DEVICE Params (Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) + Constructs params. More...
    CUTLASS_HOST_DEVICE Params (Coord< 4 > const &stride)  Constructs params with a stride vector. More...
      -CUTLASS_HOST_DEVICE int initialize (long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance) - Initializes params. More...
    -  +CUTLASS_HOST_DEVICE int initialize (Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance) + Initializes params. More...
    CUTLASS_HOST_DEVICE int initialize (Coord< 4 > const &stride)  Initializes the parameters object from a vector of strides. More...
      -CUTLASS_HOST_DEVICE int initialize (long long _stride_d, Index _stride_h, Index _stride_w) - Initializes the parameters object from a vector of strides. More...
    -  +CUTLASS_HOST_DEVICE int initialize (Index _stride_d, Index _stride_h, Index _stride_w) + Initializes the parameters object from a vector of strides. More...
    CUTLASS_HOST_DEVICE int initialize ()  Gotta have this. More...
      @@ -152,20 +152,20 @@ Public Attributes  Pointer to memory. More...
      - Public Attributes inherited from cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params -long long stride_d -  +Index stride_dIndex stride_h   Index stride_w   -long long inc_d -  +Index inc_dIndex inc_h   Index inc_w   -long long inc_advance -  +Index inc_advance

    Constructor & Destructor Documentation

    @@ -301,8 +301,8 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ - -

    ◆ Params() [5/5]

    + +

    ◆ Params() [5/5]

    @@ -321,7 +321,7 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ - long long  + Index  _stride_d, @@ -339,7 +339,7 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ - long long  + Index  _inc_d, @@ -432,8 +432,8 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_
    - -

    ◆ initialize() [3/5]

    + +

    ◆ initialize() [3/5]

    @@ -452,7 +452,7 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ - long long  + Index  stride_d, @@ -482,8 +482,8 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_
    - -

    ◆ initialize() [4/5]

    + +

    ◆ initialize() [4/5]

    @@ -502,7 +502,7 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ - long long  + Index  _stride_d, @@ -520,7 +520,7 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ - long long  + Index  _inc_d, @@ -606,7 +606,7 @@ template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_
    diff --git a/docs/structcutlass_1_1TileStoreStream-members.html b/docs/structcutlass_1_1TileStoreStream-members.html index 03cb5045..c6ca28a3 100644 --- a/docs/structcutlass_1_1TileStoreStream-members.html +++ b/docs/structcutlass_1_1TileStoreStream-members.html @@ -99,7 +99,7 @@ $(function() {
    diff --git a/docs/structcutlass_1_1TileStoreStream.html b/docs/structcutlass_1_1TileStoreStream.html index 06c454fc..4c6694df 100644 --- a/docs/structcutlass_1_1TileStoreStream.html +++ b/docs/structcutlass_1_1TileStoreStream.html @@ -548,7 +548,7 @@ template<typename Iterator_ , typename Transformer_ = Copy<typename Itera diff --git a/docs/structcutlass_1_1TileStoreStream_1_1Params-members.html b/docs/structcutlass_1_1TileStoreStream_1_1Params-members.html index 2f4e2f61..4f170ed2 100644 --- a/docs/structcutlass_1_1TileStoreStream_1_1Params-members.html +++ b/docs/structcutlass_1_1TileStoreStream_1_1Params-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TileStoreStream_1_1Params.html b/docs/structcutlass_1_1TileStoreStream_1_1Params.html index e4b3edca..3da299da 100644 --- a/docs/structcutlass_1_1TileStoreStream_1_1Params.html +++ b/docs/structcutlass_1_1TileStoreStream_1_1Params.html @@ -180,7 +180,7 @@ template<typename Iterator_ , typename Transformer_ = Copy<typename Itera diff --git a/docs/structcutlass_1_1TileStoreStream_1_1PredicateVector.html b/docs/structcutlass_1_1TileStoreStream_1_1PredicateVector.html index 283d739e..d1a7b833 100644 --- a/docs/structcutlass_1_1TileStoreStream_1_1PredicateVector.html +++ b/docs/structcutlass_1_1TileStoreStream_1_1PredicateVector.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TileTraits-members.html b/docs/structcutlass_1_1TileTraits-members.html index 7f5bea37..9a685519 100644 --- a/docs/structcutlass_1_1TileTraits-members.html +++ b/docs/structcutlass_1_1TileTraits-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TileTraits.html b/docs/structcutlass_1_1TileTraits.html index b95fdf27..46e16165 100644 --- a/docs/structcutlass_1_1TileTraits.html +++ b/docs/structcutlass_1_1TileTraits.html @@ -222,7 +222,7 @@ template<typename Tile_ , typename Delta_ , typename Iterations_ , typename T diff --git a/docs/structcutlass_1_1TileTraitsContiguousMajor-members.html b/docs/structcutlass_1_1TileTraitsContiguousMajor-members.html index ea0af2c7..a329ede1 100644 --- a/docs/structcutlass_1_1TileTraitsContiguousMajor-members.html +++ b/docs/structcutlass_1_1TileTraitsContiguousMajor-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TileTraitsContiguousMajor.html b/docs/structcutlass_1_1TileTraitsContiguousMajor.html index 667bce4d..d8fbf68b 100644 --- a/docs/structcutlass_1_1TileTraitsContiguousMajor.html +++ b/docs/structcutlass_1_1TileTraitsContiguousMajor.html @@ -224,7 +224,7 @@ template<typename Tile_ , int Threads> diff --git a/docs/structcutlass_1_1TileTraitsStandard-members.html b/docs/structcutlass_1_1TileTraitsStandard-members.html index 40677b26..314c42a0 100644 --- a/docs/structcutlass_1_1TileTraitsStandard-members.html +++ b/docs/structcutlass_1_1TileTraitsStandard-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TileTraitsStandard.html b/docs/structcutlass_1_1TileTraitsStandard.html index a7a26e38..d9a68d4d 100644 --- a/docs/structcutlass_1_1TileTraitsStandard.html +++ b/docs/structcutlass_1_1TileTraitsStandard.html @@ -227,7 +227,7 @@ template<typename Tile_ , int Threads> diff --git a/docs/structcutlass_1_1TileTraitsStrideMajor-members.html b/docs/structcutlass_1_1TileTraitsStrideMajor-members.html index 76a8c032..f0090dbf 100644 --- a/docs/structcutlass_1_1TileTraitsStrideMajor-members.html +++ b/docs/structcutlass_1_1TileTraitsStrideMajor-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TileTraitsStrideMajor.html b/docs/structcutlass_1_1TileTraitsStrideMajor.html index 40c37b8d..bc2f7777 100644 --- a/docs/structcutlass_1_1TileTraitsStrideMajor.html +++ b/docs/structcutlass_1_1TileTraitsStrideMajor.html @@ -224,7 +224,7 @@ template<typename Tile_ , int Threads> diff --git a/docs/structcutlass_1_1TileTraitsWarpRake-members.html b/docs/structcutlass_1_1TileTraitsWarpRake-members.html index 24bef8e4..ad894c44 100644 --- a/docs/structcutlass_1_1TileTraitsWarpRake-members.html +++ b/docs/structcutlass_1_1TileTraitsWarpRake-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TileTraitsWarpRake.html b/docs/structcutlass_1_1TileTraitsWarpRake.html index dfe8d897..ee4a79fd 100644 --- a/docs/structcutlass_1_1TileTraitsWarpRake.html +++ b/docs/structcutlass_1_1TileTraitsWarpRake.html @@ -318,7 +318,7 @@ template<typename Tile_ , int Threads> diff --git a/docs/structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset-members.html b/docs/structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset-members.html index 942245c8..c74c75db 100644 --- a/docs/structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset-members.html +++ b/docs/structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset.html b/docs/structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset.html index 26010fb8..7d699a0b 100644 --- a/docs/structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset.html +++ b/docs/structcutlass_1_1TileTraitsWarpRake_1_1ThreadOffset.html @@ -125,7 +125,7 @@ template<typename Tile_ , int Threads> diff --git a/docs/structcutlass_1_1TiledThreadOffset-members.html b/docs/structcutlass_1_1TiledThreadOffset-members.html index 9088eadd..2ebb7ece 100644 --- a/docs/structcutlass_1_1TiledThreadOffset-members.html +++ b/docs/structcutlass_1_1TiledThreadOffset-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TiledThreadOffset.html b/docs/structcutlass_1_1TiledThreadOffset.html index 574a6f54..e2188c5e 100644 --- a/docs/structcutlass_1_1TiledThreadOffset.html +++ b/docs/structcutlass_1_1TiledThreadOffset.html @@ -125,7 +125,7 @@ template<typename ThreadShape > diff --git a/docs/structcutlass_1_1TrivialPredicateTileAdapter-members.html b/docs/structcutlass_1_1TrivialPredicateTileAdapter-members.html index 65eb939f..b5dd5116 100644 --- a/docs/structcutlass_1_1TrivialPredicateTileAdapter-members.html +++ b/docs/structcutlass_1_1TrivialPredicateTileAdapter-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1TrivialPredicateTileAdapter.html b/docs/structcutlass_1_1TrivialPredicateTileAdapter.html index 1a8178ab..049e2981 100644 --- a/docs/structcutlass_1_1TrivialPredicateTileAdapter.html +++ b/docs/structcutlass_1_1TrivialPredicateTileAdapter.html @@ -175,7 +175,7 @@ Public Member Functions diff --git a/docs/structcutlass_1_1VectorTraits-members.html b/docs/structcutlass_1_1VectorTraits-members.html index f1949903..657143c4 100644 --- a/docs/structcutlass_1_1VectorTraits-members.html +++ b/docs/structcutlass_1_1VectorTraits-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/structcutlass_1_1VectorTraits.html b/docs/structcutlass_1_1VectorTraits.html index b19316ae..8d9c4e8a 100644 --- a/docs/structcutlass_1_1VectorTraits.html +++ b/docs/structcutlass_1_1VectorTraits.html @@ -192,7 +192,7 @@ template<typename T > diff --git a/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4-members.html b/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4-members.html index d5a0cb27..28ee8dcd 100644 --- a/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4-members.html +++ b/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html b/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html index d029b566..c3c54b7d 100644 --- a/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html +++ b/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html @@ -192,7 +192,7 @@ template<typename T , int Lanes> diff --git a/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4-members.html b/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4-members.html index 3ef83c65..e906b953 100644 --- a/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4-members.html +++ b/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html b/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html index d0a8efc2..5e94f8b0 100644 --- a/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html +++ b/docs/structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html @@ -192,7 +192,7 @@ template<typename T , int Lanes> diff --git a/docs/structcutlass_1_1Vectorize-members.html b/docs/structcutlass_1_1Vectorize-members.html index 3a8634e0..06e63b86 100644 --- a/docs/structcutlass_1_1Vectorize-members.html +++ b/docs/structcutlass_1_1Vectorize-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Vectorize.html b/docs/structcutlass_1_1Vectorize.html index 9d5c1b22..bb11d040 100644 --- a/docs/structcutlass_1_1Vectorize.html +++ b/docs/structcutlass_1_1Vectorize.html @@ -110,7 +110,7 @@ template<typename Element_, int kLanes_ = 1> diff --git a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4-members.html b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4-members.html index f49dfa17..cb61165a 100644 --- a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4-members.html +++ b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4.html b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4.html index 8f743cbe..b6e5e530 100644 --- a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4.html +++ b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01bin1__t_00_0132_01_4_00_01kLanes___01_4.html @@ -110,7 +110,7 @@ template<int kLanes_> diff --git a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4-members.html b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4-members.html index ec223dac..80e4f14f 100644 --- a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4-members.html +++ b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4.html b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4.html index c5dc1793..f2eb1711 100644 --- a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4.html +++ b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01int4__t_00_018_01_4_00_01kLanes___01_4.html @@ -110,7 +110,7 @@ template<int kLanes_> diff --git a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4-members.html b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4-members.html index 82b79ce5..071ba863 100644 --- a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4-members.html +++ b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4.html b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4.html index 5122f26e..272c91a6 100644 --- a/docs/structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4.html +++ b/docs/structcutlass_1_1Vectorize_3_01Vector_3_01uint4__t_00_018_01_4_00_01kLanes___01_4.html @@ -110,7 +110,7 @@ template<int kLanes_> diff --git a/docs/structcutlass_1_1WmmaReshapeTile-members.html b/docs/structcutlass_1_1WmmaReshapeTile-members.html new file mode 100644 index 00000000..69adf352 --- /dev/null +++ b/docs/structcutlass_1_1WmmaReshapeTile-members.html @@ -0,0 +1,91 @@ + + + + + + + +Cutlass: Member List + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, bool > Member List
    +
    +
    + +

    This is the complete list of members for cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, bool >, including all inherited members.

    + + +
    Tile typedefcutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, bool >
    + + + + diff --git a/docs/structcutlass_1_1WmmaReshapeTile.html b/docs/structcutlass_1_1WmmaReshapeTile.html new file mode 100644 index 00000000..cbd23698 --- /dev/null +++ b/docs/structcutlass_1_1WmmaReshapeTile.html @@ -0,0 +1,118 @@ + + + + + + + +Cutlass: cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, bool > Struct Template Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, bool > Struct Template Reference
    +
    +
    + +

    #include <reshape_tile.h>

    + + + + +

    +Public Types

    typedef Tile_ Tile
     
    +

    Member Typedef Documentation

    + +

    ◆ Tile

    + +
    +
    +
    +template<typename Tile_ , int kAccessSize_, int kLdsPerAccess_, bool = (Tile_::kC < (kAccessSize_ * kLdsPerAccess_))>
    + + + + +
    typedef Tile_ cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, bool >::Tile
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4-members.html b/docs/structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4-members.html new file mode 100644 index 00000000..e68e486f --- /dev/null +++ b/docs/structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4-members.html @@ -0,0 +1,91 @@ + + + + + + + +Cutlass: Member List + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true > Member List
    +
    +
    + +

    This is the complete list of members for cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true >, including all inherited members.

    + + +
    Tile typedefcutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true >
    + + + + diff --git a/docs/structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4.html b/docs/structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4.html new file mode 100644 index 00000000..0804dfe9 --- /dev/null +++ b/docs/structcutlass_1_1WmmaReshapeTile_3_01Tile___00_01kAccessSize___00_01kLdsPerAccess___00_01true_01_4.html @@ -0,0 +1,118 @@ + + + + + + + +Cutlass: cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true > Struct Template Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true > Struct Template Reference
    +
    +
    + +

    #include <reshape_tile.h>

    + + + + +

    +Public Types

    typedef Shape< Tile_::kD, Tile_::kH, Tile_::kW/(kAccessSize_ *kLdsPerAccess_),(kAccessSize_ *kLdsPerAccess_)> Tile
     
    +

    Member Typedef Documentation

    + +

    ◆ Tile

    + +
    +
    +
    +template<typename Tile_ , int kAccessSize_, int kLdsPerAccess_>
    + + + + +
    typedef Shape<Tile_::kD, Tile_::kH, Tile_::kW / (kAccessSize_ * kLdsPerAccess_), (kAccessSize_ * kLdsPerAccess_)> cutlass::WmmaReshapeTile< Tile_, kAccessSize_, kLdsPerAccess_, true >::Tile
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structcutlass_1_1ZipConvert-members.html b/docs/structcutlass_1_1ZipConvert-members.html index d4e9d72f..e34ea893 100644 --- a/docs/structcutlass_1_1ZipConvert-members.html +++ b/docs/structcutlass_1_1ZipConvert-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ZipConvert.html b/docs/structcutlass_1_1ZipConvert.html index f2189b54..c9fd1cc6 100644 --- a/docs/structcutlass_1_1ZipConvert.html +++ b/docs/structcutlass_1_1ZipConvert.html @@ -332,7 +332,7 @@ template<typename First_, typename Second_> diff --git a/docs/structcutlass_1_1ZipFragment-members.html b/docs/structcutlass_1_1ZipFragment-members.html index 51049f25..64340560 100644 --- a/docs/structcutlass_1_1ZipFragment-members.html +++ b/docs/structcutlass_1_1ZipFragment-members.html @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ZipFragment.html b/docs/structcutlass_1_1ZipFragment.html index 8311f018..d0809002 100644 --- a/docs/structcutlass_1_1ZipFragment.html +++ b/docs/structcutlass_1_1ZipFragment.html @@ -302,7 +302,7 @@ template<typename First_, typename Second_> diff --git a/docs/structcutlass_1_1ZipTensorRef-members.html b/docs/structcutlass_1_1ZipTensorRef-members.html index 41d9fa27..8cee5c3f 100644 --- a/docs/structcutlass_1_1ZipTensorRef-members.html +++ b/docs/structcutlass_1_1ZipTensorRef-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ZipTensorRef.html b/docs/structcutlass_1_1ZipTensorRef.html index e9943f27..d4a32562 100644 --- a/docs/structcutlass_1_1ZipTensorRef.html +++ b/docs/structcutlass_1_1ZipTensorRef.html @@ -247,7 +247,7 @@ template<typename First_, typename Second_> diff --git a/docs/structcutlass_1_1ZipTileAllocation-members.html b/docs/structcutlass_1_1ZipTileAllocation-members.html index f7489bd0..f6953ce5 100644 --- a/docs/structcutlass_1_1ZipTileAllocation-members.html +++ b/docs/structcutlass_1_1ZipTileAllocation-members.html @@ -90,7 +90,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ZipTileAllocation.html b/docs/structcutlass_1_1ZipTileAllocation.html index 844ff780..34b71786 100644 --- a/docs/structcutlass_1_1ZipTileAllocation.html +++ b/docs/structcutlass_1_1ZipTileAllocation.html @@ -279,7 +279,7 @@ template<typename First_ , typename Second_ > diff --git a/docs/structcutlass_1_1ZipTileIterator_1_1Params-members.html b/docs/structcutlass_1_1ZipTileIterator_1_1Params-members.html index a197a4a8..5f66c249 100644 --- a/docs/structcutlass_1_1ZipTileIterator_1_1Params-members.html +++ b/docs/structcutlass_1_1ZipTileIterator_1_1Params-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/docs/structcutlass_1_1ZipTileIterator_1_1Params.html b/docs/structcutlass_1_1ZipTileIterator_1_1Params.html index 8034c42a..510e76c1 100644 --- a/docs/structcutlass_1_1ZipTileIterator_1_1Params.html +++ b/docs/structcutlass_1_1ZipTileIterator_1_1Params.html @@ -209,7 +209,7 @@ template<typename First_ , typename Second_ > diff --git a/docs/structcutlass_1_1bin1__t.html b/docs/structcutlass_1_1bin1__t.html index c3f4a984..b1d28567 100644 --- a/docs/structcutlass_1_1bin1__t.html +++ b/docs/structcutlass_1_1bin1__t.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1divide__assert-members.html b/docs/structcutlass_1_1divide__assert-members.html index 8ddcbdf9..bc0b24a7 100644 --- a/docs/structcutlass_1_1divide__assert-members.html +++ b/docs/structcutlass_1_1divide__assert-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1divide__assert.html b/docs/structcutlass_1_1divide__assert.html index e7741e47..8197388e 100644 --- a/docs/structcutlass_1_1divide__assert.html +++ b/docs/structcutlass_1_1divide__assert.html @@ -119,7 +119,7 @@ template<int Dividend, int Divisor> diff --git a/docs/structcutlass_1_1gemm_1_1ClearAccumulators-members.html b/docs/structcutlass_1_1gemm_1_1ClearAccumulators-members.html index 647a7ed9..db26761d 100644 --- a/docs/structcutlass_1_1gemm_1_1ClearAccumulators-members.html +++ b/docs/structcutlass_1_1gemm_1_1ClearAccumulators-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1ClearAccumulators.html b/docs/structcutlass_1_1gemm_1_1ClearAccumulators.html index 314cffc6..82ab3508 100644 --- a/docs/structcutlass_1_1gemm_1_1ClearAccumulators.html +++ b/docs/structcutlass_1_1gemm_1_1ClearAccumulators.html @@ -195,7 +195,7 @@ template<typename Fragment_ > diff --git a/docs/structcutlass_1_1gemm_1_1ClearAccumulators_1_1SharedStorage.html b/docs/structcutlass_1_1gemm_1_1ClearAccumulators_1_1SharedStorage.html index c30f5522..42523c06 100644 --- a/docs/structcutlass_1_1gemm_1_1ClearAccumulators_1_1SharedStorage.html +++ b/docs/structcutlass_1_1gemm_1_1ClearAccumulators_1_1SharedStorage.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle-members.html b/docs/structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle-members.html index 698bd4d6..e46e8d8a 100644 --- a/docs/structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle-members.html +++ b/docs/structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle-members.html @@ -82,12 +82,14 @@ $(function() { ColumnMajorBlockSwizzle()cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >inline get_batch_id()cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >inline get_grid_layout(GemmCoord const &problem_size, Coord< 3 > const &OutputTile)cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >inline - get_threadblock_offset(Coord< 3 > const &OutputTile)cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >inline + get_threadblock_bounds(GemmCoord const &problem_size, int partitionK_range)cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >inline + get_threadblock_offset(Coord< 3 > const &OutputTile)cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >inline + is_last_partition()cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >inline swizzle()cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >inline diff --git a/docs/structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html b/docs/structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html index 19c0d5e2..83ec94c0 100644 --- a/docs/structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html +++ b/docs/structcutlass_1_1gemm_1_1ColumnMajorBlockSwizzle.html @@ -80,7 +80,7 @@ $(function() {
    -

    #include <threadblock_swizzle.h>

    +

    #include <threadblock_swizzle.h>

    @@ -96,6 +96,11 @@ Public Member Functions + + + + +

    Public Member Functions

     
    CUTLASS_DEVICE int get_batch_id ()
     
    CUTLASS_DEVICE bool is_last_partition ()
     check if at the last partition More...
     
    CUTLASS_DEVICE Coord< 3 > get_threadblock_bounds (GemmCoord const &problem_size, int partitionK_range)
     

    Constructor & Destructor Documentation

    @@ -189,6 +194,44 @@ template<int groupCols, enum swizzleDirection::Kind swDirection>
    +
    + + +

    ◆ get_threadblock_bounds()

    + +
    +
    +
    +template<int groupCols, enum swizzleDirection::Kind swDirection>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    CUTLASS_DEVICE Coord<3> cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >::get_threadblock_bounds (GemmCoord const & problem_size,
    int partitionK_range 
    )
    +
    +inline
    +
    +
    @@ -217,6 +260,33 @@ template<int groupCols, enum swizzleDirection::Kind swDirection>
    +
    + + +

    ◆ is_last_partition()

    + +
    +
    +
    +template<int groupCols, enum swizzleDirection::Kind swDirection>
    + + + + + +
    + + + + + + + +
    CUTLASS_DEVICE bool cutlass::gemm::ColumnMajorBlockSwizzle< groupCols, swDirection >::is_last_partition ()
    +
    +inline
    +
    +
    @@ -247,12 +317,12 @@ template<int groupCols, enum swizzleDirection::Kind swDirection>
    The documentation for this struct was generated from the following file: diff --git a/docs/structcutlass_1_1gemm_1_1DeviceGemm-members.html b/docs/structcutlass_1_1gemm_1_1DeviceGemm-members.html new file mode 100644 index 00000000..c2f1be23 --- /dev/null +++ b/docs/structcutlass_1_1gemm_1_1DeviceGemm-members.html @@ -0,0 +1,94 @@ + + + + + + + +Cutlass: Member List + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    cutlass::gemm::DeviceGemm< DeviceGemmTraits_ > Member List
    +
    +
    + +

    This is the complete list of members for cutlass::gemm::DeviceGemm< DeviceGemmTraits_ >, including all inherited members.

    + + + + + +
    DeviceGemm()cutlass::gemm::DeviceGemm< DeviceGemmTraits_ >inline
    launch(Params const &params)cutlass::gemm::DeviceGemm< DeviceGemmTraits_ >inlinestatic
    Params typedefcutlass::gemm::DeviceGemm< DeviceGemmTraits_ >
    Traits typedefcutlass::gemm::DeviceGemm< DeviceGemmTraits_ >
    + + + + diff --git a/docs/structcutlass_1_1gemm_1_1DeviceGemm.html b/docs/structcutlass_1_1gemm_1_1DeviceGemm.html new file mode 100644 index 00000000..90e9f534 --- /dev/null +++ b/docs/structcutlass_1_1gemm_1_1DeviceGemm.html @@ -0,0 +1,211 @@ + + + + + + + +Cutlass: cutlass::gemm::DeviceGemm< DeviceGemmTraits_ > Struct Template Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Cutlass +
    +
    CUDA Templates for Linear Algebra Subroutines and Solvers
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    cutlass::gemm::DeviceGemm< DeviceGemmTraits_ > Struct Template Reference
    +
    +
    + +

    #include <device_gemm.h>

    + + + + + + + + +

    +Public Types

    typedef DeviceGemmTraits_ Traits
     The Traits. More...
     
    typedef Traits::Params Params
     Use the params object defined in traits. More...
     
    + + + + +

    +Public Member Functions

    CUTLASS_DEVICE DeviceGemm ()
     Ctor. More...
     
    + + + + +

    +Static Public Member Functions

    static __host__ cudaError_t launch (Params const &params)
     Support for NVRTC. More...
     
    +

    Member Typedef Documentation

    + +

    ◆ Params

    + +
    +
    +
    +template<typename DeviceGemmTraits_ >
    + + + + +
    typedef Traits::Params cutlass::gemm::DeviceGemm< DeviceGemmTraits_ >::Params
    +
    + +
    +
    + +

    ◆ Traits

    + +
    +
    +
    +template<typename DeviceGemmTraits_ >
    + + + + +
    typedef DeviceGemmTraits_ cutlass::gemm::DeviceGemm< DeviceGemmTraits_ >::Traits
    +
    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ DeviceGemm()

    + +
    +
    +
    +template<typename DeviceGemmTraits_ >
    + + + + + +
    + + + + + + + +
    CUTLASS_DEVICE cutlass::gemm::DeviceGemm< DeviceGemmTraits_ >::DeviceGemm ()
    +
    +inline
    +
    +

    Methods

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ launch()

    + +
    +
    +
    +template<typename DeviceGemmTraits_ >
    + + + + + +
    + + + + + + + + +
    static __host__ cudaError_t cutlass::gemm::DeviceGemm< DeviceGemmTraits_ >::launch (Params const & params)
    +
    +inlinestatic
    +
    +

    Launch the kernels in order

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/docs/structcutlass_1_1gemm_1_1DgemmConfig-members.html b/docs/structcutlass_1_1gemm_1_1DgemmConfig-members.html index 74a8b939..5c3f5b06 100644 --- a/docs/structcutlass_1_1gemm_1_1DgemmConfig-members.html +++ b/docs/structcutlass_1_1gemm_1_1DgemmConfig-members.html @@ -110,7 +110,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1DgemmConfig.html b/docs/structcutlass_1_1gemm_1_1DgemmConfig.html index cb727aca..7eee85bf 100644 --- a/docs/structcutlass_1_1gemm_1_1DgemmConfig.html +++ b/docs/structcutlass_1_1gemm_1_1DgemmConfig.html @@ -178,7 +178,7 @@ Additional Inherited Members diff --git a/docs/structcutlass_1_1gemm_1_1DgemmTraits-members.html b/docs/structcutlass_1_1gemm_1_1DgemmTraits-members.html index c6c1bfd9..c020be63 100644 --- a/docs/structcutlass_1_1gemm_1_1DgemmTraits-members.html +++ b/docs/structcutlass_1_1gemm_1_1DgemmTraits-members.html @@ -106,7 +106,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1DgemmTraits.html b/docs/structcutlass_1_1gemm_1_1DgemmTraits.html index 3d2d5a78..bf810859 100644 --- a/docs/structcutlass_1_1gemm_1_1DgemmTraits.html +++ b/docs/structcutlass_1_1gemm_1_1DgemmTraits.html @@ -161,10 +161,10 @@ Additional Inherited Members  The memory fence for shared stores. More...
      - Static Public Attributes inherited from cutlass::gemm::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 > > -static MatrixLayout::Kind const kLayoutA +static MatrixLayout::Kind const kLayoutA  The layout of A. More...
      -static MatrixLayout::Kind const kLayoutB +static MatrixLayout::Kind const kLayoutB  The layout of B. More...
      @@ -174,7 +174,7 @@ Additional Inherited Members diff --git a/docs/structcutlass_1_1gemm_1_1Fp16SgemmConfig-members.html b/docs/structcutlass_1_1gemm_1_1Fp16SgemmConfig-members.html index 6941e82e..e7ae99b2 100644 --- a/docs/structcutlass_1_1gemm_1_1Fp16SgemmConfig-members.html +++ b/docs/structcutlass_1_1gemm_1_1Fp16SgemmConfig-members.html @@ -110,7 +110,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1Fp16SgemmConfig.html b/docs/structcutlass_1_1gemm_1_1Fp16SgemmConfig.html index b377b289..7323d3ca 100644 --- a/docs/structcutlass_1_1gemm_1_1Fp16SgemmConfig.html +++ b/docs/structcutlass_1_1gemm_1_1Fp16SgemmConfig.html @@ -178,7 +178,7 @@ Additional Inherited Members diff --git a/docs/structcutlass_1_1gemm_1_1Fp16SgemmSgemmTraits-members.html b/docs/structcutlass_1_1gemm_1_1Fp16SgemmSgemmTraits-members.html index b133a1dc..aea88cc6 100644 --- a/docs/structcutlass_1_1gemm_1_1Fp16SgemmSgemmTraits-members.html +++ b/docs/structcutlass_1_1gemm_1_1Fp16SgemmSgemmTraits-members.html @@ -106,7 +106,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1Fp16SgemmSgemmTraits.html b/docs/structcutlass_1_1gemm_1_1Fp16SgemmSgemmTraits.html index 1d06a26c..37d5fcff 100644 --- a/docs/structcutlass_1_1gemm_1_1Fp16SgemmSgemmTraits.html +++ b/docs/structcutlass_1_1gemm_1_1Fp16SgemmSgemmTraits.html @@ -161,10 +161,10 @@ Additional Inherited Members  The memory fence for shared stores. More...
      - Static Public Attributes inherited from cutlass::gemm::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 > > -static MatrixLayout::Kind const kLayoutA +static MatrixLayout::Kind const kLayoutA  The layout of A. More...
      -static MatrixLayout::Kind const kLayoutB +static MatrixLayout::Kind const kLayoutB  The layout of B. More...
      @@ -174,7 +174,7 @@ Additional Inherited Members diff --git a/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd-members.html b/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd-members.html index d7c382ac..b0799bf3 100644 --- a/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd-members.html +++ b/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html b/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html index 29bd3c07..e94acfcd 100644 --- a/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html +++ b/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd.html @@ -291,7 +291,7 @@ template<typename FragmentB_ , typename FragmentCd_ > diff --git a/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4-members.html b/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4-members.html index 9730de1f..4a1cd9e5 100644 --- a/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4-members.html +++ b/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html b/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html index 85a462d2..8b710f56 100644 --- a/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html +++ b/docs/structcutlass_1_1gemm_1_1FragmentMultiplyAdd_3_01half_00_01half_00_01true_01_4.html @@ -279,7 +279,7 @@ template<typename FragmentB_ , typename FragmentCd_ > diff --git a/docs/structcutlass_1_1gemm_1_1Gemm-members.html b/docs/structcutlass_1_1gemm_1_1Gemm-members.html index d22133c4..4f1dd54d 100644 --- a/docs/structcutlass_1_1gemm_1_1Gemm-members.html +++ b/docs/structcutlass_1_1gemm_1_1Gemm-members.html @@ -102,7 +102,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1Gemm.html b/docs/structcutlass_1_1gemm_1_1Gemm.html index fcb0fa46..c5d8121e 100644 --- a/docs/structcutlass_1_1gemm_1_1Gemm.html +++ b/docs/structcutlass_1_1gemm_1_1Gemm.html @@ -627,7 +627,7 @@ template<typename GemmTraits_ > diff --git a/docs/structcutlass_1_1gemm_1_1GemmConfig-members.html b/docs/structcutlass_1_1gemm_1_1GemmConfig-members.html index f6bd03c8..d0f8515c 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmConfig-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmConfig-members.html @@ -110,7 +110,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1GemmConfig.html b/docs/structcutlass_1_1gemm_1_1GemmConfig.html index 4471551b..aa498668 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmConfig.html +++ b/docs/structcutlass_1_1gemm_1_1GemmConfig.html @@ -766,7 +766,7 @@ template<typename ScalarA_, typename ScalarB_, typename ScalarC_, typename Sc diff --git a/docs/structcutlass_1_1gemm_1_1GemmCoord-members.html b/docs/structcutlass_1_1gemm_1_1GemmCoord-members.html index b3bb6a70..3d0cbb8e 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmCoord-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmCoord-members.html @@ -106,45 +106,46 @@ $(function() { kKcutlass::gemm::GemmCoordstatic kMcutlass::gemm::GemmCoordstatic km() constcutlass::gemm::GemmCoordinline - kNcutlass::gemm::GemmCoordstatic - kn() constcutlass::gemm::GemmCoordinline + kn() constcutlass::gemm::GemmCoordinline + kNcutlass::gemm::GemmCoordstatic knm() constcutlass::gemm::GemmCoordinline kRankcutlass::Coord< 4, int >static m() constcutlass::gemm::GemmCoordinline m()cutlass::gemm::GemmCoordinline - Ncutlass::Coord< 4, int >static + mn() constcutlass::gemm::GemmCoordinline n() constcutlass::gemm::GemmCoordinline n()cutlass::gemm::GemmCoordinline - nm() constcutlass::gemm::GemmCoordinline - operator bool() constcutlass::Coord< 4, int >inline - operator!() constcutlass::Coord< 4, int >inline - operator!=(Coord< kRank > const &b) constcutlass::Coord< 4, int >inline - operator*(Base const &b) constcutlass::gemm::GemmCoordinline - Coord< 4, int >::operator*(Coord const &b) constcutlass::Coord< 4, int >inline - operator*=(Base const &b)cutlass::gemm::GemmCoordinline - Coord< 4, int >::operator*=(Coord const &b)cutlass::Coord< 4, int >inline - operator+(Base const &b) constcutlass::gemm::GemmCoordinline - Coord< 4, int >::operator+(Coord const &b) constcutlass::Coord< 4, int >inline - operator+=(Base const &b)cutlass::gemm::GemmCoordinline - Coord< 4, int >::operator+=(Coord const &b)cutlass::Coord< 4, int >inline - operator-(Base const &b) constcutlass::gemm::GemmCoordinline - Coord< 4, int >::operator-(Coord const &b) constcutlass::Coord< 4, int >inline - operator-=(Base const &b)cutlass::gemm::GemmCoordinline - Coord< 4, int >::operator-=(Coord const &b)cutlass::Coord< 4, int >inline - operator/(Base const &b) constcutlass::gemm::GemmCoordinline - Coord< 4, int >::operator/(Coord const &b) constcutlass::Coord< 4, int >inline - operator/=(Base const &b)cutlass::gemm::GemmCoordinline - Coord< 4, int >::operator/=(Coord const &b)cutlass::Coord< 4, int >inline - operator<(Coord< kRank > const &b) constcutlass::Coord< 4, int >inline - operator<=(Coord< kRank > const &b) constcutlass::Coord< 4, int >inline - operator==(Coord< kRank > const &b) constcutlass::Coord< 4, int >inline - operator[](int dim)cutlass::Coord< 4, int >inline - operator[](int dim) constcutlass::Coord< 4, int >inline - slice(int start=0, Index identity=0) constcutlass::Coord< 4, int >inline + Ncutlass::Coord< 4, int >static + nm() constcutlass::gemm::GemmCoordinline + operator bool() constcutlass::Coord< 4, int >inline + operator!() constcutlass::Coord< 4, int >inline + operator!=(Coord< kRank > const &b) constcutlass::Coord< 4, int >inline + operator*(Base const &b) constcutlass::gemm::GemmCoordinline + Coord< 4, int >::operator*(Coord const &b) constcutlass::Coord< 4, int >inline + operator*=(Base const &b)cutlass::gemm::GemmCoordinline + Coord< 4, int >::operator*=(Coord const &b)cutlass::Coord< 4, int >inline + operator+(Base const &b) constcutlass::gemm::GemmCoordinline + Coord< 4, int >::operator+(Coord const &b) constcutlass::Coord< 4, int >inline + operator+=(Base const &b)cutlass::gemm::GemmCoordinline + Coord< 4, int >::operator+=(Coord const &b)cutlass::Coord< 4, int >inline + operator-(Base const &b) constcutlass::gemm::GemmCoordinline + Coord< 4, int >::operator-(Coord const &b) constcutlass::Coord< 4, int >inline + operator-=(Base const &b)cutlass::gemm::GemmCoordinline + Coord< 4, int >::operator-=(Coord const &b)cutlass::Coord< 4, int >inline + operator/(Base const &b) constcutlass::gemm::GemmCoordinline + Coord< 4, int >::operator/(Coord const &b) constcutlass::Coord< 4, int >inline + operator/=(Base const &b)cutlass::gemm::GemmCoordinline + Coord< 4, int >::operator/=(Coord const &b)cutlass::Coord< 4, int >inline + operator<(Coord< kRank > const &b) constcutlass::Coord< 4, int >inline + operator<=(Coord< kRank > const &b) constcutlass::Coord< 4, int >inline + operator==(Coord< kRank > const &b) constcutlass::Coord< 4, int >inline + operator[](int dim)cutlass::Coord< 4, int >inline + operator[](int dim) constcutlass::Coord< 4, int >inline + slice(int start=0, Index identity=0) constcutlass::Coord< 4, int >inline diff --git a/docs/structcutlass_1_1gemm_1_1GemmCoord.html b/docs/structcutlass_1_1gemm_1_1GemmCoord.html index 9326fe15..05603603 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmCoord.html +++ b/docs/structcutlass_1_1gemm_1_1GemmCoord.html @@ -153,6 +153,9 @@ Public Member Functions CUTLASS_HOST_DEVICE Coord< 2 > nm () const  Obtains a Coord<2> from GemmCoord. More...
      +CUTLASS_HOST_DEVICE Coord< 2 > mn () const + Obtains a Coord<2> from GemmCoord. More...
    CUTLASS_HOST_DEVICE Coord< 2 > km () const  Obtains a Coord<2> from GemmCoord. More...
      @@ -714,6 +717,31 @@ Additional Inherited Members
    +
    + + +

    ◆ mn()

    + +
    +
    + + + + + +
    + + + + + + + +
    CUTLASS_HOST_DEVICE Coord<2> cutlass::gemm::GemmCoord::mn () const
    +
    +inline
    +
    +
    @@ -1094,7 +1122,7 @@ Additional Inherited Members diff --git a/docs/structcutlass_1_1gemm_1_1GemmDesc-members.html b/docs/structcutlass_1_1gemm_1_1GemmDesc-members.html index 28c23845..6981b2a9 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmDesc-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmDesc-members.html @@ -107,7 +107,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1GemmDesc.html b/docs/structcutlass_1_1gemm_1_1GemmDesc.html index e527a78d..7e9e5ff9 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmDesc.html +++ b/docs/structcutlass_1_1gemm_1_1GemmDesc.html @@ -771,7 +771,7 @@ template<typename AType_, typename BType_, typename CType_, typename DType_, diff --git a/docs/structcutlass_1_1gemm_1_1GemmEpilogue-members.html b/docs/structcutlass_1_1gemm_1_1GemmEpilogue-members.html index 88bf1a74..1e07022a 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmEpilogue-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmEpilogue-members.html @@ -109,7 +109,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1GemmEpilogue.html b/docs/structcutlass_1_1gemm_1_1GemmEpilogue.html index ec6b33ee..395b7bff 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmEpilogue.html +++ b/docs/structcutlass_1_1gemm_1_1GemmEpilogue.html @@ -734,7 +734,7 @@ template<typename GemmEpilogueTraits_ > diff --git a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits-members.html b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits-members.html index 894f46bb..c1b67f66 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits-members.html @@ -88,17 +88,18 @@ $(function() { GlobalTransformerD typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > Index typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > Iterations typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > - OutputTile typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > - Scalar typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > - ScalarC typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > - ScalarD typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > - SharedLoadStreamD typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > - SharedStoreIteratorD typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > - SharedStoreTransformerD typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > + LongIndex typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > + OutputTile typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > + Scalar typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > + ScalarC typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > + ScalarD typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > + SharedLoadStreamD typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > + SharedStoreIteratorD typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > + SharedStoreTransformerD typedefcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ > diff --git a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits.html b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits.html index c9324854..c7b4a6c1 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits.html +++ b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits.html @@ -135,6 +135,9 @@ Public Types typedef Index_ Index  The index. More...
      +typedef long long LongIndex + The long index. More...
    +  typedef Functor::Scalar Scalar  We do not support 3D or 4D shapes. More...
      @@ -289,6 +292,22 @@ template<typename OutputTile_, typename Accumulators_, typename GlobalLoadIte
    +
    + + +

    ◆ LongIndex

    + +
    +
    +
    +template<typename OutputTile_, typename Accumulators_, typename GlobalLoadIteratorC_, typename GlobalTransformerC_, typename GlobalTransformerD_, typename GlobalStoreIteratorD_, typename SharedStoreIteratorD_, typename SharedStoreTransformerD_, typename SharedLoadStreamD_, typename Iterations_, typename Delta_, typename Functor_, typename Index_ = int>
    + + + + +
    typedef long long cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::LongIndex
    +
    +
    @@ -410,7 +429,7 @@ template<typename OutputTile_, typename Accumulators_, typename GlobalLoadIte diff --git a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper-members.html b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper-members.html index 83a1f951..63341a37 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper-members.html @@ -99,7 +99,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html index 642c964a..36eec07d 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html +++ b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html @@ -414,7 +414,7 @@ template<typename GemmConfig_, typename EpilogueFunctor_, typename Index_ = i diff --git a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params-members.html b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params-members.html index 3608cbfb..67fe00c0 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params-members.html @@ -79,6 +79,8 @@ $(function() {

    This is the complete list of members for cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params, including all inherited members.

    + + @@ -90,7 +92,7 @@ $(function() {
    batch_stride_Ccutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params
    batch_stride_Dcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params
    functorcutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params
    initialize(GemmDesc_ const &desc)cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Paramsinline
    iterator_ccutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params
    diff --git a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html index 5f2f16c3..d3dfb11d 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html +++ b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1Params.html @@ -103,9 +103,15 @@ Public Attributes GlobalLoadIteratorC::Params iterator_c  The params for the C iterator. More...
      +LongIndex batch_stride_C + Batch stride for C matrix. More...
    +  GlobalStoreIteratorD::Params iterator_d  The params for the D global iterator. More...
      +LongIndex batch_stride_D + Batch stride for C matrix. More...
    +  SharedStoreIteratorD::Params shared_store_iterator_d  The params for the D shared store iterator. More...
      @@ -148,6 +154,38 @@ template<typename GemmDesc_ >

    Member Data Documentation

    + +

    ◆ batch_stride_C

    + +
    +
    +
    +template<typename OutputTile_, typename Accumulators_, typename GlobalLoadIteratorC_, typename GlobalTransformerC_, typename GlobalTransformerD_, typename GlobalStoreIteratorD_, typename SharedStoreIteratorD_, typename SharedStoreTransformerD_, typename SharedLoadStreamD_, typename Iterations_, typename Delta_, typename Functor_, typename Index_ = int>
    + + + + +
    LongIndex cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params::batch_stride_C
    +
    + +
    +
    + +

    ◆ batch_stride_D

    + +
    +
    +
    +template<typename OutputTile_, typename Accumulators_, typename GlobalLoadIteratorC_, typename GlobalTransformerC_, typename GlobalTransformerD_, typename GlobalStoreIteratorD_, typename SharedStoreIteratorD_, typename SharedStoreTransformerD_, typename SharedLoadStreamD_, typename Iterations_, typename Delta_, typename Functor_, typename Index_ = int>
    + + + + +
    LongIndex cutlass::gemm::GemmEpilogueTraits< OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ >::Params::batch_stride_D
    +
    + +
    +

    ◆ functor

    @@ -266,7 +304,7 @@ template<typename OutputTile_, typename Accumulators_, typename GlobalLoadIte diff --git a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage-members.html b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage-members.html index 9fdea968..dfb6d7b7 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage.html b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage.html index cad6b91d..e0b7efe6 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage.html +++ b/docs/structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage.html @@ -147,7 +147,7 @@ template<typename OutputTile_, typename Accumulators_, typename GlobalLoadIte diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb-members.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb-members.html index 83f26958..b559b58e 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb-members.html @@ -81,40 +81,42 @@ $(function() { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -141,7 +143,7 @@ $(function() {
    AccessType typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    add_pointer_offset(Index offset)cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    Base typedefcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
    BaseParams typedefcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
    Delta typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    Fragment typedefcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
    FragmentConstIterator typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    FragmentElement typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    FragmentIterator typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    FragmentShape typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    GemmGlobalIteratorAb(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &threadblock_offset, ThreadOffset thread_offset_func=ThreadOffset())cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    ImmediateOffsetStrides typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, Advance_, MemorySpace, Index_, TileTraits_::Scalar, FragmentElementType::kScalar, Shape< 0, 0, 0, 0 > >
    inc_advance()cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    inc_d()cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    inc_h()cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    inc_stage()cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    inc_w()cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    Index typedefcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
    initialize_predicates(const Coord< 3 > &bounds, const Coord< 3 > &block_offset)cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    Iterations typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    kAccessSizecutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >static
    kAdvancecutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >static
    kFragmentElementTypecutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >static
    kFragmentSizecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, Advance_, MemorySpace, Index_, TileTraits_::Scalar, FragmentElementType::kScalar, Shape< 0, 0, 0, 0 > >static
    kLayoutcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >static
    kMemorySpacecutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >static
    kRequiresLoadFence enum valuecutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    load(Fragment &fragment, PredicateIterator pred_it) constcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    load(Fragment &fragment) constcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    load(Fragment &fragment, int d)cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    load_element(typename Base::AccessType &value, int d, int h, int w, int c) constcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    load_post_increment(Fragment &fragment)cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >::load_post_increment(Fragment &fragment, PredicateIterator pred_it)cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >::load_post_increment(Fragment &fragment)cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >::add_pointer_offset(LongIndex offset)cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    Base typedefcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
    BaseParams typedefcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
    Delta typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    Fragment typedefcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
    FragmentConstIterator typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    FragmentElement typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    FragmentIterator typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    FragmentShape typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    GemmGlobalIteratorAb(Params const &_params, const Coord< 3 > &threadblock_offset, ThreadOffset thread_offset_func=ThreadOffset())cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    ImmediateOffsetStrides typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, Advance_, MemorySpace, Index_, TileTraits_::Scalar, FragmentElementType::kScalar, Shape< 0, 0, 0, 0 > >
    inc_advance()cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    inc_d()cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    inc_h()cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    inc_stage()cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    inc_w()cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    Index typedefcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
    initialize_predicates(const Coord< 3 > &bounds, const Coord< 3 > &block_offset)cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >::initialize_predicates(PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0))cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >::initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    Iterations typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    kAccessSizecutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >static
    kAdvancecutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >static
    kFragmentElementTypecutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >static
    kFragmentSizecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, Advance_, MemorySpace, Index_, TileTraits_::Scalar, FragmentElementType::kScalar, Shape< 0, 0, 0, 0 > >static
    kLayoutcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >static
    kMemorySpacecutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >static
    kRequiresLoadFence enum valuecutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    load(Fragment &fragment, PredicateIterator pred_it) constcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    load(Fragment &fragment) constcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    load(Fragment &fragment, int d)cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    load_element(typename Base::AccessType &value, int d, int h, int w, int c) constcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    load_post_increment(Fragment &fragment)cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >::load_post_increment(Fragment &fragment, PredicateIterator pred_it)cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >::load_post_increment(Fragment &fragment)cutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >inline
    LongIndex typedefcutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
    operator+=(Coord< 3 > const &offset)cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >inline
    paramscutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >
    Pointer typedefcutlass::TileLoadIterator< TileTraits_, TileTraits_::Scalar, TileTraits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index_ >
    diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html index a795acf0..f6a94ed2 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb.html @@ -125,6 +125,9 @@ Public Types typedef Index_ Index  The index. More...
      +typedef long long LongIndex + Long index. More...
    +  typedef TileTraits_::ThreadOffset ThreadOffset  The thread offset. More...
      @@ -152,6 +155,9 @@ Public Types typedef Base::Index Index  Index type. More...
      +typedef Base::LongIndex LongIndex + Index type. More...
    +  typedef Base::Skew Skew  Skew quantity. More...
      @@ -210,6 +216,9 @@ Public Types typedef Index_ Index  Index type. More...
      +typedef long long LongIndex + Long index. More...
    +  typedef Shape< 0, 0, 0, 0 > Skew  Skew quantity. More...
      @@ -254,9 +263,9 @@ Public Types Public Member Functions CUTLASS_HOST_DEVICE void initialize_predicates (const Coord< 3 > &bounds, const Coord< 3 > &block_offset)   -CUTLASS_HOST_DEVICE GemmGlobalIteratorAb (Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &threadblock_offset, ThreadOffset thread_offset_func=ThreadOffset()) - Ctor. More...
    -  +CUTLASS_HOST_DEVICE GemmGlobalIteratorAb (Params const &_params, const Coord< 3 > &threadblock_offset, ThreadOffset thread_offset_func=ThreadOffset()) + Ctor. More...
    CUTLASS_HOST_DEVICE void inc_w ()  Increment the pointer in the W dimension. More...
      @@ -325,9 +334,9 @@ Public Member Functions CUTLASS_HOST_DEVICE TileLoadIteratoroperator+= (Coord< 3 > const &offset)  Adds a vector offset to the iterator. More...
      -CUTLASS_HOST_DEVICE void add_pointer_offset (Index offset) - Adds a raw offset to the pointer. More...
    -  +CUTLASS_HOST_DEVICE void add_pointer_offset (LongIndex offset) + Adds a raw offset to the pointer. More...
    CUTLASS_HOST_DEVICE Index stride_advance (void)   CUTLASS_HOST_DEVICE void load_post_increment (Fragment &fragment, PredicateIterator pred_it) @@ -374,7 +383,7 @@ Public Attributes - + @@ -480,6 +489,22 @@ template<typename TileTraits_ , typename Index_ = int>

    Static Public Attributes

    static MatrixLayout::Kind const kLayout = TileTraits_::kLayout
    static MatrixLayout::Kind const kLayout = TileTraits_::kLayout
     The layout. More...
     
    static IteratorAdvance::Kind const kAdvance = Base::kAdvance
    +
    + + +

    ◆ LongIndex

    + +
    +
    +
    +template<typename TileTraits_ , typename Index_ = int>
    + + + + +
    typedef long long cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::LongIndex
    +
    +
    @@ -579,8 +604,8 @@ template<typename TileTraits_ , typename Index_ = int>

    Constructor & Destructor Documentation

    - -

    ◆ GemmGlobalIteratorAb()

    + +

    ◆ GemmGlobalIteratorAb()

    @@ -596,12 +621,6 @@ template<typename TileTraits_ , typename Index_ = int>
    Params const &  _params, - - - - const Coord< 3 > &  - bounds, - @@ -1061,7 +1080,7 @@ template<typename TileTraits_ , typename Index_ = int>
    - +
    MatrixLayout::Kind const cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::kLayout = TileTraits_::kLayoutMatrixLayout::Kind const cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::kLayout = TileTraits_::kLayout
    @@ -1127,7 +1146,7 @@ template<typename TileTraits_ , typename Index_ = int> diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params-members.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params-members.html index af3680b9..1fbf0772 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params-members.html @@ -79,35 +79,35 @@ $(function() {

    This is the complete list of members for cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::Params, including all inherited members.

    - - + + - + - - + + - + - + - - - + + + - +
    inc_advancecutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_advancecutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_hcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    inc_wcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    initialize(Scalar const *ptr, long long stride_d, Index stride_h)cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::Paramsinline
    initialize(Scalar const *ptr, Index stride_d, Index stride_h)cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Index_ >::Paramsinline
    cutlass::TileLoadIterator::Params::initialize(TensorRef const &ref)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileLoadIterator::Params::initialize(SharedStorage const &storage)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileLoadIterator::Params::initialize(Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileLoadIterator::Params::initialize()cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(Coord< 4 > const &stride)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(long long _stride_d, Index _stride_h, Index _stride_w)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::initialize(Index _stride_d, Index _stride_h, Index _stride_w)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params()cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar const *ptr)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(TensorRef const &ref)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::Params(long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    Params(Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w)cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::Params(Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    cutlass::TileIteratorBase::Params::Params(Coord< 4 > const &stride)cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Paramsinline
    pointercutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_dcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_hcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    stride_wcutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html index 8f3134b3..05859424 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorAb_1_1Params.html @@ -94,9 +94,9 @@ Inheritance diagram for cutlass::gemm::GemmGlobalIteratorAb< TileTraits_, Ind - - - + + + @@ -107,12 +107,12 @@ Public Member Functions - - - - - - + + + + + + @@ -122,33 +122,33 @@ Public Member Functions - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + @@ -160,24 +160,24 @@ Additional Inherited Members - - + + - - + + - - + +

    Public Member Functions

    CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr, long long stride_d, Index stride_h)
     Initializes params to load a strip-mined tile, given pointer and stride_h. More...
     
    CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr, Index stride_d, Index stride_h)
     Initializes params to load a strip-mined tile, given pointer and stride_h. More...
     
    - Public Member Functions inherited from cutlass::TileLoadIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    CUTLASS_HOST_DEVICE Params ()
     Initialize params to access storage object. More...
    CUTLASS_HOST_DEVICE Params (TensorRef const &ref)
     Constructs with a CompactTensorRef<> More...
     
    CUTLASS_HOST_DEVICE Params (Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)
     Initialize params to access storage object. More...
     
    CUTLASS_HOST_DEVICE Params (Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w)
     Initialize params to access storage object. More...
     
    CUTLASS_HOST_DEVICE Params (Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)
     Initialize params to access storage object. More...
     
    CUTLASS_HOST_DEVICE Params (Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w)
     Initialize params to access storage object. More...
     
    CUTLASS_HOST_DEVICE int initialize (TensorRef const &ref)
     Initializes params to access a raw pointer. More...
     
    CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr)
     Initialize params to access storage object. More...
     
    CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr, long long stride_d, Index stride_h, Index stride_w)
     Initializes params to access a raw pointer. More...
     
    CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr, long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)
     Initializes params. More...
     
    CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr, Index stride_d, Index stride_h, Index stride_w)
     Initializes params to access a raw pointer. More...
     
    CUTLASS_HOST_DEVICE int initialize (Scalar const *ptr, Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)
     Initializes params. More...
     
    CUTLASS_HOST_DEVICE int initialize ()
     
    - Public Member Functions inherited from cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    CUTLASS_HOST_DEVICE Params ()
     Constructs params. More...
     
    CUTLASS_HOST_DEVICE Params (long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)
     Constructs params. More...
     
    CUTLASS_HOST_DEVICE Params (Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)
     Constructs params. More...
     
    CUTLASS_HOST_DEVICE Params (Coord< 4 > const &stride)
     Constructs params with a stride vector. More...
     
    CUTLASS_HOST_DEVICE int initialize (long long _stride_d, Index _stride_h, Index _stride_w, long long _inc_d, Index _inc_h, Index _inc_w, long long _inc_advance)
     Initializes params. More...
     
    CUTLASS_HOST_DEVICE int initialize (Index _stride_d, Index _stride_h, Index _stride_w, Index _inc_d, Index _inc_h, Index _inc_w, Index _inc_advance)
     Initializes params. More...
     
    CUTLASS_HOST_DEVICE int initialize (Coord< 4 > const &stride)
     Initializes the parameters object from a vector of strides. More...
     
    CUTLASS_HOST_DEVICE int initialize (long long _stride_d, Index _stride_h, Index _stride_w)
     Initializes the parameters object from a vector of strides. More...
     
    CUTLASS_HOST_DEVICE int initialize (Index _stride_d, Index _stride_h, Index _stride_w)
     Initializes the parameters object from a vector of strides. More...
     
    CUTLASS_HOST_DEVICE int initialize ()
     Gotta have this. More...
     
     Pointer to memory. More...
     
    - Public Attributes inherited from cutlass::TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ >::Params
    long long stride_d
     
    Index stride_d
     
    Index stride_h
     
    Index stride_w
     
    long long inc_d
     
    Index inc_d
     
    Index inc_h
     
    Index inc_w
     
    long long inc_advance
     
    Index inc_advance
     

    Member Function Documentation

    - -

    ◆ initialize()

    + +

    ◆ initialize()

    @@ -196,7 +196,7 @@ template<typename TileTraits_ , typename Index_ = int>
    - long long  + Index  stride_d, @@ -226,7 +226,7 @@ template<typename TileTraits_ , typename Index_ = int>
    diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd-members.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd-members.html index f19fdc17..6f4030d6 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd-members.html @@ -80,7 +80,7 @@ $(function() {

    This is the complete list of members for cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >, including all inherited members.

    - + @@ -88,25 +88,25 @@ $(function() { - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -127,7 +127,7 @@ $(function() {
    AccessType typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
    add_pointer_offset(Index offset)cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    add_pointer_offset(LongIndex offset)cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    Base typedefcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >
    Delta typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
    Fragment typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
    FragmentElement typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
    FragmentIterator typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
    FragmentShape typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
    GemmGlobalIteratorCd(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block_offset, ThreadOffset thread_offset_func=ThreadOffset())cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    GemmGlobalIteratorCd(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block, int offset=0, int pred_offset=0, ThreadOffset thread_offset_func=ThreadOffset())cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    ImmediateOffsetStrides typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
    inc_advance()cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    inc_c()cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    inc_d()cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    inc_h()cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    inc_w()cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    Index typedefcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >
    initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &predicate_func, Coord< 3 > const &offset)cutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >inlinestatic
    Iterations typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
    kAccessSizecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >static
    kAdvancecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >static
    kFragmentElementTypecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >static
    kFragmentSizecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >static
    kLayoutcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >static
    kMemorySpacecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >static
    load_element(typename Base::AccessType &value, int d, int h, int w, int c) constcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    load_post_increment(Fragment &fragment)cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    GemmGlobalIteratorCd(Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block, int offset=0, int pred_offset=0, ThreadOffset thread_offset_func=ThreadOffset())cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    ImmediateOffsetStrides typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
    inc_advance()cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    inc_c()cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    inc_d()cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    inc_h()cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    inc_w()cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    Index typedefcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >
    initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &predicate_func, Coord< 3 > const &offset)cutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >inlinestatic
    Iterations typedefcutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
    kAccessSizecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >static
    kAdvancecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >static
    kFragmentElementTypecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >static
    kFragmentSizecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >static
    kLayoutcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >static
    kMemorySpacecutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >static
    load_element(typename Base::AccessType &value, int d, int h, int w, int c) constcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    load_post_increment(Fragment &fragment)cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    LongIndex typedefcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >
    operator+=(Coord< 3 > const &offset)cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >inline
    paramscutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >
    Pointer typedefcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >
    diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html index 8159a864..753cc4e0 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd.html @@ -122,6 +122,9 @@ Public Types typedef Index_ Index  The index. More...
      +typedef long long LongIndex + The index. More...
    +  typedef TileTraits_::ThreadOffset ThreadOffset  The thread offset. More...
      @@ -138,6 +141,9 @@ Public Types typedef Index_ Index  Index type. More...
      +typedef long long LongIndex + Long index. More...
    +  typedef Shape< 0, 0, 0, 0 > Skew  Skew quantity. More...
      @@ -180,9 +186,6 @@ Public Types - - - @@ -213,9 +216,9 @@ Public Member Functions - - - + + + @@ -242,7 +245,7 @@ Public Attributes

    Public Member Functions

    CUTLASS_HOST_DEVICE GemmGlobalIteratorCd (Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block_offset, ThreadOffset thread_offset_func=ThreadOffset())
     Ctor. More...
     
    CUTLASS_HOST_DEVICE GemmGlobalIteratorCd (Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block, int offset=0, int pred_offset=0, ThreadOffset thread_offset_func=ThreadOffset())
     Ctor. More...
     
    CUTLASS_HOST_DEVICE bool valid (int d, int h, int w, int c) const
     Test the validity of the. More...
     
    CUTLASS_HOST_DEVICE void add_pointer_offset (Index offset)
     add pointer offset More...
     
    CUTLASS_HOST_DEVICE void add_pointer_offset (LongIndex offset)
     add pointer offset More...
     
    template<typename Fragment >
    CUTLASS_HOST_DEVICE void load_post_increment (Fragment &fragment)
     Loads and increments iterator. More...
    - + @@ -300,6 +303,22 @@ template<typename TileTraits_ , typename Index_ = int>

    Static Public Attributes

    static MatrixLayout::Kind const kLayout = TileTraits_::kLayout
    static MatrixLayout::Kind const kLayout = TileTraits_::kLayout
     The layout. More...
     
    - Static Public Attributes inherited from cutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
    +
    + + +

    ◆ LongIndex

    + +
    +
    +
    +template<typename TileTraits_ , typename Index_ = int>
    + + + + +
    typedef long long cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::LongIndex
    +
    +
    @@ -383,58 +402,8 @@ template<typename TileTraits_ , typename Index_ = int>

    Constructor & Destructor Documentation

    - -

    ◆ GemmGlobalIteratorCd() [1/2]

    - -
    -
    -
    -template<typename TileTraits_ , typename Index_ = int>
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CUTLASS_HOST_DEVICE cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::GemmGlobalIteratorCd (Params const & _params,
    const Coord< 3 > & bounds,
    const Coord< 3 > & block_offset,
    ThreadOffset thread_offset_func = ThreadOffset() 
    )
    -
    -inline
    -
    - -
    -
    -

    ◆ GemmGlobalIteratorCd() [2/2]

    +

    ◆ GemmGlobalIteratorCd()

    @@ -496,8 +465,8 @@ template<typename TileTraits_ , typename Index_ = int>

    Member Function Documentation

    - -

    ◆ add_pointer_offset()

    + +

    ◆ add_pointer_offset()

    @@ -510,7 +479,7 @@ template<typename TileTraits_ , typename Index_ = int>
    CUTLASS_HOST_DEVICE void cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::add_pointer_offset ( - Index  + LongIndex  offset) @@ -922,7 +891,7 @@ template<typename TileTraits_ , typename Index_ = int>
    - +
    MatrixLayout::Kind const cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::kLayout = TileTraits_::kLayoutMatrixLayout::Kind const cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::kLayout = TileTraits_::kLayout
    @@ -988,7 +957,7 @@ template<typename TileTraits_ , typename Index_ = int> diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params-members.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params-members.html index 2492594f..9f1035d1 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params-members.html @@ -81,17 +81,18 @@ $(function() { - - - - - - - + + + + + + + +
    inc_advancecutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    inc_hcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    initialize(Pointer pointer, long long batch_stride, Index ldm, Index bound, Index epilogue_stride_w, Index epilogue_delta_w)cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Paramsinline
    pointercutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    predicate_inc_advancecutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    predicate_inc_hcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    predicate_offsetcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    stride_dcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    stride_hcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    initialize(Pointer pointer, int stride_d_, Index ldm, Index bound, Index epilogue_stride_w, Index epilogue_delta_w)cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Paramsinline
    initialize(Pointer pointer, long long _stride_d, Index _stride_h, Index _inc_advance, Index _inc_h, Index _predicate_inc_advance, Index _predicate_inc_h, Index _predicate_offset)cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Paramsinline
    pointercutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    predicate_inc_advancecutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    predicate_inc_hcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    predicate_offsetcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    stride_dcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    stride_hcutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params
    diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html index 7c1b1057..604f1638 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalIteratorCd_1_1Params.html @@ -97,9 +97,11 @@ Inheritance diagram for cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Ind - - - + + + + +

    Public Member Functions

    CUTLASS_HOST_DEVICE int initialize (Pointer pointer, long long batch_stride, Index ldm, Index bound, Index epilogue_stride_w, Index epilogue_delta_w)
     Setup the params. More...
     
    CUTLASS_HOST_DEVICE int initialize (Pointer pointer, int stride_d_, Index ldm, Index bound, Index epilogue_stride_w, Index epilogue_delta_w)
     Setup the params. More...
     
    CUTLASS_HOST_DEVICE int initialize (Pointer pointer, long long _stride_d, Index _stride_h, Index _inc_advance, Index _inc_h, Index _predicate_inc_advance, Index _predicate_inc_h, Index _predicate_offset)
     
    @@ -127,8 +129,8 @@ Public Attributes

    Public Attributes

     

    Member Function Documentation

    - -

    ◆ initialize()

    + +

    ◆ initialize() [1/2]

    @@ -147,8 +149,8 @@ template<typename TileTraits_ , typename Index_ = int>
    - long long  - batch_stride, + int  + stride_d_, @@ -187,6 +189,80 @@ template<typename TileTraits_ , typename Index_ = int>
    +
    + + +

    ◆ initialize() [2/2]

    + +
    +
    +
    +template<typename TileTraits_ , typename Index_ = int>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CUTLASS_HOST_DEVICE int cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Params::initialize (Pointer pointer,
    long long _stride_d,
    Index _stride_h,
    Index _inc_advance,
    Index _inc_h,
    Index _predicate_inc_advance,
    Index _predicate_inc_h,
    Index _predicate_offset 
    )
    +
    +inline
    +
    +

    Member Data Documentation

    @@ -324,7 +400,7 @@ template<typename TileTraits_ , typename Index_ = int> diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits-members.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits-members.html index 2cf66086..ce949199 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits-members.html @@ -98,7 +98,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html index 9de76685..a00a9b74 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html @@ -101,7 +101,7 @@ Classes - + @@ -155,7 +155,7 @@ Static Public Attributes - + @@ -175,7 +175,7 @@ Static Public Attributes template<typename Scalar_ , typename Tile_ , typename Threads_ , int kStrideH_, int kAccessSize_>

    Public Types

    typedef GemmGlobalTileTraits< GemmOperand::kC, MatrixLayout::kColumnMajor, Scalar_, Tile_, Threads_, kAccessSize_ > Base
    typedef GemmGlobalTileTraits< GemmOperand::kC, MatrixLayout::kColumnMajor, Scalar_, Tile_, Threads_, kAccessSize_ > Base
     The base class. More...
     
    typedef Shape< 0, 0, Base::Delta::kW, Base::Delta::kCDelta
    static GemmOperand::Kind const kOperand
     Identity of the operand. More...
     
    static MatrixLayout::Kind const kLayout
    static MatrixLayout::Kind const kLayout
     The layout. More...
     
    static int const kAccessSize
    - +
    typedef GemmGlobalTileTraits<GemmOperand::kC, MatrixLayout::kColumnMajor, Scalar_, Tile_, Threads_, kAccessSize_> cutlass::gemm::GemmGlobalTileCdTraits< Scalar_, Tile_, Threads_, kStrideH_, kAccessSize_ >::Basetypedef GemmGlobalTileTraits<GemmOperand::kC, MatrixLayout::kColumnMajor, Scalar_, Tile_, Threads_, kAccessSize_> cutlass::gemm::GemmGlobalTileCdTraits< Scalar_, Tile_, Threads_, kStrideH_, kAccessSize_ >::Base
    @@ -293,7 +293,7 @@ template<typename Scalar_ , typename Tile_ , typename Threads_ , int kStrideH
    diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset-members.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset-members.html index 192e27a0..370471cd 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset.html index 8feee54b..7e668826 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits_1_1ThreadOffset.html @@ -124,7 +124,7 @@ template<typename Scalar_ , typename Tile_ , typename Threads_ , int kStrideH diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits-members.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits-members.html index 652e9a86..e352c784 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html index 7f8c05e7..fecca485 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html @@ -137,7 +137,7 @@ Static Public Attributes static GemmOperand::Kind const kOperand = kOperand_  Identity of the operand. More...
      -static MatrixLayout::Kind const kLayout = kLayout_ +static MatrixLayout::Kind const kLayout = kLayout_  The layout. More...
      static int const kAccessSize = kAccessSize_ @@ -345,7 +345,7 @@ template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename S - +
    MatrixLayout::Kind const cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::kLayout = kLayout_MatrixLayout::Kind const cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::kLayout = kLayout_
    @@ -411,7 +411,7 @@ template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename S diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset-members.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset-members.html index 4937c4fc..1e2552b4 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset.html b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset.html index 50dc0a99..79eae227 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset.html +++ b/docs/structcutlass_1_1gemm_1_1GemmGlobalTileTraits_1_1ThreadOffset.html @@ -124,7 +124,7 @@ template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename S diff --git a/docs/structcutlass_1_1gemm_1_1GemmMultiplicandTraits-members.html b/docs/structcutlass_1_1gemm_1_1GemmMultiplicandTraits-members.html index bb831573..4102f564 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmMultiplicandTraits-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmMultiplicandTraits-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html b/docs/structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html index ca9cf537..60b17133 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html +++ b/docs/structcutlass_1_1gemm_1_1GemmMultiplicandTraits.html @@ -97,10 +97,10 @@ Static Public Attributes static GemmOperand::Kind const kUsage = Usage  Identifies multiplicand. More...
      -static MatrixLayout::Kind const kLayout = Layout +static MatrixLayout::Kind const kLayout = Layout  Layout of tile. More...
      -static bool const kKstrided = (kUsage == GemmOperand::kA ^ kLayout == MatrixLayout::kRowMajor) +static bool const kKstrided = (kUsage == GemmOperand::kA ^ kLayout == MatrixLayout::kRowMajor)  

    Detailed Description

    @@ -154,7 +154,7 @@ template<typename ThreadBlockTile_ , GemmOperand::Kind Usage, MatrixLayout::K - +
    bool const cutlass::gemm::GemmMultiplicandTraits< ThreadBlockTile_, Usage, Layout >::kKstrided = (kUsage == GemmOperand::kA ^ kLayout == MatrixLayout::kRowMajor)bool const cutlass::gemm::GemmMultiplicandTraits< ThreadBlockTile_, Usage, Layout >::kKstrided = (kUsage == GemmOperand::kA ^ kLayout == MatrixLayout::kRowMajor)
    @@ -178,7 +178,7 @@ template<typename ThreadBlockTile_ , GemmOperand::Kind Usage, MatrixLayout::K - +
    MatrixLayout::Kind const cutlass::gemm::GemmMultiplicandTraits< ThreadBlockTile_, Usage, Layout >::kLayout = LayoutMatrixLayout::Kind const cutlass::gemm::GemmMultiplicandTraits< ThreadBlockTile_, Usage, Layout >::kLayout = Layout
    @@ -220,7 +220,7 @@ template<typename ThreadBlockTile_ , GemmOperand::Kind Usage, MatrixLayout::K diff --git a/docs/structcutlass_1_1gemm_1_1GemmOperandTraitsAb-members.html b/docs/structcutlass_1_1gemm_1_1GemmOperandTraitsAb-members.html index 8ea3efa9..ef850f90 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmOperandTraitsAb-members.html +++ b/docs/structcutlass_1_1gemm_1_1GemmOperandTraitsAb-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/docs/structcutlass_1_1gemm_1_1GemmOperandTraitsAb.html b/docs/structcutlass_1_1gemm_1_1GemmOperandTraitsAb.html index 68f5c1a4..876dd38d 100644 --- a/docs/structcutlass_1_1gemm_1_1GemmOperandTraitsAb.html +++ b/docs/structcutlass_1_1gemm_1_1GemmOperandTraitsAb.html @@ -112,7 +112,7 @@ template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_>
    -Initial value:
    =
    (kOperand_ == GemmOperand::kA ^ kLayout_ == MatrixLayout::kRowMajor)
    +Initial value:
    =
    (kOperand_ == GemmOperand::kA ^ kLayout_ == MatrixLayout::kRowMajor)

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