| <!-- 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: BatchMatMulQueueDescriptor Struct 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"> |
|  <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&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&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&dn=gpl-2.0.txt GPL-v2 */ |
| $(document).ready(function(){initNavTree('structarmnn_1_1_batch_mat_mul_queue_descriptor.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="#pub-methods">Public Member Functions</a> | |
| <a href="structarmnn_1_1_batch_mat_mul_queue_descriptor-members.html">List of all members</a> </div> |
| <div class="headertitle"> |
| <div class="title">BatchMatMulQueueDescriptor Struct Reference</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| |
| <p><code>#include <<a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>></code></p> |
| <div class="dynheader"> |
| Inheritance diagram for BatchMatMulQueueDescriptor:</div> |
| <div class="dyncontent"> |
| <div class="center"><iframe scrolling="no" frameborder="0" src="structarmnn_1_1_batch_mat_mul_queue_descriptor__inherit__graph.svg" width="390" height="308"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe> |
| </div> |
| <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> |
| <div class="dynheader"> |
| Collaboration diagram for BatchMatMulQueueDescriptor:</div> |
| <div class="dyncontent"> |
| <div class="center"><iframe scrolling="no" frameborder="0" src="structarmnn_1_1_batch_mat_mul_queue_descriptor__coll__graph.svg" width="1163" height="138"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe> |
| </div> |
| <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> |
| <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:a041e495449e22774a34d92b0904c10bf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_batch_mat_mul_queue_descriptor.html#a041e495449e22774a34d92b0904c10bf">Validate</a> (const <a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> &workloadInfo) const</td></tr> |
| <tr class="separator:a041e495449e22774a34d92b0904c10bf"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="inherit_header pub_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structarmnn_1_1_queue_descriptor_with_parameters')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters< BatchMatMulDescriptor ></a></td></tr> |
| <tr class="memitem:aceed736aeebb38dea25ee734a6bacba5 inherit pub_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aceed736aeebb38dea25ee734a6bacba5">~QueueDescriptorWithParameters</a> ()=default</td></tr> |
| <tr class="separator:aceed736aeebb38dea25ee734a6bacba5 inherit pub_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="inherit_header pub_methods_structarmnn_1_1_queue_descriptor"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structarmnn_1_1_queue_descriptor')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a></td></tr> |
| <tr class="memitem:a4cb2ebdad75dcaac215c8a1a3d62f315 inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a4cb2ebdad75dcaac215c8a1a3d62f315">~QueueDescriptor</a> ()=default</td></tr> |
| <tr class="separator:a4cb2ebdad75dcaac215c8a1a3d62f315 inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a089f647d882d65f657d7984e5f505f7c inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a089f647d882d65f657d7984e5f505f7c">ValidateTensorNumDimensions</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &tensor, std::string const &descName, unsigned int numDimensions, std::string const &tensorName) const</td></tr> |
| <tr class="separator:a089f647d882d65f657d7984e5f505f7c inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a8a30194ce14c088a2625ccc8c3e9d155 inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &tensorInfo, unsigned int numDimension, unsigned int numElements, std::string const &tensorName) const</td></tr> |
| <tr class="separator:a8a30194ce14c088a2625ccc8c3e9d155 inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a765d2cee4ccce5b9467e0c2b6d25b84a inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a765d2cee4ccce5b9467e0c2b6d25b84a">ValidateInputsOutputs</a> (const std::string &descName, unsigned int numExpectedIn, unsigned int numExpectedOut) const</td></tr> |
| <tr class="separator:a765d2cee4ccce5b9467e0c2b6d25b84a inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a0428f0a7927f8c29264d9c9a287840da inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a0428f0a7927f8c29264d9c9a287840da inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memTemplItemLeft" align="right" valign="top">const T * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a0428f0a7927f8c29264d9c9a287840da">GetAdditionalInformation</a> () const</td></tr> |
| <tr class="separator:a0428f0a7927f8c29264d9c9a287840da inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a> |
| Additional Inherited Members</h2></td></tr> |
| <tr class="inherit_header pub_attribs_structarmnn_1_1_queue_descriptor_with_parameters"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_structarmnn_1_1_queue_descriptor_with_parameters')"><img src="closed.png" alt="-"/> Public Attributes inherited from <a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters< BatchMatMulDescriptor ></a></td></tr> |
| <tr class="memitem:aad91b9bbf7aa365d304febe79a3d1333 inherit pub_attribs_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_batch_mat_mul_descriptor.html">BatchMatMulDescriptor</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a></td></tr> |
| <tr class="separator:aad91b9bbf7aa365d304febe79a3d1333 inherit pub_attribs_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="inherit_header pub_attribs_structarmnn_1_1_queue_descriptor"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_structarmnn_1_1_queue_descriptor')"><img src="closed.png" alt="-"/> Public Attributes inherited from <a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a></td></tr> |
| <tr class="memitem:a4b50e46a6810018f3edecfb68b2a76b3 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="classarmnn_1_1_i_tensor_handle.html">ITensorHandle</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a4b50e46a6810018f3edecfb68b2a76b3">m_Inputs</a></td></tr> |
| <tr class="separator:a4b50e46a6810018f3edecfb68b2a76b3 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6abd491bb99ffe88bd472c1ae5a1ed1a inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="classarmnn_1_1_i_tensor_handle.html">ITensorHandle</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a6abd491bb99ffe88bd472c1ae5a1ed1a">m_Outputs</a></td></tr> |
| <tr class="separator:a6abd491bb99ffe88bd472c1ae5a1ed1a inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2f2e6134cabedfc58aa53fe38a2b8a67 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a2f2e6134cabedfc58aa53fe38a2b8a67">m_AdditionalInfoObject</a></td></tr> |
| <tr class="separator:a2f2e6134cabedfc58aa53fe38a2b8a67 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9ef8ddbeee4b869e4c68eb2ed278b8d9 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a9ef8ddbeee4b869e4c68eb2ed278b8d9">m_AllowExpandedDims</a> = false</td></tr> |
| <tr class="separator:a9ef8ddbeee4b869e4c68eb2ed278b8d9 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="inherit_header pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_structarmnn_1_1_queue_descriptor_with_parameters')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters< BatchMatMulDescriptor ></a></td></tr> |
| <tr class="memitem:a6f269eb32757efa5b203091c52e985fd inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html#a6f269eb32757efa5b203091c52e985fd">QueueDescriptorWithParameters</a> ()=default</td></tr> |
| <tr class="separator:a6f269eb32757efa5b203091c52e985fd inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6cbdcaa9cab857077a3810788e2cf489 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html#a6cbdcaa9cab857077a3810788e2cf489">QueueDescriptorWithParameters</a> (<a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters</a> const &)=default</td></tr> |
| <tr class="separator:a6cbdcaa9cab857077a3810788e2cf489 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa86bd03df9faf133a34e263f16486707 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aa86bd03df9faf133a34e263f16486707">operator=</a> (<a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters</a> const &)=default</td></tr> |
| <tr class="separator:aa86bd03df9faf133a34e263f16486707 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="inherit_header pro_methods_structarmnn_1_1_queue_descriptor"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_structarmnn_1_1_queue_descriptor')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a></td></tr> |
| <tr class="memitem:ab088ef357662bcea45cbd49674ad0ff7 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#ab088ef357662bcea45cbd49674ad0ff7">QueueDescriptor</a> ()</td></tr> |
| <tr class="separator:ab088ef357662bcea45cbd49674ad0ff7 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a75d3b85e1e50b1dff74ee84a593d089e inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a75d3b85e1e50b1dff74ee84a593d089e">QueueDescriptor</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> const &)=default</td></tr> |
| <tr class="separator:a75d3b85e1e50b1dff74ee84a593d089e inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a1c928b975a0de05cf2536c721ba6b521 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a1c928b975a0de05cf2536c721ba6b521">operator=</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> const &)=default</td></tr> |
| <tr class="separator:a1c928b975a0de05cf2536c721ba6b521 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> |
| <div class="textblock"> |
| <p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00753">753</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p> |
| </div><h2 class="groupheader">Member Function Documentation</h2> |
| <a id="a041e495449e22774a34d92b0904c10bf"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a041e495449e22774a34d92b0904c10bf">◆ </a></span>Validate()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void Validate </td> |
| <td>(</td> |
| <td class="paramtype">const <a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> & </td> |
| <td class="paramname"><em>workloadInfo</em></td><td>)</td> |
| <td> const</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p class="definition">Definition at line <a class="el" href="_workload_data_8cpp_source.html#l04175">4175</a> of file <a class="el" href="_workload_data_8cpp_source.html">WorkloadData.cpp</a>.</p> |
| <div class="fragment"><div class="line"><a name="l04176"></a><span class="lineno"> 4176</span> {</div> |
| <div class="line"><a name="l04177"></a><span class="lineno"> 4177</span>  <span class="keyword">const</span> std::string descriptorName{<span class="stringliteral">"BatchMatMulDescriptor"</span>};</div> |
| <div class="line"><a name="l04178"></a><span class="lineno"> 4178</span>  </div> |
| <div class="line"><a name="l04179"></a><span class="lineno"> 4179</span>  ValidateNumInputs(workloadInfo, descriptorName, 2);</div> |
| <div class="line"><a name="l04180"></a><span class="lineno"> 4180</span>  ValidateNumOutputs(workloadInfo, descriptorName, 1);</div> |
| <div class="line"><a name="l04181"></a><span class="lineno"> 4181</span>  </div> |
| <div class="line"><a name="l04182"></a><span class="lineno"> 4182</span>  <span class="comment">// Inputs must be: both 2D+</span></div> |
| <div class="line"><a name="l04183"></a><span class="lineno"> 4183</span>  <span class="comment">// For inputs X and Y whose dimensions to be multiplied are (M,N) and (I,J) respectively,</span></div> |
| <div class="line"><a name="l04184"></a><span class="lineno"> 4184</span>  <span class="comment">// axes N and I must be the same size</span></div> |
| <div class="line"><a name="l04185"></a><span class="lineno"> 4185</span>  </div> |
| <div class="line"><a name="l04186"></a><span class="lineno"> 4186</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& inputXInfoBeforeParams = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0];</div> |
| <div class="line"><a name="l04187"></a><span class="lineno"> 4187</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& inputYInfoBeforeParams = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[1];</div> |
| <div class="line"><a name="l04188"></a><span class="lineno"> 4188</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& outputInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[0];</div> |
| <div class="line"><a name="l04189"></a><span class="lineno"> 4189</span>  <span class="comment">// Output info has already been inferred</span></div> |
| <div class="line"><a name="l04190"></a><span class="lineno"> 4190</span>  </div> |
| <div class="line"><a name="l04191"></a><span class="lineno"> 4191</span>  std::vector<DataType> supportedTypes =</div> |
| <div class="line"><a name="l04192"></a><span class="lineno"> 4192</span>  {</div> |
| <div class="line"><a name="l04193"></a><span class="lineno"> 4193</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div> |
| <div class="line"><a name="l04194"></a><span class="lineno"> 4194</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div> |
| <div class="line"><a name="l04195"></a><span class="lineno"> 4195</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div> |
| <div class="line"><a name="l04196"></a><span class="lineno"> 4196</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div> |
| <div class="line"><a name="l04197"></a><span class="lineno"> 4197</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div> |
| <div class="line"><a name="l04198"></a><span class="lineno"> 4198</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div> |
| <div class="line"><a name="l04199"></a><span class="lineno"> 4199</span>  };</div> |
| <div class="line"><a name="l04200"></a><span class="lineno"> 4200</span>  </div> |
| <div class="line"><a name="l04201"></a><span class="lineno"> 4201</span>  ValidateDataTypes(inputXInfoBeforeParams, supportedTypes, descriptorName);</div> |
| <div class="line"><a name="l04202"></a><span class="lineno"> 4202</span>  ValidateDataTypes(inputYInfoBeforeParams, supportedTypes, descriptorName);</div> |
| <div class="line"><a name="l04203"></a><span class="lineno"> 4203</span>  ValidateDataTypes(outputInfo, supportedTypes, descriptorName);</div> |
| <div class="line"><a name="l04204"></a><span class="lineno"> 4204</span>  </div> |
| <div class="line"><a name="l04205"></a><span class="lineno"> 4205</span>  <span class="keywordflow">if</span> ((inputXInfoBeforeParams.GetNumDimensions() < 2) ||</div> |
| <div class="line"><a name="l04206"></a><span class="lineno"> 4206</span>  (inputYInfoBeforeParams.GetNumDimensions() < 2))</div> |
| <div class="line"><a name="l04207"></a><span class="lineno"> 4207</span>  {</div> |
| <div class="line"><a name="l04208"></a><span class="lineno"> 4208</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Input tensors are not 2D or greater."</span>);</div> |
| <div class="line"><a name="l04209"></a><span class="lineno"> 4209</span>  }</div> |
| <div class="line"><a name="l04210"></a><span class="lineno"> 4210</span>  </div> |
| <div class="line"><a name="l04211"></a><span class="lineno"> 4211</span>  <a class="code" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> inputXInfoAfterParams;</div> |
| <div class="line"><a name="l04212"></a><span class="lineno"> 4212</span>  <a class="code" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> inputYInfoAfterParams;</div> |
| <div class="line"><a name="l04213"></a><span class="lineno"> 4213</span>  </div> |
| <div class="line"><a name="l04214"></a><span class="lineno"> 4214</span>  <span class="keywordflow">if</span>((<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#acb441bb8db19bcce78d15cdd8ceb5ea0">m_TransposeX</a> && <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a0cf8306be7d301de0f095fff9901a525">m_AdjointX</a>) ||</div> |
| <div class="line"><a name="l04215"></a><span class="lineno"> 4215</span>  (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a112b466e5d2ab9d1887178adbe3afa1c">m_TransposeY</a> && <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#ad945fc98770356dd886a68e98a52e26b">m_AdjointY</a>))</div> |
| <div class="line"><a name="l04216"></a><span class="lineno"> 4216</span>  {</div> |
| <div class="line"><a name="l04217"></a><span class="lineno"> 4217</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div> |
| <div class="line"><a name="l04218"></a><span class="lineno"> 4218</span>  <span class="stringliteral">": Invalid descriptor parameters - Transpose and Adjoint "</span></div> |
| <div class="line"><a name="l04219"></a><span class="lineno"> 4219</span>  <span class="stringliteral">"cannot both be true for a given input tensor."</span>);</div> |
| <div class="line"><a name="l04220"></a><span class="lineno"> 4220</span>  }</div> |
| <div class="line"><a name="l04221"></a><span class="lineno"> 4221</span>  <span class="keywordflow">if</span>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#acb441bb8db19bcce78d15cdd8ceb5ea0">m_TransposeX</a>)</div> |
| <div class="line"><a name="l04222"></a><span class="lineno"> 4222</span>  {</div> |
| <div class="line"><a name="l04223"></a><span class="lineno"> 4223</span>  inputXInfoAfterParams = <a class="code" href="namespacearmnn_utils.html#abeaf4f6785039866fd075f4569ba8e84">armnnUtils::Permuted</a>(inputXInfoBeforeParams,</div> |
| <div class="line"><a name="l04224"></a><span class="lineno"> 4224</span>  <a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a85e74c2aeaf6fc124e9582329a82d72b">BatchMatMulDescriptor::GetPermuteVec</a>(</div> |
| <div class="line"><a name="l04225"></a><span class="lineno"> 4225</span>  <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aedca000a005e091c23191e82d7e81b1d">m_DataLayoutX</a>,</div> |
| <div class="line"><a name="l04226"></a><span class="lineno"> 4226</span>  inputXInfoBeforeParams.GetShape()));</div> |
| <div class="line"><a name="l04227"></a><span class="lineno"> 4227</span>  }</div> |
| <div class="line"><a name="l04228"></a><span class="lineno"> 4228</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a0cf8306be7d301de0f095fff9901a525">m_AdjointX</a>)</div> |
| <div class="line"><a name="l04229"></a><span class="lineno"> 4229</span>  {</div> |
| <div class="line"><a name="l04230"></a><span class="lineno"> 4230</span>  <span class="keyword">auto</span> axesToMul = <a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a58a8b597d58396266e06dd2c415154a2">BatchMatMulDescriptor::GetAxesToMul</a>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aedca000a005e091c23191e82d7e81b1d">m_DataLayoutX</a>,</div> |
| <div class="line"><a name="l04231"></a><span class="lineno"> 4231</span>  inputXInfoBeforeParams.GetShape());</div> |
| <div class="line"><a name="l04232"></a><span class="lineno"> 4232</span>  <span class="keywordflow">if</span>(inputXInfoBeforeParams.GetShape()[axesToMul.first] !=</div> |
| <div class="line"><a name="l04233"></a><span class="lineno"> 4233</span>  inputXInfoBeforeParams.GetShape()[axesToMul.second])</div> |
| <div class="line"><a name="l04234"></a><span class="lineno"> 4234</span>  {</div> |
| <div class="line"><a name="l04235"></a><span class="lineno"> 4235</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div> |
| <div class="line"><a name="l04236"></a><span class="lineno"> 4236</span>  <span class="stringliteral">": Adjoint is set to true for input tensor X, but the axes to be adjointed are not square."</span> );</div> |
| <div class="line"><a name="l04237"></a><span class="lineno"> 4237</span>  }</div> |
| <div class="line"><a name="l04238"></a><span class="lineno"> 4238</span>  <span class="comment">// Shape remains the same as it's square</span></div> |
| <div class="line"><a name="l04239"></a><span class="lineno"> 4239</span>  inputXInfoAfterParams = inputXInfoBeforeParams;</div> |
| <div class="line"><a name="l04240"></a><span class="lineno"> 4240</span>  }</div> |
| <div class="line"><a name="l04241"></a><span class="lineno"> 4241</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l04242"></a><span class="lineno"> 4242</span>  {</div> |
| <div class="line"><a name="l04243"></a><span class="lineno"> 4243</span>  inputXInfoAfterParams = inputXInfoBeforeParams;</div> |
| <div class="line"><a name="l04244"></a><span class="lineno"> 4244</span>  }</div> |
| <div class="line"><a name="l04245"></a><span class="lineno"> 4245</span>  </div> |
| <div class="line"><a name="l04246"></a><span class="lineno"> 4246</span>  <span class="keywordflow">if</span>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a112b466e5d2ab9d1887178adbe3afa1c">m_TransposeY</a>)</div> |
| <div class="line"><a name="l04247"></a><span class="lineno"> 4247</span>  {</div> |
| <div class="line"><a name="l04248"></a><span class="lineno"> 4248</span>  inputYInfoAfterParams = <a class="code" href="namespacearmnn_utils.html#abeaf4f6785039866fd075f4569ba8e84">armnnUtils::Permuted</a>(inputYInfoBeforeParams,</div> |
| <div class="line"><a name="l04249"></a><span class="lineno"> 4249</span>  <a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a85e74c2aeaf6fc124e9582329a82d72b">BatchMatMulDescriptor::GetPermuteVec</a>(</div> |
| <div class="line"><a name="l04250"></a><span class="lineno"> 4250</span>  <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aaf7828880989b4b9378d3e86aa6dc843">m_DataLayoutY</a>,</div> |
| <div class="line"><a name="l04251"></a><span class="lineno"> 4251</span>  inputYInfoBeforeParams.GetShape()));</div> |
| <div class="line"><a name="l04252"></a><span class="lineno"> 4252</span>  }</div> |
| <div class="line"><a name="l04253"></a><span class="lineno"> 4253</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#ad945fc98770356dd886a68e98a52e26b">m_AdjointY</a>)</div> |
| <div class="line"><a name="l04254"></a><span class="lineno"> 4254</span>  {</div> |
| <div class="line"><a name="l04255"></a><span class="lineno"> 4255</span>  <span class="keyword">auto</span> axesToMul = <a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a58a8b597d58396266e06dd2c415154a2">BatchMatMulDescriptor::GetAxesToMul</a>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aaf7828880989b4b9378d3e86aa6dc843">m_DataLayoutY</a>,</div> |
| <div class="line"><a name="l04256"></a><span class="lineno"> 4256</span>  inputYInfoBeforeParams.GetShape());</div> |
| <div class="line"><a name="l04257"></a><span class="lineno"> 4257</span>  <span class="keywordflow">if</span>(inputYInfoBeforeParams.GetShape()[axesToMul.first] !=</div> |
| <div class="line"><a name="l04258"></a><span class="lineno"> 4258</span>  inputYInfoBeforeParams.GetShape()[axesToMul.second])</div> |
| <div class="line"><a name="l04259"></a><span class="lineno"> 4259</span>  {</div> |
| <div class="line"><a name="l04260"></a><span class="lineno"> 4260</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div> |
| <div class="line"><a name="l04261"></a><span class="lineno"> 4261</span>  <span class="stringliteral">": Adjoint is set to true for input tensor Y, but the axes to be adjointed are not square."</span> );</div> |
| <div class="line"><a name="l04262"></a><span class="lineno"> 4262</span>  }</div> |
| <div class="line"><a name="l04263"></a><span class="lineno"> 4263</span>  <span class="comment">// Shape remains the same as it's square</span></div> |
| <div class="line"><a name="l04264"></a><span class="lineno"> 4264</span>  inputYInfoAfterParams = inputYInfoBeforeParams;</div> |
| <div class="line"><a name="l04265"></a><span class="lineno"> 4265</span>  }</div> |
| <div class="line"><a name="l04266"></a><span class="lineno"> 4266</span>  <span class="keywordflow">else</span></div> |
| <div class="line"><a name="l04267"></a><span class="lineno"> 4267</span>  {</div> |
| <div class="line"><a name="l04268"></a><span class="lineno"> 4268</span>  inputYInfoAfterParams = inputYInfoBeforeParams;</div> |
| <div class="line"><a name="l04269"></a><span class="lineno"> 4269</span>  }</div> |
| <div class="line"><a name="l04270"></a><span class="lineno"> 4270</span>  </div> |
| <div class="line"><a name="l04271"></a><span class="lineno"> 4271</span>  <span class="keywordflow">switch</span>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aedca000a005e091c23191e82d7e81b1d">m_DataLayoutX</a>)</div> |
| <div class="line"><a name="l04272"></a><span class="lineno"> 4272</span>  {</div> |
| <div class="line"><a name="l04273"></a><span class="lineno"> 4273</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a884e0167ebf9bbe6cfd6ca5ab97ab015">DataLayout::NCDHW</a>:</div> |
| <div class="line"><a name="l04274"></a><span class="lineno"> 4274</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a4dd0194b114cbf51da5b3a72569863ef">DataLayout::NDHWC</a>:</div> |
| <div class="line"><a name="l04275"></a><span class="lineno"> 4275</span>  <span class="keywordflow">if</span>(inputXInfoAfterParams.<a class="code" href="classarmnn_1_1_tensor_info.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() < 3)</div> |
| <div class="line"><a name="l04276"></a><span class="lineno"> 4276</span>  {</div> |
| <div class="line"><a name="l04277"></a><span class="lineno"> 4277</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div> |
| <div class="line"><a name="l04278"></a><span class="lineno"> 4278</span>  <span class="stringliteral">": Input tensor X does not have the correct "</span></div> |
| <div class="line"><a name="l04279"></a><span class="lineno"> 4279</span>  <span class="stringliteral">"number of dimensions for the Data Layout that it has been assigned."</span>);</div> |
| <div class="line"><a name="l04280"></a><span class="lineno"> 4280</span>  }</div> |
| <div class="line"><a name="l04281"></a><span class="lineno"> 4281</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l04282"></a><span class="lineno"> 4282</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a>:</div> |
| <div class="line"><a name="l04283"></a><span class="lineno"> 4283</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">DataLayout::NHWC</a>:</div> |
| <div class="line"><a name="l04284"></a><span class="lineno"> 4284</span>  <span class="keywordflow">default</span>:</div> |
| <div class="line"><a name="l04285"></a><span class="lineno"> 4285</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l04286"></a><span class="lineno"> 4286</span>  }</div> |
| <div class="line"><a name="l04287"></a><span class="lineno"> 4287</span>  </div> |
| <div class="line"><a name="l04288"></a><span class="lineno"> 4288</span>  <span class="keywordflow">switch</span>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aaf7828880989b4b9378d3e86aa6dc843">m_DataLayoutY</a>)</div> |
| <div class="line"><a name="l04289"></a><span class="lineno"> 4289</span>  {</div> |
| <div class="line"><a name="l04290"></a><span class="lineno"> 4290</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a884e0167ebf9bbe6cfd6ca5ab97ab015">DataLayout::NCDHW</a>:</div> |
| <div class="line"><a name="l04291"></a><span class="lineno"> 4291</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a4dd0194b114cbf51da5b3a72569863ef">DataLayout::NDHWC</a>:</div> |
| <div class="line"><a name="l04292"></a><span class="lineno"> 4292</span>  <span class="keywordflow">if</span>(inputYInfoAfterParams.<a class="code" href="classarmnn_1_1_tensor_info.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() < 3)</div> |
| <div class="line"><a name="l04293"></a><span class="lineno"> 4293</span>  {</div> |
| <div class="line"><a name="l04294"></a><span class="lineno"> 4294</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div> |
| <div class="line"><a name="l04295"></a><span class="lineno"> 4295</span>  <span class="stringliteral">": Input tensor Y does not have the correct "</span></div> |
| <div class="line"><a name="l04296"></a><span class="lineno"> 4296</span>  <span class="stringliteral">"number of dimensions for the Data Layout that it has been assigned."</span>);</div> |
| <div class="line"><a name="l04297"></a><span class="lineno"> 4297</span>  }</div> |
| <div class="line"><a name="l04298"></a><span class="lineno"> 4298</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l04299"></a><span class="lineno"> 4299</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a>:</div> |
| <div class="line"><a name="l04300"></a><span class="lineno"> 4300</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">DataLayout::NHWC</a>:</div> |
| <div class="line"><a name="l04301"></a><span class="lineno"> 4301</span>  <span class="keywordflow">default</span>:</div> |
| <div class="line"><a name="l04302"></a><span class="lineno"> 4302</span>  <span class="keywordflow">break</span>;</div> |
| <div class="line"><a name="l04303"></a><span class="lineno"> 4303</span>  }</div> |
| <div class="line"><a name="l04304"></a><span class="lineno"> 4304</span>  </div> |
| <div class="line"><a name="l04305"></a><span class="lineno"> 4305</span>  <span class="keyword">auto</span> axesXToMul = <a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a58a8b597d58396266e06dd2c415154a2">BatchMatMulDescriptor::GetAxesToMul</a>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aedca000a005e091c23191e82d7e81b1d">m_DataLayoutX</a>,</div> |
| <div class="line"><a name="l04306"></a><span class="lineno"> 4306</span>  inputXInfoAfterParams.<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>());</div> |
| <div class="line"><a name="l04307"></a><span class="lineno"> 4307</span>  <span class="keyword">auto</span> axesYToMul = <a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a58a8b597d58396266e06dd2c415154a2">BatchMatMulDescriptor::GetAxesToMul</a>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aaf7828880989b4b9378d3e86aa6dc843">m_DataLayoutY</a>,</div> |
| <div class="line"><a name="l04308"></a><span class="lineno"> 4308</span>  inputXInfoBeforeParams.GetShape());</div> |
| <div class="line"><a name="l04309"></a><span class="lineno"> 4309</span>  </div> |
| <div class="line"><a name="l04310"></a><span class="lineno"> 4310</span>  <span class="keywordflow">if</span>(inputXInfoAfterParams.<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>()[axesXToMul.second]</div> |
| <div class="line"><a name="l04311"></a><span class="lineno"> 4311</span>  != inputYInfoAfterParams.<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>()[axesYToMul.first])</div> |
| <div class="line"><a name="l04312"></a><span class="lineno"> 4312</span>  {</div> |
| <div class="line"><a name="l04313"></a><span class="lineno"> 4313</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div> |
| <div class="line"><a name="l04314"></a><span class="lineno"> 4314</span>  <span class="stringliteral">": The final axis of input tensor X must be the same size as "</span></div> |
| <div class="line"><a name="l04315"></a><span class="lineno"> 4315</span>  <span class="stringliteral">"the second last axis of input tensor Y."</span>);</div> |
| <div class="line"><a name="l04316"></a><span class="lineno"> 4316</span>  }</div> |
| <div class="line"><a name="l04317"></a><span class="lineno"> 4317</span>  </div> |
| <div class="line"><a name="l04318"></a><span class="lineno"> 4318</span>  { <span class="comment">// Separate scope so we don't pollute the rest of the scope with our temp variables</span></div> |
| <div class="line"><a name="l04319"></a><span class="lineno"> 4319</span>  <span class="comment">// e.g. NHWC isnt compatible with NCHW as of now</span></div> |
| <div class="line"><a name="l04320"></a><span class="lineno"> 4320</span>  <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> xLayout = <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aedca000a005e091c23191e82d7e81b1d">m_DataLayoutX</a>;</div> |
| <div class="line"><a name="l04321"></a><span class="lineno"> 4321</span>  <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> yLayout = <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aaf7828880989b4b9378d3e86aa6dc843">m_DataLayoutY</a>;</div> |
| <div class="line"><a name="l04322"></a><span class="lineno"> 4322</span>  </div> |
| <div class="line"><a name="l04323"></a><span class="lineno"> 4323</span>  <span class="keywordflow">if</span>(xLayout == <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a> || xLayout == <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a884e0167ebf9bbe6cfd6ca5ab97ab015">DataLayout::NCDHW</a>)</div> |
| <div class="line"><a name="l04324"></a><span class="lineno"> 4324</span>  {</div> |
| <div class="line"><a name="l04325"></a><span class="lineno"> 4325</span>  <span class="keywordflow">if</span>(yLayout == <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">DataLayout::NHWC</a> || yLayout == <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a4dd0194b114cbf51da5b3a72569863ef">DataLayout::NDHWC</a>)</div> |
| <div class="line"><a name="l04326"></a><span class="lineno"> 4326</span>  {</div> |
| <div class="line"><a name="l04327"></a><span class="lineno"> 4327</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div> |
| <div class="line"><a name="l04328"></a><span class="lineno"> 4328</span>  <span class="stringliteral">": Invalid input tensor data layout combination."</span>);</div> |
| <div class="line"><a name="l04329"></a><span class="lineno"> 4329</span>  }</div> |
| <div class="line"><a name="l04330"></a><span class="lineno"> 4330</span>  }</div> |
| <div class="line"><a name="l04331"></a><span class="lineno"> 4331</span>  <span class="keywordflow">if</span>(yLayout == <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a> || yLayout == <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a884e0167ebf9bbe6cfd6ca5ab97ab015">DataLayout::NCDHW</a>)</div> |
| <div class="line"><a name="l04332"></a><span class="lineno"> 4332</span>  {</div> |
| <div class="line"><a name="l04333"></a><span class="lineno"> 4333</span>  <span class="keywordflow">if</span>(xLayout == <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">DataLayout::NHWC</a> || xLayout == <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a4dd0194b114cbf51da5b3a72569863ef">DataLayout::NDHWC</a>)</div> |
| <div class="line"><a name="l04334"></a><span class="lineno"> 4334</span>  {</div> |
| <div class="line"><a name="l04335"></a><span class="lineno"> 4335</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div> |
| <div class="line"><a name="l04336"></a><span class="lineno"> 4336</span>  <span class="stringliteral">": Invalid input tensor data layout combination."</span>);</div> |
| <div class="line"><a name="l04337"></a><span class="lineno"> 4337</span>  }</div> |
| <div class="line"><a name="l04338"></a><span class="lineno"> 4338</span>  }</div> |
| <div class="line"><a name="l04339"></a><span class="lineno"> 4339</span>  }</div> |
| <div class="line"><a name="l04340"></a><span class="lineno"> 4340</span>  </div> |
| <div class="line"><a name="l04341"></a><span class="lineno"> 4341</span>  <span class="comment">// Simulate aligning the ends of the matrix dims and prepending 1's to the beginning of the shorter one</span></div> |
| <div class="line"><a name="l04342"></a><span class="lineno"> 4342</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> outputTensorDimSize = std::max(inputXInfoAfterParams.<a class="code" href="classarmnn_1_1_tensor_info.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(),</div> |
| <div class="line"><a name="l04343"></a><span class="lineno"> 4343</span>  inputYInfoAfterParams.<a class="code" href="classarmnn_1_1_tensor_info.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>());</div> |
| <div class="line"><a name="l04344"></a><span class="lineno"> 4344</span>  <span class="keywordflow">if</span>(outputTensorDimSize-2 > 0)</div> |
| <div class="line"><a name="l04345"></a><span class="lineno"> 4345</span>  {</div> |
| <div class="line"><a name="l04346"></a><span class="lineno"> 4346</span>  <a class="code" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> tiXNotMul = <a class="code" href="classarmnn_1_1_tensor_info.html">TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.html">TensorShape</a>(outputTensorDimSize-2),</div> |
| <div class="line"><a name="l04347"></a><span class="lineno"> 4347</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>);</div> |
| <div class="line"><a name="l04348"></a><span class="lineno"> 4348</span>  <a class="code" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> tiYNotMul = <a class="code" href="classarmnn_1_1_tensor_info.html">TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.html">TensorShape</a>(outputTensorDimSize-2),</div> |
| <div class="line"><a name="l04349"></a><span class="lineno"> 4349</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>);</div> |
| <div class="line"><a name="l04350"></a><span class="lineno"> 4350</span>  <a class="code" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> tiOutNotMul = <a class="code" href="classarmnn_1_1_tensor_info.html">TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.html">TensorShape</a>(outputTensorDimSize-2),</div> |
| <div class="line"><a name="l04351"></a><span class="lineno"> 4351</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>);</div> |
| <div class="line"><a name="l04352"></a><span class="lineno"> 4352</span>  </div> |
| <div class="line"><a name="l04353"></a><span class="lineno"> 4353</span>  <span class="keyword">auto</span> doAxisExtension = [&](std::vector<unsigned int> axisIndices, <a class="code" href="classarmnn_1_1_tensor_info.html">TensorInfo</a>& ti)</div> |
| <div class="line"><a name="l04354"></a><span class="lineno"> 4354</span>  {</div> |
| <div class="line"><a name="l04355"></a><span class="lineno"> 4355</span>  <span class="keyword">auto</span> sizeDiff = (outputTensorDimSize-2) - axisIndices.size();</div> |
| <div class="line"><a name="l04356"></a><span class="lineno"> 4356</span>  </div> |
| <div class="line"><a name="l04357"></a><span class="lineno"> 4357</span>  <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < sizeDiff; i++)</div> |
| <div class="line"><a name="l04358"></a><span class="lineno"> 4358</span>  {</div> |
| <div class="line"><a name="l04359"></a><span class="lineno"> 4359</span>  axisIndices.insert(axisIndices.begin(), 1);</div> |
| <div class="line"><a name="l04360"></a><span class="lineno"> 4360</span>  }</div> |
| <div class="line"><a name="l04361"></a><span class="lineno"> 4361</span>  </div> |
| <div class="line"><a name="l04362"></a><span class="lineno"> 4362</span>  <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < ti.GetNumDimensions(); i++)</div> |
| <div class="line"><a name="l04363"></a><span class="lineno"> 4363</span>  {</div> |
| <div class="line"><a name="l04364"></a><span class="lineno"> 4364</span>  ti.GetShape()[i] = inputXInfoAfterParams.<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>()[i];</div> |
| <div class="line"><a name="l04365"></a><span class="lineno"> 4365</span>  }</div> |
| <div class="line"><a name="l04366"></a><span class="lineno"> 4366</span>  };</div> |
| <div class="line"><a name="l04367"></a><span class="lineno"> 4367</span>  </div> |
| <div class="line"><a name="l04368"></a><span class="lineno"> 4368</span>  <span class="keyword">auto</span> axesXNotMul = <a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a991faafc762a50c3aa7a756117378cc1">BatchMatMulDescriptor::GetAxesNotMul</a>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aedca000a005e091c23191e82d7e81b1d">m_DataLayoutX</a>,</div> |
| <div class="line"><a name="l04369"></a><span class="lineno"> 4369</span>  inputXInfoAfterParams.<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>());</div> |
| <div class="line"><a name="l04370"></a><span class="lineno"> 4370</span>  <span class="keyword">auto</span> axesYNotMul = <a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#a991faafc762a50c3aa7a756117378cc1">BatchMatMulDescriptor::GetAxesNotMul</a>(<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_batch_mat_mul_descriptor.html#aaf7828880989b4b9378d3e86aa6dc843">m_DataLayoutY</a>,</div> |
| <div class="line"><a name="l04371"></a><span class="lineno"> 4371</span>  inputYInfoAfterParams.<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>());</div> |
| <div class="line"><a name="l04372"></a><span class="lineno"> 4372</span>  </div> |
| <div class="line"><a name="l04373"></a><span class="lineno"> 4373</span>  doAxisExtension(axesXNotMul, tiXNotMul);</div> |
| <div class="line"><a name="l04374"></a><span class="lineno"> 4374</span>  doAxisExtension(axesYNotMul, tiYNotMul);</div> |
| <div class="line"><a name="l04375"></a><span class="lineno"> 4375</span>  </div> |
| <div class="line"><a name="l04376"></a><span class="lineno"> 4376</span>  <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < tiOutNotMul.<a class="code" href="classarmnn_1_1_tensor_info.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(); i++)</div> |
| <div class="line"><a name="l04377"></a><span class="lineno"> 4377</span>  {</div> |
| <div class="line"><a name="l04378"></a><span class="lineno"> 4378</span>  tiOutNotMul.<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>()[i] = std::max(tiXNotMul.<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>()[i],</div> |
| <div class="line"><a name="l04379"></a><span class="lineno"> 4379</span>  tiYNotMul.<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>()[i]);</div> |
| <div class="line"><a name="l04380"></a><span class="lineno"> 4380</span>  }</div> |
| <div class="line"><a name="l04381"></a><span class="lineno"> 4381</span>  </div> |
| <div class="line"><a name="l04382"></a><span class="lineno"> 4382</span>  ValidateBroadcastTensorShapesMatch(tiXNotMul,</div> |
| <div class="line"><a name="l04383"></a><span class="lineno"> 4383</span>  tiYNotMul,</div> |
| <div class="line"><a name="l04384"></a><span class="lineno"> 4384</span>  tiOutNotMul,</div> |
| <div class="line"><a name="l04385"></a><span class="lineno"> 4385</span>  descriptorName,</div> |
| <div class="line"><a name="l04386"></a><span class="lineno"> 4386</span>  <span class="stringliteral">"input_X"</span>,</div> |
| <div class="line"><a name="l04387"></a><span class="lineno"> 4387</span>  <span class="stringliteral">"input_Y"</span>);</div> |
| <div class="line"><a name="l04388"></a><span class="lineno"> 4388</span>  }</div> |
| <div class="line"><a name="l04389"></a><span class="lineno"> 4389</span> }</div> |
| </div><!-- fragment --> |
| <p class="reference">References <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">armnn::BFloat16</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">armnn::Float16</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::Float32</a>, <a class="el" href="_descriptors_8cpp_source.html#l00506">BatchMatMulDescriptor::GetAxesNotMul()</a>, <a class="el" href="_descriptors_8cpp_source.html#l00485">BatchMatMulDescriptor::GetAxesToMul()</a>, <a class="el" href="_tensor_8hpp_source.html#l00197">TensorInfo::GetNumDimensions()</a>, <a class="el" href="_descriptors_8cpp_source.html#l00523">BatchMatMulDescriptor::GetPermuteVec()</a>, <a class="el" href="_tensor_8hpp_source.html#l00193">TensorInfo::GetShape()</a>, <a class="el" href="_descriptors_8hpp_source.html#l01617">BatchMatMulDescriptor::m_AdjointX</a>, <a class="el" href="_descriptors_8hpp_source.html#l01618">BatchMatMulDescriptor::m_AdjointY</a>, <a class="el" href="_descriptors_8hpp_source.html#l01621">BatchMatMulDescriptor::m_DataLayoutX</a>, <a class="el" href="_descriptors_8hpp_source.html#l01622">BatchMatMulDescriptor::m_DataLayoutY</a>, <a class="el" href="_workload_info_8hpp_source.html#l00018">WorkloadInfo::m_InputTensorInfos</a>, <a class="el" href="_workload_info_8hpp_source.html#l00019">WorkloadInfo::m_OutputTensorInfos</a>, <a class="el" href="_workload_data_8hpp_source.html#l00066">QueueDescriptorWithParameters< BatchMatMulDescriptor >::m_Parameters</a>, <a class="el" href="_descriptors_8hpp_source.html#l01612">BatchMatMulDescriptor::m_TransposeX</a>, <a class="el" href="_descriptors_8hpp_source.html#l01613">BatchMatMulDescriptor::m_TransposeY</a>, <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a884e0167ebf9bbe6cfd6ca5ab97ab015">armnn::NCDHW</a>, <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">armnn::NCHW</a>, <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a4dd0194b114cbf51da5b3a72569863ef">armnn::NDHWC</a>, <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">armnn::NHWC</a>, <a class="el" href="_permute_8cpp_source.html#l00125">armnnUtils::Permuted()</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">armnn::QAsymmS8</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::QAsymmU8</a>, and <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::QSymmS16</a>.</p> |
| |
| </div> |
| </div> |
| <hr/>The documentation for this struct was generated from the following files:<ul> |
| <li>include/armnn/backends/<a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a></li> |
| <li>src/backends/backendsCommon/<a class="el" href="_workload_data_8cpp_source.html">WorkloadData.cpp</a></li> |
| </ul> |
| </div><!-- contents --> |
| </div><!-- doc-content --> |
| <div class="ttc" id="astructarmnn_1_1_batch_mat_mul_descriptor_html_acb441bb8db19bcce78d15cdd8ceb5ea0"><div class="ttname"><a href="structarmnn_1_1_batch_mat_mul_descriptor.html#acb441bb8db19bcce78d15cdd8ceb5ea0">armnn::BatchMatMulDescriptor::m_TransposeX</a></div><div class="ttdeci">bool m_TransposeX</div><div class="ttdoc">Transpose the slices of each input tensor Transpose and Adjoint can not both be set to true for the s...</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01612">Descriptors.hpp:1612</a></div></div> |
| <div class="ttc" id="anamespacearmnn_html_ad1d5cce2d9e9a5d61c243e5c989112e0a884e0167ebf9bbe6cfd6ca5ab97ab015"><div class="ttname"><a href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a884e0167ebf9bbe6cfd6ca5ab97ab015">armnn::DataLayout::NCDHW</a></div><div class="ttdeci">@ NCDHW</div></div> |
| <div class="ttc" id="anamespacearmnn_html_ad1d5cce2d9e9a5d61c243e5c989112e0"><div class="ttname"><a href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a></div><div class="ttdeci">DataLayout</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.html#l00062">Types.hpp:62</a></div></div> |
| <div class="ttc" id="astructarmnn_1_1_batch_mat_mul_descriptor_html_a0cf8306be7d301de0f095fff9901a525"><div class="ttname"><a href="structarmnn_1_1_batch_mat_mul_descriptor.html#a0cf8306be7d301de0f095fff9901a525">armnn::BatchMatMulDescriptor::m_AdjointX</a></div><div class="ttdeci">bool m_AdjointX</div><div class="ttdoc">Adjoint the slices of each input tensor Transpose and Adjoint can not both be set to true for the sam...</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01617">Descriptors.hpp:1617</a></div></div> |
| <div class="ttc" id="anamespacearmnn_html_ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51"><div class="ttname"><a href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">armnn::DataLayout::NHWC</a></div><div class="ttdeci">@ NHWC</div></div> |
| <div class="ttc" id="astructarmnn_1_1_batch_mat_mul_descriptor_html_a58a8b597d58396266e06dd2c415154a2"><div class="ttname"><a href="structarmnn_1_1_batch_mat_mul_descriptor.html#a58a8b597d58396266e06dd2c415154a2">armnn::BatchMatMulDescriptor::GetAxesToMul</a></div><div class="ttdeci">static std::pair< unsigned int, unsigned int > GetAxesToMul(DataLayout dataLayout, const TensorShape &tensorShape)</div><div class="ttdoc">Static helper to get the two axes (for each input) for multiplication.</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.html#l00485">Descriptors.cpp:485</a></div></div> |
| <div class="ttc" id="astructarmnn_1_1_batch_mat_mul_descriptor_html_aedca000a005e091c23191e82d7e81b1d"><div class="ttname"><a href="structarmnn_1_1_batch_mat_mul_descriptor.html#aedca000a005e091c23191e82d7e81b1d">armnn::BatchMatMulDescriptor::m_DataLayoutX</a></div><div class="ttdeci">DataLayout m_DataLayoutX</div><div class="ttdoc">Data layout of each input tensor, such as NHWC/NDHWC (leave as default for arbitrary layout)</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01621">Descriptors.hpp:1621</a></div></div> |
| <div class="ttc" id="aclassarmnn_1_1_tensor_info_html"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00152">Tensor.hpp:152</a></div></div> |
| <div class="ttc" id="aclassarmnn_1_1_tensor_info_html_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorInfo::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00197">Tensor.hpp:197</a></div></div> |
| <div class="ttc" id="anamespacearmnn_html_ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204"><div class="ttname"><a href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a></div><div class="ttdeci">@ Float32</div></div> |
| <div class="ttc" id="astructarmnn_1_1_batch_mat_mul_descriptor_html_a85e74c2aeaf6fc124e9582329a82d72b"><div class="ttname"><a href="structarmnn_1_1_batch_mat_mul_descriptor.html#a85e74c2aeaf6fc124e9582329a82d72b">armnn::BatchMatMulDescriptor::GetPermuteVec</a></div><div class="ttdeci">static PermutationVector GetPermuteVec(DataLayout dataLayout, const TensorShape &tensorShape)</div><div class="ttdoc">Static helper to get the axes which will be transposed.</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.html#l00523">Descriptors.cpp:523</a></div></div> |
| <div class="ttc" id="astructarmnn_1_1_batch_mat_mul_descriptor_html_ad945fc98770356dd886a68e98a52e26b"><div class="ttname"><a href="structarmnn_1_1_batch_mat_mul_descriptor.html#ad945fc98770356dd886a68e98a52e26b">armnn::BatchMatMulDescriptor::m_AdjointY</a></div><div class="ttdeci">bool m_AdjointY</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01618">Descriptors.hpp:1618</a></div></div> |
| <div class="ttc" id="anamespacearmnn_html_ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e"><div class="ttname"><a href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::DataType::QAsymmU8</a></div><div class="ttdeci">@ QAsymmU8</div></div> |
| <div class="ttc" id="anamespacearmnn_utils_html_abeaf4f6785039866fd075f4569ba8e84"><div class="ttname"><a href="namespacearmnn_utils.html#abeaf4f6785039866fd075f4569ba8e84">armnnUtils::Permuted</a></div><div class="ttdeci">armnn::TensorShape Permuted(const armnn::TensorShape &srcShape, const armnn::PermutationVector &mappings)</div><div class="ttdef"><b>Definition:</b> <a href="_permute_8cpp_source.html#l00125">Permute.cpp:125</a></div></div> |
| <div class="ttc" id="anamespacearmnn_html_ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7"><div class="ttname"><a href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::DataType::QSymmS16</a></div><div class="ttdeci">@ QSymmS16</div></div> |
| <div class="ttc" id="anamespacearmnn_html_ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af"><div class="ttname"><a href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">armnn::DataType::BFloat16</a></div><div class="ttdeci">@ BFloat16</div></div> |
| <div class="ttc" id="anamespacearmnn_html_ad1d5cce2d9e9a5d61c243e5c989112e0a4dd0194b114cbf51da5b3a72569863ef"><div class="ttname"><a href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a4dd0194b114cbf51da5b3a72569863ef">armnn::DataLayout::NDHWC</a></div><div class="ttdeci">@ NDHWC</div></div> |
| <div class="ttc" id="aclassarmnn_1_1_tensor_shape_html"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00020">Tensor.hpp:20</a></div></div> |
| <div class="ttc" id="anamespacearmnn_html_ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55"><div class="ttname"><a href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">armnn::DataType::Float16</a></div><div class="ttdeci">@ Float16</div></div> |
| <div class="ttc" id="astructarmnn_1_1_workload_info_html_a67b178f8a836bc1e52b8de109760adfd"><div class="ttname"><a href="structarmnn_1_1_workload_info.html#a67b178f8a836bc1e52b8de109760adfd">armnn::WorkloadInfo::m_OutputTensorInfos</a></div><div class="ttdeci">std::vector< TensorInfo > m_OutputTensorInfos</div><div class="ttdef"><b>Definition:</b> <a href="_workload_info_8hpp_source.html#l00019">WorkloadInfo.hpp:19</a></div></div> |
| <div class="ttc" id="astructarmnn_1_1_queue_descriptor_with_parameters_html_aad91b9bbf7aa365d304febe79a3d1333"><div class="ttname"><a href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">armnn::QueueDescriptorWithParameters< BatchMatMulDescriptor >::m_Parameters</a></div><div class="ttdeci">BatchMatMulDescriptor m_Parameters</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00066">WorkloadData.hpp:66</a></div></div> |
| <div class="ttc" id="astructarmnn_1_1_batch_mat_mul_descriptor_html_a112b466e5d2ab9d1887178adbe3afa1c"><div class="ttname"><a href="structarmnn_1_1_batch_mat_mul_descriptor.html#a112b466e5d2ab9d1887178adbe3afa1c">armnn::BatchMatMulDescriptor::m_TransposeY</a></div><div class="ttdeci">bool m_TransposeY</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01613">Descriptors.hpp:1613</a></div></div> |
| <div class="ttc" id="astructarmnn_1_1_batch_mat_mul_descriptor_html_aaf7828880989b4b9378d3e86aa6dc843"><div class="ttname"><a href="structarmnn_1_1_batch_mat_mul_descriptor.html#aaf7828880989b4b9378d3e86aa6dc843">armnn::BatchMatMulDescriptor::m_DataLayoutY</a></div><div class="ttdeci">DataLayout m_DataLayoutY</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01622">Descriptors.hpp:1622</a></div></div> |
| <div class="ttc" id="aclassarmnn_1_1_invalid_argument_exception_html"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.html">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00080">Exceptions.hpp:80</a></div></div> |
| <div class="ttc" id="anamespacearmnn_html_ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d"><div class="ttname"><a href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">armnn::DataType::QAsymmS8</a></div><div class="ttdeci">@ QAsymmS8</div></div> |
| <div class="ttc" id="aclassarmnn_1_1_tensor_info_html_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">armnn::TensorInfo::GetShape</a></div><div class="ttdeci">const TensorShape & GetShape() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00193">Tensor.hpp:193</a></div></div> |
| <div class="ttc" id="astructarmnn_1_1_workload_info_html_ac97905bfa0daab357b91df1347600309"><div class="ttname"><a href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">armnn::WorkloadInfo::m_InputTensorInfos</a></div><div class="ttdeci">std::vector< TensorInfo > m_InputTensorInfos</div><div class="ttdef"><b>Definition:</b> <a href="_workload_info_8hpp_source.html#l00018">WorkloadInfo.hpp:18</a></div></div> |
| <div class="ttc" id="astructarmnn_1_1_batch_mat_mul_descriptor_html_a991faafc762a50c3aa7a756117378cc1"><div class="ttname"><a href="structarmnn_1_1_batch_mat_mul_descriptor.html#a991faafc762a50c3aa7a756117378cc1">armnn::BatchMatMulDescriptor::GetAxesNotMul</a></div><div class="ttdeci">static std::vector< unsigned int > GetAxesNotMul(DataLayout dataLayout, const TensorShape &tensorShape)</div><div class="ttdoc">Static helper to get the axes (for each input) that will not be multiplied together.</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.html#l00506">Descriptors.cpp:506</a></div></div> |
| <div class="ttc" id="anamespacearmnn_html_ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f"><div class="ttname"><a href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">armnn::DataLayout::NCHW</a></div><div class="ttdeci">@ NCHW</div></div> |
| <!-- start footer part --> |
| <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> |
| <ul> |
| <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="structarmnn_1_1_batch_mat_mul_queue_descriptor.html">BatchMatMulQueueDescriptor</a></li> |
| <li class="footer">Generated on Thu May 16 2024 09:31:54 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> |