CUTLASS 2.0 (#62)

CUTLASS 2.0

Substantially refactored for

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

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

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

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

Note: this commit and all that follow require a host compiler supporting C++11 or greater.
This commit is contained in:
Andrew Kerr
2019-11-19 16:55:34 -08:00
committed by GitHub
parent b5cab177a9
commit fb335f6a5f
5434 changed files with 599799 additions and 250176 deletions
+188 -60
View File
@@ -3,21 +3,23 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Cutlass: Class Members</title>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>CUTLASS: Class Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" async src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -26,8 +28,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="cutlass-logo-small.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Cutlass
<div id="projectname">CUTLASS
</div>
<div id="projectbrief">CUDA Templates for Linear Algebra Subroutines and Solvers</div>
</td>
@@ -36,22 +39,81 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
<li><a href="functions_type.html"><span>Typedefs</span></a></li>
<li><a href="functions_enum.html"><span>Enumerations</span></a></li>
<li><a href="functions_eval.html"><span>Enumerator</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="functions.html#index_a"><span>a</span></a></li>
<li><a href="functions_b.html#index_b"><span>b</span></a></li>
<li><a href="functions_c.html#index_c"><span>c</span></a></li>
<li class="current"><a href="functions_d.html#index_d"><span>d</span></a></li>
<li><a href="functions_e.html#index_e"><span>e</span></a></li>
<li><a href="functions_f.html#index_f"><span>f</span></a></li>
<li><a href="functions_g.html#index_g"><span>g</span></a></li>
<li><a href="functions_h.html#index_h"><span>h</span></a></li>
<li><a href="functions_i.html#index_i"><span>i</span></a></li>
<li><a href="functions_k.html#index_k"><span>k</span></a></li>
<li><a href="functions_l.html#index_l"><span>l</span></a></li>
<li><a href="functions_m.html#index_m"><span>m</span></a></li>
<li><a href="functions_n.html#index_n"><span>n</span></a></li>
<li><a href="functions_o.html#index_o"><span>o</span></a></li>
<li><a href="functions_p.html#index_p"><span>p</span></a></li>
<li><a href="functions_q.html#index_q"><span>q</span></a></li>
<li><a href="functions_r.html#index_r"><span>r</span></a></li>
<li><a href="functions_s.html#index_s"><span>s</span></a></li>
<li><a href="functions_t.html#index_t"><span>t</span></a></li>
<li><a href="functions_u.html#index_u"><span>u</span></a></li>
<li><a href="functions_v.html#index_v"><span>v</span></a></li>
<li><a href="functions_w.html#index_w"><span>w</span></a></li>
<li><a href="functions_y.html#index_y"><span>y</span></a></li>
<li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
@@ -70,12 +132,10 @@ $(function() {
<div class="contents">
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
<h3><a id="index_d"></a>- d -</h3><ul>
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>D
: <a class="el" href="structcutlass_1_1gemm_1_1GemmDesc.html#adf95451422c529587d55aac0fecf0d9f">cutlass::gemm::GemmDesc&lt; AType_, BType_, CType_, DType_, SType_, Index_ &gt;</a>
</li>
<li>d()
: <a class="el" href="structcutlass_1_1TileCoord.html#aec4ffcdc8fbf57a8b649fff38af55007">cutlass::TileCoord&lt; Index_ &gt;</a>
: <a class="el" href="structcutlass_1_1library_1_1GemmArguments.html#a2f4c0652e6632aebe6d9159c425ecc3f">cutlass::library::GemmArguments</a>
, <a class="el" href="structcutlass_1_1library_1_1GemmArrayArguments.html#ae6ccc3b91e9a77ad170d276f70fe2c30">cutlass::library::GemmArrayArguments</a>
</li>
<li>d_a
: <a class="el" href="structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#af1b12ba220602692e84616b420b00f1c">cutlass::reduction::BatchedReductionTraits&lt; ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ &gt;::Params</a>
@@ -87,55 +147,123 @@ $(function() {
: <a class="el" href="structcutlass_1_1reduction_1_1BatchedReductionTraits_1_1Params.html#abf9744373a72f3819a616b5a5b3bff22">cutlass::reduction::BatchedReductionTraits&lt; ScalarA_, ScalarC_, ScalarD_, ScalarAlphaBeta_, ScalarAccum_, ReductionSize_, OutputTile_, SubTile_, ThreadShape_, Index_, BlockSwizzle_, maxInReg_, maxOutReg_, Functor_ &gt;::Params</a>
</li>
<li>data()
: <a class="el" href="structcutlass_1_1gemm_1_1GemmEpilogueTraits_1_1SharedStorage.html#a0e05007f939b27e6a17dce5c2a49e3e0">cutlass::gemm::GemmEpilogueTraits&lt; OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ &gt;::SharedStorage</a>
, <a class="el" href="classcutlass_1_1TensorRef.html#ae1c80b524cd9491e2d499d703e1459f7">cutlass::TensorRef&lt; Storage_, Rank_, MapFunc_, StorageRank_, Index_, LongIndex_ &gt;</a>
, <a class="el" href="classcutlass_1_1TensorRef_3_01Storage___00_01Rank___00_01MapFunc___00_011_00_01Index___00_01LongIndex___01_4.html#a67b25cc51ce867b073feead7b94e6aa3">cutlass::TensorRef&lt; Storage_, Rank_, MapFunc_, 1, Index_, LongIndex_ &gt;</a>
, <a class="el" href="structcutlass_1_1TileAllocation.html#a69c43b27939e9ecebd23edb18ed3a9dc">cutlass::TileAllocation&lt; Scalar_, Shape_ &gt;</a>
: <a class="el" href="structcutlass_1_1AlignedBuffer.html#a8ed8b9d3469621fc82d0041846c59da2">cutlass::AlignedBuffer&lt; T, N, Align &gt;</a>
, <a class="el" href="classcutlass_1_1Array_3_01T_00_01N_00_01false_01_4.html#a1949c8a8c81dc2743328a56ff19fc933">cutlass::Array&lt; T, N, false &gt;</a>
, <a class="el" href="classcutlass_1_1Array_3_01T_00_01N_00_01true_01_4.html#af47ab51582aa1e4c811a9e111b594556">cutlass::Array&lt; T, N, true &gt;</a>
, <a class="el" href="structcutlass_1_1epilogue_1_1threadblock_1_1EpilogueBase_1_1SharedStorage.html#a2d57be4f0bdad670c7eb67e64dd1a9f5">cutlass::epilogue::threadblock::EpilogueBase&lt; Shape_, WarpMmaOperator_, PartitionsK, AccumulatorFragmentIterator_, WarpTileIterator_, Padding_ &gt;::SharedStorage</a>
, <a class="el" href="classcutlass_1_1TensorRef.html#ac7db3ca62ab1dfe0d3ea08bcadbc9352">cutlass::TensorRef&lt; Element_, Layout_ &gt;</a>
</li>
<li>decrement()
: <a class="el" href="classcutlass_1_1ZipTileIterator.html#a6f2f86a1d23ccbaed285550a1d1f92e6">cutlass::ZipTileIterator&lt; First_, Second_ &gt;</a>
<li>debug_print()
: <a class="el" href="structcutlass_1_1epilogue_1_1threadblock_1_1EpilogueBase_1_1SharedStorage.html#afd521c2dc754bb30024e8767bfc51e49">cutlass::epilogue::threadblock::EpilogueBase&lt; Shape_, WarpMmaOperator_, PartitionsK, AccumulatorFragmentIterator_, WarpTileIterator_, Padding_ &gt;::SharedStorage</a>
</li>
<li>Default
: <a class="el" href="structcutlass_1_1gemm_1_1kernel_1_1DefaultGemmSplitKParallel.html#a839689cbd754a38f8b5e2bb41465069e">cutlass::gemm::kernel::DefaultGemmSplitKParallel&lt; ElementA_, LayoutA_, kAlignmentA, ElementB_, LayoutB_, kAlignmentB, ElementC_, LayoutC_, ElementAccumulator, OperatorClass, ArchTag, ThreadblockShape, WarpShape, InstructionShape, EpilogueOutputOp, ThreadblockSwizzle, Stages, Operator &gt;</a>
</li>
<li>DefaultBlockSwizzle()
: <a class="el" href="structcutlass_1_1reduction_1_1DefaultBlockSwizzle.html#a1ad8edda7b73d23fb5592a531f5736cc">cutlass::reduction::DefaultBlockSwizzle</a>
</li>
<li>DefaultGemmKernel
: <a class="el" href="classcutlass_1_1gemm_1_1device_1_1GemmBatched.html#a6acd50cfc477e95dbcf0d4fbba5df65c">cutlass::gemm::device::GemmBatched&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, Operator_ &gt;</a>
</li>
<li>deleter_type
: <a class="el" href="classcutlass_1_1platform_1_1unique__ptr.html#a85cab9945c36dc56bd7d6adf30c0d252">cutlass::platform::unique_ptr&lt; T, Deleter &gt;</a>
</li>
<li>delta
: <a class="el" href="structcutlass_1_1Distribution.html#a77613df810c3f8f68b595599802cedb4">cutlass::Distribution</a>
</li>
<li>Delta
: <a class="el" href="structcutlass_1_1gemm_1_1GemmEpilogueTraits.html#a84b89d856f548a26fa1dc15bfd2940da">cutlass::gemm::GemmEpilogueTraits&lt; OutputTile_, Accumulators_, GlobalLoadIteratorC_, GlobalTransformerC_, GlobalTransformerD_, GlobalStoreIteratorD_, SharedStoreIteratorD_, SharedStoreTransformerD_, SharedLoadStreamD_, Iterations_, Delta_, Functor_, Index_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1GemmEpilogueTraitsHelper.html#aede069e51e0732a9648c437261bd4d66">cutlass::gemm::GemmEpilogueTraitsHelper&lt; GemmConfig_, EpilogueFunctor_, Index_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1GemmGlobalTileCdTraits.html#aba61fb6e93a6423ab72c082c280f5db4">cutlass::gemm::GemmGlobalTileCdTraits&lt; Scalar_, Tile_, Threads_, kStrideH_, kAccessSize_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1GemmGlobalTileTraits.html#a07bb48f99000256f04f00564a4371c2f">cutlass::gemm::GemmGlobalTileTraits&lt; kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1GemmSharedLoadTileATraits.html#a134a02091bf4360d2cbca56624e52024">cutlass::gemm::GemmSharedLoadTileATraits&lt; Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1GemmSharedLoadTileBTraits.html#adcede218eec980903221feb664cad3a1">cutlass::gemm::GemmSharedLoadTileBTraits&lt; Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, InstructionShape_, kStages_, kScalarsPerLds_, kSkew_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1GemmSharedLoadTileDTraits.html#a2cd23d3b5e2cb64c6d5e9b1d6a78fbce">cutlass::gemm::GemmSharedLoadTileDTraits&lt; Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kTileH_, kScalarsPerLds_, kSkew_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1GemmSharedStoreTileAbTraits.html#a645f65f7d8f123936b286521df470224">cutlass::gemm::GemmSharedStoreTileAbTraits&lt; Scalar_, Tile_, Threads_, kScalarsPerSts_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1GemmSharedStoreTileDTraits.html#a5587ef22f419ab9a7c6117917cc99c57">cutlass::gemm::GemmSharedStoreTileDTraits&lt; Scalar_, OutputTile_, Warps_, ThreadsPerWarp_, kScalarsPerSts_, kSkew_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1GemmSharedStoreWithSkewTileAbTraits.html#afd691b764b7d105a1ed41dada6049e71">cutlass::gemm::GemmSharedStoreWithSkewTileAbTraits&lt; Scalar_, Tile_, Threads_, kScalarsPerSts_, kSkew_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1HgemmCrosswiseGlobalTileTraits.html#a8f8de5a6811b77f0c721cd78a237223e">cutlass::gemm::HgemmCrosswiseGlobalTileTraits&lt; kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1IgemmEpilogueTraitsHelper.html#aed055504ec5f09657e059416150188a9">cutlass::gemm::IgemmEpilogueTraitsHelper&lt; IgemmConfig_, EpilogueFunctor_, Index_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1IgemmGlobalTileTraits.html#adab639892c3586464e2ea5f947b9e0f0">cutlass::gemm::IgemmGlobalTileTraits&lt; kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ &gt;</a>
, <a class="el" href="structcutlass_1_1gemm_1_1WmmaGemmGlobalIteratorCdTraits.html#ab55665f7c2f2cb8b8b9b8ac852d48002">cutlass::gemm::WmmaGemmGlobalIteratorCdTraits&lt; Scalar_, Tile_, Threads_, kAccessSize_ &gt;</a>
, <a class="el" href="structcutlass_1_1RegularTilePredicateFunctor.html#acd32282ce7852c4669098c06bcd9a360">cutlass::RegularTilePredicateFunctor&lt; Delta_ &gt;</a>
, <a class="el" href="structcutlass_1_1TileIteratorBase.html#a9aaac43bc2258e06824c354a068e7815">cutlass::TileIteratorBase&lt; Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ &gt;</a>
, <a class="el" href="structcutlass_1_1TileLoadIterator.html#afc68649cb9bb32931b27e711c7ce2604">cutlass::TileLoadIterator&lt; Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ &gt;</a>
, <a class="el" href="structcutlass_1_1TileStoreIterator.html#afdb38f790d9c7cf1ac238643103b45ce">cutlass::TileStoreIterator&lt; Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, FragmentElementType_, Skew_ &gt;</a>
, <a class="el" href="structcutlass_1_1TileTraits.html#ad6d99ccf2fcd2bd47e45d068f4d99c82">cutlass::TileTraits&lt; Tile_, Delta_, Iterations_, ThreadOffset_, AccessSize &gt;</a>
, <a class="el" href="structcutlass_1_1TileTraitsContiguousMajor.html#ab1a4945bf562debeee1af813288e5896">cutlass::TileTraitsContiguousMajor&lt; Tile_, Threads &gt;</a>
, <a class="el" href="structcutlass_1_1TileTraitsStrideMajor.html#a47404b4527b101e286347714aea687d5">cutlass::TileTraitsStrideMajor&lt; Tile_, Threads &gt;</a>
, <a class="el" href="structcutlass_1_1TileTraitsWarpRake.html#a3ce218b223c5716af40c316899324bbe">cutlass::TileTraitsWarpRake&lt; Tile_, Threads &gt;</a>
: <a class="el" href="structcutlass_1_1epilogue_1_1threadblock_1_1InterleavedOutputTileThreadMap.html#a78a41e1ae9167d0746815de4ac9a3f9c">cutlass::epilogue::threadblock::InterleavedOutputTileThreadMap&lt; WarpCount_, MmaCount_, Threads, ElementsPerAccess, ElementSize &gt;</a>
, <a class="el" href="structcutlass_1_1epilogue_1_1threadblock_1_1OutputTileOptimalThreadMap_1_1CompactedThreadMap.html#ab50601383eae7a10595aba985bb83d58">cutlass::epilogue::threadblock::OutputTileOptimalThreadMap&lt; Shape_, Count_, Threads, ElementsPerAccess, ElementSize &gt;::CompactedThreadMap</a>
, <a class="el" href="structcutlass_1_1epilogue_1_1threadblock_1_1OutputTileOptimalThreadMap.html#a76da5585b34f64eb22432a1f04a95548">cutlass::epilogue::threadblock::OutputTileOptimalThreadMap&lt; Shape_, Count_, Threads, ElementsPerAccess, ElementSize &gt;</a>
, <a class="el" href="structcutlass_1_1epilogue_1_1threadblock_1_1OutputTileThreadMap.html#ae083ea17a4ed1c6b8032a46b2344b4af">cutlass::epilogue::threadblock::OutputTileThreadMap&lt; ThreadMap_, Shape_, Iterations_, Delta_, Count_ &gt;</a>
, <a class="el" href="classcutlass_1_1gemm_1_1warp_1_1MmaSimtTileIterator_3_01Shape___00_01Operand_1_1kC_00_01Element_4ccafbc821b3a55cd532602442a74031.html#a67ed49d8344f29e7c85e2248020d80af">cutlass::gemm::warp::MmaSimtTileIterator&lt; Shape_, Operand::kC, Element_, layout::ColumnMajor, Policy_ &gt;</a>
, <a class="el" href="classcutlass_1_1gemm_1_1warp_1_1MmaSimtTileIterator_3_01Shape___00_01Operand_1_1kC_00_01Element_8f92ea79e85febb67169c4b2d94b1b20.html#a4cf7081daf014063f4a8a652ee0d47b4">cutlass::gemm::warp::MmaSimtTileIterator&lt; Shape_, Operand::kC, Element_, layout::RowMajor, Policy_ &gt;</a>
, <a class="el" href="structcutlass_1_1transform_1_1PitchLinear2DThreadTileStripminedThreadMap_3_01Shape___00_01Thread0082c3467229b12cc9dd996283ee7160.html#abc06fa8bfb735fee7e8d89eee42842d7">cutlass::transform::PitchLinear2DThreadTileStripminedThreadMap&lt; Shape_, Threads, cutlass::layout::PitchLinearShape&lt; 4, 4 &gt; &gt;</a>
, <a class="el" href="structcutlass_1_1transform_1_1PitchLinearStripminedThreadMap.html#aed1e512ae8dde49bdbba25a966026e27">cutlass::transform::PitchLinearStripminedThreadMap&lt; Shape_, Threads, ElementsPerAccess &gt;</a>
, <a class="el" href="structcutlass_1_1transform_1_1PitchLinearTilePolicyStripminedThreadContiguous.html#a7a67bb78b04e55c44fbd9a2255171c53">cutlass::transform::PitchLinearTilePolicyStripminedThreadContiguous&lt; Shape, Threads, ElementsPerAccess &gt;</a>
, <a class="el" href="structcutlass_1_1transform_1_1PitchLinearTilePolicyStripminedThreadStrided.html#a2019db51b4d5aed441fe31f6c7ec3707">cutlass::transform::PitchLinearTilePolicyStripminedThreadStrided&lt; Shape, Threads, ElementsPerAccess &gt;</a>
, <a class="el" href="structcutlass_1_1transform_1_1PitchLinearWarpRakedThreadMap.html#a2b34c242897c93f99d1bf402ab53cf11">cutlass::transform::PitchLinearWarpRakedThreadMap&lt; Shape_, Threads, WarpThreadArrangement_, ElementsPerAccess &gt;</a>
, <a class="el" href="structcutlass_1_1transform_1_1PitchLinearWarpStripedThreadMap.html#a8c898ce4cdfff0eb223534c0607eb9e3">cutlass::transform::PitchLinearWarpStripedThreadMap&lt; Shape_, Threads, WarpThreadArrangement_, ElementsPerAccess &gt;</a>
, <a class="el" href="structcutlass_1_1transform_1_1TransposePitchLinearThreadMap2DThreadTile.html#a674092700284a0aec2665e7ea118a024">cutlass::transform::TransposePitchLinearThreadMap2DThreadTile&lt; ThreadMap_ &gt;</a>
, <a class="el" href="structcutlass_1_1transform_1_1TransposePitchLinearThreadMap.html#adfa87c73e85a088159450b488e0311d6">cutlass::transform::TransposePitchLinearThreadMap&lt; ThreadMap_, WarpThreadArrangement_ &gt;</a>
, <a class="el" href="structcutlass_1_1transform_1_1TransposePitchLinearThreadMapSimt.html#a97a631b10803b78d757d8dffce39b54d">cutlass::transform::TransposePitchLinearThreadMapSimt&lt; ThreadMap_ &gt;</a>
</li>
<li>DeviceGemm()
: <a class="el" href="structcutlass_1_1gemm_1_1DeviceGemm.html#a92a8c036506655623737eecca9aceeb8">cutlass::gemm::DeviceGemm&lt; DeviceGemmTraits_ &gt;</a>
<li>denorm_min()
: <a class="el" href="structstd_1_1numeric__limits_3_01cutlass_1_1half__t_01_4.html#a2c05c19022c183e8734ada65c8970af5">std::numeric_limits&lt; cutlass::half_t &gt;</a>
</li>
<li>dhw()
: <a class="el" href="structcutlass_1_1TileCoord.html#abe65d1a0ff3798b662376032d51e9713">cutlass::TileCoord&lt; Index_ &gt;</a>
<li>description()
: <a class="el" href="classcutlass_1_1library_1_1Operation.html#a62b9fbee4b72857214ca6c01874a27ce">cutlass::library::Operation</a>
</li>
<li>destination
: <a class="el" href="structcutlass_1_1reduction_1_1kernel_1_1ReduceSplitK_1_1Params.html#a08089218798599f5f47184f8c94723cb">cutlass::reduction::kernel::ReduceSplitK&lt; Shape_, OutputOp_, ReductionOp_, PartitionsPerStage &gt;::Params</a>
</li>
<li>destination_ref
: <a class="el" href="structcutlass_1_1epilogue_1_1threadblock_1_1DirectEpilogueTensorOp_1_1Params.html#a89d406e705b7817243e3aa9d4253bb14">cutlass::epilogue::threadblock::DirectEpilogueTensorOp&lt; Shape_, Operator_, PartitionsK, Element_, OutputOp_, ConvertOp_ &gt;::Params</a>
</li>
<li>device_backed()
: <a class="el" href="classcutlass_1_1HostTensor.html#a73430856f79bedb64f9cf6b2044f38e3">cutlass::HostTensor&lt; Element_, Layout_ &gt;</a>
</li>
<li>device_data()
: <a class="el" href="classcutlass_1_1HostTensor.html#aca2b28a16fc92d29102d00f154a1dfd1">cutlass::HostTensor&lt; Element_, Layout_ &gt;</a>
</li>
<li>device_data_ptr_offset()
: <a class="el" href="classcutlass_1_1HostTensor.html#a81043b0539c8d18c40957411dd149e28">cutlass::HostTensor&lt; Element_, Layout_ &gt;</a>
</li>
<li>device_ref()
: <a class="el" href="classcutlass_1_1HostTensor.html#a55a73e5ff7c7404c0bdee5f2b578b876">cutlass::HostTensor&lt; Element_, Layout_ &gt;</a>
</li>
<li>device_type
: <a class="el" href="structcutlass_1_1TypeTraits.html#a0fff5d43bdc223aab64e32dd045e6c4c">cutlass::TypeTraits&lt; T &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01complex_3_01double_01_4_01_4.html#a9aeac5291f73780ee4fd7c33966f56a3">cutlass::TypeTraits&lt; complex&lt; double &gt; &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01complex_3_01float_01_4_01_4.html#a226f54f55c3a2154e89632ca81a99789">cutlass::TypeTraits&lt; complex&lt; float &gt; &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01complex_3_01half_01_4_01_4.html#a01f6604dff64aedba173c1ceae9fd773">cutlass::TypeTraits&lt; complex&lt; half &gt; &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01complex_3_01half__t_01_4_01_4.html#a7213cece86548037bcf7ad229633629d">cutlass::TypeTraits&lt; complex&lt; half_t &gt; &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01double_01_4.html#abcb11e62d2ccc2fce7577ef63b2c1cf0">cutlass::TypeTraits&lt; double &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01float_01_4.html#aa4d3935a9d7fe380f6177020c9ef45be">cutlass::TypeTraits&lt; float &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01half__t_01_4.html#abdd84ca5cd2fe5209602fa730561a85c">cutlass::TypeTraits&lt; half_t &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01int_01_4.html#a03dd152e9eff97c5b378fbdd7fc6abb5">cutlass::TypeTraits&lt; int &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01int64__t_01_4.html#ad67f4b5261dd7d128c97c74b86a55cc8">cutlass::TypeTraits&lt; int64_t &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01int8__t_01_4.html#a3569c760289b932f6acebffe42a1ff92">cutlass::TypeTraits&lt; int8_t &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01uint64__t_01_4.html#a9bc248b7cd871ca79a73e3321ef5c1d0">cutlass::TypeTraits&lt; uint64_t &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01uint8__t_01_4.html#a582965751efd761e874611a3282dbe34">cutlass::TypeTraits&lt; uint8_t &gt;</a>
, <a class="el" href="structcutlass_1_1TypeTraits_3_01unsigned_01_4.html#aa303609d2c6f1618d9360190f3e450a8">cutlass::TypeTraits&lt; unsigned &gt;</a>
</li>
<li>device_view()
: <a class="el" href="classcutlass_1_1HostTensor.html#a6d1c49888cf678d3d5469eba4e911337">cutlass::HostTensor&lt; Element_, Layout_ &gt;</a>
</li>
<li>diag
: <a class="el" href="structcutlass_1_1reference_1_1device_1_1detail_1_1TensorFillDiagonalFunc_1_1Params.html#abcbca40684cd478a53c0cc80c8e418e1">cutlass::reference::device::detail::TensorFillDiagonalFunc&lt; Element, Layout &gt;::Params</a>
, <a class="el" href="structcutlass_1_1reference_1_1device_1_1detail_1_1TensorUpdateDiagonalFunc_1_1Params.html#adc562519d503d235a49b11a8f2fc2bf6">cutlass::reference::device::detail::TensorUpdateDiagonalFunc&lt; Element, Layout &gt;::Params</a>
, <a class="el" href="structcutlass_1_1reference_1_1host_1_1detail_1_1TensorFillDiagonalFunc.html#a027d9ae77e068454e8df798018276c18">cutlass::reference::host::detail::TensorFillDiagonalFunc&lt; Element, Layout &gt;</a>
</li>
<li>Diagonal
: <a class="el" href="classcutlass_1_1thread_1_1Matrix.html#a7f68cf22835050f9c77df48750e278f2">cutlass::thread::Matrix&lt; Element, Rows, Columns, Layout &gt;</a>
</li>
<li>difference_type
: <a class="el" href="structcutlass_1_1AlignedBuffer.html#a68527eff431854311f0221aa61e1c94d">cutlass::AlignedBuffer&lt; T, N, Align &gt;</a>
, <a class="el" href="classcutlass_1_1Array_3_01T_00_01N_00_01false_01_4.html#af8dd11bf19216707ab3340b66833c9c9">cutlass::Array&lt; T, N, false &gt;</a>
, <a class="el" href="classcutlass_1_1Array_3_01T_00_01N_00_01true_01_4.html#a7ffe7541c2cadd34bc6e65ad351772ce">cutlass::Array&lt; T, N, true &gt;</a>
</li>
<li>digits
: <a class="el" href="structstd_1_1numeric__limits_3_01cutlass_1_1half__t_01_4.html#a92152311525685a53c6a0db4cb74f193">std::numeric_limits&lt; cutlass::half_t &gt;</a>
</li>
<li>DirectEpilogueTensorOp()
: <a class="el" href="classcutlass_1_1epilogue_1_1threadblock_1_1DirectEpilogueTensorOp.html#a7a64b4523780869f4b7dde2225572b2f">cutlass::epilogue::threadblock::DirectEpilogueTensorOp&lt; Shape_, Operator_, PartitionsK, Element_, OutputOp_, ConvertOp_ &gt;</a>
</li>
<li>Distribution()
: <a class="el" href="structcutlass_1_1Distribution.html#a40f0b9d0f92199f8a49c931d34dd8c8a">cutlass::Distribution</a>
</li>
<li>dot()
: <a class="el" href="structcutlass_1_1Coord.html#a0acc37908acb6b879c37f54ff7ffc93d">cutlass::Coord&lt; Rank_, Index_ &gt;</a>
: <a class="el" href="structcutlass_1_1Coord.html#a057a417a4d4a6e2f69e0b55a6f7ee902">cutlass::Coord&lt; Rank_, Index_, LongIndex_ &gt;</a>
</li>
<li>DType
: <a class="el" href="structcutlass_1_1gemm_1_1GemmDesc.html#a837a1c513f71ddb2729f8d2e6320b8cd">cutlass::gemm::GemmDesc&lt; AType_, BType_, CType_, DType_, SType_, Index_ &gt;</a>
<li>dp4a_type
: <a class="el" href="classcutlass_1_1gemm_1_1warp_1_1MmaSimt.html#a05844d5ebdefec80551d620dd05c4d18">cutlass::gemm::warp::MmaSimt&lt; Shape_, ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, Policy_, PartitionsK, Enable &gt;</a>
</li>
<li>dst
: <a class="el" href="structcutlass_1_1reference_1_1host_1_1detail_1_1TensorCopyIf.html#a0d94963e36e238233ddb550845b37004">cutlass::reference::host::detail::TensorCopyIf&lt; DstElement, DstLayout, SrcElement, SrcLayout, F &gt;</a>
</li>
<li>DstTensorView
: <a class="el" href="structcutlass_1_1reference_1_1host_1_1detail_1_1TensorCopyIf.html#af25c3242565e3600b4ab447c2fc47f2d">cutlass::reference::host::detail::TensorCopyIf&lt; DstElement, DstLayout, SrcElement, SrcLayout, F &gt;</a>
</li>
<li>dynamic_smem
: <a class="el" href="structcutlass_1_1KernelLaunchConfiguration.html#a4a6ac693d4284c84301279219623e2bc">cutlass::KernelLaunchConfiguration</a>
@@ -144,9 +272,9 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Oct 26 2018 14:53:41 for Cutlass by &#160;<a href="http://www.doxygen.org/index.html">
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</a> 1.8.11
</small></address>
</body>
</html>