cutlass/docs/classcutlass_1_1gemm_1_1dev...

934 lines
129 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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.11"/>
<title>CUTLASS: cutlass::gemm::device::Gemm&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt; Class Template Reference</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" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<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>
<div id="projectbrief">CUDA Templates for Linear Algebra Subroutines and Solvers</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<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><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacecutlass.html">cutlass</a></li><li class="navelem"><a class="el" href="namespacecutlass_1_1gemm.html">gemm</a></li><li class="navelem"><a class="el" href="namespacecutlass_1_1gemm_1_1device.html">device</a></li><li class="navelem"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">Gemm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="classcutlass_1_1gemm_1_1device_1_1Gemm-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">cutlass::gemm::device::Gemm&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="include_2cutlass_2gemm_2device_2gemm_8h_source.html">gemm.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html">Arguments</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Argument structure. <a href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:adf1ec9ab942ed20321cb91f02154abf0"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#adf1ec9ab942ed20321cb91f02154abf0">ElementA</a> = ElementA_</td></tr>
<tr class="separator:adf1ec9ab942ed20321cb91f02154abf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bbefc44e1ed6822dc8a4e2edc2b276b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a6bbefc44e1ed6822dc8a4e2edc2b276b">LayoutA</a> = LayoutA_</td></tr>
<tr class="separator:a6bbefc44e1ed6822dc8a4e2edc2b276b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc766f8e09f9eb55d50ad23184022c2d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#afc766f8e09f9eb55d50ad23184022c2d">TensorRefA</a> = <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt; <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#adf1ec9ab942ed20321cb91f02154abf0">ElementA</a> const, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a6bbefc44e1ed6822dc8a4e2edc2b276b">LayoutA</a> &gt;</td></tr>
<tr class="separator:afc766f8e09f9eb55d50ad23184022c2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d04e3640e81787a28956c75acde997e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a7d04e3640e81787a28956c75acde997e">ElementB</a> = ElementB_</td></tr>
<tr class="separator:a7d04e3640e81787a28956c75acde997e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab389fd311c5763587315c210f40a11f2"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ab389fd311c5763587315c210f40a11f2">LayoutB</a> = LayoutB_</td></tr>
<tr class="separator:ab389fd311c5763587315c210f40a11f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137892b19acbb4aff34198ab8fdd7c0d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a137892b19acbb4aff34198ab8fdd7c0d">TensorRefB</a> = <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt; <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a7d04e3640e81787a28956c75acde997e">ElementB</a> const, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ab389fd311c5763587315c210f40a11f2">LayoutB</a> &gt;</td></tr>
<tr class="separator:a137892b19acbb4aff34198ab8fdd7c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4c31798e982518db6a8fe66e63962e6"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af4c31798e982518db6a8fe66e63962e6">ElementC</a> = ElementC_</td></tr>
<tr class="separator:af4c31798e982518db6a8fe66e63962e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93acaff17a5916bc11040a9ddf04d9f2"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a93acaff17a5916bc11040a9ddf04d9f2">LayoutC</a> = LayoutC_</td></tr>
<tr class="separator:a93acaff17a5916bc11040a9ddf04d9f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d593dfa19efc9ec65373031ed9f9202"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a2d593dfa19efc9ec65373031ed9f9202">TensorRefC</a> = <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt; <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af4c31798e982518db6a8fe66e63962e6">ElementC</a> const, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a93acaff17a5916bc11040a9ddf04d9f2">LayoutC</a> &gt;</td></tr>
<tr class="separator:a2d593dfa19efc9ec65373031ed9f9202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af39d838d8ab3bba97f555afb714663f2"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af39d838d8ab3bba97f555afb714663f2">TensorRefD</a> = <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt; <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af4c31798e982518db6a8fe66e63962e6">ElementC</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a93acaff17a5916bc11040a9ddf04d9f2">LayoutC</a> &gt;</td></tr>
<tr class="separator:af39d838d8ab3bba97f555afb714663f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad35f92eaf14c268f8bda2a0e48399a9a"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ad35f92eaf14c268f8bda2a0e48399a9a">ElementAccumulator</a> = ElementAccumulator_</td></tr>
<tr class="separator:ad35f92eaf14c268f8bda2a0e48399a9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a359e8eaddc486fcd0e15b879b11247ad"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a359e8eaddc486fcd0e15b879b11247ad">OperatorClass</a> = OperatorClass_</td></tr>
<tr class="separator:a359e8eaddc486fcd0e15b879b11247ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe7ab8c15e83c6cd59b6bcf3fe6e48c0"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#afe7ab8c15e83c6cd59b6bcf3fe6e48c0">ArchTag</a> = ArchTag_</td></tr>
<tr class="separator:afe7ab8c15e83c6cd59b6bcf3fe6e48c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01ef9ea6588f488e8d727e36bdec8ba8"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a01ef9ea6588f488e8d727e36bdec8ba8">ThreadblockShape</a> = ThreadblockShape_</td></tr>
<tr class="separator:a01ef9ea6588f488e8d727e36bdec8ba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb5bd27efee1575710e6e4157e32449d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#adb5bd27efee1575710e6e4157e32449d">WarpShape</a> = WarpShape_</td></tr>
<tr class="separator:adb5bd27efee1575710e6e4157e32449d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac98211b8adf5c18b4b6c54c5d1cdbb1a"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ac98211b8adf5c18b4b6c54c5d1cdbb1a">InstructionShape</a> = InstructionShape_</td></tr>
<tr class="separator:ac98211b8adf5c18b4b6c54c5d1cdbb1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af34b612740d98d3066b2b14785f9e415"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af34b612740d98d3066b2b14785f9e415">EpilogueOutputOp</a> = EpilogueOutputOp_</td></tr>
<tr class="separator:af34b612740d98d3066b2b14785f9e415"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1eda40e6a86fb3ebeabed2f717e47ced"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a1eda40e6a86fb3ebeabed2f717e47ced">ThreadblockSwizzle</a> = ThreadblockSwizzle_</td></tr>
<tr class="separator:a1eda40e6a86fb3ebeabed2f717e47ced"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f8a0ff6be313d9f2aac2de4259f65b4"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a6f8a0ff6be313d9f2aac2de4259f65b4">Operator</a> = Operator_</td></tr>
<tr class="separator:a6f8a0ff6be313d9f2aac2de4259f65b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a431ea9cb851566df881457a0f496b976"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a431ea9cb851566df881457a0f496b976">GemmKernel</a> = typename <a class="el" href="structcutlass_1_1gemm_1_1kernel_1_1DefaultGemm.html">kernel::DefaultGemm</a>&lt; <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#adf1ec9ab942ed20321cb91f02154abf0">ElementA</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a6bbefc44e1ed6822dc8a4e2edc2b276b">LayoutA</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ad0f1a2669ecc62f24922613e9bad857f">kAlignmentA</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a7d04e3640e81787a28956c75acde997e">ElementB</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ab389fd311c5763587315c210f40a11f2">LayoutB</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a30809c4843226401b9d2da5ecb8d838b">kAlignmentB</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af4c31798e982518db6a8fe66e63962e6">ElementC</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a93acaff17a5916bc11040a9ddf04d9f2">LayoutC</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ad35f92eaf14c268f8bda2a0e48399a9a">ElementAccumulator</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a359e8eaddc486fcd0e15b879b11247ad">OperatorClass</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#afe7ab8c15e83c6cd59b6bcf3fe6e48c0">ArchTag</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a01ef9ea6588f488e8d727e36bdec8ba8">ThreadblockShape</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#adb5bd27efee1575710e6e4157e32449d">WarpShape</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ac98211b8adf5c18b4b6c54c5d1cdbb1a">InstructionShape</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af34b612740d98d3066b2b14785f9e415">EpilogueOutputOp</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a1eda40e6a86fb3ebeabed2f717e47ced">ThreadblockSwizzle</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a5cd83a90660626f6c446d45881f0fc22">kStages</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af3c79a0271e684d93c3dca5ad230f45f">kSplitKSerial</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a6f8a0ff6be313d9f2aac2de4259f65b4">Operator</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a0303e85432228170eba7dc4b418c86b4">kIsBetaZero</a> &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a431ea9cb851566df881457a0f496b976">GemmKernel</a></td></tr>
<tr class="memdesc:a431ea9cb851566df881457a0f496b976"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define the kernel. <a href="#a431ea9cb851566df881457a0f496b976">More...</a><br /></td></tr>
<tr class="separator:a431ea9cb851566df881457a0f496b976"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aec04d65c6265eb5f63d703f2dd99cb3f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#aec04d65c6265eb5f63d703f2dd99cb3f">Gemm</a> ()</td></tr>
<tr class="memdesc:aec04d65c6265eb5f63d703f2dd99cb3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs the GEMM. <a href="#aec04d65c6265eb5f63d703f2dd99cb3f">More...</a><br /></td></tr>
<tr class="separator:aec04d65c6265eb5f63d703f2dd99cb3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53d79d1b434100da1e466e6378ec43ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a53d79d1b434100da1e466e6378ec43ab">initialize</a> (<a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html">Arguments</a> const &amp;args, void *workspace=<a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a>, cudaStream_t stream=<a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a>)</td></tr>
<tr class="memdesc:a53d79d1b434100da1e466e6378ec43ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes GEMM state from arguments. <a href="#a53d79d1b434100da1e466e6378ec43ab">More...</a><br /></td></tr>
<tr class="separator:a53d79d1b434100da1e466e6378ec43ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaa871717d2fbe254a434160bc5acc65"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#aaaa871717d2fbe254a434160bc5acc65">update</a> (<a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html">Arguments</a> const &amp;args, void *workspace=<a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a>)</td></tr>
<tr class="memdesc:aaaa871717d2fbe254a434160bc5acc65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lightweight update given a subset of arguments. <a href="#aaaa871717d2fbe254a434160bc5acc65">More...</a><br /></td></tr>
<tr class="separator:aaaa871717d2fbe254a434160bc5acc65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef8c133e539ef91efc9dba9012118147"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#aef8c133e539ef91efc9dba9012118147">run</a> (cudaStream_t stream=<a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a>)</td></tr>
<tr class="memdesc:aef8c133e539ef91efc9dba9012118147"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the kernel using initialized state. <a href="#aef8c133e539ef91efc9dba9012118147">More...</a><br /></td></tr>
<tr class="separator:aef8c133e539ef91efc9dba9012118147"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a114b9c14e102d333ef3dcad7865a4efb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a114b9c14e102d333ef3dcad7865a4efb">operator()</a> (cudaStream_t stream=<a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a>)</td></tr>
<tr class="memdesc:a114b9c14e102d333ef3dcad7865a4efb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the kernel using initialized state. <a href="#a114b9c14e102d333ef3dcad7865a4efb">More...</a><br /></td></tr>
<tr class="separator:a114b9c14e102d333ef3dcad7865a4efb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35d9f803fdfbbd4608243881c04316dc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a35d9f803fdfbbd4608243881c04316dc">operator()</a> (<a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html">Arguments</a> const &amp;args, void *workspace=<a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a>, cudaStream_t stream=<a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a>)</td></tr>
<tr class="memdesc:a35d9f803fdfbbd4608243881c04316dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the kernel using initialized state. <a href="#a35d9f803fdfbbd4608243881c04316dc">More...</a><br /></td></tr>
<tr class="separator:a35d9f803fdfbbd4608243881c04316dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a40ad889da7ff420fd9f9000cd9f98e32"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a40ad889da7ff420fd9f9000cd9f98e32">can_implement</a> (<a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html">Arguments</a> const &amp;args)</td></tr>
<tr class="memdesc:a40ad889da7ff420fd9f9000cd9f98e32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether the GEMM can execute the given problem. <a href="#a40ad889da7ff420fd9f9000cd9f98e32">More...</a><br /></td></tr>
<tr class="separator:a40ad889da7ff420fd9f9000cd9f98e32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fec423a58e8de8ff7b015e5167ac614"><td class="memItemLeft" align="right" valign="top">static size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a0fec423a58e8de8ff7b015e5167ac614">get_workspace_size</a> (<a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html">Arguments</a> const &amp;args)</td></tr>
<tr class="memdesc:a0fec423a58e8de8ff7b015e5167ac614"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the workspace size. <a href="#a0fec423a58e8de8ff7b015e5167ac614">More...</a><br /></td></tr>
<tr class="separator:a0fec423a58e8de8ff7b015e5167ac614"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a5cd83a90660626f6c446d45881f0fc22"><td class="memItemLeft" align="right" valign="top">static int const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a5cd83a90660626f6c446d45881f0fc22">kStages</a> = Stages</td></tr>
<tr class="separator:a5cd83a90660626f6c446d45881f0fc22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0f1a2669ecc62f24922613e9bad857f"><td class="memItemLeft" align="right" valign="top">static int const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ad0f1a2669ecc62f24922613e9bad857f">kAlignmentA</a> = AlignmentA</td></tr>
<tr class="separator:ad0f1a2669ecc62f24922613e9bad857f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30809c4843226401b9d2da5ecb8d838b"><td class="memItemLeft" align="right" valign="top">static int const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a30809c4843226401b9d2da5ecb8d838b">kAlignmentB</a> = AlignmentB</td></tr>
<tr class="separator:a30809c4843226401b9d2da5ecb8d838b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac85244d4a91ea8e8c1c3187fad1004db"><td class="memItemLeft" align="right" valign="top">static int const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ac85244d4a91ea8e8c1c3187fad1004db">kAlignmentC</a> = EpilogueOutputOp::kCount</td></tr>
<tr class="separator:ac85244d4a91ea8e8c1c3187fad1004db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3c79a0271e684d93c3dca5ad230f45f"><td class="memItemLeft" align="right" valign="top">static bool const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af3c79a0271e684d93c3dca5ad230f45f">kSplitKSerial</a> = SplitKSerial</td></tr>
<tr class="separator:af3c79a0271e684d93c3dca5ad230f45f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0303e85432228170eba7dc4b418c86b4"><td class="memItemLeft" align="right" valign="top">static bool const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a0303e85432228170eba7dc4b418c86b4">kIsBetaZero</a> = IsBetaZero</td></tr>
<tr class="separator:a0303e85432228170eba7dc4b418c86b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt;<br />
class cutlass::gemm::device::Gemm&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;</h3>
<p><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">Gemm</a> device-level operator. This is an interface to efficient CUTLASS GEMM kernels that may be invoked from host code.</p>
<p>The contributions of this class are:</p>
<ol type="1">
<li>At compile time, it maps data types and high-level structural parameters onto specific CUTLASS components.</li>
<li>At runtime, it maps logical arguments to GEMM problems to kernel parameters.</li>
<li>At runtime, it launches kernels on the device.</li>
</ol>
<p>The intent is to provide a convenient mechanism for interacting with most plausible GEMM configurations for each supported architecture. Consequently, not all parameters are exposed to the top-level interface. Rather, sensible defaults at each level of the CUTLASS hierarchy are selected to tradeoff simplicity of the interface with flexibility. We expect most configurations to be specified at this level. Applications with more exotic requirements may construct their kernels of interest using CUTLASS components at the threadblock, warp, and thread levels of abstraction.</p>
<p>CUTLASS exposes computations using the functor design pattern in which objects compose some internal state with an overloaded function call operator. This enables decoupling of initialization from execution, possibly reducing overhead during steady state phases of application execution.</p>
<p>CUTLASS device-level operators expose an <a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html" title="Argument structure. ">Arguments</a> structure encompassing each logical input to the computation. This is distinct from the kernel-level Params structure pattern which contains application-specific precomputed state needed by the device code.</p>
<p>Example of a CUTLASS GEMM operator implementing the functionality of cuBLAS's SGEMM NN is as follows:</p>
<p>Instantiate the CUTLASS GEMM operator.</p>
<pre class="fragment">cutlass::gemm::device::Gemm&lt;
float,
cutlass::layout::ColumnMajor,
float,
cutlass::layout::ColumnMajor,
float,
cutlass::layout::ColumnMajor
&gt; gemm_op;
</pre><p>Launch the GEMM operation on the device</p>
<pre class="fragment">cutlass::Status status = gemm_op({
{m, n, k}, // GemmCoord problem_size,
{A, lda}, // TensorRef&lt;float, layout::ColumnMajor&gt; ref_A,
{B, ldb}, // TensorRef&lt;float, layout::ColumnMajor&gt; ref_B,
{C, ldc}, // TensorRef&lt;float, layout::ColumnMajor&gt; ref_C,
{D, ldd}, // TensorRef&lt;float, layout::ColumnMajor&gt; ref_D,
{alpha, beta} // EpilogueOutputOp::Params epilogue_op_params
});
</pre><p>A simplified view of the template is listed below.</p>
<p>template &lt; / Element type for A matrix operand typename ElementA,</p>
<p>/ Layout type for A matrix operand typename LayoutA,</p>
<p>/ Element type for B matrix operand typename ElementB,</p>
<p>/ Layout type for B matrix operand typename LayoutB,</p>
<p>/ Element type for C and D matrix operands typename ElementC,</p>
<p>/ Layout type for C and D matrix operands typename LayoutC,</p>
<p>/ Element type for internal accumulation typename ElementAccumulator,</p>
<p>/ Operator class tag typename OperatorClass,</p>
<p>/ Tag indicating architecture to tune for typename ArchTag,</p>
<p>/ Threadblock-level tile size (concept: <a class="el" href="structcutlass_1_1gemm_1_1GemmShape.html" title="Shape of a matrix multiply-add operation. ">GemmShape</a>) typename ThreadblockShape,</p>
<p>/ Warp-level tile size (concept: <a class="el" href="structcutlass_1_1gemm_1_1GemmShape.html" title="Shape of a matrix multiply-add operation. ">GemmShape</a>) typename WarpShape,</p>
<p>/ Warp-level tile size (concept: <a class="el" href="structcutlass_1_1gemm_1_1GemmShape.html" title="Shape of a matrix multiply-add operation. ">GemmShape</a>) typename InstructionShape,</p>
<p>/ Epilogue output operator typename EpilogueOutputOp,</p>
<p>/ Threadblock-level swizzling operator typename ThreadblockSwizzle,</p>
<p>/ Number of stages used in the pipelined mainloop int Stages &gt; class <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">Gemm</a>; </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="afe7ab8c15e83c6cd59b6bcf3fe6e48c0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#afe7ab8c15e83c6cd59b6bcf3fe6e48c0">ArchTag</a> = ArchTag_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="adf1ec9ab942ed20321cb91f02154abf0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#adf1ec9ab942ed20321cb91f02154abf0">ElementA</a> = ElementA_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad35f92eaf14c268f8bda2a0e48399a9a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ad35f92eaf14c268f8bda2a0e48399a9a">ElementAccumulator</a> = ElementAccumulator_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7d04e3640e81787a28956c75acde997e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a7d04e3640e81787a28956c75acde997e">ElementB</a> = ElementB_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af4c31798e982518db6a8fe66e63962e6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af4c31798e982518db6a8fe66e63962e6">ElementC</a> = ElementC_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af34b612740d98d3066b2b14785f9e415"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af34b612740d98d3066b2b14785f9e415">EpilogueOutputOp</a> = EpilogueOutputOp_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a431ea9cb851566df881457a0f496b976"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a431ea9cb851566df881457a0f496b976">GemmKernel</a> = typename <a class="el" href="structcutlass_1_1gemm_1_1kernel_1_1DefaultGemm.html">kernel::DefaultGemm</a>&lt; <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#adf1ec9ab942ed20321cb91f02154abf0">ElementA</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a6bbefc44e1ed6822dc8a4e2edc2b276b">LayoutA</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ad0f1a2669ecc62f24922613e9bad857f">kAlignmentA</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a7d04e3640e81787a28956c75acde997e">ElementB</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ab389fd311c5763587315c210f40a11f2">LayoutB</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a30809c4843226401b9d2da5ecb8d838b">kAlignmentB</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af4c31798e982518db6a8fe66e63962e6">ElementC</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a93acaff17a5916bc11040a9ddf04d9f2">LayoutC</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ad35f92eaf14c268f8bda2a0e48399a9a">ElementAccumulator</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a359e8eaddc486fcd0e15b879b11247ad">OperatorClass</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#afe7ab8c15e83c6cd59b6bcf3fe6e48c0">ArchTag</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a01ef9ea6588f488e8d727e36bdec8ba8">ThreadblockShape</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#adb5bd27efee1575710e6e4157e32449d">WarpShape</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ac98211b8adf5c18b4b6c54c5d1cdbb1a">InstructionShape</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af34b612740d98d3066b2b14785f9e415">EpilogueOutputOp</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a1eda40e6a86fb3ebeabed2f717e47ced">ThreadblockSwizzle</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a5cd83a90660626f6c446d45881f0fc22">kStages</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af3c79a0271e684d93c3dca5ad230f45f">kSplitKSerial</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a6f8a0ff6be313d9f2aac2de4259f65b4">Operator</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a0303e85432228170eba7dc4b418c86b4">kIsBetaZero</a> &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a431ea9cb851566df881457a0f496b976">GemmKernel</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac98211b8adf5c18b4b6c54c5d1cdbb1a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ac98211b8adf5c18b4b6c54c5d1cdbb1a">InstructionShape</a> = InstructionShape_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6bbefc44e1ed6822dc8a4e2edc2b276b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a6bbefc44e1ed6822dc8a4e2edc2b276b">LayoutA</a> = LayoutA_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab389fd311c5763587315c210f40a11f2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ab389fd311c5763587315c210f40a11f2">LayoutB</a> = LayoutB_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a93acaff17a5916bc11040a9ddf04d9f2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a93acaff17a5916bc11040a9ddf04d9f2">LayoutC</a> = LayoutC_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6f8a0ff6be313d9f2aac2de4259f65b4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a6f8a0ff6be313d9f2aac2de4259f65b4">Operator</a> = Operator_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a359e8eaddc486fcd0e15b879b11247ad"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a359e8eaddc486fcd0e15b879b11247ad">OperatorClass</a> = OperatorClass_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afc766f8e09f9eb55d50ad23184022c2d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#afc766f8e09f9eb55d50ad23184022c2d">TensorRefA</a> = <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt;<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#adf1ec9ab942ed20321cb91f02154abf0">ElementA</a> const, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a6bbefc44e1ed6822dc8a4e2edc2b276b">LayoutA</a>&gt;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a137892b19acbb4aff34198ab8fdd7c0d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a137892b19acbb4aff34198ab8fdd7c0d">TensorRefB</a> = <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt;<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a7d04e3640e81787a28956c75acde997e">ElementB</a> const, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#ab389fd311c5763587315c210f40a11f2">LayoutB</a>&gt;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2d593dfa19efc9ec65373031ed9f9202"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a2d593dfa19efc9ec65373031ed9f9202">TensorRefC</a> = <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt;<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af4c31798e982518db6a8fe66e63962e6">ElementC</a> const, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a93acaff17a5916bc11040a9ddf04d9f2">LayoutC</a>&gt;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af39d838d8ab3bba97f555afb714663f2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af39d838d8ab3bba97f555afb714663f2">TensorRefD</a> = <a class="el" href="classcutlass_1_1TensorRef.html">TensorRef</a>&lt;<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#af4c31798e982518db6a8fe66e63962e6">ElementC</a>, <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a93acaff17a5916bc11040a9ddf04d9f2">LayoutC</a>&gt;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a01ef9ea6588f488e8d727e36bdec8ba8"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a01ef9ea6588f488e8d727e36bdec8ba8">ThreadblockShape</a> = ThreadblockShape_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a1eda40e6a86fb3ebeabed2f717e47ced"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#a1eda40e6a86fb3ebeabed2f717e47ced">ThreadblockSwizzle</a> = ThreadblockSwizzle_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="adb5bd27efee1575710e6e4157e32449d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html#adb5bd27efee1575710e6e4157e32449d">WarpShape</a> = WarpShape_</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aec04d65c6265eb5f63d703f2dd99cb3f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::<a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">Gemm</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a40ad889da7ff420fd9f9000cd9f98e32"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a> <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::can_implement </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html">Arguments</a> const &amp;&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0fec423a58e8de8ff7b015e5167ac614"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static size_t <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::get_workspace_size </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html">Arguments</a> const &amp;&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a53d79d1b434100da1e466e6378ec43ab"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a> <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::initialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html">Arguments</a> const &amp;&#160;</td>
<td class="paramname"><em>args</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>workspace</em> = <code><a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">cudaStream_t&#160;</td>
<td class="paramname"><em>stream</em> = <code><a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a></code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a114b9c14e102d333ef3dcad7865a4efb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a> <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::operator() </td>
<td>(</td>
<td class="paramtype">cudaStream_t&#160;</td>
<td class="paramname"><em>stream</em> = <code><a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a></code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a35d9f803fdfbbd4608243881c04316dc"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a> <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::operator() </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html">Arguments</a> const &amp;&#160;</td>
<td class="paramname"><em>args</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>workspace</em> = <code><a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">cudaStream_t&#160;</td>
<td class="paramname"><em>stream</em> = <code><a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a></code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aef8c133e539ef91efc9dba9012118147"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a> <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::run </td>
<td>(</td>
<td class="paramtype">cudaStream_t&#160;</td>
<td class="paramname"><em>stream</em> = <code><a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a></code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aaaa871717d2fbe254a434160bc5acc65"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecutlass.html#ac5a88c5840a28a9e0206b9cc7812a18d">Status</a> <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::update </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcutlass_1_1gemm_1_1device_1_1Gemm_1_1Arguments.html">Arguments</a> const &amp;&#160;</td>
<td class="paramname"><em>args</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>workspace</em> = <code><a class="el" href="platform_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936">nullptr</a></code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="ad0f1a2669ecc62f24922613e9bad857f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int const <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::kAlignmentA = AlignmentA</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a30809c4843226401b9d2da5ecb8d838b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int const <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::kAlignmentB = AlignmentB</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac85244d4a91ea8e8c1c3187fad1004db"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int const <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::kAlignmentC = EpilogueOutputOp::kCount</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0303e85432228170eba7dc4b418c86b4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool const <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::kIsBetaZero = IsBetaZero</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af3c79a0271e684d93c3dca5ad230f45f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool const <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::kSplitKSerial = SplitKSerial</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5cd83a90660626f6c446d45881f0fc22"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ElementA_, typename LayoutA_, typename ElementB_, typename LayoutB_, typename ElementC_, typename LayoutC_, typename ElementAccumulator_ = ElementC_, typename OperatorClass_ = arch::OpClassSimt, typename ArchTag_ = arch::Sm70, typename ThreadblockShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::ThreadblockShape, typename WarpShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::WarpShape, typename InstructionShape_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::InstructionShape, typename EpilogueOutputOp_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::EpilogueOutputOp, typename ThreadblockSwizzle_ = threadblock::GemmIdentityThreadblockSwizzle, int Stages = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kStages, int AlignmentA = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentA, int AlignmentB = DefaultGemmConfiguration&lt;OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::kAlignmentB, bool SplitKSerial = false, typename Operator_ = typename DefaultGemmConfiguration&lt; OperatorClass_, ArchTag_, ElementA_, ElementB_, ElementC_, ElementAccumulator_&gt;::Operator, bool IsBetaZero = false&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int const <a class="el" href="classcutlass_1_1gemm_1_1device_1_1Gemm.html">cutlass::gemm::device::Gemm</a>&lt; ElementA_, LayoutA_, ElementB_, LayoutB_, ElementC_, LayoutC_, ElementAccumulator_, OperatorClass_, ArchTag_, ThreadblockShape_, WarpShape_, InstructionShape_, EpilogueOutputOp_, ThreadblockSwizzle_, Stages, AlignmentA, AlignmentB, SplitKSerial, Operator_, IsBetaZero &gt;::kStages = Stages</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="include_2cutlass_2gemm_2device_2gemm_8h_source.html">include/cutlass/gemm/device/gemm.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>