<!-- 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: Member List</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('structarmnn_1_1_runtime_impl.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="headertitle">
<div class="title">RuntimeImpl Member List</div>  </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a>, including all inherited members.</p>
<table class="directory">
  <tr class="even"><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#ab2498cef8d01323527d59b6bb5848eed">ClearImportedInputs</a>(NetworkId networkId, const std::vector&lt; ImportedInputId &gt; inputIds)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a746d54f647096c2f9932dae20a6590a2">ClearImportedOutputs</a>(NetworkId networkId, const std::vector&lt; ImportedOutputId &gt; outputIds)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a16e72675c37a8f251cf02951e222d4ab">CreateWorkingMemHandle</a>(NetworkId networkId)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#aca51209383683ab8dbe801bbfddfe0c0">EnqueueWorkload</a>(NetworkId networkId, const InputTensors &amp;inputTensors, const OutputTensors &amp;outputTensors, std::vector&lt; ImportedInputId &gt; preImportedInputIds={}, std::vector&lt; ImportedOutputId &gt; preImportedOutputIds={})</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a5637cf5a5ddd5da1058606e26ca06737">Execute</a>(IWorkingMemHandle &amp;workingMemHandle, const InputTensors &amp;inputTensors, const OutputTensors &amp;outputTensors, std::vector&lt; ImportedInputId &gt; preImportedInputs, std::vector&lt; ImportedOutputId &gt; preImportedOutputs)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#ace3a3fbd42ff981af628e91fbeb254d5">GetDeviceSpec</a>() const</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#aa198ca53eeb01b6e2134da924ec36405">GetInputTensorInfo</a>(NetworkId networkId, LayerBindingId layerId) const</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a81c83702b94931626c6d84a3fa915362">GetOutputTensorInfo</a>(NetworkId networkId, LayerBindingId layerId) const</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#af87d0743d1266e264c3197a32299f4b2">GetProfiler</a>(NetworkId networkId) const</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#ad100e1d65ec8df307df124da56b16e69">GetProfilingService</a>(RuntimeImpl *runtime)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a9e568c24b320fffcbacf27d9e5025b68">ImportInputs</a>(NetworkId networkId, const InputTensors &amp;inputTensors, MemorySource forceImportMemorySource)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a759c10269d17da40e41500a132d4f0d8">ImportOutputs</a>(NetworkId networkId, const OutputTensors &amp;outputTensors, MemorySource forceImportMemorySource)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#ae481f80f6519544d0d20d4f5d7419c7c">InitialiseProfilingService</a>(arm::pipe::IProfilingService &amp;profilingService) override</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#af92b5ae61208a778571bcea7e6aac7b4">LoadNetwork</a>(NetworkId &amp;networkIdOut, IOptimizedNetworkPtr network)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a0e36bbd86f21d7ddec31588deed2ac77">LoadNetwork</a>(NetworkId &amp;networkIdOut, IOptimizedNetworkPtr network, std::string &amp;errorMessage)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a65582587432a8dd20c3b1ad2a4f1f642">LoadNetwork</a>(NetworkId &amp;networkIdOut, IOptimizedNetworkPtr network, std::string &amp;errorMessage, const INetworkProperties &amp;networkProperties)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a957014ce1bfd27e99f0a50b3ced439e1">RegisterDebugCallback</a>(NetworkId networkId, const DebugCallbackFunction &amp;func)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a26fba70157e543867e53fded4373787d">ReportStructure</a>(arm::pipe::IProfilingService &amp;profilingService) override</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a16dc7f9aef55701fb8634997eef570b0">RuntimeImpl</a>(const IRuntime::CreationOptions &amp;options)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#ab066312b4ca56c429a6b9c4095ac95ff">RuntimeLoadedNetworksReserve</a>(RuntimeImpl *runtime)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#aed397991b99f485ffab9a42aece47019">UnloadNetwork</a>(NetworkId networkId)</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html#a67c5b82a7e34c291702233eb716cf96f">~RuntimeImpl</a>()</td><td class="entry"><a class="el" href="structarmnn_1_1_runtime_impl.html">RuntimeImpl</a></td><td class="entry"></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="footer">Generated on Thu May 16 2024 09:31:59 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>
