<map id="nlohmann::detail::iterator_traits< T *, enable_if_t< std::is_object< T >::value > >" name="nlohmann::detail::iterator_traits< T *, enable_if_t< std::is_object< T >::value > >">
<pclass="definition">Definition at line <aclass="el"href="../../d5/db8/json_8hpp_source.html#l03713">3713</a> of file <aclass="el"href="../../d5/db8/json_8hpp_source.html">json.hpp</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
struct nlohmann::detail::utility_internal::Gen< T, N ></h3>
<pclass="definition">Definition at line <aclass="el"href="../../d5/db8/json_8hpp_source.html#l03114">3114</a> of file <aclass="el"href="../../d5/db8/json_8hpp_source.html">json.hpp</a>.</p>
<tdclass="memname">using <aclass="el"href="../../d3/d8d/structnlohmann_1_1detail_1_1utility__internal_1_1Gen.html">nlohmann::detail::utility_internal::Gen</a>< T, N >::<aclass="el"href="../../d3/d8d/structnlohmann_1_1detail_1_1utility__internal_1_1Gen.html#a1d6f2c7fb3fa065bf8cf6e6e3544dcef">type</a> = typename <aclass="el"href="../../d7/d3c/structnlohmann_1_1detail_1_1utility__internal_1_1Extend.html">Extend</a>< typename <aclass="el"href="../../d3/d8d/structnlohmann_1_1detail_1_1utility__internal_1_1Gen.html">Gen</a>< T, N / 2 >::<aclass="el"href="../../d3/d8d/structnlohmann_1_1detail_1_1utility__internal_1_1Gen.html#a1d6f2c7fb3fa065bf8cf6e6e3544dcef">type</a>, N / 2, N % 2 >::<aclass="el"href="../../d3/d8d/structnlohmann_1_1detail_1_1utility__internal_1_1Gen.html#a1d6f2c7fb3fa065bf8cf6e6e3544dcef">type</a></td>
</tr>
</table>
</div><divclass="memdoc">
<pclass="definition">Definition at line <aclass="el"href="../../d5/db8/json_8hpp_source.html#l03117">3117</a> of file <aclass="el"href="../../d5/db8/json_8hpp_source.html">json.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<!-- iframe showing the search results (closed by default) -->
<divid="MSearchResultsWindow">
<iframesrc="javascript:void(0)"frameborder="0"
name="MSearchResults"id="MSearchResults">
</iframe>
</div>
<divclass="header">
<divclass="headertitle">
<divclass="title">cudnn_frontend::EngineBuilder_v8 Member List</div></div>
</div><!--header-->
<divclass="contents">
<p>This is the complete list of members for <aclass="el"href="../../d9/dfd/classcudnn__frontend_1_1EngineBuilder__v8.html">cudnn_frontend::EngineBuilder_v8</a>, including all inherited members.</p>
<!-- iframe showing the search results (closed by default) -->
<divid="MSearchResultsWindow">
<iframesrc="javascript:void(0)"frameborder="0"
name="MSearchResults"id="MSearchResults">
</iframe>
</div>
<divclass="header">
<divclass="headertitle">
<divclass="title">cudnn_frontend::ConvDesc_v8 Member List</div></div>
</div><!--header-->
<divclass="contents">
<p>This is the complete list of members for <aclass="el"href="../../d6/d73/classcudnn__frontend_1_1ConvDesc__v8.html">cudnn_frontend::ConvDesc_v8</a>, including all inherited members.</p>
<trclass="memdesc:gaefa06fdaae3b28c6ef08a0189e2a3d3a"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Will be Deprecated Do not use. <ahref="#gaefa06fdaae3b28c6ef08a0189e2a3d3a">More...</a><br/></td></tr>
<trclass="memdesc:ga08f3d4cb5138174127d0f6899f7bc53b"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Will be Deprecated Do not use. <ahref="#ga08f3d4cb5138174127d0f6899f7bc53b">More...</a><br/></td></tr>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01317">1317</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01281">1281</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00142">cudnn_frontend::Operation_v8::alpha_d</a>, and <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00141">cudnn_frontend::Operation_v8::alpha_s</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01287">1287</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00142">cudnn_frontend::Operation_v8::alpha_d</a>, and <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00141">cudnn_frontend::Operation_v8::alpha_s</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01293">1293</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00142">cudnn_frontend::Operation_v8::alpha2_d</a>, and <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00141">cudnn_frontend::Operation_v8::alpha2_s</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01299">1299</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00142">cudnn_frontend::Operation_v8::alpha2_d</a>, and <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00141">cudnn_frontend::Operation_v8::alpha2_s</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01161">1161</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00133">cudnn_frontend::Operation_v8::amatdesc</a>, and <aclass="el"href="../../df/d17/cudnn__frontend__utils_8h_source.html#l00138">cudnn_frontend::set_error_and_throw_exception()</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01075">1075</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00128">cudnn_frontend::Operation_v8::bdesc</a>, and <aclass="el"href="../../df/d17/cudnn__frontend__utils_8h_source.html#l00138">cudnn_frontend::set_error_and_throw_exception()</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01305">1305</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00142">cudnn_frontend::Operation_v8::beta_d</a>, and <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00141">cudnn_frontend::Operation_v8::beta_s</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01311">1311</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00142">cudnn_frontend::Operation_v8::beta_d</a>, and <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00141">cudnn_frontend::Operation_v8::beta_s</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01172">1172</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00134">cudnn_frontend::Operation_v8::bmatdesc</a>, and <aclass="el"href="../../df/d17/cudnn__frontend__utils_8h_source.html#l00138">cudnn_frontend::set_error_and_throw_exception()</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01141">1141</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00140">cudnn_frontend::Operation_v8::alphabetaType</a>, <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00132">cudnn_frontend::Operation_v8::cdesc</a>, and <aclass="el"href="../../df/d17/cudnn__frontend__utils_8h_source.html#l00138">cudnn_frontend::set_error_and_throw_exception()</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01183">1183</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00135">cudnn_frontend::Operation_v8::cmatdesc</a>, and <aclass="el"href="../../df/d17/cudnn__frontend__utils_8h_source.html#l00138">cudnn_frontend::set_error_and_throw_exception()</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01132">1132</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01123">1123</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01110">1110</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01115">1115</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01194">1194</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00137">cudnn_frontend::Operation_v8::matmuldesc</a>, and <aclass="el"href="../../df/d17/cudnn__frontend__utils_8h_source.html#l00138">cudnn_frontend::set_error_and_throw_exception()</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01216">1216</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00146">cudnn_frontend::Operation_v8::is_pointwise_activation_bwd_op</a>, <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00145">cudnn_frontend::Operation_v8::is_pointwise_activation_fwd_op</a>, <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00147">cudnn_frontend::Operation_v8::is_pointwise_math_op</a>, <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00144">cudnn_frontend::Operation_v8::pointwise_mode</a>, <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00143">cudnn_frontend::Operation_v8::pointwise_port_count</a>, <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00136">cudnn_frontend::Operation_v8::pwdesc</a>, and <aclass="el"href="../../df/d17/cudnn__frontend__utils_8h_source.html#l00138">cudnn_frontend::set_error_and_throw_exception()</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01205">1205</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00138">cudnn_frontend::Operation_v8::reductiondesc</a>, and <aclass="el"href="../../df/d17/cudnn__frontend__utils_8h_source.html#l00138">cudnn_frontend::set_error_and_throw_exception()</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01094">1094</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="reference">References <aclass="el"href="../../df/d17/cudnn__frontend__utils_8h_source.html#l00138">cudnn_frontend::set_error_and_throw_exception()</a>, and <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l00127">cudnn_frontend::Operation_v8::wdesc</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01060">1060</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01066">1066</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html#l01086">1086</a> of file <aclass="el"href="../../da/d5a/cudnn__frontend__Operation_8h_source.html">cudnn_frontend_Operation.h</a>.</p>
<p>This is the complete list of members for <aclass="el"href="../../d9/de0/structnlohmann_1_1detail_1_1detector_3_01Default_00_01void__t_3_01Op_3_01Args_8_8_8_01_4_01_4_00_01Op_00_01Args_8_8_8_01_4.html">nlohmann::detail::detector< Default, void_t< Op< Args... >>, Op, Args... ></a>, including all inherited members.</p>
<ahref="../../d3/d98/cudnn__frontend__Tensor_8h.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> <spanclass="comment">/*</span></div><divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> <spanclass="comment"> * Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.</span></div><divclass="line"><aname="l00003"></a><spanclass="lineno"> 3</span> <spanclass="comment"> *</span></div><divclass="line"><aname="l00004"></a><spanclass="lineno"> 4</span> <spanclass="comment"> * Permission is hereby granted, free of charge, to any person obtaining a</span></div><divclass="line"><aname="l00005"></a><spanclass="lineno"> 5</span> <spanclass="comment"> * copy of this software and associated documentation files (the "Software"),</span></div><divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> <spanclass="comment"> * to deal in the Software without restriction, including without limitation</span></div><divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> <spanclass="comment"> * the rights to use, copy, modify, merge, publish, distribute, sublicense,</span></div><divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> <spanclass="comment"> * and/or sell copies of the Software, and to permit persons to whom the</span></div><divclass="line"><aname="l00009"></a><spanclass="lineno"> 9</span> <spanclass="comment"> * Software is furnished to do so, subject to the following conditions:</span></div><divclass="line"><aname="l00010"></a><spanclass="lineno"> 10</span> <spanclass="comment"> *</span></div><divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment"> * The above copyright notice and this permission notice shall be included in</span></div><divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> <spanclass="comment"> * all copies or substantial portions of the Software.</span></div><divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> <spanclass="comment"> *</span></div><divclass="line"><aname="l00014"></a><spanclass="lineno"> 14</span> <spanclass="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div><divclass="line"><aname="l00015"></a><spanclass="lineno"> 15</span> <spanclass="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div><divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> <spanclass="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL</span></div><divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="comment"> * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div><divclass="line"><aname="l00018"></a><spanclass="lineno"> 18</span> <spanclass="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING</span></div><divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> <spanclass="comment"> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER</span></div><divclass="line"><aname="l00020"></a><spanclass="lineno"> 20</span> <spanclass="comment"> * DEALINGS IN THE SOFTWARE.</span></div><divclass="line"><aname="l00021"></a><spanclass="lineno"> 21</span> <spanclass="comment"> */</span></div><divclass="line"><aname="l00022"></a><spanclass="lineno"> 22</span> </div><divclass="line"><aname="l00023"></a><spanclass="lineno"> 23</span> <spanclass="preprocessor">#pragma once</span></div><divclass="line"><aname="l00024"></a><spanclass="lineno"> 24</span> </div><divclass="line"><aname="l00025"></a><spanclass="lineno"> 25</span> <spanclass="preprocessor">#include <algorithm></span></div><divclass="line"><aname="l00026"></a><spanclass="lineno"> 26</span> <spanclass="preprocessor">#include <array></span></div><divclass="line"><aname="l00027"></a><spanclass="lineno"> 27</span> <spanclass="preprocessor">#include <functional></span></div><divclass="line"><aname="l00028"></a><spanclass="lineno"> 28</span> <spanclass="preprocessor">#include <memory></span></div><divclass="line"><aname="l00029"></a><spanclass="lineno"> 29</span> <spanclass="preprocessor">#include <sstream></span></div><divclass="line"><aname="l00030"></a><spanclass="lineno"> 30</span> <spanclass="preprocessor">#include <utility></span></div><divclass="line"><aname="l00031"></a><spanclass="lineno"> 31</span> </div><divclass="line"><aname="l00032"></a><spanclass="lineno"> 32</span> <spanclass="preprocessor">#include "<aclass="code"href="../../df/d17/cudnn__frontend__utils_8h.html">cudnn_frontend_utils.h</a>"</span></div><divclass="line"><aname="l00033"></a><spanclass="lineno"> 33</span> </div><divclass="line"><aname="l00034"></a><spanclass="lineno"> 34</span> <spanclass="keyword">namespace </span><aclass="code"href="../../df/de1/namespacecudnn__frontend.html">cudnn_frontend</a> {</div><divclass="line"><aname="l00035"></a><spanclass="lineno"> 35</span> </div><divclass="line"><aname="l00052"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html"> 52</a></span> <spanclass="keyword">class </span><aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html">Tensor_v8</a> : <spanclass="keyword">public</span><aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html">BackendDescriptor</a> {</div><divclass="line"><aname="l00053"></a><spanclass="lineno"> 53</span> <spanclass="keyword">public</span>:</div><divclass="line"><aname="l00054"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a14f9c4498f4be5b3c2b0a94c708891fb"> 54</a></span> <spanclass="keyword">friend</span><spanclass="keyword">class </span><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>;</div><divclass="line"><aname="l00055"></a><spanclass="lineno"> 55</span>  std::string</div><divclass="line"><aname="l00056"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a79cc1a752e6df2001b853f8c189b1f1f"> 56</a></span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a79cc1a752e6df2001b853f8c189b1f1f">describe</a>()<spanclass="keyword"> const override </span>{</div><divclass="line"><aname="l00057"></a><spanclass="lineno"> 57</span>  std::stringstream ss;</div><divclass="line"><aname="l00058"></a><spanclass="lineno"> 58</span> <spanclass="keywordtype">char</span> sep = <spanclass="charliteral">''</span>;</div><divclass="line"><aname="l00059"></a><spanclass="lineno"> 59</span>  ss <<<spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR :"</span></div><divclass="line"><aname="l00060"></a><spanclass="lineno"> 60</span> <<<spanclass="stringliteral">" Datatype: "</span><<<aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a939cf4181f94bc235363cc485beb1ce8">to_string</a>(<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ae9a3d128db54fa92d392e77044f30ca9">data_type</a>) <<<spanclass="stringliteral">" Id: "</span><<<aclass="code"href="../../d3/d9b/namespacenlohmann.html#a6ce645a0b8717757e096a5b5773b7a16">std::to_string</a>(<spanclass="keywordtype">id</span>) <<<spanclass="stringliteral">" Alignment: "</span><<<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a1f41a9f80b8a3b35aed7948e264b0d79">alignment</a></div><divclass="line"><aname="l00061"></a><spanclass="lineno"> 61</span> <<<spanclass="stringliteral">" nDims "</span><<<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a1370de050fc91e9d992995fae5f22011">nDims</a><<<spanclass="stringliteral">" VectorCount: "</span><<<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a2afdff65c7b389a4da5d9e4825db3e85">vectorCount</a><<<spanclass="stringliteral">" vectorDimension "</span><<<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ac645129e72b917e030320398802d7b73">vectorDimension</a>;</div><divclass="line"><aname="l00062"></a><spanclass="lineno"> 62</span>  ss <<<spanclass="stringliteral">" Dim ["</span>;</div><divclass="line"><aname="l00063"></a><spanclass="lineno"> 63</span> <spanclass="keywordflow">for</span> (<spanclass="keyword">auto</span> i = 0; i <<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a1370de050fc91e9d992995fae5f22011">nDims</a>; i++) {</div><divclass="line"><aname="l00064"></a><spanclass="lineno"> 64</span>  ss << sep <<<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a7419041bb3bf934f8e9f851fa63acabd">btensor_dimA</a>[i];</div><divclass="line"><aname="l00065"></a><spanclass="lineno"> 65</span>  sep = <spanclass="charliteral">','</span>;</div><divclass="line"><aname="l00066"></a><spanclass="lineno"> 66</span>  }</div><divclass="line"><aname="l00067"></a><spanclass="lineno"> 67</span>  ss <<<spanclass="stringliteral">" ] Str ["</span>;</div><divclass="line"><aname="l00068"></a><spanclass="lineno"> 68</span> <spanclass="keywordflow">for</span> (<spanclass="keyword">auto</span> i = 0; i <<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a1370de050fc91e9d992995fae5f22011">nDims</a>; i++) {</div><divclass="line"><aname="l00069"></a><spanclass="lineno"> 69</span>  ss << sep <<<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ae4842fc7fcb87f5b60228fb6fa391b61">btensor_strA</a>[i];</div><divclass="line"><aname="l00070"></a><spanclass="lineno"> 70</span>  sep = <spanclass="charliteral">','</span>;</div><divclass="line"><aname="l00071"></a><spanclass="lineno"> 71</span>  }</div><divclass="line"><aname="l00072"></a><spanclass="lineno"> 72</span>  ss <<<spanclass="stringliteral">"]"</span>;</div><divclass="line"><aname="l00073"></a><spanclass="lineno"> 73</span>  ss <<<spanclass="stringliteral">" isVirtual: "</span><<<aclass="code"href="../../d3/d9b/namespacenlohmann.html#a6ce645a0b8717757e096a5b5773b7a16">std::to_string</a>(<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a611fc05f3c7b6ca90d0e3c0f6ef07d84">isVirtual</a>) <<<spanclass="stringliteral">" isByValue: "</span><<<aclass="code"href="../../d3/d9b/namespacenlohmann.html#a6ce645a0b8717757e096a5b5773b7a16">std::to_string</a>(<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#aabaaacf9ea82fc1ff2f5b8ed97e23420">isByValue</a>);</div><divclass="line"><aname="l00074"></a><spanclass="lineno"> 74</span> <spanclass="preprocessor">#if (CUDNN_VERSION >= 8300)</span></div><divclass="line"><aname="l00075"></a><spanclass="lineno"> 75</span>  ss <<<spanclass="stringliteral">" reorder_type: "</span><< reorder_type;</div><divclass="line"><aname="l00076"></a><spanclass="lineno"> 76</span> <spanclass="preprocessor">#endif</span></div><divclass="line"><aname="l00077"></a><spanclass="lineno"> 77</span> <spanclass="keywordflow">return</span> ss.str();</div><divclass="line"><aname="l00078"></a><spanclass="lineno"> 78</span>  }</div><divclass="line"><aname="l00079"></a><spanclass="lineno"> 79</span> </div><divclass="line"><aname="l00080"></a><spanclass="lineno"> 80</span>  int64_t</div><divclass="line"><aname="l00081"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a54d8852a3fc56559c83ff7105403968d"> 81</a></span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a54d8852a3fc56559c83ff7105403968d">getPackedElementCount</a>()<spanclass="keyword"> const </span>{</div><divclass="line"><aname="l00082"></a><spanclass="lineno"> 82</span>  int64_t count = <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a2afdff65c7b389a4da5d9e4825db3e85">vectorCount</a>;</div><divclass="line"><aname="l00083"></a><spanclass="lineno"> 83</span> <spanclass="keywordflow">for</span> (<spanclass="keyword">auto</span> i = 0; i <<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a1370de050fc91e9d992995fae5f22011">nDims</a>; i++) {</div><divclass="line"><aname="l00084"></a><spanclass="lineno"> 84</span>  count = count * <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a7419041bb3bf934f8e9f851fa63acabd">btensor_dimA</a>[i];</div><divclass="line"><aname="l00085"></a><spanclass="lineno"> 85</span>  }</div><divclass="line"><aname="l00086"></a><spanclass="lineno"> 86</span> <spanclass="keywordflow">return</span> count;</div><divclass="line"><aname="l00087"></a><spanclass="lineno"> 87</span>  };</div><divclass="line"><aname="l00088"></a><spanclass="lineno"> 88</span> </div><divclass="line"><aname="l00089"></a><spanclass="lineno"> 89</span>  int64_t</div><divclass="line"><aname="l00090"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#adc7efe51d66614f5fa06c2d0690bd474"> 90</a></span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#adc7efe51d66614f5fa06c2d0690bd474">getDimensionCount</a>()<spanclass="keyword"> const </span>{</div><divclass="line"><aname="l00091"></a><spanclass="lineno"> 91</span> <spanclass="keywordflow">return</span><aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a1370de050fc91e9d992995fae5f22011">nDims</a>;</div><divclass="line"><aname="l00092"></a><spanclass="lineno"> 92</span>  }</div><divclass="line"><aname="l00093"></a><spanclass="lineno"> 93</span> </div><divclass="line"><aname="l00094"></a><spanclass="lineno"> 94</span>  int64_t <spanclass="keyword">const</span> *</div><divclass="line"><aname="l00095"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#abd8b2029dd25fee10cee12c8552da96b"> 95</a></span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#abd8b2029dd25fee10cee12c8552da96b">getDimArray</a>()<spanclass="keyword"> const </span>{</div><divclass="line"><aname="l00096"></a><spanclass="lineno"> 96</span> <spanclass="keywordflow">return</span><aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a7419041bb3bf934f8e9f851fa63acabd">btensor_dimA</a>;</div><divclass="line"><aname="l00097"></a><spanclass="lineno"> 97</span>  }</div><divclass="line"><aname="l00098"></a><spanclass="lineno"> 98</span> </div><divclass="line"><aname="l00099"></a><spanclass="lineno"> 99</span>  int64_t <spanclass="keyword">const</span> *</div><divclass="line"><aname="l00100"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a3312d87b3eb4a2f5cf9fe83be2e28f52"> 100</a></span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a3312d87b3eb4a2f5cf9fe83be2e28f52">getStrideArray</a>()<spanclass="keyword"> const </span>{</div><divclass="line"><aname="l00101"></a><spanclass="lineno"> 101</span> <spanclass="keywordflow">return</span><aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ae4842fc7fcb87f5b60228fb6fa391b61">btensor_strA</a>;</div><divclass="line"><aname="l00102"></a><spanclass="lineno"> 102</span>  }</div><divclass="line"><aname="l00103"></a><spanclass="lineno"> 103</span> </div><divclass="line"><aname="l00104"></a><spanclass="lineno"> 104</span>  int64_t</div><divclass="line"><aname="l00105"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a6899ca74a2c813b074bdd5bc6dc2e0a1"> 105</a></span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a6899ca74a2c813b074bdd5bc6dc2e0a1">getDataType</a>()<spanclass="keyword"> const </span>{</div><divclass="line"><aname="l00106"></a><spanclass="lineno"> 106</span> <spanclass="keywordflow">return</span><spanclass="keyword">static_cast<</span>int64_t<spanclass="keyword">></span>(<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ae9a3d128db54fa92d392e77044f30ca9">data_type</a>);</div><divclass="line"><aname="l00107"></a><spanclass="lineno"> 107</span>  }</div><divclass="line"><aname="l00108"></a><spanclass="lineno"> 108</span> </div><divclass="line"><aname="l00109"></a><spanclass="lineno"> 109</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ab48b1728d6978407f0bdbf0227de6f82">Tensor_v8</a>(<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html">Tensor_v8</a>&&from) = <spanclass="keywordflow">default</span>;</div><divclass="line"><aname="l00110"></a><spanclass="lineno"> 110</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html">Tensor_v8</a>&</div><divclass="line"><aname="l00111"></a><spanclass="lineno"> 111</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ab6c9d81fd9d18995fc67bdfafca49443">operator=</a>(<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html">Tensor_v8</a>&&) = <spanclass="keywordflow">default</span>;</div><divclass="line"><aname="l00112"></a><spanclass="lineno"> 112</span> </div><divclass="line"><aname="l00113"></a><spanclass="lineno"> 113</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a5a402bf5c68021711d9d9ec8fd4c1001">~Tensor_v8</a>() = <spanclass="keywordflow">default</span>;</div><divclass="line"><aname="l00114"></a><spanclass="lineno"> 114</span> </div><divclass="line"><aname="l00115"></a><spanclass="lineno"> 115</span> <spanclass="keyword">private</span>:</div><divclass="line"><aname="l00116"></a><spanclass="lineno"> 116</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ab48b1728d6978407f0bdbf0227de6f82">Tensor_v8</a>() = <spanclass="keywordflow">default</span>;</div><divclass="line"><aname="l00117"></a><spanclass="lineno"> 117</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ab48b1728d6978407f0bdbf0227de6f82">Tensor_v8</a>(<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html">Tensor_v8</a><spanclass="keyword">const</span>&) = <spanclass="keyword">delete</span>;</div><divclass="line"><aname="l00118"></a><spanclass="lineno"> 118</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html">Tensor_v8</a>&</div><divclass="line"><aname="l00119"></a><spanclass="lineno"> 119</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ab6c9d81fd9d18995fc67bdfafca49443">operator=</a>(<aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html">Tensor_v8</a><spanclass="keyword">const</span>&) = <spanclass="keyword">delete</span>;</div><divclass="line"><aname="l00120"></a><spanclass="lineno"> 120</span> </div><divclass="line"><aname="l00121"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ae9a3d128db54fa92d392e77044f30ca9"> 121</a></span>  cudnnDataType_t <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ae9a3d128db54fa92d392e77044f30ca9">data_type</a> = CUDNN_DATA_FLOAT; </div><divclass="line"><aname="l00122"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a7419041bb3bf934f8e9f851fa63acabd"> 122</a></span>  int64_t <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a7419041bb3bf934f8e9f851fa63acabd">btensor_dimA</a>[CUDNN_DIM_MAX + 1] = {-1}; </div><divclass="line"><aname="l00123"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ae4842fc7fcb87f5b60228fb6fa391b61"> 123</a></span>  int64_t <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ae4842fc7fcb87f5b60228fb6fa391b61">btensor_strA</a>[CUDNN_DIM_MAX + 1] = {-1}; </div><divclass="line"><aname="l00124"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a062e54efdec89943fcb0602cc06dfd28"> 124</a></span>  int64_t <spanclass="keywordtype">id</span> = -1; </div><divclass="line"><aname="l00125"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a1f41a9f80b8a3b35aed7948e264b0d79"> 125</a></span>  int64_t <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a1f41a9f80b8a3b35aed7948e264b0d79">alignment</a> = -1; </div><divclass="line"><aname="l00126"></a><spanclass="lineno"> 126</span>  int64_t <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a1370de050fc91e9d992995fae5f22011">nDims</a> = -1; </div><divclass="line"><aname="l00128"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ac645129e72b917e030320398802d7b73"> 128</a></span>  int64_t <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ac645129e72b917e030320398802d7b73">vectorDimension</a> = -1; </div><divclass="line"><aname="l00129"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a2afdff65c7b389a4da5d9e4825db3e85"> 129</a></span>  int64_t <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a2afdff65c7b389a4da5d9e4825db3e85">vectorCount</a> = 1; </div><divclass="line"><aname="l00130"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a611fc05f3c7b6ca90d0e3c0f6ef07d84"> 130</a></span> <spanclass="keywordtype">bool</span><aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a611fc05f3c7b6ca90d0e3c0f6ef07d84">isVirtual</a> = <spanclass="keyword">false</span>; </div><divclass="line"><aname="l00131"></a><spanclass="lineno"><aclass="line"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#aabaaacf9ea82fc1ff2f5b8ed97e23420"> 131</a></span> <spanclass="keywordtype">bool</span><aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#aabaaacf9ea82fc1ff2f5b8ed97e23420">isByValue</a> = <spanclass="keyword">false</span>; </div><divclass="line"><aname="l00132"></a><spanclass="lineno"> 132</span> <spanclass="preprocessor">#if (CUDNN_VERSION >= 8300)</span></div><divclass="line"><aname="l00133"></a><spanclass="lineno"> 133</span>  cudnnBackendTensorReordering_t reorder_type = CUDNN_TENSOR_REORDERING_NONE; </div><divclass="line"><aname="l00134"></a><spanclass="lineno"> 134</span> <spanclass="preprocessor">#endif</span></div><divclass="line"><aname="l00135"></a><spanclass="lineno"> 135</span> };</div><divclass="line"><aname="l00136"></a><spanclass="lineno"> 136</span> </div><divclass="line"><aname="l00140"></a><spanclass="lineno"><aclass="line"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html"> 140</a></span> <spanclass="keyword">class </span><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a> {</div><divclass="line"><aname="l00141"></a><spanclass="lineno"> 141</span> <spanclass="keyword">public</span>:</div><divclass="line"><aname="l00146"></a><spanclass="lineno"> 146</span> <spanclass="keyword">auto</span></div><divclass="line"><aname="l00148"></a><spanclass="lineno"><aclass="line"href="../../d3/d3c/group__TensorBuilder__v8.html#ga98275e4d36e37ef5d73f13bd80f164a3"> 148</a></span> <aclass="code"href="../../d3/d3c/group__TensorBuilder__v8.html#ga98275e4d36e37ef5d73f13bd80f164a3">setDataType</a>(cudnnDataType_t data_type_) -><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>& {</div><divclass="line"><aname="l00149"></a><spanclass="lineno"> 149</span>  m_tensor.data_type = data_type_;</div><divclass="line"><aname="l00150"></a><spanclass="lineno"> 150</span> <spanclass="keywordflow">return</span> *<spanclass="keyword">this</span>;</div><divclass="line"><aname="l00151"></a><spanclass="lineno"> 151</span>  }</div><divclass="line"><aname="l00153"></a><spanclass="lineno"> 153</span> <spanclass="keyword">auto</span></div><divclass="line"><aname="l00154"></a><spanclass="lineno"><aclass="line"href="../../d3/d3c/group__TensorBuilder__v8.html#gae828806e2d76ca3eb6c4e289f2e93a96"> 154</a></span> <aclass="code"href="../../d3/d3c/group__TensorBuilder__v8.html#gae828806e2d76ca3eb6c4e289f2e93a96">setDim</a>(int64_t ndim, int64_t <spanclass="keyword">const</span> *dim) -><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>& {</div><divclass="line"><aname="l00155"></a><spanclass="lineno"> 155</span>  std::copy((dim), dim + ndim, m_tensor.btensor_dimA);</div><divclass="line"><aname="l00156"></a><spanclass="lineno"> 156</span>  m_tensor.nDims = ndim;</div><divclass="line"><aname="l00157"></a><spanclass="lineno"> 157</span> <spanclass="keywordflow">return</span> *<spanclass="keyword">this</span>;</div><divclass="line"><aname="l00158"></a><spanclass="lineno"> 158</span>  }</div><divclass="line"><aname="l00160"></a><spanclass="lineno"> 160</span> <spanclass="keyword">auto</span></div><divclass="line"><aname="l00161"></a><spanclass="lineno"><aclass="line"href="../../d3/d3c/group__TensorBuilder__v8.html#ga3de3d95beb2234dc2a741d23703f8ed2"> 161</a></span> <aclass="code"href="../../d3/d3c/group__TensorBuilder__v8.html#ga3de3d95beb2234dc2a741d23703f8ed2">setStrides</a>(int64_t ndim, int64_t <spanclass="keyword">const</span> *strides) -><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>& {</div><divclass="line"><aname="l00162"></a><spanclass="lineno"> 162</span>  std::copy(strides, strides + ndim, m_tensor.btensor_strA);</div><divclass="line"><aname="l00163"></a><spanclass="lineno"> 163</span> <spanclass="keywordflow">return</span> *<spanclass="keyword">this</span>;</div><divclass="line"><aname="l00164"></a><spanclass="lineno"> 164</span>  }</div><divclass="line"><aname="l00166"></a><spanclass="lineno"> 166</span> <spanclass="keyword">auto</span></div><divclass="line"><aname="l00167"></a><spanclass="lineno"><aclass="line"href="../../d3/d3c/group__TensorBuilder__v8.html#ga6bdaeab1bff548d375e57936b64fb05a"> 167</a></span> <aclass="code"href="../../d3/d3c/group__TensorBuilder__v8.html#ga6bdaeab1bff548d375e57936b64fb05a">setId</a>(int64_t id_) -><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>& {</div><divclass="line"><aname="l00168"></a><spanclass="lineno"> 168</span>  m_tensor.id = id_;</div><divclass="line"><aname="l00169"></a><spanclass="lineno"> 169</span> <spanclass="keywordflow">return</span> *<spanclass="keyword">this</span>;</div><divclass="line"><aname="l00170"></a><spanclass="lineno"> 170</span>  }</div><divclass="line"><aname="l00172"></a><spanclass="lineno"> 172</span> <spanclass="keyword">auto</span></div><divclass="line"><aname="l00173"></a><spanclass="lineno"><aclass="line"href="../../d3/d3c/group__TensorBuilder__v8.html#ga385ec2c39e6386af7421f27330ed128b"> 173</a></span> <aclass="code"href="../../d3/d3c/group__TensorBuilder__v8.html#ga385ec2c39e6386af7421f27330ed128b">setAlignment</a>(int64_t alignment_) -><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>& {</div><divclass="line"><aname="l00174"></a><spanclass="lineno"> 174</span>  m_tensor.alignment = alignment_;</div><divclass="line"><aname="l00175"></a><spanclass="lineno"> 175</span> <spanclass="keywordflow">return</span> *<spanclass="keyword">this</span>;</div><divclass="line"><aname="l00176"></a><spanclass="lineno"> 176</span>  }</div><divclass="line"><aname="l00178"></a><spanclass="lineno"> 178</span> <spanclass="keyword">auto</span></div><divclass="line"><aname="l00179"></a><spanclass="lineno"><aclass="line"href="../../d3/d3c/group__TensorBuilder__v8.html#ga7d5d978de243e47938eb1f224a38d02d"> 179</a></span> <aclass="code"href="../../d3/d3c/group__TensorBuilder__v8.html#ga7d5d978de243e47938eb1f224a38d02d">setVirtual</a>(<spanclass="keywordtype">bool</span> virtual_ = <spanclass="keyword">true</span>) -><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>& {</div><divclass="line"><aname="l00180"></a><spanclass="lineno"> 180</span>  m_tensor.isVirtual = virtual_;</div><divclass="line"><aname="l00181"></a><spanclass="lineno"> 181</span> <spanclass="keywordflow">return</span> *<spanclass="keyword">this</span>;</div><divclass="line"><aname="l00182"></a><spanclass="lineno"> 182</span>  }</div><divclass="line"><aname="l00183"></a><spanclass="lineno"> 183</span> <spanclass="keyword">auto</span></div><divclass="line"><aname="l00184"></a><spanclass="lineno"><aclass="line"href="../../d3/d3c/group__TensorBuilder__v8.html#ga6a405f1260ec3246b743def7bf6e6cb9"> 184</a></span> <aclass="code"href="../../d3/d3c/group__TensorBuilder__v8.html#ga6a405f1260ec3246b743def7bf6e6cb9">setByValue</a>(<spanclass="keywordtype">bool</span> isByValue_ = <spanclass="keyword">true</span>) -><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>& {</div><divclass="line"><aname="l00185"></a><spanclass="lineno"> 185</span>  m_tensor.isByValue = isByValue_;</div><divclass="line"><aname="l00186"></a><spanclass="lineno"> 186</span> <spanclass="keywordflow">return</span> *<spanclass="keyword">this</span>;</div><divclass="line"><aname="l00187"></a><spanclass="lineno"> 187</span>  }</div><divclass="line"><aname="l00188"></a><spanclass="lineno"> 188</span> <spanclass="keyword">auto</span></div><divclass="line"><aname="l00189"></a><spanclass="lineno"><aclass="line"href="../../d3/d3c/group__TensorBuilder__v8.html#ga271e5f9ec1ce8ec231021219f5899315"> 189</a></span> <aclass="code"href="../../d3/d3c/group__TensorBuilder__v8.html#ga271e5f9ec1ce8ec231021219f5899315">setVectorCountAndDimension</a>(int64_t vectorCount_, int64_t vectorDimension_) -><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>& {</div><divclass="line"><aname="l00190"></a><spanclass="lineno"> 190</span>  m_tensor.vectorCount = vectorCount_;</div><divclass="line"><aname="l00191"></a><spanclass="lineno"> 191</span>  m_tensor.vectorDimension = vectorDimension_;</div><divclass="line"><aname="l00192"></a><spanclass="lineno"> 192</span> <spanclass="keywordflow">return</span> *<spanclass="keyword">this</span>;</div><divclass="line"><aname="l00193"></a><spanclass="lineno"> 193</span>  }</div><divclass="line"><aname="l00194"></a><spanclass="lineno"> 194</span> </div><divclass="line"><aname="l00195"></a><spanclass="lineno"> 195</span> <spanclass="preprocessor">#if (CUDNN_VERSION >= 8300)</span></div><divclass="line"><aname="l00196"></a><spanclass="lineno"> 196</span> <spanclass="keyword">auto</span></div><divclass="line"><aname="l00197"></a><spanclass="lineno"> 197</span>  setReorderType(cudnnBackendTensorReordering_t type_) -><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>& {</div><divclass="line"><aname="l00198"></a><spanclass="lineno"> 198</span>  m_tensor.reorder_type = type_;</div><divclass="line"><aname="l00199"></a><spanclass="lineno"> 199</span> <spanclass="keywordflow">return</span> *<spanclass="keyword">this</span>;</div><divclass="line"><aname="l00200"></a><spanclass="lineno"> 200</span>  }</div><divclass="line"><aname="l00201"></a><spanclass="lineno"> 201</span> <spanclass="preprocessor">#endif</span></div><divclass="line"><aname="l00202"></a><spanclass="lineno"> 202</span> </div><divclass="line"><aname="l00204"></a><spanclass="lineno"> 204</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html">Tensor_v8</a>&&</div><divclass="line"><aname="l00207"></a><spanclass="lineno"><aclass="line"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html#a32876941f964b3fad2d123b9081b0af7"> 207</a></span> <aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html#a32876941f964b3fad2d123b9081b0af7">build</a>() {</div><divclass="line"><aname="l00208"></a><spanclass="lineno"> 208</span> <spanclass="comment">// Sanity check if non-default fields have been set correctly.</span></div><divclass="line"><aname="l00209"></a><spanclass="lineno"> 209</span> <spanclass="keywordflow">if</span> (m_tensor.alignment <= 0) {</div><divclass="line"><aname="l00210"></a><spanclass="lineno"> 210</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00211"></a><spanclass="lineno"> 211</span> &m_tensor,</div><divclass="line"><aname="l00212"></a><spanclass="lineno"> 212</span>  CUDNN_STATUS_BAD_PARAM,</div><divclass="line"><aname="l00213"></a><spanclass="lineno"> 213</span> <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: Check and Set the CUDNN_ATTR_TENSOR_BYTE_ALIGNMENT field"</span>);</div><divclass="line"><aname="l00214"></a><spanclass="lineno"> 214</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00215"></a><spanclass="lineno"> 215</span>  }</div><divclass="line"><aname="l00216"></a><spanclass="lineno"> 216</span> <spanclass="keywordflow">if</span> (m_tensor.id <= 0) {</div><divclass="line"><aname="l00217"></a><spanclass="lineno"> 217</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00218"></a><spanclass="lineno"> 218</span> &m_tensor,</div><divclass="line"><aname="l00219"></a><spanclass="lineno"> 219</span>  CUDNN_STATUS_BAD_PARAM,</div><divclass="line"><aname="l00220"></a><spanclass="lineno"> 220</span> <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: Check and Set the CUDNN_ATTR_TENSOR_UNIQUE_ID as a valid value"</span>);</div><divclass="line"><aname="l00221"></a><spanclass="lineno"> 221</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00222"></a><spanclass="lineno"> 222</span>  }</div><divclass="line"><aname="l00223"></a><spanclass="lineno"> 223</span> <spanclass="keywordflow">if</span> (m_tensor.btensor_strA[0] <= 0) {</div><divclass="line"><aname="l00224"></a><spanclass="lineno"> 224</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00225"></a><spanclass="lineno"> 225</span> &m_tensor,</div><divclass="line"><aname="l00226"></a><spanclass="lineno"> 226</span>  CUDNN_STATUS_BAD_PARAM,</div><divclass="line"><aname="l00227"></a><spanclass="lineno"> 227</span> <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: Check and Set the CUDNN_ATTR_TENSOR_STRIDES Correctly"</span>);</div><divclass="line"><aname="l00228"></a><spanclass="lineno"> 228</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00229"></a><spanclass="lineno"> 229</span>  }</div><divclass="line"><aname="l00230"></a><spanclass="lineno"> 230</span> <spanclass="keywordflow">if</span> (m_tensor.btensor_dimA[0] <= 0) {</div><divclass="line"><aname="l00231"></a><spanclass="lineno"> 231</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00232"></a><spanclass="lineno"> 232</span> &m_tensor,</div><divclass="line"><aname="l00233"></a><spanclass="lineno"> 233</span>  CUDNN_STATUS_BAD_PARAM,</div><divclass="line"><aname="l00234"></a><spanclass="lineno"> 234</span> <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: Check and Set the CUDNN_ATTR_TENSOR_DIMENSIONS Correctly"</span>);</div><divclass="line"><aname="l00235"></a><spanclass="lineno"> 235</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00236"></a><spanclass="lineno"> 236</span>  }</div><divclass="line"><aname="l00237"></a><spanclass="lineno"> 237</span> <spanclass="keywordflow">if</span> (m_tensor.pointer != <spanclass="keyword">nullptr</span>) {</div><divclass="line"><aname="l00238"></a><spanclass="lineno"> 238</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(&m_tensor,</div><divclass="line"><aname="l00239"></a><spanclass="lineno"> 239</span>  CUDNN_STATUS_BAD_PARAM,</div><divclass="line"><aname="l00240"></a><spanclass="lineno"> 240</span> <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: Bad tensor created. The tensor already "</span></div><divclass="line"><aname="l00241"></a><spanclass="lineno"> 241</span> <spanclass="stringliteral">"seems to be pointing to something"</span>);</div><divclass="line"><aname="l00242"></a><spanclass="lineno"> 242</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00243"></a><spanclass="lineno"> 243</span>  }</div><divclass="line"><aname="l00244"></a><spanclass="lineno"> 244</span> </div><divclass="line"><aname="l00245"></a><spanclass="lineno"> 245</span> <spanclass="comment">// Create a descriptor. Memory allocation happens here.</span></div><divclass="line"><aname="l00246"></a><spanclass="lineno"> 246</span> <spanclass="keyword">auto</span><aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> = m_tensor.initialize_managed_backend_pointer(CUDNN_BACKEND_TENSOR_DESCRIPTOR);</div><divclass="line"><aname="l00247"></a><spanclass="lineno"> 247</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00248"></a><spanclass="lineno"> 248</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00249"></a><spanclass="lineno"> 249</span> &m_tensor, <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>, <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: cudnnCreate Descriptor Failed"</span>);</div><divclass="line"><aname="l00250"></a><spanclass="lineno"> 250</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00251"></a><spanclass="lineno"> 251</span>  }</div><divclass="line"><aname="l00252"></a><spanclass="lineno"> 252</span> </div><divclass="line"><aname="l00253"></a><spanclass="lineno"> 253</span> <spanclass="comment">// Once Created lets set the descriptor parameters.</span></div><divclass="line"><aname="l00254"></a><spanclass="lineno"> 254</span> <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> = cudnnBackendSetAttribute(m_tensor.pointer->get_backend_descriptor(),</div><divclass="line"><aname="l00255"></a><spanclass="lineno"> 255</span>  CUDNN_ATTR_TENSOR_DATA_TYPE,</div><divclass="line"><aname="l00256"></a><spanclass="lineno"> 256</span>  CUDNN_TYPE_DATA_TYPE,</div><divclass="line"><aname="l00257"></a><spanclass="lineno"> 257</span>  1,</div><divclass="line"><aname="l00258"></a><spanclass="lineno"> 258</span> &m_tensor.data_type);</div><divclass="line"><aname="l00259"></a><spanclass="lineno"> 259</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00260"></a><spanclass="lineno"> 260</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00261"></a><spanclass="lineno"> 261</span> &m_tensor, <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>, <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: SetAttribute CUDNN_ATTR_TENSOR_DATA_TYPE Failed"</span>);</div><divclass="line"><aname="l00262"></a><spanclass="lineno"> 262</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00263"></a><spanclass="lineno"> 263</span>  }</div><divclass="line"><aname="l00264"></a><spanclass="lineno"> 264</span> <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> = cudnnBackendSetAttribute(m_tensor.pointer->get_backend_descriptor(),</div><divclass="line"><aname="l00265"></a><spanclass="lineno"> 265</span>  CUDNN_ATTR_TENSOR_DIMENSIONS,</div><divclass="line"><aname="l00266"></a><spanclass="lineno"> 266</span>  CUDNN_TYPE_INT64,</div><divclass="line"><aname="l00267"></a><spanclass="lineno"> 267</span>  m_tensor.nDims,</div><divclass="line"><aname="l00268"></a><spanclass="lineno"> 268</span>  m_tensor.btensor_dimA);</div><divclass="line"><aname="l00269"></a><spanclass="lineno"> 269</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00270"></a><spanclass="lineno"> 270</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00271"></a><spanclass="lineno"> 271</span> &m_tensor, <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>, <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: SetAttribute CUDNN_ATTR_TENSOR_DIMENSIONS Failed"</span>);</div><divclass="line"><aname="l00272"></a><spanclass="lineno"> 272</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00273"></a><spanclass="lineno"> 273</span>  }</div><divclass="line"><aname="l00274"></a><spanclass="lineno"> 274</span> <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> = cudnnBackendSetAttribute(m_tensor.pointer->get_backend_descriptor(),</div><divclass="line"><aname="l00275"></a><spanclass="lineno"> 275</span>  CUDNN_ATTR_TENSOR_STRIDES,</div><divclass="line"><aname="l00276"></a><spanclass="lineno"> 276</span>  CUDNN_TYPE_INT64,</div><divclass="line"><aname="l00277"></a><spanclass="lineno"> 277</span>  m_tensor.nDims,</div><divclass="line"><aname="l00278"></a><spanclass="lineno"> 278</span>  m_tensor.btensor_strA);</div><divclass="line"><aname="l00279"></a><spanclass="lineno"> 279</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00280"></a><spanclass="lineno"> 280</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00281"></a><spanclass="lineno"> 281</span> &m_tensor, <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>, <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: SetAttribute CUDNN_ATTR_TENSOR_STRIDES Failed"</span>);</div><divclass="line"><aname="l00282"></a><spanclass="lineno"> 282</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00283"></a><spanclass="lineno"> 283</span>  }</div><divclass="line"><aname="l00284"></a><spanclass="lineno"> 284</span> <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> = cudnnBackendSetAttribute(</div><divclass="line"><aname="l00285"></a><spanclass="lineno"> 285</span>  m_tensor.pointer->get_backend_descriptor(), CUDNN_ATTR_TENSOR_UNIQUE_ID, CUDNN_TYPE_INT64, 1, &m_tensor.id);</div><divclass="line"><aname="l00286"></a><spanclass="lineno"> 286</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00287"></a><spanclass="lineno"> 287</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00288"></a><spanclass="lineno"> 288</span> &m_tensor, <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>, <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: SetAttribute CUDNN_ATTR_TENSOR_UNIQUE_ID Failed"</span>);</div><divclass="line"><aname="l00289"></a><spanclass="lineno"> 289</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00290"></a><spanclass="lineno"> 290</span>  }</div><divclass="line"><aname="l00291"></a><spanclass="lineno"> 291</span>  cudnnBackendSetAttribute(m_tensor.pointer->get_backend_descriptor(),</div><divclass="line"><aname="l00292"></a><spanclass="lineno"> 292</span>  CUDNN_ATTR_TENSOR_BYTE_ALIGNMENT,</div><divclass="line"><aname="l00293"></a><spanclass="lineno"> 293</span>  CUDNN_TYPE_INT64,</div><divclass="line"><aname="l00294"></a><spanclass="lineno"> 294</span>  1,</div><divclass="line"><aname="l00295"></a><spanclass="lineno"> 295</span> &m_tensor.alignment);</div><divclass="line"><aname="l00296"></a><spanclass="lineno"> 296</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00297"></a><spanclass="lineno"> 297</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00298"></a><spanclass="lineno"> 298</span> &m_tensor,</div><divclass="line"><aname="l00299"></a><spanclass="lineno"> 299</span> <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>,</div><divclass="line"><aname="l00300"></a><spanclass="lineno"> 300</span> <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: SetAttribute CUDNN_ATTR_TENSOR_BYTE_ALIGNMENT Failed"</span>);</div><divclass="line"><aname="l00301"></a><spanclass="lineno"> 301</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00302"></a><spanclass="lineno"> 302</span>  }</div><divclass="line"><aname="l00303"></a><spanclass="lineno"> 303</span> <spanclass="keywordflow">if</span> (m_tensor.isVirtual) {</div><divclass="line"><aname="l00304"></a><spanclass="lineno"> 304</span>  cudnnBackendSetAttribute(m_tensor.pointer->get_backend_descriptor(),</div><divclass="line"><aname="l00305"></a><spanclass="lineno"> 305</span>  CUDNN_ATTR_TENSOR_IS_VIRTUAL,</div><divclass="line"><aname="l00306"></a><spanclass="lineno"> 306</span>  CUDNN_TYPE_BOOLEAN,</div><divclass="line"><aname="l00307"></a><spanclass="lineno"> 307</span>  1,</div><divclass="line"><aname="l00308"></a><spanclass="lineno"> 308</span> &m_tensor.isVirtual);</div><divclass="line"><aname="l00309"></a><spanclass="lineno"> 309</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00310"></a><spanclass="lineno"> 310</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00311"></a><spanclass="lineno"> 311</span> &m_tensor,</div><divclass="line"><aname="l00312"></a><spanclass="lineno"> 312</span> <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>,</div><divclass="line"><aname="l00313"></a><spanclass="lineno"> 313</span> <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: SetAttribute CUDNN_ATTR_TENSOR_BYTE_ALIGNMENT Failed"</span>);</div><divclass="line"><aname="l00314"></a><spanclass="lineno"> 314</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00315"></a><spanclass="lineno"> 315</span>  }</div><divclass="line"><aname="l00316"></a><spanclass="lineno"> 316</span>  }</div><divclass="line"><aname="l00317"></a><spanclass="lineno"> 317</span> <spanclass="keywordflow">if</span> (m_tensor.isByValue) {</div><divclass="line"><aname="l00318"></a><spanclass="lineno"> 318</span>  cudnnBackendSetAttribute(m_tensor.pointer->get_backend_descriptor(),</div><divclass="line"><aname="l00319"></a><spanclass="lineno"> 319</span>  CUDNN_ATTR_TENSOR_IS_BY_VALUE,</div><divclass="line"><aname="l00320"></a><spanclass="lineno"> 320</span>  CUDNN_TYPE_BOOLEAN,</div><divclass="line"><aname="l00321"></a><spanclass="lineno"> 321</span>  1,</div><divclass="line"><aname="l00322"></a><spanclass="lineno"> 322</span> &m_tensor.isByValue);</div><divclass="line"><aname="l00323"></a><spanclass="lineno"> 323</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00324"></a><spanclass="lineno"> 324</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00325"></a><spanclass="lineno"> 325</span> &m_tensor,</div><divclass="line"><aname="l00326"></a><spanclass="lineno"> 326</span> <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>,</div><divclass="line"><aname="l00327"></a><spanclass="lineno"> 327</span> <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: SetAttribute CUDNN_ATTR_TENSOR_IS_BY_VALUE Failed"</span>);</div><divclass="line"><aname="l00328"></a><spanclass="lineno"> 328</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00329"></a><spanclass="lineno"> 329</span>  }</div><divclass="line"><aname="l00330"></a><spanclass="lineno"> 330</span>  }</div><divclass="line"><aname="l00331"></a><spanclass="lineno"> 331</span> </div><divclass="line"><aname="l00332"></a><spanclass="lineno"> 332</span> <spanclass="keywordflow">if</span> (m_tensor.vectorCount > 1) {</div><divclass="line"><aname="l00333"></a><spanclass="lineno"> 333</span>  cudnnBackendSetAttribute(m_tensor.pointer->get_backend_descriptor(),</div><divclass="line"><aname="l00334"></a><spanclass="lineno"> 334</span>  CUDNN_ATTR_TENSOR_VECTOR_COUNT,</div><divclass="line"><aname="l00335"></a><spanclass="lineno"> 335</span>  CUDNN_TYPE_INT64,</div><divclass="line"><aname="l00336"></a><spanclass="lineno"> 336</span>  1,</div><divclass="line"><aname="l00337"></a><spanclass="lineno"> 337</span> &m_tensor.vectorCount);</div><divclass="line"><aname="l00338"></a><spanclass="lineno"> 338</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00339"></a><spanclass="lineno"> 339</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00340"></a><spanclass="lineno"> 340</span> &m_tensor,</div><divclass="line"><aname="l00341"></a><spanclass="lineno"> 341</span> <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>,</div><divclass="line"><aname="l00342"></a><spanclass="lineno"> 342</span> <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: SetAttribute CUDNN_ATTR_TENSOR_VECTOR_COUNT Failed"</span>);</div><divclass="line"><aname="l00343"></a><spanclass="lineno"> 343</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00344"></a><spanclass="lineno"> 344</span>  }</div><divclass="line"><aname="l00345"></a><spanclass="lineno"> 345</span>  }</div><divclass="line"><aname="l00346"></a><spanclass="lineno"> 346</span> <spanclass="keywordflow">if</span> (m_tensor.vectorDimension >= 0) {</div><divclass="line"><aname="l00347"></a><spanclass="lineno"> 347</span>  cudnnBackendSetAttribute(m_tensor.pointer->get_backend_descriptor(),</div><divclass="line"><aname="l00348"></a><spanclass="lineno"> 348</span>  CUDNN_ATTR_TENSOR_VECTORIZED_DIMENSION,</div><divclass="line"><aname="l00349"></a><spanclass="lineno"> 349</span>  CUDNN_TYPE_INT64,</div><divclass="line"><aname="l00350"></a><spanclass="lineno"> 350</span>  1,</div><divclass="line"><aname="l00351"></a><spanclass="lineno"> 351</span> &m_tensor.vectorDimension);</div><divclass="line"><aname="l00352"></a><spanclass="lineno"> 352</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00353"></a><spanclass="lineno"> 353</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00354"></a><spanclass="lineno"> 354</span> &m_tensor,</div><divclass="line"><aname="l00355"></a><spanclass="lineno"> 355</span> <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>,</div><divclass="line"><aname="l00356"></a><spanclass="lineno"> 356</span> <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: SetAttribute CUDNN_ATTR_TENSOR_VECTORIZED_DIMENSION Failed"</span>);</div><divclass="line"><aname="l00357"></a><spanclass="lineno"> 357</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00358"></a><spanclass="lineno"> 358</span>  }</div><divclass="line"><aname="l00359"></a><spanclass="lineno"> 359</span>  }</div><divclass="line"><aname="l00360"></a><spanclass="lineno"> 360</span> </div><divclass="line"><aname="l00361"></a><spanclass="lineno"> 361</span> <spanclass="comment">// Set the reorder_type</span></div><divclass="line"><aname="l00362"></a><spanclass="lineno"> 362</span> <spanclass="preprocessor">#if (CUDNN_VERSION >= 8300)</span></div><divclass="line"><aname="l00363"></a><spanclass="lineno"> 363</span> <spanclass="keywordflow">if</span> (m_tensor.reorder_type != CUDNN_TENSOR_REORDERING_NONE) {</div><divclass="line"><aname="l00364"></a><spanclass="lineno"> 364</span>  cudnnBackendSetAttribute(m_tensor.pointer->get_backend_descriptor(),</div><divclass="line"><aname="l00365"></a><spanclass="lineno"> 365</span>  CUDNN_ATTR_TENSOR_REORDERING_MODE,</div><divclass="line"><aname="l00366"></a><spanclass="lineno"> 366</span>  CUDNN_TYPE_TENSOR_REORDERING_MODE,</div><divclass="line"><aname="l00367"></a><spanclass="lineno"> 367</span>  1,</div><divclass="line"><aname="l00368"></a><spanclass="lineno"> 368</span> &m_tensor.reorder_type);</div><divclass="line"><aname="l00369"></a><spanclass="lineno"> 369</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00370"></a><spanclass="lineno"> 370</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(</div><divclass="line"><aname="l00371"></a><spanclass="lineno"> 371</span> &m_tensor,</div><divclass="line"><aname="l00372"></a><spanclass="lineno"> 372</span> <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>,</div><divclass="line"><aname="l00373"></a><spanclass="lineno"> 373</span> <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR: SetAttribute CUDNN_ATTR_TENSOR_REORDERING_MODE Failed"</span>);</div><divclass="line"><aname="l00374"></a><spanclass="lineno"> 374</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00375"></a><spanclass="lineno"> 375</span>  }</div><divclass="line"><aname="l00376"></a><spanclass="lineno"> 376</span>  }</div><divclass="line"><aname="l00377"></a><spanclass="lineno"> 377</span> <spanclass="preprocessor">#endif</span></div><divclass="line"><aname="l00378"></a><spanclass="lineno"> 378</span> <spanclass="comment">// Finalizing the descriptor</span></div><divclass="line"><aname="l00379"></a><spanclass="lineno"> 379</span> <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> = cudnnBackendFinalize(m_tensor.pointer->get_backend_descriptor());</div><divclass="line"><aname="l00380"></a><spanclass="lineno"> 380</span> <spanclass="keywordflow">if</span> (<aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a> != CUDNN_STATUS_SUCCESS) {</div><divclass="line"><aname="l00381"></a><spanclass="lineno"> 381</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#a011f392961f07ab6de46a080e9a652a2">set_error_and_throw_exception</a>(&m_tensor, <aclass="code"href="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">status</a>, <spanclass="stringliteral">"CUDNN_BACKEND_TENSOR_DESCRIPTOR cudnnFinalize failed"</span>);</div><divclass="line"><aname="l00382"></a><spanclass="lineno"> 382</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00383"></a><spanclass="lineno"> 383</span>  }</div><divclass="line"><aname="l00384"></a><spanclass="lineno"> 384</span> <aclass="code"href="../../df/de1/namespacecudnn__frontend.html#ac39691550c5659acffd2386354ed18c6">getLogger</a>() <<<spanclass="stringliteral">"[cudnn_frontend] "</span><< m_tensor << std::endl;</div><divclass="line"><aname="l00385"></a><spanclass="lineno"> 385</span> <spanclass="keywordflow">return</span> std::move(m_tensor);</div><divclass="line"><aname="l00386"></a><spanclass="lineno"> 386</span>  }</div><divclass="line"><aname="l00387"></a><spanclass="lineno"> 387</span> </div><divclass="line"><aname="l00388"></a><spanclass="lineno"> 388</span> <spanclass="keyword">explicit</span><aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a14f9c4498f4be5b3c2b0a94c708891fb">TensorBuilder_v8</a>() = <spanclass="keywordflow">default</span>;</div><divclass="line"><aname="l00389"></a><spanclass="lineno"> 389</span>  ~<aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>() = <spanclass="keywordflow">default</span>;</div><divclass="line"><aname="l00390"></a><spanclass="lineno"> 390</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a14f9c4498f4be5b3c2b0a94c708891fb">TensorBuilder_v8</a>(<aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>&&) = <spanclass="keyword">delete</span>;</div><divclass="line"><aname="l00391"></a><spanclass="lineno"> 391</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a14f9c4498f4be5b3c2b0a94c708891fb">TensorBuilder_v8</a>(<aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a><spanclass="keyword">const</span>&) = <spanclass="keyword">delete</span>;</div><divclass="line"><aname="l00392"></a><spanclass="lineno"> 392</span> <aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a>&</div><divclass="line"><aname="l00393"></a><spanclass="lineno"> 393</span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ab6c9d81fd9d18995fc67bdfafca49443">operator=</a>(<aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html">TensorBuilder_v8</a><spanclass="keyword">const</span>&) = <spanclass="keyword">delete</span>;</div><divclass="line"><aname="l00394"></a><spanclass="lineno"> 394</span> </div><divclass="line"><aname="l00395"></a><spanclass="lineno"> 395</span> <spanclass="keyword">private</span>:</div><divclass="line"><aname="l00396"></a><spanclass="lineno"><aclass="line"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html#a87c53bd36c748fe2327743bd852fb144"> 396</a></span> <aclass="code"href="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html">Tensor_v8</a><aclass="code"href="../../db/dae/classcudnn__frontend_1_1TensorBuilder__v8.html#a87c53bd36c748fe2327743bd852fb144">m_tensor</a>; </div><divclass="line"><aname="l00397"></a><spanclass="lineno"> 397</span> };</div><divclass="line"><aname="l00398"></a><spanclass="lineno"> 398</span> </div><divclass="line"><aname="l00399"></a><spanclass="lineno"> 399</span> }</div><divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_ab48b1728d6978407f0bdbf0227de6f82"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ab48b1728d6978407f0bdbf0227de6f82">cudnn_frontend::Tensor_v8::Tensor_v8</a></div><divclass="ttdeci">Tensor_v8()=default</div></div>
<divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_aabaaacf9ea82fc1ff2f5b8ed97e23420"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#aabaaacf9ea82fc1ff2f5b8ed97e23420">cudnn_frontend::Tensor_v8::isByValue</a></div><divclass="ttdeci">bool isByValue</div><divclass="ttdoc">Whether it is an intermediate tensor of an op graph. </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00131">cudnn_frontend_Tensor.h:131</a></div></div>
<divclass="ttc"id="group__TensorBuilder__v8_html_ga7d5d978de243e47938eb1f224a38d02d"><divclass="ttname"><ahref="../../d3/d3c/group__TensorBuilder__v8.html#ga7d5d978de243e47938eb1f224a38d02d">cudnn_frontend::TensorBuilder_v8::setVirtual</a></div><divclass="ttdeci">auto setVirtual(bool virtual_=true) -> TensorBuilder_v8 &</div><divclass="ttdoc">Set Alignment of the tensor. </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00179">cudnn_frontend_Tensor.h:179</a></div></div>
<divclass="ttc"id="namespacecudnn__frontend_html_ac39691550c5659acffd2386354ed18c6"><divclass="ttname"><ahref="../../df/de1/namespacecudnn__frontend.html#ac39691550c5659acffd2386354ed18c6">cudnn_frontend::getLogger</a></div><divclass="ttdeci">ConditionalStreamer & getLogger()</div><divclass="ttdef"><b>Definition:</b><ahref="../../d8/dc4/cudnn__frontend__Logging_8h_source.html#l00072">cudnn_frontend_Logging.h:72</a></div></div>
<divclass="ttc"id="namespacenlohmann_html_a6ce645a0b8717757e096a5b5773b7a16"><divclass="ttname"><ahref="../../d3/d9b/namespacenlohmann.html#a6ce645a0b8717757e096a5b5773b7a16">nlohmann::to_string</a></div><divclass="ttdeci">NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string to_string(const NLOHMANN_BASIC_JSON_TPL &j)</div><divclass="ttdoc">user-defined to_string function for JSON values </div><divclass="ttdef"><b>Definition:</b><ahref="../../d5/db8/json_8hpp_source.html#l25855">json.hpp:25855</a></div></div>
<divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_ae4842fc7fcb87f5b60228fb6fa391b61"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ae4842fc7fcb87f5b60228fb6fa391b61">cudnn_frontend::Tensor_v8::btensor_strA</a></div><divclass="ttdeci">int64_t btensor_strA[CUDNN_DIM_MAX+1]</div><divclass="ttdoc">n, g, c, d, h, w </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00123">cudnn_frontend_Tensor.h:123</a></div></div>
<divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_ab6c9d81fd9d18995fc67bdfafca49443"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ab6c9d81fd9d18995fc67bdfafca49443">cudnn_frontend::Tensor_v8::operator=</a></div><divclass="ttdeci">Tensor_v8 & operator=(Tensor_v8 &&)=default</div></div>
<divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_a1f41a9f80b8a3b35aed7948e264b0d79"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a1f41a9f80b8a3b35aed7948e264b0d79">cudnn_frontend::Tensor_v8::alignment</a></div><divclass="ttdeci">int64_t alignment</div><divclass="ttdoc">Unique id of the tensor. </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00125">cudnn_frontend_Tensor.h:125</a></div></div>
<divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_a14f9c4498f4be5b3c2b0a94c708891fb"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a14f9c4498f4be5b3c2b0a94c708891fb">cudnn_frontend::Tensor_v8::TensorBuilder_v8</a></div><divclass="ttdeci">friend class TensorBuilder_v8</div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00054">cudnn_frontend_Tensor.h:54</a></div></div>
<divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_a611fc05f3c7b6ca90d0e3c0f6ef07d84"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a611fc05f3c7b6ca90d0e3c0f6ef07d84">cudnn_frontend::Tensor_v8::isVirtual</a></div><divclass="ttdeci">bool isVirtual</div><divclass="ttdoc">What is the vectorization count (4 or 32) </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00130">cudnn_frontend_Tensor.h:130</a></div></div>
<divclass="ttc"id="group__TensorBuilder__v8_html_ga385ec2c39e6386af7421f27330ed128b"><divclass="ttname"><ahref="../../d3/d3c/group__TensorBuilder__v8.html#ga385ec2c39e6386af7421f27330ed128b">cudnn_frontend::TensorBuilder_v8::setAlignment</a></div><divclass="ttdeci">auto setAlignment(int64_t alignment_) -> TensorBuilder_v8 &</div><divclass="ttdoc">Set Alignment of the tensor. </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00173">cudnn_frontend_Tensor.h:173</a></div></div>
<divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_a2afdff65c7b389a4da5d9e4825db3e85"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a2afdff65c7b389a4da5d9e4825db3e85">cudnn_frontend::Tensor_v8::vectorCount</a></div><divclass="ttdeci">int64_t vectorCount</div><divclass="ttdoc">Which dimension of the tensor is vectorized (Generally the c dim) </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00129">cudnn_frontend_Tensor.h:129</a></div></div>
<divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_a1370de050fc91e9d992995fae5f22011"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a1370de050fc91e9d992995fae5f22011">cudnn_frontend::Tensor_v8::nDims</a></div><divclass="ttdeci">int64_t nDims</div><divclass="ttdoc">Certain engine config expect minimum alignment of 16B. </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00127">cudnn_frontend_Tensor.h:127</a></div></div>
<divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_a7419041bb3bf934f8e9f851fa63acabd"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a7419041bb3bf934f8e9f851fa63acabd">cudnn_frontend::Tensor_v8::btensor_dimA</a></div><divclass="ttdeci">int64_t btensor_dimA[CUDNN_DIM_MAX+1]</div><divclass="ttdoc">Datatype of the elements. </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00122">cudnn_frontend_Tensor.h:122</a></div></div>
<divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_a79cc1a752e6df2001b853f8c189b1f1f"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#a79cc1a752e6df2001b853f8c189b1f1f">cudnn_frontend::Tensor_v8::describe</a></div><divclass="ttdeci">std::string describe() const override</div><divclass="ttdoc">Return a string describing the backend Descriptor. </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00056">cudnn_frontend_Tensor.h:56</a></div></div>
<divclass="ttc"id="classcudnn__frontend_1_1Tensor__v8_html_ac645129e72b917e030320398802d7b73"><divclass="ttname"><ahref="../../d6/da7/classcudnn__frontend_1_1Tensor__v8.html#ac645129e72b917e030320398802d7b73">cudnn_frontend::Tensor_v8::vectorDimension</a></div><divclass="ttdeci">int64_t vectorDimension</div><divclass="ttdoc">Number of Dimensions of the tensor. </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00128">cudnn_frontend_Tensor.h:128</a></div></div>
<divclass="ttc"id="group__TensorBuilder__v8_html_ga6bdaeab1bff548d375e57936b64fb05a"><divclass="ttname"><ahref="../../d3/d3c/group__TensorBuilder__v8.html#ga6bdaeab1bff548d375e57936b64fb05a">cudnn_frontend::TensorBuilder_v8::setId</a></div><divclass="ttdeci">auto setId(int64_t id_) -> TensorBuilder_v8 &</div><divclass="ttdoc">Set Unique Id of the tensor. </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00167">cudnn_frontend_Tensor.h:167</a></div></div>
<divclass="ttc"id="group__TensorBuilder__v8_html_gae828806e2d76ca3eb6c4e289f2e93a96"><divclass="ttname"><ahref="../../d3/d3c/group__TensorBuilder__v8.html#gae828806e2d76ca3eb6c4e289f2e93a96">cudnn_frontend::TensorBuilder_v8::setDim</a></div><divclass="ttdeci">auto setDim(int64_t ndim, int64_t const *dim) -> TensorBuilder_v8 &</div><divclass="ttdoc">Set Dimensions of the tensor. </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00154">cudnn_frontend_Tensor.h:154</a></div></div>
<divclass="ttc"id="group__TensorBuilder__v8_html_ga98275e4d36e37ef5d73f13bd80f164a3"><divclass="ttname"><ahref="../../d3/d3c/group__TensorBuilder__v8.html#ga98275e4d36e37ef5d73f13bd80f164a3">cudnn_frontend::TensorBuilder_v8::setDataType</a></div><divclass="ttdeci">auto setDataType(cudnnDataType_t data_type_) -> TensorBuilder_v8 &</div><divclass="ttdoc">Set Datatype for the Tensor_v8. </div><divclass="ttdef"><b>Definition:</b><ahref="../../d3/d98/cudnn__frontend__Tensor_8h_source.html#l00148">cudnn_frontend_Tensor.h:148</a></div></div>
<divclass="ttc"id="classcudnn__frontend_1_1BackendDescriptor_html_a8a5466c444f2de721118334ac876c6ba"><divclass="ttname"><ahref="../../d6/d88/classcudnn__frontend_1_1BackendDescriptor.html#a8a5466c444f2de721118334ac876c6ba">cudnn_frontend::BackendDescriptor::status</a></div><divclass="ttdeci">cudnnStatus_t status</div><divclass="ttdoc">Shared pointer of the OpaqueBackendPointer. </div><divclass="ttdef"><b>Definition:</b><ahref="../../dc/d11/cudnn__backend__base_8h_source.html#l00160">cudnn_backend_base.h:160</a></div></div>
<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">a class to store JSON values <ahref="../../d9/dcc/classnlohmann_1_1basic__json.html#details">More...</a><br/></td></tr>
<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">an internal type for a backed binary type <ahref="../../dd/d0d/classnlohmann_1_1byte__container__with__subtype.html#details">More...</a><br/></td></tr>
<trclass="memdesc:a2bfd99e845a2e5cd90aeaf1b1431f474"><tdclass="mdescLeft"> </td><tdclass="mdescRight">default JSON class <ahref="#a2bfd99e845a2e5cd90aeaf1b1431f474">More...</a><br/></td></tr>
<trclass="memdesc:ad53cef358adfa7f07cea23eb1e28b9ea"><tdclass="mdescLeft"> </td><tdclass="mdescRight">ordered JSON class <ahref="#ad53cef358adfa7f07cea23eb1e28b9ea">More...</a><br/></td></tr>
<trclass="memdesc:a6ce645a0b8717757e096a5b5773b7a16"><tdclass="mdescLeft"> </td><tdclass="mdescRight">user-defined to_string function for JSON values <ahref="#a6ce645a0b8717757e096a5b5773b7a16">More...</a><br/></td></tr>
<p>namespace to hold default <code>to_json</code> function to see why this is required: <ahref="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4381.html">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4381.html</a></p>
<p>This type is the default specialization of the <aclass="el"href="../../d9/dcc/classnlohmann_1_1basic__json.html">basic_json</a> class which uses the standard template types.</p>
<pclass="definition">Definition at line <aclass="el"href="../../d5/db8/json_8hpp_source.html#l03390">3390</a> of file <aclass="el"href="../../d5/db8/json_8hpp_source.html">json.hpp</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../d5/db8/json_8hpp_source.html#l03402">3402</a> of file <aclass="el"href="../../d5/db8/json_8hpp_source.html">json.hpp</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../d5/db8/json_8hpp_source.html#l25855">25855</a> of file <aclass="el"href="../../d5/db8/json_8hpp_source.html">json.hpp</a>.</p>