<!-- HTML header for doxygen 1.8.17-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Arm NN: src/backends/backendsCommon/WorkloadUtils.cpp 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.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;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
  <td id="projectalign" style="padding-left: 0.9em;">
   <div id="projectname">
   &#160;<span id="projectnumber">24.05</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_workload_utils_8cpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- 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 class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">WorkloadUtils.cpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="_workload_utils_8hpp_source.html">backendsCommon/WorkloadUtils.hpp</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_utils_8hpp_source.html">armnn/Utils.hpp</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_numeric_cast_8hpp_source.html">armnn/utility/NumericCast.hpp</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_data_layout_indexed_8hpp_source.html">armnnUtils/DataLayoutIndexed.hpp</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_tensor_utils_8hpp_source.html">armnnUtils/TensorUtils.hpp</a>&gt;</code><br />
<code>#include &lt;fmt/format.h&gt;</code><br />
<code>#include &lt;numeric&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for WorkloadUtils.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="_workload_utils_8cpp__incl.svg" width="4214" height="754"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
<p><a href="_workload_utils_8cpp_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:namespacearmnn"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html">armnn</a></td></tr>
<tr class="memdesc:namespacearmnn"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copyright (c) 2021 ARM Limited and Contributors. <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="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aafe6180ef80d9f334f3a3ba9cc0db35d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_const_tensor.html">armnn::ConstTensor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#aafe6180ef80d9f334f3a3ba9cc0db35d">PermuteTensor</a> (const ConstTensorHandle *tensor, const PermutationVector &amp;permutationVector, void *permuteBuffer)</td></tr>
<tr class="separator:aafe6180ef80d9f334f3a3ba9cc0db35d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3170fdd696155a247ecd81d445c0e2e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#a3170fdd696155a247ecd81d445c0e2e1">ReshapeWeightsForAcl</a> (TensorInfo &amp;weightInfo, DataLayout dataLayout)</td></tr>
<tr class="separator:a3170fdd696155a247ecd81d445c0e2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52b301fd3adce20b51c4482cb52f1a38"><td class="memTemplParams" colspan="2">template&lt;typename DataType &gt; </td></tr>
<tr class="memitem:a52b301fd3adce20b51c4482cb52f1a38"><td class="memTemplItemLeft" align="right" valign="top">ConstTensor&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#a52b301fd3adce20b51c4482cb52f1a38">ReorderWeightChannelsForAcl</a> (const ConstTensor &amp;weightHandle, DataLayout dataLayout, void *permuteBuffer)</td></tr>
<tr class="separator:a52b301fd3adce20b51c4482cb52f1a38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e8288eac7e909fdb58b6113d816763a"><td class="memItemLeft" align="right" valign="top">TensorInfo&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#a1e8288eac7e909fdb58b6113d816763a">ConvertWeightTensorInfoFromArmnnToAcl</a> (const TensorInfo &amp;weightInfo, DataLayout dataLayout)</td></tr>
<tr class="separator:a1e8288eac7e909fdb58b6113d816763a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af35f79341ec6c10a8bd4c8caf0585ffb"><td class="memItemLeft" align="right" valign="top">std::tuple&lt; ConstTensor, unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#af35f79341ec6c10a8bd4c8caf0585ffb">Convert1HWOTensorToAcl</a> (const ConstTensorHandle *weightTensor, const TensorInfo &amp;inputInfo, const DataLayout dataLayout, void *permuteBuffer)</td></tr>
<tr class="memdesc:af35f79341ec6c10a8bd4c8caf0585ffb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Weights for depthwise have a datalayout of [1,H,W,O] = [1,H,W,I*M] This function coverts a ConstCpuTensorHandle from [1,H,W,I*M] to [1,I*M,H,W] (if NCHW) or keeps it at [1,H,W,I*M] (if NHWC) as required by the compute library.  <a href="namespacearmnn.html#af35f79341ec6c10a8bd4c8caf0585ffb">More...</a><br /></td></tr>
<tr class="separator:af35f79341ec6c10a8bd4c8caf0585ffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4aa9e41515b354234645f115c49de32"><td class="memItemLeft" align="right" valign="top">std::tuple&lt; TensorInfo, unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#ac4aa9e41515b354234645f115c49de32">Convert1HWOTensorInfoToAcl</a> (const TensorInfo &amp;weightInfo, const TensorInfo &amp;inputInfo, const DataLayout dataLayout)</td></tr>
<tr class="memdesc:ac4aa9e41515b354234645f115c49de32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Weights for depthwise have a datalayout of [1,H,W,O] = [1,H,W,I*M] This function coverts a <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> from [1,H,W,I*M] to [1,I*M,H,W] (if NCHW) or keeps it at [1,H,W,I*M] (if NHWC) as required by the compute library Returns a tuple of converted weights tensor info and depth multiplier.  <a href="namespacearmnn.html#ac4aa9e41515b354234645f115c49de32">More...</a><br /></td></tr>
<tr class="separator:ac4aa9e41515b354234645f115c49de32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa22a82f5240a0eb0d61135345080aa2d"><td class="memItemLeft" align="right" valign="top">std::tuple&lt; ConstTensor, unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#aa22a82f5240a0eb0d61135345080aa2d">Convert1HWOtoMIHW</a> (const ConstTensorHandle *weightTensor, const TensorInfo &amp;inputInfo, const DataLayout &amp;dataLayout, void *permuteBuffer)</td></tr>
<tr class="memdesc:aa22a82f5240a0eb0d61135345080aa2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a (weights) tensor from [1, H, W, I*M] = [1, H, W, O] to [M, I, H, W].  <a href="namespacearmnn.html#aa22a82f5240a0eb0d61135345080aa2d">More...</a><br /></td></tr>
<tr class="separator:aa22a82f5240a0eb0d61135345080aa2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ca9f249dc67c111b8234b2c78d672cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_const_tensor.html">armnn::ConstTensor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#a8ca9f249dc67c111b8234b2c78d672cd">ConvertWeightTensorFromArmnnToAcl</a> (const ConstTensorHandle *weightTensor, DataLayout dataLayout, void *permuteBuffer)</td></tr>
<tr class="separator:a8ca9f249dc67c111b8234b2c78d672cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad69ffa576a596b9eb20ab6a41420c541"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#ad69ffa576a596b9eb20ab6a41420c541">ConvertMaskToACLFormat</a> (int32_t mask, int32_t numDim)</td></tr>
<tr class="separator:ad69ffa576a596b9eb20ab6a41420c541"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac40d3e4035af5fbe68d9e126a8d6367c"><td class="memItemLeft" align="right" valign="top">std::map&lt; std::string, unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#ac40d3e4035af5fbe68d9e126a8d6367c">CalculateGatherNdKeyIndices</a> (TensorInfo inputInfo0, TensorInfo inputInfo1)</td></tr>
<tr class="memdesc:ac40d3e4035af5fbe68d9e126a8d6367c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the key index values needed for GatherNd: N, ND, K, W, C (N is always 1)  <a href="namespacearmnn.html#ac40d3e4035af5fbe68d9e126a8d6367c">More...</a><br /></td></tr>
<tr class="separator:ac40d3e4035af5fbe68d9e126a8d6367c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15e2ba06d2ecd7ff6013118838e5d1be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_permutation_vector.html">armnn::PermutationVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#a15e2ba06d2ecd7ff6013118838e5d1be">GeneratePermutationVectorOnLastTwoDimensions</a> (unsigned int rank)</td></tr>
<tr class="memdesc:a15e2ba06d2ecd7ff6013118838e5d1be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a permutation vector of size rank that permutes the 2 most right dimensions.  <a href="namespacearmnn.html#a15e2ba06d2ecd7ff6013118838e5d1be">More...</a><br /></td></tr>
<tr class="separator:a15e2ba06d2ecd7ff6013118838e5d1be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f68926d52d1aa3590bd467e041def05"><td class="memItemLeft" align="right" valign="top">std::set&lt; unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.html#a2f68926d52d1aa3590bd467e041def05">ComputeSplitAxis</a> (const <a class="el" href="namespacearmnn.html#a60291543fe872b795e71e05bcd835fd1">armnn::SplitterDescriptor</a> &amp;desc, const TensorShape &amp;input)</td></tr>
<tr class="memdesc:a2f68926d52d1aa3590bd467e041def05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the axis values for split operation.  <a href="namespacearmnn.html#a2f68926d52d1aa3590bd467e041def05">More...</a><br /></td></tr>
<tr class="separator:a2f68926d52d1aa3590bd467e041def05"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_0f3cdec46afbc61a1ded8e1687c9c9a0.html">backends</a></li><li class="navelem"><a class="el" href="dir_797a213d7d01b98ef12d53b0820ea64e.html">backendsCommon</a></li><li class="navelem"><a class="el" href="_workload_utils_8cpp.html">WorkloadUtils.cpp</a></li>
    <li class="footer">Generated on Thu May 16 2024 09:31:52 for Arm NN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
