blob: 58055ce60579d02d8b4039912f26e8d8345e2b7e [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 content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.11" name="generator"/>
<title>mxnet: src/common/exec_utils.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script src="jquery.js" type="text/javascript"></script>
<script src="dynsections.js" type="text/javascript"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script src="search/searchdata.js" type="text/javascript"></script>
<script src="search/search.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</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 cellpadding="0" cellspacing="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.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div class="tabs" id="navrow1">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div class="MSearchBoxInactive" id="MSearchBox">
<span class="left">
<img alt="" id="MSearchSelect" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()" src="search/mag_sel.png"/>
<input accesskey="S" id="MSearchField" onblur="searchBox.OnSearchFieldFocus(false)" onfocus="searchBox.OnSearchFieldFocus(true)" onkeyup="searchBox.OnSearchFieldChange(event)" type="text" value="Search"/>
</span><span class="right">
<a href="javascript:searchBox.CloseResultsWindow()" id="MSearchClose"><img alt="" border="0" id="MSearchCloseImg" src="search/close.png"/></a>
</span>
</div>
</li>
</ul>
</div>
<div class="tabs2" id="navrow2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_fdedb0aba14d44ce9d99bc100e026e6a.html">common</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">exec_utils.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Common utility functions for executors.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;nnvm/graph.h&gt;</code><br/>
<code>#include &lt;nnvm/pass_functions.h&gt;</code><br/>
<code>#include &lt;map&gt;</code><br/>
<code>#include &lt;vector&gt;</code><br/>
<code>#include &lt;string&gt;</code><br/>
<code>#include &lt;utility&gt;</code><br/>
<code>#include "<a class="el" href="utils_8h_source.html">../common/utils.h</a>"</code><br/>
<code>#include "../executor/exec_pass.h"</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for exec_utils.h:</div>
<div class="dyncontent">
<div class="center"><img alt="" border="0" src="exec__utils_8h__incl.png" usemap="#src_2common_2exec__utils_8h"/></div>
<map id="src_2common_2exec__utils_8h" name="src_2common_2exec__utils_8h">
<area alt="" coords="1195,95,1328,121" href="utils_8h.html" id="node8" shape="rect" title="Basic utilility functions. "/>
<area alt="" coords="1312,408,1435,435" href="engine_8h.html" id="node11" shape="rect" title="Engine that schedules all the operations according to dependency. "/>
<area alt="" coords="754,333,881,360" href="include_2mxnet_2ndarray_8h.html" id="node24" shape="rect" title="mxnet/ndarray.h"/>
<area alt="" coords="1349,259,1515,285" href="op__attr__types_8h.html" id="node28" shape="rect" title="Additional operator attributes beside the ones provided by NNVM. "/>
<area alt="" coords="1010,184,1198,211" href="graph__attr__types_8h.html" id="node33" shape="rect" title="Data structures that can appear in graph attributes. "/>
<area alt="" coords="1262,483,1335,509" href="include_2mxnet_2base_8h.html" id="node15" shape="rect" title="./base.h"/>
<area alt="" coords="1096,408,1187,435" href="storage_8h.html" id="node27" shape="rect" title="Storage manager across multiple devices. "/>
<area alt="" coords="1549,333,1648,360" href="resource_8h.html" id="node30" shape="rect" title="Global resource allocation handling. "/>
<area alt="" coords="1750,408,1911,435" href="random__generator_8h.html" id="node31" shape="rect" title="Parallel random number generator. "/>
</map>
</div>
</div>
<p><a href="exec__utils_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="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacemxnet"><td align="right" class="memItemLeft" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html">mxnet</a></td></tr>
<tr class="memdesc:namespacemxnet"><td class="mdescLeft"> </td><td class="mdescRight">namespace of mxnet <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:namespacemxnet_1_1common"><td align="right" class="memItemLeft" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html">mxnet::common</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a2262a78f3d80b9adeb3b517246fe4335"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a2262a78f3d80b9adeb3b517246fe4335">mxnet::common::SetupDefaultBlobsIn</a> (const std::vector&lt; NDArray &gt; &amp;src, const std::vector&lt; NDArray &gt; *bufs, std::vector&lt; TBlob &gt; *blobs, std::vector&lt; NDArray &gt; *temp_src, std::vector&lt; NDArray &gt; *temp_dst, std::unordered_map&lt; uint32_t, uint32_t &gt; *idx_map)</td></tr>
<tr class="separator:a2262a78f3d80b9adeb3b517246fe4335"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a28bf4d1e9b7392f106950b00de5a2c62"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a28bf4d1e9b7392f106950b00de5a2c62">mxnet::common::SetupDefaultBlobsOut</a> (const std::vector&lt; NDArray &gt; &amp;src, const std::vector&lt; NDArray &gt; *bufs, std::vector&lt; OpReqType &gt; *req, std::vector&lt; TBlob &gt; *blobs, std::vector&lt; NDArray &gt; *temp_src, std::vector&lt; NDArray &gt; *temp_dst)</td></tr>
<tr class="separator:a28bf4d1e9b7392f106950b00de5a2c62"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2dc5d03c700c90be66f47c4f46d2ef6a"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a2dc5d03c700c90be66f47c4f46d2ef6a">mxnet::common::SetupDefaultBlobsInOut</a> (const std::vector&lt; NDArray &gt; &amp;ndinputs, const std::vector&lt; NDArray &gt; &amp;ndoutputs, const std::vector&lt; NDArray &gt; *in_bufs, const std::vector&lt; NDArray &gt; *out_bufs, std::vector&lt; OpReqType &gt; *req, std::vector&lt; TBlob &gt; *input_blobs, std::vector&lt; TBlob &gt; *output_blobs, std::vector&lt; NDArray &gt; *pre_temp_src, std::vector&lt; NDArray &gt; *pre_temp_dst, std::vector&lt; NDArray &gt; *post_temp_src, std::vector&lt; NDArray &gt; *post_temp_dst, std::unordered_map&lt; uint32_t, uint32_t &gt; *in_temp_idx_map, const std::vector&lt; uint32_t &gt; &amp;mutate_idx)</td></tr>
<tr class="separator:a2dc5d03c700c90be66f47c4f46d2ef6a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a12f6653ed0571a1bc16afdfcf525c841"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a12f6653ed0571a1bc16afdfcf525c841">mxnet::common::CastNonDefaultStorage</a> (const std::vector&lt; NDArray &gt; &amp;src, const std::vector&lt; NDArray &gt; &amp;dst, const OpContext &amp;ctx, const bool is_gpu)</td></tr>
<tr class="separator:a12f6653ed0571a1bc16afdfcf525c841"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6369bac95f2e7080088927858937d7b0"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a6369bac95f2e7080088927858937d7b0">mxnet::common::SameType</a> (const nnvm::NodeAttrs &amp;attrs, std::vector&lt; int &gt; *iattr, std::vector&lt; int &gt; *oattr)</td></tr>
<tr class="memdesc:a6369bac95f2e7080088927858937d7b0"><td class="mdescLeft"> </td><td class="mdescRight">The default type inference function, which assigns all undefined types to the same type of one of the inputs or outputs. <a href="namespacemxnet_1_1common.html#a6369bac95f2e7080088927858937d7b0">More...</a><br/></td></tr>
<tr class="separator:a6369bac95f2e7080088927858937d7b0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a33f2eeb2434d3cdab77227b62ecf3d31"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a33f2eeb2434d3cdab77227b62ecf3d31">mxnet::common::DefaultStorageType</a> (const nnvm::NodeAttrs &amp;attrs, const int dev_mask, DispatchMode *dispatch_mode, std::vector&lt; int &gt; *iattr, std::vector&lt; int &gt; *oattr)</td></tr>
<tr class="memdesc:a33f2eeb2434d3cdab77227b62ecf3d31"><td class="mdescLeft"> </td><td class="mdescRight">The default storage type inference function, which assigns all undefined storage types to kDefaultStorage. If all of input and output storage types are kDefaultStorage, <a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba2157864769b54d1d0f8f9be63393e7d6">DispatchMode::kFCompute</a> is assigned to dispatch_mode. Otherwise, <a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba18bf63b4c196f79c9bca4ad8637e8fef">DispatchMode::kFComputeFallback</a> is assigned to dispatch_mode. <a href="namespacemxnet_1_1common.html#a33f2eeb2434d3cdab77227b62ecf3d31">More...</a><br/></td></tr>
<tr class="separator:a33f2eeb2434d3cdab77227b62ecf3d31"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab24b30a630e9ebf963f763a99b48ebc5"><td align="right" class="memItemLeft" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ab24b30a630e9ebf963f763a99b48ebc5">mxnet::common::storage_str</a> (int storage_id)</td></tr>
<tr class="separator:ab24b30a630e9ebf963f763a99b48ebc5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:abcd04f4664c3f1db116cdf6d86236a87"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#abcd04f4664c3f1db116cdf6d86236a87">mxnet::common::LogMemoryPlan</a> (const nnvm::Graph &amp;g)</td></tr>
<tr class="separator:abcd04f4664c3f1db116cdf6d86236a87"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a497a260b6b4c473e4ad03477f500763e"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a497a260b6b4c473e4ad03477f500763e">mxnet::common::LogInferStorage</a> (const nnvm::Graph &amp;g)</td></tr>
<tr class="separator:a497a260b6b4c473e4ad03477f500763e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa68edc65ce23ce3d90279c600ef94075"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#aa68edc65ce23ce3d90279c600ef94075">mxnet::common::HandleInferShapeError</a> (const size_t num_forward_inputs, const nnvm::IndexedGraph &amp;idx, const nnvm::ShapeVector &amp;inferred_shapes)</td></tr>
<tr class="separator:aa68edc65ce23ce3d90279c600ef94075"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad0a2f5f50d4fdcb21b9cd7d595cba8bd"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ad0a2f5f50d4fdcb21b9cd7d595cba8bd">mxnet::common::HandleInferTypeError</a> (const size_t num_forward_inputs, const nnvm::IndexedGraph &amp;idx, const nnvm::DTypeVector &amp;inferred_dtypes)</td></tr>
<tr class="separator:ad0a2f5f50d4fdcb21b9cd7d595cba8bd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9ae705382eedf9d523df62d9b9128423"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a9ae705382eedf9d523df62d9b9128423">mxnet::common::HandleInferStorageTypeError</a> (const size_t num_forward_inputs, const nnvm::IndexedGraph &amp;idx, const StorageTypeVector &amp;inferred_stypes)</td></tr>
<tr class="separator:a9ae705382eedf9d523df62d9b9128423"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a56117c409b10bfce6ecec6186d53941f"><td align="right" class="memItemLeft" valign="top">NDArray </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a56117c409b10bfce6ecec6186d53941f">mxnet::common::ReshapeOrCreate</a> (const std::string &amp;name, const TShape &amp;dest_arg_shape, const int dest_arg_dtype, const NDArrayStorageType dest_arg_stype, const Context &amp;ctx, std::unordered_map&lt; std::string, NDArray &gt; *shared_buffer, bool enable_row_sparse_sharing)</td></tr>
<tr class="memdesc:a56117c409b10bfce6ecec6186d53941f"><td class="mdescLeft"> </td><td class="mdescRight">If the requested ndarray's shape size is less than the corresponding shared_data_array's shape size and the storage type is shareable, reuse the memory allocation in shared_buffer; otherwise, create a zero ndarray. Shareable storages include both default storage and row_sparse storage if enable_row_sparse_sharing is <code>True</code>, otherwise default storage only. <a href="namespacemxnet_1_1common.html#a56117c409b10bfce6ecec6186d53941f">More...</a><br/></td></tr>
<tr class="separator:a56117c409b10bfce6ecec6186d53941f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a19bebfe40260d14068675b893f6b1a6b"><td align="right" class="memItemLeft" valign="top">nnvm::Graph </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a19bebfe40260d14068675b893f6b1a6b">mxnet::common::AssignContext</a> (nnvm::Graph g, const Context &amp;default_ctx, const std::map&lt; std::string, Context &gt; &amp;ctx_map, const std::vector&lt; Context &gt; &amp;in_arg_ctxes, const std::vector&lt; Context &gt; &amp;arg_grad_ctxes, const std::vector&lt; Context &gt; &amp;aux_state_ctxes, const std::vector&lt; OpReqType &gt; &amp;grad_req_types, size_t num_forward_inputs, size_t num_forward_outputs)</td></tr>
<tr class="memdesc:a19bebfe40260d14068675b893f6b1a6b"><td class="mdescLeft"> </td><td class="mdescRight">Assign context to the graph. This is triggered by both simple_bind and bind flows. <a href="namespacemxnet_1_1common.html#a19bebfe40260d14068675b893f6b1a6b">More...</a><br/></td></tr>
<tr class="separator:a19bebfe40260d14068675b893f6b1a6b"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Common utility functions for executors. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Sep 19 2019 12:37:33 for mxnet by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="doxygen.png"/>
</a> 1.8.11
</small></address>
</body>
</html>