blob: a99cee4cb74b2b77bd975fad5cd41d738a386c01 [file] [log] [blame]
<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mxnet: /work/mxnet/include/mxnet/op_attr_types.h File 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>
<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="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mxnet
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></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="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_1143c7affb9ebd026cb6818dd282def7.html">mxnet</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">op_attr_types.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="tensor_8h_source.html">mshadow/tensor.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2op__attr__types_8h_source.html">nnvm/op_attr_types.h</a>&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;functional&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &quot;<a class="el" href="include_2mxnet_2base_8h_source.html">./base.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="include_2mxnet_2ndarray_8h_source.html">./ndarray.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="engine_8h_source.html">./engine.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="resource_8h_source.html">./resource.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for op_attr_types.h:</div>
<div class="dyncontent">
<div class="center"><img src="include_2mxnet_2op__attr__types_8h__incl.png" border="0" usemap="#_2work_2mxnet_2include_2mxnet_2op__attr__types_8h" alt=""/></div>
<map name="_2work_2mxnet_2include_2mxnet_2op__attr__types_8h" id="_2work_2mxnet_2include_2mxnet_2op__attr__types_8h">
<area shape="rect" id="node2" href="tensor_8h.html" title="header file of tensor data structure and functions This lib requires explicit memory allocation and d..." alt="" coords="859,468,1000,495"/>
<area shape="rect" id="node28" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2op__attr__types_8h.html" title="Data structures that can appear in operator attributes. " alt="" coords="1837,393,2001,420"/>
<area shape="rect" id="node41" href="include_2mxnet_2base_8h.html" title="./base.h" alt="" coords="2489,244,2562,271"/>
<area shape="rect" id="node46" href="include_2mxnet_2ndarray_8h.html" title="./ndarray.h" alt="" coords="3183,95,3273,121"/>
<area shape="rect" id="node48" href="engine_8h.html" title="Engine that schedules all the operations according to dependency. " alt="" coords="2482,169,2569,196"/>
<area shape="rect" id="node49" href="resource_8h.html" title="Global resource allocation handling. " alt="" coords="2328,95,2427,121"/>
<area shape="rect" id="node5" href="3rdparty_2mshadow_2mshadow_2base_8h.html" title="./base.h" alt="" coords="1099,767,1173,793"/>
<area shape="rect" id="node15" href="expression_8h.html" title="definitions of abstract expressions and expressions template " alt="" coords="699,692,813,719"/>
<area shape="rect" id="node16" href="stream__gpu-inl_8h.html" title="implementation of GPU code " alt="" coords="1469,543,1609,569"/>
<area shape="rect" id="node18" href="extension_8h.html" title="some extension of expressions, used to support something beyond elementwise op " alt="" coords="1176,543,1283,569"/>
<area shape="rect" id="node19" href="expr__engine-inl_8h.html" title="definitions of how expressions should be evaluated " alt="" coords="1102,617,1245,644"/>
<area shape="rect" id="node21" href="tensor__cpu-inl_8h.html" title="implementation of CPU host code " alt="" coords="1019,692,1154,719"/>
<area shape="rect" id="node23" href="tensor__gpu-inl_8h.html" title="implementation of GPU host code " alt="" coords="550,543,685,569"/>
<area shape="rect" id="node24" href="3rdparty_2mshadow_2mshadow_2io_8h.html" title="./io.h" alt="" coords="889,692,943,719"/>
<area shape="rect" id="node25" href="tensor__container_8h.html" title="tensor container that does memory allocation and resize like STL " alt="" coords="675,617,826,644"/>
<area shape="rect" id="node26" href="random_8h.html" title="Random inline functions for tensor. " alt="" coords="835,543,927,569"/>
<area shape="rect" id="node27" href="expr__scalar-inl_8h.html" title="definitions of operators in expression with respect to scalar this file will be included several time..." alt="" coords="1307,543,1445,569"/>
<area shape="rect" id="node30" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2base_8h.html" title="Configuration of nnvm as well as basic data structure. " alt="" coords="2803,617,2869,644"/>
<area shape="rect" id="node37" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2node_8h.html" title="Graph node data structure. " alt="" coords="2612,468,2679,495"/>
<area shape="rect" id="node39" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2tuple_8h.html" title="Data structure Tuple and TShape to store dynamic sized shapes. " alt="" coords="1836,543,1903,569"/>
<area shape="rect" id="node40" href="layout_8h.html" title="Layout expression. The layout is composed of upper cases, lower cases and numbers, where upper case indicates a (super&#45;)dimension and the corresponding lower case with factor size indicates the split (sub&#45;)dimension. For example, NCHW16c can describe a 5&#45;D tensor of [batch_size, channel, height, width, channel_block]. Here sub&#45;dimension channel_block=16 is the split of super&#45;dimension C (channel). " alt="" coords="1584,692,1659,719"/>
<area shape="rect" id="node31" href="3rdparty_2dmlc-core_2include_2dmlc_2base_8h.html" title="dmlc/base.h" alt="" coords="3079,916,3180,943"/>
<area shape="rect" id="node33" href="3rdparty_2dmlc-core_2include_2dmlc_2registry_8h.html" title="dmlc/registry.h" alt="" coords="2917,692,3035,719"/>
<area shape="rect" id="node35" href="parameter_8h.html" title="Provide lightweight util to do parameter setup and checking. " alt="" coords="1767,767,1876,793"/>
<area shape="rect" id="node36" href="type__traits_8h.html" title="type traits information header " alt="" coords="2761,841,2873,868"/>
<area shape="rect" id="node38" href="op_8h.html" title="Operator information structor. " alt="" coords="2129,543,2180,569"/>
<area shape="rect" id="node42" href="3rdparty_2dmlc-core_2include_2dmlc_2io_8h.html" title="dmlc/io.h" alt="" coords="3640,767,3723,793"/>
<area shape="rect" id="node43" href="symbolic_8h.html" title="Symbolic graph construction API. " alt="" coords="2458,393,2593,420"/>
<area shape="rect" id="node44" href="libinfo_8h.html" title="get features of the MXNet library at runtime " alt="" coords="3215,543,3289,569"/>
<area shape="rect" id="node45" href="include_2mxnet_2tuple_8h.html" title="Data structure Tuple and TShape to store dynamic sized shapes. " alt="" coords="1735,319,1801,345"/>
<area shape="rect" id="node47" href="storage_8h.html" title="Storage manager across multiple devices. " alt="" coords="2796,169,2887,196"/>
<area shape="rect" id="node50" href="random__generator_8h.html" title="Parallel random number generator. " alt="" coords="2297,169,2458,196"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="include_2mxnet_2op__attr__types_8h__dep__incl.png" border="0" usemap="#_2work_2mxnet_2include_2mxnet_2op__attr__types_8hdep" alt=""/></div>
<map name="_2work_2mxnet_2include_2mxnet_2op__attr__types_8hdep" id="_2work_2mxnet_2include_2mxnet_2op__attr__types_8hdep">
<area shape="rect" id="node2" href="include_2mxnet_2operator_8h.html" title="/work/mxnet/include\l/mxnet/operator.h" alt="" coords="181,95,336,136"/>
<area shape="rect" id="node5" href="include_2mxnet_2graph__attr__types_8h.html" title="/work/mxnet/include\l/mxnet/graph_attr_types.h" alt="" coords="411,95,605,136"/>
<area shape="rect" id="node6" href="imperative_8h.html" title="/work/mxnet/include\l/mxnet/imperative.h" alt="" coords="392,184,547,225"/>
<area shape="rect" id="node7" href="utils_8h.html" title="Basic utilility functions. " alt="" coords="490,273,678,315"/>
<area shape="rect" id="node3" href="include_2mxnet_2executor_8h.html" title="/work/mxnet/include\l/mxnet/executor.h" alt="" coords="5,184,160,225"/>
<area shape="rect" id="node4" href="operator__util_8h.html" title="Utility functions and registries to help quickly build new operators. [Deprecated] Use the register f..." alt="" coords="185,184,351,225"/>
<area shape="rect" id="node8" href="exec__utils_8h.html" title="Common utility functions for executors. " alt="" coords="490,363,678,404"/>
</map>
</div>
</div>
<p><a href="include_2mxnet_2op__attr__types_8h_source.html">Go to the source code of this file.</a></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="structmxnet_1_1OpContext.html">mxnet::OpContext</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">All the possible information needed by <a class="el" href="classmxnet_1_1Operator.html#a3dbe23d985df86da51eeb868439872dd" title="perform a forward operation of Operator, save the output to TBlob. ">Operator.Forward</a> and Backward This is the superset of <a class="el" href="structmxnet_1_1RunContext.html" title="execution time context. The information needed in runtime for actual execution. ">RunContext</a>. We use this data structure to bookkeep everything needed by Forward and Backward. <a href="structmxnet_1_1OpContext.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmxnet_1_1OpStatePtr.html">mxnet::OpStatePtr</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmxnet_1_1Operator.html" title="Operator interface. Operator defines basic operation unit of optimized computation graph in mxnet...">Operator</a> state. This is a pointer type, its content is mutable even if <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const...">OpStatePtr</a> is const. <a href="classmxnet_1_1OpStatePtr.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="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacemxnet"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html">mxnet</a></td></tr>
<tr class="memdesc:namespacemxnet"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace of mxnet <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="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ac7ea5e68a319e4f7d7c0b4ee91c2d20f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ac7ea5e68a319e4f7d7c0b4ee91c2d20f">mxnet::FCreateOpState</a> = std::function&lt; OpStatePtr(const NodeAttrs &amp;attrs, Context ctx, const <a class="el" href="namespacemxnet.html#a87e1c30aafac389774c6f4d905c0e5ea">mxnet::ShapeVector</a> &amp;in_shape, const std::vector&lt; int &gt; &amp;in_type)&gt;</td></tr>
<tr class="memdesc:ac7ea5e68a319e4f7d7c0b4ee91c2d20f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a Layer style, forward/backward operator. This is easy to write code that contains state. <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const...">OpStatePtr</a> is a pointer type, it's content is mutable even if <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const...">OpStatePtr</a> is constant. <a href="namespacemxnet.html#ac7ea5e68a319e4f7d7c0b4ee91c2d20f">More...</a><br /></td></tr>
<tr class="separator:ac7ea5e68a319e4f7d7c0b4ee91c2d20f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab11a4e6d5c8c47c99cfc3306db6538c8"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ab11a4e6d5c8c47c99cfc3306db6538c8">mxnet::THasDeterministicOutput</a> = bool</td></tr>
<tr class="memdesc:ab11a4e6d5c8c47c99cfc3306db6538c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the operator always produces the same output given the same input. This enables certain optimizations like common expression elimination. <a href="namespacemxnet.html#ab11a4e6d5c8c47c99cfc3306db6538c8">More...</a><br /></td></tr>
<tr class="separator:ab11a4e6d5c8c47c99cfc3306db6538c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a666f1055e5401ecec0278e8ba5790732"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a666f1055e5401ecec0278e8ba5790732">mxnet::FExecType</a> = std::function&lt; ExecType(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:a666f1055e5401ecec0278e8ba5790732"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execution mode of this operator. <a href="namespacemxnet.html#a666f1055e5401ecec0278e8ba5790732">More...</a><br /></td></tr>
<tr class="separator:a666f1055e5401ecec0278e8ba5790732"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9097a269dd76d833c014149ff3eaab9b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a9097a269dd76d833c014149ff3eaab9b">mxnet::FStatefulCompute</a> = std::function&lt; void(const OpStatePtr &amp;state, const OpContext &amp;ctx, const std::vector&lt; TBlob &gt; &amp;inputs, const std::vector&lt; OpReqType &gt; &amp;req, const std::vector&lt; TBlob &gt; &amp;outputs)&gt;</td></tr>
<tr class="memdesc:a9097a269dd76d833c014149ff3eaab9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resiger a compute function for stateful operator. <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const...">OpStatePtr</a> is a pointer type, it's content is mutable even if <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const...">OpStatePtr</a> is constant. <a href="namespacemxnet.html#a9097a269dd76d833c014149ff3eaab9b">More...</a><br /></td></tr>
<tr class="separator:a9097a269dd76d833c014149ff3eaab9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab12f1853179b1456152a563edff844a9"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ab12f1853179b1456152a563edff844a9">mxnet::FStatefulComputeEx</a> = std::function&lt; void(const OpStatePtr &amp;state, const OpContext &amp;ctx, const std::vector&lt; NDArray &gt; &amp;inputs, const std::vector&lt; OpReqType &gt; &amp;req, const std::vector&lt; NDArray &gt; &amp;outputs)&gt;</td></tr>
<tr class="memdesc:ab12f1853179b1456152a563edff844a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resiger a compute function for stateful operator using <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface ">NDArray</a> interface. <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const...">OpStatePtr</a> is a pointer type, it's content is mutable even if <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const...">OpStatePtr</a> is constant. <a href="namespacemxnet.html#ab12f1853179b1456152a563edff844a9">More...</a><br /></td></tr>
<tr class="separator:ab12f1853179b1456152a563edff844a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaa687cbca9e992614be285711c1d72d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#afaa687cbca9e992614be285711c1d72d">mxnet::FResourceRequest</a> = std::function&lt; std::vector&lt; ResourceRequest &gt;(const NodeAttrs &amp;n)&gt;</td></tr>
<tr class="memdesc:afaa687cbca9e992614be285711c1d72d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The resource request from the operator. An operator could register ResourceRequestEx, or <a class="el" href="structmxnet_1_1ResourceRequest.html" title="The resources that can be requested by Operator. ">ResourceRequest</a>, or neither. <a href="namespacemxnet.html#afaa687cbca9e992614be285711c1d72d">More...</a><br /></td></tr>
<tr class="separator:afaa687cbca9e992614be285711c1d72d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45b0a850c44c45609adc320b04c7ac7f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a45b0a850c44c45609adc320b04c7ac7f">mxnet::FResourceRequestEx</a> = std::function&lt; std::vector&lt; ResourceRequest &gt;(const NodeAttrs &amp;n, const int dev_mask, const DispatchMode dispatch_mode)&gt;</td></tr>
<tr class="memdesc:a45b0a850c44c45609adc320b04c7ac7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The resource request from the operator. An operator could register ResourceRequestEx, or <a class="el" href="structmxnet_1_1ResourceRequest.html" title="The resources that can be requested by Operator. ">ResourceRequest</a>, or neither. If an operator registers both ResourceRequestEx and <a class="el" href="structmxnet_1_1ResourceRequest.html" title="The resources that can be requested by Operator. ">ResourceRequest</a>, <a class="el" href="structmxnet_1_1ResourceRequest.html" title="The resources that can be requested by Operator. ">ResourceRequest</a> is ignored. <a href="namespacemxnet.html#a45b0a850c44c45609adc320b04c7ac7f">More...</a><br /></td></tr>
<tr class="separator:a45b0a850c44c45609adc320b04c7ac7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0906e49a921265634672f555451075ed"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a0906e49a921265634672f555451075ed">mxnet::FNDArrayFunction</a> = std::function&lt; void(const <a class="el" href="structnnvm_1_1NodeAttrs.html">nnvm::NodeAttrs</a> &amp;attrs, const std::vector&lt; NDArray &gt; &amp;inputs, std::vector&lt; NDArray &gt; *outputs)&gt;</td></tr>
<tr class="memdesc:a0906e49a921265634672f555451075ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register an operator called as a <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface ">NDArray</a> function. <a href="namespacemxnet.html#a0906e49a921265634672f555451075ed">More...</a><br /></td></tr>
<tr class="separator:a0906e49a921265634672f555451075ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad77e2048b7e8db91a12e05b477aac13e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ad77e2048b7e8db91a12e05b477aac13e">mxnet::FCompute</a> = std::function&lt; void(const <a class="el" href="structnnvm_1_1NodeAttrs.html">nnvm::NodeAttrs</a> &amp;attrs, const OpContext &amp;ctx, const std::vector&lt; TBlob &gt; &amp;inputs, const std::vector&lt; OpReqType &gt; &amp;req, const std::vector&lt; TBlob &gt; &amp;outputs)&gt;</td></tr>
<tr class="memdesc:ad77e2048b7e8db91a12e05b477aac13e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a compute function for simple stateless forward only operator. <a href="namespacemxnet.html#ad77e2048b7e8db91a12e05b477aac13e">More...</a><br /></td></tr>
<tr class="separator:ad77e2048b7e8db91a12e05b477aac13e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a294d2660c065f8d229c27e65f0461e10"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a294d2660c065f8d229c27e65f0461e10">mxnet::FComputeEx</a> = std::function&lt; void(const <a class="el" href="structnnvm_1_1NodeAttrs.html">nnvm::NodeAttrs</a> &amp;attrs, const OpContext &amp;ctx, const std::vector&lt; NDArray &gt; &amp;inputs, const std::vector&lt; OpReqType &gt; &amp;req, const std::vector&lt; NDArray &gt; &amp;outputs)&gt;</td></tr>
<tr class="memdesc:a294d2660c065f8d229c27e65f0461e10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register an <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface ">NDArray</a> compute function for simple stateless forward only operator. <a href="namespacemxnet.html#a294d2660c065f8d229c27e65f0461e10">More...</a><br /></td></tr>
<tr class="separator:a294d2660c065f8d229c27e65f0461e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a1395f21139ba975a6268539df6a15d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a0a1395f21139ba975a6268539df6a15d">mxnet::FInferStorageType</a> = std::function&lt; bool(const NodeAttrs &amp;attrs, const int dev_mask, DispatchMode *dispatch_mode, std::vector&lt; int &gt; *in_attrs, std::vector&lt; int &gt; *out_attrs)&gt;</td></tr>
<tr class="memdesc:a0a1395f21139ba975a6268539df6a15d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a storage and dispatch mode inference function based on storage types of the inputs and outputs, and the dev_mask for the operator. <a href="namespacemxnet.html#a0a1395f21139ba975a6268539df6a15d">More...</a><br /></td></tr>
<tr class="separator:a0a1395f21139ba975a6268539df6a15d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5d610fd675a9b9c811901394ee07709"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ae5d610fd675a9b9c811901394ee07709">mxnet::FQuantizable</a> = std::function&lt; QuantizeType(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:ae5d610fd675a9b9c811901394ee07709"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a quantized node creation function based on the attrs of the node. <a href="namespacemxnet.html#ae5d610fd675a9b9c811901394ee07709">More...</a><br /></td></tr>
<tr class="separator:ae5d610fd675a9b9c811901394ee07709"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca9a7c38c0a9b100a35eba5f3b0ea108"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#aca9a7c38c0a9b100a35eba5f3b0ea108">mxnet::FQuantizedOp</a> = std::function&lt; <a class="el" href="namespacennvm.html#a573897937ff3b88f0014feabb8e44a92">nnvm::ObjectPtr</a>(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:aca9a7c38c0a9b100a35eba5f3b0ea108"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a quantized node creation function based on the attrs of the node. <a href="namespacemxnet.html#aca9a7c38c0a9b100a35eba5f3b0ea108">More...</a><br /></td></tr>
<tr class="separator:aca9a7c38c0a9b100a35eba5f3b0ea108"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f7c271f6d03ee358eb9e66486e41045"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a7f7c271f6d03ee358eb9e66486e41045">mxnet::FNeedRequantize</a> = std::function&lt; bool(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:a7f7c271f6d03ee358eb9e66486e41045"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to determine if the output of a quantized operator needs to be requantized. This is usually used for the operators taking int8 data types while accumulating in int32, e.g. quantized_conv. <a href="namespacemxnet.html#a7f7c271f6d03ee358eb9e66486e41045">More...</a><br /></td></tr>
<tr class="separator:a7f7c271f6d03ee358eb9e66486e41045"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cb7e17c82420da9bac723fee0bb044c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a3cb7e17c82420da9bac723fee0bb044c">mxnet::FAvoidQuantizeInput</a> = std::function&lt; bool(const NodeAttrs &amp;attrs, const size_t index, const std::string quantize_granularity)&gt;</td></tr>
<tr class="memdesc:a3cb7e17c82420da9bac723fee0bb044c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to determine if the input of a quantized operator needs to be quantized. This is usually used for the quantized operators which can handle fp32 inputs directly. <a href="namespacemxnet.html#a3cb7e17c82420da9bac723fee0bb044c">More...</a><br /></td></tr>
<tr class="separator:a3cb7e17c82420da9bac723fee0bb044c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af29e1bae7bee2739b1a698c7574d32fc"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#af29e1bae7bee2739b1a698c7574d32fc">mxnet::FNeedAsymQuantizeInput</a> = std::function&lt; bool(const NodeAttrs &amp;attrs, const size_t index)&gt;</td></tr>
<tr class="memdesc:af29e1bae7bee2739b1a698c7574d32fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to determine if the input of a quantized operator needs to be quantized asymmetrically. <a href="namespacemxnet.html#af29e1bae7bee2739b1a698c7574d32fc">More...</a><br /></td></tr>
<tr class="separator:af29e1bae7bee2739b1a698c7574d32fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a860b3f69d48b8d0e6a227248bee2c9a4"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a860b3f69d48b8d0e6a227248bee2c9a4">mxnet::FAvoidDequantizeOutput</a> = std::function&lt; bool(const NodeAttrs &amp;attrs, const size_t index)&gt;</td></tr>
<tr class="memdesc:a860b3f69d48b8d0e6a227248bee2c9a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to determine if the output of a quantized operator needs to be dequantized. This is usually used for the quantized operators which can produce fp32 outputs directly. <a href="namespacemxnet.html#a860b3f69d48b8d0e6a227248bee2c9a4">More...</a><br /></td></tr>
<tr class="separator:a860b3f69d48b8d0e6a227248bee2c9a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbd92d7ce22448f485be2946e79322bd"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#abbd92d7ce22448f485be2946e79322bd">mxnet::FNeedCalibrateInput</a> = std::function&lt; std::vector&lt; int &gt;(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:abbd92d7ce22448f485be2946e79322bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to determine if the input of a quantized operator needs to be calibrated. This is usually used for the quantized operators which need calibration on its input. <a href="namespacemxnet.html#abbd92d7ce22448f485be2946e79322bd">More...</a><br /></td></tr>
<tr class="separator:abbd92d7ce22448f485be2946e79322bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5874b9dfca8a1e2e7c72da5e3b6a9d0b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a5874b9dfca8a1e2e7c72da5e3b6a9d0b">mxnet::FNeedCalibrateOutput</a> = std::function&lt; std::vector&lt; int &gt;(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:a5874b9dfca8a1e2e7c72da5e3b6a9d0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to determine if the output of a quantized operator needs to be calibrated. This is usually used for the quantized operators which need calibration on its output. <a href="namespacemxnet.html#a5874b9dfca8a1e2e7c72da5e3b6a9d0b">More...</a><br /></td></tr>
<tr class="separator:a5874b9dfca8a1e2e7c72da5e3b6a9d0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f299d6a9a65bdf12162a5dcba62b710"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a1f299d6a9a65bdf12162a5dcba62b710">mxnet::FIsCUDAGraphsCompatible</a> = std::function&lt; bool(const NodeAttrs &amp;attrs, const bool is_train)&gt;</td></tr>
<tr class="memdesc:a1f299d6a9a65bdf12162a5dcba62b710"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to determine if the operator implementation is compatible with CUDA graphs. This requires the execution to stay the same as long as the shape and type of input stays the same. <a href="namespacemxnet.html#a1f299d6a9a65bdf12162a5dcba62b710">More...</a><br /></td></tr>
<tr class="separator:a1f299d6a9a65bdf12162a5dcba62b710"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a7cd7094ef222e9ae1f520c3b6a214398"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">mxnet::OpReqType</a> { <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398a001b85096e07108e174fe4c406368a26">mxnet::kNullOp</a>,
<a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398a03b4c19f34d3add7deecd7ef6c54b42a">mxnet::kWriteTo</a>,
<a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398a640322face587ca12684378d0f053d51">mxnet::kWriteInplace</a>,
<a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398a1b850737dba4d2c42a2687d14c10f383">mxnet::kAddTo</a>
}<tr class="memdesc:a7cd7094ef222e9ae1f520c3b6a214398"><td class="mdescLeft">&#160;</td><td class="mdescRight">operation request type to Forward and Backward <a href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a7cd7094ef222e9ae1f520c3b6a214398"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7801fb2dd68294d4c7a9e289bc071ad"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071ad">mxnet::ExecType</a> { <a class="el" href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071adae3bade32f12a5139b27ef40b3689b77c">mxnet::ExecType::kSync</a>,
<a class="el" href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071ada9f2b960005d2a3a5f35ac32809d84db7">mxnet::ExecType::kAsync</a>,
<a class="el" href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071ada3864860a073c64d74d3fc8e765fa6cad">mxnet::ExecType::kCrossDeviceCopy</a>,
<a class="el" href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071adabfccd41d634d8095c956c29c9ee35257">mxnet::ExecType::kSubgraphExec</a>
}<tr class="memdesc:ad7801fb2dd68294d4c7a9e289bc071ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">the execution type of the operator <a href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071ad">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ad7801fb2dd68294d4c7a9e289bc071ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad5fec2b4bceabbf4b884460cc2e0a2b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2b">mxnet::DispatchMode</a> { <br />
&#160;&#160;<a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba7934d40c7c17315d892e8d5d745b1c66">mxnet::DispatchMode::kUndefined</a> = -1,
<a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba2157864769b54d1d0f8f9be63393e7d6">mxnet::DispatchMode::kFCompute</a>,
<a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba57f93219462690bc438372ecd92fedd5">mxnet::DispatchMode::kFComputeEx</a>,
<a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba18bf63b4c196f79c9bca4ad8637e8fef">mxnet::DispatchMode::kFComputeFallback</a>,
<br />
&#160;&#160;<a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2bafb751f6ee1af15e773242f2accd2dbff">mxnet::DispatchMode::kVariable</a>
<br />
}<tr class="memdesc:aad5fec2b4bceabbf4b884460cc2e0a2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">the dispatch mode of the operator <a href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2b">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:aad5fec2b4bceabbf4b884460cc2e0a2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e417d85458838afaba8b269f082226d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a8e417d85458838afaba8b269f082226d">mxnet::QuantizeType</a> { <a class="el" href="namespacemxnet.html#a8e417d85458838afaba8b269f082226da35c3ace1970663a16e5c65baa5941b13">mxnet::QuantizeType::kNone</a> = 0,
<a class="el" href="namespacemxnet.html#a8e417d85458838afaba8b269f082226da9d2303d7a748e1b486e5aeb1f2194610">mxnet::QuantizeType::kMust</a>,
<a class="el" href="namespacemxnet.html#a8e417d85458838afaba8b269f082226daaab0226a1be7a88fdffaa2442c55aa60">mxnet::QuantizeType::kSupport</a>
}<tr class="memdesc:a8e417d85458838afaba8b269f082226d"><td class="mdescLeft">&#160;</td><td class="mdescRight">the quantization type of the operator <a href="namespacemxnet.html#a8e417d85458838afaba8b269f082226d">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a8e417d85458838afaba8b269f082226d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 5 2023 00:58:43 for mxnet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>