<!-- 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.02</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;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="3663" 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>
</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 Wed Feb 14 2024 16:36:19 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>
