blob: da74f6cfc7420144cab93eb5c1bedd56a7e9bb52 [file] [log] [blame]
<!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>mxnet: Dnnl_api_rnn</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="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>
<link href="doxygen.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;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mxnet
</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 -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Dnnl_api_rnn<div class="ingroups"><a class="el" href="group__dnnl__api.html">Dnnl_api</a> &raquo; <a class="el" href="group__dnnl__api__primitives.html">Dnnl_api_primitives</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for Dnnl_api_rnn:</div>
<div class="dyncontent">
<div class="center"><img src="group__dnnl__api__rnn.png" border="0" usemap="#group____dnnl____api____rnn" alt=""/></div>
<!-- MAP 0 -->
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A descriptor for an RNN operation. <a href="structdnnl__rnn__desc__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga3e71b827ee442f0302111d214a6d35b5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga3e71b827ee442f0302111d214a6d35b5">dnnl_rnn_flags_t</a> { <a class="el" href="group__dnnl__api__rnn.html#gga3e71b827ee442f0302111d214a6d35b5a4e084e191fb407938352e828314d012f">dnnl_rnn_flags_undef</a> = 0x0
}</td></tr>
<tr class="memdesc:ga3e71b827ee442f0302111d214a6d35b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flags for RNN cell. <a href="group__dnnl__api__rnn.html#ga3e71b827ee442f0302111d214a6d35b5">More...</a><br /></td></tr>
<tr class="separator:ga3e71b827ee442f0302111d214a6d35b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga629de1827647bf1824361a276c5169f0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> { <br />
&#160;&#160;<a class="el" href="group__dnnl__api__rnn.html#gga629de1827647bf1824361a276c5169f0a97cbdb39a208127cc83a9249517c5180">dnnl_unidirectional_left2right</a>,
<a class="el" href="group__dnnl__api__rnn.html#gga629de1827647bf1824361a276c5169f0ad95dd744e0485467b82aacdbbe4590a1">dnnl_unidirectional_right2left</a>,
<a class="el" href="group__dnnl__api__rnn.html#gga629de1827647bf1824361a276c5169f0a69299415608e015c7334dc342d52743d">dnnl_bidirectional_concat</a>,
<a class="el" href="group__dnnl__api__rnn.html#gga629de1827647bf1824361a276c5169f0a6b39b772b540368ef1c80eee3ef1ff27">dnnl_bidirectional_sum</a>,
<br />
&#160;&#160;<a class="el" href="group__dnnl__api__rnn.html#gga629de1827647bf1824361a276c5169f0a65fff35b8f3a06151f3cbfa660e558a4">dnnl_unidirectional</a> = dnnl_unidirectional_left2right
<br />
}</td></tr>
<tr class="memdesc:ga629de1827647bf1824361a276c5169f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">A direction of RNN primitive execution. <a href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">More...</a><br /></td></tr>
<tr class="separator:ga629de1827647bf1824361a276c5169f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga49396cd1b79742d7186446618dd177df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga49396cd1b79742d7186446618dd177df">dnnl_vanilla_rnn_forward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, const <a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a> activation, const <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, unsigned flags, float alpha, float beta)</td></tr>
<tr class="separator:ga49396cd1b79742d7186446618dd177df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga731d97d4b6ac94653734c2065759492b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga731d97d4b6ac94653734c2065759492b">dnnl_vanilla_rnn_backward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, const <a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a> activation, const <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_iter_desc, unsigned flags, float alpha, float beta)</td></tr>
<tr class="separator:ga731d97d4b6ac94653734c2065759492b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabfc48e17679206624fb1e0b5cbdc9539"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#gabfc48e17679206624fb1e0b5cbdc9539">dnnl_lstm_forward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_c_desc, unsigned flags)</td></tr>
<tr class="separator:gabfc48e17679206624fb1e0b5cbdc9539"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad9b01827d9c54ce4e6a09a25abe5fb55"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#gad9b01827d9c54ce4e6a09a25abe5fb55">dnnl_lstm_forward_desc_init_v2</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_peephole_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_c_desc, unsigned flags)</td></tr>
<tr class="separator:gad9b01827d9c54ce4e6a09a25abe5fb55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8b27af5eba355e35962ef996060b824"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#gac8b27af5eba355e35962ef996060b824">dnnl_lstm_forward_desc_init_v3</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_peephole_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_projection_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_c_desc, unsigned flags)</td></tr>
<tr class="separator:gac8b27af5eba355e35962ef996060b824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61249b3a787ca3d6412daf7fa389f8cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga61249b3a787ca3d6412daf7fa389f8cd">dnnl_lstm_backward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_iter_c_desc, unsigned flags)</td></tr>
<tr class="separator:ga61249b3a787ca3d6412daf7fa389f8cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga893994f53b35e6d66bd346a0ee1936a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga893994f53b35e6d66bd346a0ee1936a7">dnnl_lstm_backward_desc_init_v2</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_peephole_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_peephole_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_iter_c_desc, unsigned flags)</td></tr>
<tr class="separator:ga893994f53b35e6d66bd346a0ee1936a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a04fe20c7cc0efe2728433aebfdef52"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga7a04fe20c7cc0efe2728433aebfdef52">dnnl_lstm_backward_desc_init_v3</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_peephole_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_projection_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_iter_c_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_peephole_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_projection_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_iter_c_desc, unsigned flags)</td></tr>
<tr class="separator:ga7a04fe20c7cc0efe2728433aebfdef52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1552168adfd901681cc6eab2d6da4112"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga1552168adfd901681cc6eab2d6da4112">dnnl_gru_forward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, unsigned flags)</td></tr>
<tr class="separator:ga1552168adfd901681cc6eab2d6da4112"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed7f10aace5ff7a268e33150908d2d67"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#gaed7f10aace5ff7a268e33150908d2d67">dnnl_gru_backward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_iter_desc, unsigned flags)</td></tr>
<tr class="separator:gaed7f10aace5ff7a268e33150908d2d67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac60139476aa94b994c4007a715899283"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#gac60139476aa94b994c4007a715899283">dnnl_lbr_gru_forward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, unsigned flags)</td></tr>
<tr class="separator:gac60139476aa94b994c4007a715899283"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga051e03160540be590513bee961edd2c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga051e03160540be590513bee961edd2c4">dnnl_lbr_gru_backward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_iter_desc, unsigned flags)</td></tr>
<tr class="separator:ga051e03160540be590513bee961edd2c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf28e3107a9d1781832f5e37aed1a2c90"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#gaf28e3107a9d1781832f5e37aed1a2c90">dnnl_augru_forward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *attention_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, unsigned flags)</td></tr>
<tr class="separator:gaf28e3107a9d1781832f5e37aed1a2c90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e10ec89229ec8530c01348db9a0222a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga4e10ec89229ec8530c01348db9a0222a">dnnl_augru_backward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *attention_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_attention_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_iter_desc, unsigned flags)</td></tr>
<tr class="separator:ga4e10ec89229ec8530c01348db9a0222a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7675994bf4effaa28d73678e43134e0e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga7675994bf4effaa28d73678e43134e0e">dnnl_lbr_augru_forward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *attention_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, unsigned flags)</td></tr>
<tr class="separator:ga7675994bf4effaa28d73678e43134e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e42e4c3d56cadca8a15283bf349d16c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__rnn.html#ga0e42e4c3d56cadca8a15283bf349d16c">dnnl_lbr_augru_backward_desc_init</a> (<a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *rnn_desc, <a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a> prop_kind, <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> direction, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *attention_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *dst_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_src_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_attention_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_weights_iter_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_bias_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_layer_desc, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *diff_dst_iter_desc, unsigned flags)</td></tr>
<tr class="separator:ga0e42e4c3d56cadca8a15283bf349d16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga629de1827647bf1824361a276c5169f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga629de1827647bf1824361a276c5169f0">&#9670;&nbsp;</a></span>dnnl_rnn_direction_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A direction of RNN primitive execution. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga629de1827647bf1824361a276c5169f0a97cbdb39a208127cc83a9249517c5180"></a>dnnl_unidirectional_left2right&#160;</td><td class="fielddoc"><p>Unidirectional execution of RNN primitive from left to right. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga629de1827647bf1824361a276c5169f0ad95dd744e0485467b82aacdbbe4590a1"></a>dnnl_unidirectional_right2left&#160;</td><td class="fielddoc"><p>Unidirectional execution of RNN primitive from right to left. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga629de1827647bf1824361a276c5169f0a69299415608e015c7334dc342d52743d"></a>dnnl_bidirectional_concat&#160;</td><td class="fielddoc"><p>Bidirectional execution of RNN primitive with concatenation of the results. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga629de1827647bf1824361a276c5169f0a6b39b772b540368ef1c80eee3ef1ff27"></a>dnnl_bidirectional_sum&#160;</td><td class="fielddoc"><p>Bidirectional execution of RNN primitive with summation of the results. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga629de1827647bf1824361a276c5169f0a65fff35b8f3a06151f3cbfa660e558a4"></a>dnnl_unidirectional&#160;</td><td class="fielddoc"><p>Alias for <a class="el" href="group__dnnl__api__rnn.html#gga629de1827647bf1824361a276c5169f0a97cbdb39a208127cc83a9249517c5180" title="Unidirectional execution of RNN primitive from left to right.">dnnl_unidirectional_left2right</a>. </p>
</td></tr>
</table>
</div>
</div>
<a id="ga3e71b827ee442f0302111d214a6d35b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3e71b827ee442f0302111d214a6d35b5">&#9670;&nbsp;</a></span>dnnl_rnn_flags_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__dnnl__api__rnn.html#ga3e71b827ee442f0302111d214a6d35b5">dnnl_rnn_flags_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Flags for RNN cell. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga3e71b827ee442f0302111d214a6d35b5a4e084e191fb407938352e828314d012f"></a>dnnl_rnn_flags_undef&#160;</td><td class="fielddoc"><p>Undefined RNN flags. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga4e10ec89229ec8530c01348db9a0222a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4e10ec89229ec8530c01348db9a0222a">&#9670;&nbsp;</a></span>dnnl_augru_backward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_augru_backward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>attention_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_attention_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for AUGRU backward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code> together with <code>diff_src_iter_desc</code>,</li>
<li><code>bias_desc</code> together with <code>diff_bias_desc</code>,</li>
<li><code>dst_iter_desc</code> together with <code>diff_dst_iter_desc</code>.</li>
</ul>
<p>This would then indicate that the AUGRU backward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for AUGRU primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Must be <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a326a5e31769302972e7bded555e1cc10" title="Backward propagation (with respect to all parameters).">dnnl_backward</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">attention_desc</td><td>Memory descriptor for the attention vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_src_layer_desc</td><td>Memory descriptor for the diff of input vector. </td></tr>
<tr><td class="paramname">diff_src_iter_desc</td><td>Memory descriptor for the diff of input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_attention_desc</td><td>Memory descriptor for the diff of attention vector. </td></tr>
<tr><td class="paramname">diff_weights_layer_desc</td><td>Memory descriptor for the diff of weights applied to the layer input. </td></tr>
<tr><td class="paramname">diff_weights_iter_desc</td><td>Memory descriptor for the diff of weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">diff_bias_desc</td><td>Diff bias memory descriptor. </td></tr>
<tr><td class="paramname">diff_dst_layer_desc</td><td>Memory descriptor for the diff of output vector. </td></tr>
<tr><td class="paramname">diff_dst_iter_desc</td><td>Memory descriptor for the diff of output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="gaf28e3107a9d1781832f5e37aed1a2c90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf28e3107a9d1781832f5e37aed1a2c90">&#9670;&nbsp;</a></span>dnnl_augru_forward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_augru_forward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>attention_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for AUGRU forward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code>,</li>
<li><code>bias_desc</code>,</li>
<li><code>dst_iter_desc</code>.</li>
</ul>
<p>This would then indicate that the AUGRU forward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for AUGRU primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Possible values are <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a992e03bebfe623ac876b3636333bbce0">dnnl_forward_training</a> and <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a2f77a568a675dec649eb0450c997856d">dnnl_forward_inference</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">attention_desc</td><td>Memory descriptor for the attention vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="gaed7f10aace5ff7a268e33150908d2d67"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaed7f10aace5ff7a268e33150908d2d67">&#9670;&nbsp;</a></span>dnnl_gru_backward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_gru_backward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for GRU backward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code> together with <code>diff_src_iter_desc</code>,</li>
<li><code>bias_desc</code> together with <code>diff_bias_desc</code>,</li>
<li><code>dst_iter_desc</code> together with <code>diff_dst_iter_desc</code>.</li>
</ul>
<p>This would then indicate that the GRU backward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for GRU primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Must be <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a326a5e31769302972e7bded555e1cc10" title="Backward propagation (with respect to all parameters).">dnnl_backward</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_src_layer_desc</td><td>Memory descriptor for the diff of input vector. </td></tr>
<tr><td class="paramname">diff_src_iter_desc</td><td>Memory descriptor for the diff of input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_weights_layer_desc</td><td>Memory descriptor for the diff of weights applied to the layer input. </td></tr>
<tr><td class="paramname">diff_weights_iter_desc</td><td>Memory descriptor for the diff of weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">diff_bias_desc</td><td>Diff bias memory descriptor. </td></tr>
<tr><td class="paramname">diff_dst_layer_desc</td><td>Memory descriptor for the diff of output vector. </td></tr>
<tr><td class="paramname">diff_dst_iter_desc</td><td>Memory descriptor for the diff of output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="ga1552168adfd901681cc6eab2d6da4112"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1552168adfd901681cc6eab2d6da4112">&#9670;&nbsp;</a></span>dnnl_gru_forward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_gru_forward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for GRU forward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code>,</li>
<li><code>bias_desc</code>,</li>
<li><code>dst_iter_desc</code>.</li>
</ul>
<p>This would then indicate that the GRU forward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for GRU primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Possible values are <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a992e03bebfe623ac876b3636333bbce0">dnnl_forward_training</a> and <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a2f77a568a675dec649eb0450c997856d">dnnl_forward_inference</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="ga0e42e4c3d56cadca8a15283bf349d16c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0e42e4c3d56cadca8a15283bf349d16c">&#9670;&nbsp;</a></span>dnnl_lbr_augru_backward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_lbr_augru_backward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>attention_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_attention_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for LBR AUGRU backward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code> together with <code>diff_src_iter_desc</code>,</li>
<li><code>bias_desc</code> together with <code>diff_bias_desc</code>,</li>
<li><code>dst_iter_desc</code> together with <code>diff_dst_iter_desc</code>.</li>
</ul>
<p>This would then indicate that the LBR AUGRU backward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for LBR AUGRU primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Must be <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a326a5e31769302972e7bded555e1cc10" title="Backward propagation (with respect to all parameters).">dnnl_backward</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">attention_desc</td><td>Memory descriptor for the attention vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_src_layer_desc</td><td>Memory descriptor for the diff of input vector. </td></tr>
<tr><td class="paramname">diff_src_iter_desc</td><td>Memory descriptor for the diff of input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_attention_desc</td><td>Memory descriptor for the diff of attention vector. </td></tr>
<tr><td class="paramname">diff_weights_layer_desc</td><td>Memory descriptor for the diff of weights applied to the layer input. </td></tr>
<tr><td class="paramname">diff_weights_iter_desc</td><td>Memory descriptor for the diff of weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">diff_bias_desc</td><td>Diff bias memory descriptor. </td></tr>
<tr><td class="paramname">diff_dst_layer_desc</td><td>Memory descriptor for the diff of output vector. </td></tr>
<tr><td class="paramname">diff_dst_iter_desc</td><td>Memory descriptor for the diff of output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="ga7675994bf4effaa28d73678e43134e0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7675994bf4effaa28d73678e43134e0e">&#9670;&nbsp;</a></span>dnnl_lbr_augru_forward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_lbr_augru_forward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>attention_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for LBR AUGRU forward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code>,</li>
<li><code>bias_desc</code>,</li>
<li><code>dst_iter_desc</code>.</li>
</ul>
<p>This would then indicate that the LBR AUGRU forward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for LBR AUGRU primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Possible values are <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a992e03bebfe623ac876b3636333bbce0">dnnl_forward_training</a> and <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a2f77a568a675dec649eb0450c997856d">dnnl_forward_inference</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">attention_desc</td><td>Memory descriptor for the attention vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="ga051e03160540be590513bee961edd2c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga051e03160540be590513bee961edd2c4">&#9670;&nbsp;</a></span>dnnl_lbr_gru_backward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_lbr_gru_backward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for LBR GRU backward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code> together with <code>diff_src_iter_desc</code>,</li>
<li><code>bias_desc</code> together with <code>diff_bias_desc</code>,</li>
<li><code>dst_iter_desc</code> together with <code>diff_dst_iter_desc</code>.</li>
</ul>
<p>This would then indicate that the LBR GRU backward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for LBR GRU primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Must be <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a326a5e31769302972e7bded555e1cc10" title="Backward propagation (with respect to all parameters).">dnnl_backward</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_src_layer_desc</td><td>Memory descriptor for the diff of input vector. </td></tr>
<tr><td class="paramname">diff_src_iter_desc</td><td>Memory descriptor for the diff of input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_weights_layer_desc</td><td>Memory descriptor for the diff of weights applied to the layer input. </td></tr>
<tr><td class="paramname">diff_weights_iter_desc</td><td>Memory descriptor for the diff of weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">diff_bias_desc</td><td>Diff bias memory descriptor. </td></tr>
<tr><td class="paramname">diff_dst_layer_desc</td><td>Memory descriptor for the diff of output vector. </td></tr>
<tr><td class="paramname">diff_dst_iter_desc</td><td>Memory descriptor for the diff of output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="gac60139476aa94b994c4007a715899283"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac60139476aa94b994c4007a715899283">&#9670;&nbsp;</a></span>dnnl_lbr_gru_forward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_lbr_gru_forward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for LBR GRU forward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code>,</li>
<li><code>bias_desc</code>,</li>
<li><code>dst_iter_desc</code>.</li>
</ul>
<p>This would then indicate that the LBR GRU forward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for LBR GRU primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Possible values are <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a992e03bebfe623ac876b3636333bbce0">dnnl_forward_training</a> and <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a2f77a568a675dec649eb0450c997856d">dnnl_forward_inference</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="ga61249b3a787ca3d6412daf7fa389f8cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga61249b3a787ca3d6412daf7fa389f8cd">&#9670;&nbsp;</a></span>dnnl_lstm_backward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_lstm_backward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for an LSTM backward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code> together with <code>src_iter_c_desc</code>, <code>diff_src_iter_desc</code>, and <code>diff_src_iter_c_desc</code>,</li>
<li><code>bias_desc</code> together with <code>diff_bias_desc</code>,</li>
<li><code>dst_iter_desc</code> together with <code>dst_iter_c_desc</code>, <code>diff_dst_iter_desc</code>, and <code>diff_dst_iter_c_desc</code>.</li>
</ul>
<p>This would then indicate that the LSTM backward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__dnnl__api__rnn.html#ga893994f53b35e6d66bd346a0ee1936a7">dnnl_lstm_backward_desc_init_v2</a> to <a class="el" href="lib__api_8h.html#a3b4abe8a1f483ab51bb4274be2f193ac" title="Checks if the MXNet version is supported by the library. If supported, initializes the library.">initialize</a> backward LSTM with and without peephole </dd>
<dd>
<a class="el" href="group__dnnl__api__rnn.html#ga7a04fe20c7cc0efe2728433aebfdef52">dnnl_lstm_backward_desc_init_v3</a> to <a class="el" href="lib__api_8h.html#a3b4abe8a1f483ab51bb4274be2f193ac" title="Checks if the MXNet version is supported by the library. If supported, initializes the library.">initialize</a> backward LSTM with and without peephole / recurrent projection layer</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for LSTM primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Must be <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a326a5e31769302972e7bded555e1cc10" title="Backward propagation (with respect to all parameters).">dnnl_backward</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">src_iter_c_desc</td><td>Memory descriptor for the input recurrent cell state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">dst_iter_c_desc</td><td>Memory descriptor for the output recurrent cell state vector. </td></tr>
<tr><td class="paramname">diff_src_layer_desc</td><td>Memory descriptor for the diff of input vector. </td></tr>
<tr><td class="paramname">diff_src_iter_desc</td><td>Memory descriptor for the diff of input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_src_iter_c_desc</td><td>Memory descriptor for the diff of input recurrent cell state vector. </td></tr>
<tr><td class="paramname">diff_weights_layer_desc</td><td>Memory descriptor for the diff of weights applied to the layer input. </td></tr>
<tr><td class="paramname">diff_weights_iter_desc</td><td>Memory descriptor for the diff of weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">diff_bias_desc</td><td>Diff bias memory descriptor. </td></tr>
<tr><td class="paramname">diff_dst_layer_desc</td><td>Memory descriptor for the diff of output vector. </td></tr>
<tr><td class="paramname">diff_dst_iter_desc</td><td>Memory descriptor for the diff of output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_dst_iter_c_desc</td><td>Memory descriptor for the diff of output recurrent cell state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="ga893994f53b35e6d66bd346a0ee1936a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga893994f53b35e6d66bd346a0ee1936a7">&#9670;&nbsp;</a></span>dnnl_lstm_backward_desc_init_v2()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_lstm_backward_desc_init_v2 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_peephole_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_peephole_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for an LSTM (with or without peephole) backward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code> together with <code>src_iter_c_desc</code>, <code>diff_src_iter_desc</code>, and <code>diff_src_iter_c_desc</code>,</li>
<li><code>weights_peephole_desc</code> together with <code>diff_weights_peephole_desc</code>,</li>
<li><code>bias_desc</code> together with <code>diff_bias_desc</code>,</li>
<li><code>dst_iter_desc</code> together with <code>dst_iter_c_desc</code>, <code>diff_dst_iter_desc</code>, and <code>diff_dst_iter_c_desc</code>.</li>
</ul>
<p>This would then indicate that the LSTM backward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__dnnl__api__rnn.html#ga7a04fe20c7cc0efe2728433aebfdef52">dnnl_lstm_backward_desc_init_v3</a> to <a class="el" href="lib__api_8h.html#a3b4abe8a1f483ab51bb4274be2f193ac" title="Checks if the MXNet version is supported by the library. If supported, initializes the library.">initialize</a> backward LSTM with and without peephole / recurrent projection layer</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for LSTM primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Must be <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a326a5e31769302972e7bded555e1cc10" title="Backward propagation (with respect to all parameters).">dnnl_backward</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">src_iter_c_desc</td><td>Memory descriptor for the input recurrent cell state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">weights_peephole_desc</td><td>Memory descriptor for the weights applied to the cell states (according to the Peephole LSTM formula). </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">dst_iter_c_desc</td><td>Memory descriptor for the output recurrent cell state vector. </td></tr>
<tr><td class="paramname">diff_src_layer_desc</td><td>Memory descriptor for the diff of input vector. </td></tr>
<tr><td class="paramname">diff_src_iter_desc</td><td>Memory descriptor for the diff of input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_src_iter_c_desc</td><td>Memory descriptor for the diff of input recurrent cell state vector. </td></tr>
<tr><td class="paramname">diff_weights_layer_desc</td><td>Memory descriptor for the diff of weights applied to the layer input. </td></tr>
<tr><td class="paramname">diff_weights_iter_desc</td><td>Memory descriptor for the diff of weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">diff_weights_peephole_desc</td><td>Memory descriptor for the diff of weights applied to the cell states (according to the Peephole LSTM formula). </td></tr>
<tr><td class="paramname">diff_bias_desc</td><td>Diff bias memory descriptor. </td></tr>
<tr><td class="paramname">diff_dst_layer_desc</td><td>Memory descriptor for the diff of output vector. </td></tr>
<tr><td class="paramname">diff_dst_iter_desc</td><td>Memory descriptor for the diff of output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_dst_iter_c_desc</td><td>Memory descriptor for the diff of output recurrent cell state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="ga7a04fe20c7cc0efe2728433aebfdef52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7a04fe20c7cc0efe2728433aebfdef52">&#9670;&nbsp;</a></span>dnnl_lstm_backward_desc_init_v3()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_lstm_backward_desc_init_v3 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_peephole_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_projection_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_peephole_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_projection_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for an LSTM (with or without peephole and with or with out recurrent projection layer) backward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code> together with <code>src_iter_c_desc</code>, <code>diff_src_iter_desc</code>, and <code>diff_src_iter_c_desc</code>,</li>
<li><code>weights_peephole_desc</code> together with <code>diff_weights_peephole_desc</code>,</li>
<li><code>bias_desc</code> together with <code>diff_bias_desc</code>,</li>
<li><code>dst_iter_desc</code> together with <code>dst_iter_c_desc</code>, <code>diff_dst_iter_desc</code>, and <code>diff_dst_iter_c_desc</code>.</li>
</ul>
<p>This would then indicate that the LSTM backward propagation primitive should not use them and should default to zero values instead.</p>
<p>The <code>weights_projection_desc</code> together with <code>diff_weights_projection_desc</code> could either be <code>NULL</code> or point to a zero memory descriptor. This would then indicate that the LSTM doesn't have recurrent projection layer.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for LSTM primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Must be <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a326a5e31769302972e7bded555e1cc10" title="Backward propagation (with respect to all parameters).">dnnl_backward</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">src_iter_c_desc</td><td>Memory descriptor for the input recurrent cell state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">weights_peephole_desc</td><td>Memory descriptor for the weights applied to the cell states (according to the Peephole LSTM formula). </td></tr>
<tr><td class="paramname">weights_projection_desc</td><td>Memory descriptor for the weights applied to the hidden states to get the recurrent projection (according to the Projection LSTM formula). </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">dst_iter_c_desc</td><td>Memory descriptor for the output recurrent cell state vector. </td></tr>
<tr><td class="paramname">diff_src_layer_desc</td><td>Memory descriptor for the diff of input vector. </td></tr>
<tr><td class="paramname">diff_src_iter_desc</td><td>Memory descriptor for the diff of input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_src_iter_c_desc</td><td>Memory descriptor for the diff of input recurrent cell state vector. </td></tr>
<tr><td class="paramname">diff_weights_layer_desc</td><td>Memory descriptor for the diff of weights applied to the layer input. </td></tr>
<tr><td class="paramname">diff_weights_iter_desc</td><td>Memory descriptor for the diff of weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">diff_weights_peephole_desc</td><td>Memory descriptor for the diff of weights applied to the cell states (according to the Peephole LSTM formula). </td></tr>
<tr><td class="paramname">diff_weights_projection_desc</td><td>Memory descriptor for the diff of weights applied to the hidden states to get the recurrent projection (according to the Projection LSTM formula). </td></tr>
<tr><td class="paramname">diff_bias_desc</td><td>Diff bias memory descriptor. </td></tr>
<tr><td class="paramname">diff_dst_layer_desc</td><td>Memory descriptor for the diff of output vector. </td></tr>
<tr><td class="paramname">diff_dst_iter_desc</td><td>Memory descriptor for the diff of output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_dst_iter_c_desc</td><td>Memory descriptor for the diff of output recurrent cell state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="gabfc48e17679206624fb1e0b5cbdc9539"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabfc48e17679206624fb1e0b5cbdc9539">&#9670;&nbsp;</a></span>dnnl_lstm_forward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_lstm_forward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for LSTM forward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code> together with <code>src_iter_c_desc</code>,</li>
<li><code>bias_desc</code>,</li>
<li><code>dst_iter_desc</code> together with <code>dst_iter_c_desc</code>.</li>
</ul>
<p>This would then indicate that the LSTM forward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__dnnl__api__rnn.html#gad9b01827d9c54ce4e6a09a25abe5fb55">dnnl_lstm_forward_desc_init_v2</a> to <a class="el" href="lib__api_8h.html#a3b4abe8a1f483ab51bb4274be2f193ac" title="Checks if the MXNet version is supported by the library. If supported, initializes the library.">initialize</a> forward LSTM with and without peephole </dd>
<dd>
<a class="el" href="group__dnnl__api__rnn.html#gac8b27af5eba355e35962ef996060b824">dnnl_lstm_forward_desc_init_v3</a> to <a class="el" href="lib__api_8h.html#a3b4abe8a1f483ab51bb4274be2f193ac" title="Checks if the MXNet version is supported by the library. If supported, initializes the library.">initialize</a> forward LSTM with and without peephole / recurrent projection layer</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for LSTM primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Possible values are <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a992e03bebfe623ac876b3636333bbce0">dnnl_forward_training</a> and <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a2f77a568a675dec649eb0450c997856d">dnnl_forward_inference</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">src_iter_c_desc</td><td>Memory descriptor for the input recurrent cell state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">dst_iter_c_desc</td><td>Memory descriptor for the output recurrent cell state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="gad9b01827d9c54ce4e6a09a25abe5fb55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad9b01827d9c54ce4e6a09a25abe5fb55">&#9670;&nbsp;</a></span>dnnl_lstm_forward_desc_init_v2()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_lstm_forward_desc_init_v2 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_peephole_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for an LSTM (with or without peephole) forward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code> together with <code>src_iter_c_desc</code>,</li>
<li><code>weights_peephole_desc</code>,</li>
<li><code>bias_desc</code>,</li>
<li><code>dst_iter_desc</code> together with <code>dst_iter_c_desc</code>.</li>
</ul>
<p>This would then indicate that the LSTM forward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__dnnl__api__rnn.html#gac8b27af5eba355e35962ef996060b824">dnnl_lstm_forward_desc_init_v3</a> to <a class="el" href="lib__api_8h.html#a3b4abe8a1f483ab51bb4274be2f193ac" title="Checks if the MXNet version is supported by the library. If supported, initializes the library.">initialize</a> forward LSTM with and without peephole / recurrent projection layer</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for LSTM primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Possible values are <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a992e03bebfe623ac876b3636333bbce0">dnnl_forward_training</a> and <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a2f77a568a675dec649eb0450c997856d">dnnl_forward_inference</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">src_iter_c_desc</td><td>Memory descriptor for the input recurrent cell state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">weights_peephole_desc</td><td>Memory descriptor for the weights applied to the cell states (according to the Peephole LSTM formula). </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">dst_iter_c_desc</td><td>Memory descriptor for the output recurrent cell state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="gac8b27af5eba355e35962ef996060b824"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac8b27af5eba355e35962ef996060b824">&#9670;&nbsp;</a></span>dnnl_lstm_forward_desc_init_v3()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_lstm_forward_desc_init_v3 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_peephole_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_projection_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_c_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for an LSTM (with or without peephole and with or without recurrent projection layer) forward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code> together with <code>src_iter_c_desc</code>,</li>
<li><code>weights_peephole_desc</code>,</li>
<li><code>bias_desc</code>,</li>
<li><code>dst_iter_desc</code> together with <code>dst_iter_c_desc</code>.</li>
</ul>
<p>This would then indicate that the LSTM forward propagation primitive should not use them and should default to zero values instead.</p>
<p>The <code>weights_projection_desc</code> could either be <code>NULL</code> or point to a zero memory descriptor. This would then indicate that the LSTM doesn't have recurrent projection layer.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for LSTM primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Possible values are <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a992e03bebfe623ac876b3636333bbce0">dnnl_forward_training</a> and <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a2f77a568a675dec649eb0450c997856d">dnnl_forward_inference</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">src_iter_c_desc</td><td>Memory descriptor for the input recurrent cell state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">weights_peephole_desc</td><td>Memory descriptor for the weights applied to the cell states (according to the Peephole LSTM formula). </td></tr>
<tr><td class="paramname">weights_projection_desc</td><td>Memory descriptor for the weights applied to the hidden states to get the recurrent projection (according to the Projection LSTM formula). </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">dst_iter_c_desc</td><td>Memory descriptor for the output recurrent cell state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="ga731d97d4b6ac94653734c2065759492b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga731d97d4b6ac94653734c2065759492b">&#9670;&nbsp;</a></span>dnnl_vanilla_rnn_backward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_vanilla_rnn_backward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a>&#160;</td>
<td class="paramname"><em>activation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>diff_dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>alpha</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>beta</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for vanilla RNN backward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code> together with <code>diff_src_iter_desc</code>,</li>
<li><code>bias_desc</code> together with <code>diff_bias_desc</code>,</li>
<li><code>dst_iter_desc</code> together with <code>diff_dst_iter_desc</code>.</li>
</ul>
<p>This would then indicate that the RNN backward propagation primitive should not use the respective data and should use zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for vanilla RNN primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Must be <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a326a5e31769302972e7bded555e1cc10" title="Backward propagation (with respect to all parameters).">dnnl_backward</a>. </td></tr>
<tr><td class="paramname">activation</td><td>Activation kind. Possible values are <a class="el" href="group__dnnl__api__primitives__common.html#gga96946c805f6c4922c38c37049ab95d23a5e37643fec6531331e2e38df68d4c65a" title="Eltwise: ReLU.">dnnl_eltwise_relu</a>, <a class="el" href="group__dnnl__api__primitives__common.html#gga96946c805f6c4922c38c37049ab95d23a81b20d8f0b54c7114024186a9fbb698e" title="Eltwise: hyperbolic tangent non-linearity (tanh)">dnnl_eltwise_tanh</a> or <a class="el" href="group__dnnl__api__primitives__common.html#gga96946c805f6c4922c38c37049ab95d23ab560981bee9e7711017423e29ba46071" title="Eltwise: logistic.">dnnl_eltwise_logistic</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_src_layer_desc</td><td>Memory descriptor for the diff of input vector. </td></tr>
<tr><td class="paramname">diff_src_iter_desc</td><td>Memory descriptor for the diff of input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">diff_weights_layer_desc</td><td>Memory descriptor for the diff of weights applied to the layer input. </td></tr>
<tr><td class="paramname">diff_weights_iter_desc</td><td>Memory descriptor for the diff of weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">diff_bias_desc</td><td>Diff bias memory descriptor. </td></tr>
<tr><td class="paramname">diff_dst_layer_desc</td><td>Memory descriptor for the diff of output vector. </td></tr>
<tr><td class="paramname">diff_dst_iter_desc</td><td>Memory descriptor for the diff of output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
<tr><td class="paramname">alpha</td><td>Negative slope if activation is <a class="el" href="group__dnnl__api__primitives__common.html#gga96946c805f6c4922c38c37049ab95d23a5e37643fec6531331e2e38df68d4c65a" title="Eltwise: ReLU.">dnnl_eltwise_relu</a>. </td></tr>
<tr><td class="paramname">beta</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
<a id="ga49396cd1b79742d7186446618dd177df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga49396cd1b79742d7186446618dd177df">&#9670;&nbsp;</a></span>dnnl_vanilla_rnn_forward_desc_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API dnnl_vanilla_rnn_forward_desc_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> *&#160;</td>
<td class="paramname"><em>rnn_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#gae3c1f22ae55645782923fbfd8b07d0c4">dnnl_prop_kind_t</a>&#160;</td>
<td class="paramname"><em>prop_kind</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a>&#160;</td>
<td class="paramname"><em>activation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>src_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>weights_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>bias_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_layer_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *&#160;</td>
<td class="paramname"><em>dst_iter_desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>flags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>alpha</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>beta</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a descriptor for vanilla RNN forward propagation primitive.</p>
<p>The following arguments may either be <code>NULL</code> or point to a zero memory descriptor:</p><ul>
<li><code>src_iter_desc</code>,</li>
<li><code>bias_desc</code>,</li>
<li><code>dst_iter_desc</code>.</li>
</ul>
<p>This would then indicate that the RNN forward propagation primitive should not use them and should default to zero values instead.</p>
<dl class="section note"><dt>Note</dt><dd>All memory descriptors can be initialized with <a class="el" href="group__dnnl__api__memory.html#gga395e42b594683adb25ed2d842bb3091dafee39ac6fff0325cae43cd66495c18ac">dnnl_format_tag_any</a> or with format_kind set to <a class="el" href="group__dnnl__api__memory.html#ggaa75cad747fa467d9dc527d943ba3367da77ae35388e04dc3e98d90675a7110c83">dnnl_format_kind_any</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rnn_desc</td><td>Output descriptor for vanilla RNN primitive. </td></tr>
<tr><td class="paramname">prop_kind</td><td>Propagation kind. Possible values are <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a992e03bebfe623ac876b3636333bbce0">dnnl_forward_training</a> and <a class="el" href="group__dnnl__api__primitives__common.html#ggae3c1f22ae55645782923fbfd8b07d0c4a2f77a568a675dec649eb0450c997856d">dnnl_forward_inference</a>. </td></tr>
<tr><td class="paramname">activation</td><td>Activation kind. Possible values are <a class="el" href="group__dnnl__api__primitives__common.html#gga96946c805f6c4922c38c37049ab95d23a5e37643fec6531331e2e38df68d4c65a" title="Eltwise: ReLU.">dnnl_eltwise_relu</a>, <a class="el" href="group__dnnl__api__primitives__common.html#gga96946c805f6c4922c38c37049ab95d23a81b20d8f0b54c7114024186a9fbb698e" title="Eltwise: hyperbolic tangent non-linearity (tanh)">dnnl_eltwise_tanh</a> or <a class="el" href="group__dnnl__api__primitives__common.html#gga96946c805f6c4922c38c37049ab95d23ab560981bee9e7711017423e29ba46071" title="Eltwise: logistic.">dnnl_eltwise_logistic</a>. </td></tr>
<tr><td class="paramname">direction</td><td>RNN direction. See <a class="el" href="group__dnnl__api__rnn.html#ga629de1827647bf1824361a276c5169f0">dnnl_rnn_direction_t</a> for more info. </td></tr>
<tr><td class="paramname">src_layer_desc</td><td>Memory descriptor for the input vector. </td></tr>
<tr><td class="paramname">src_iter_desc</td><td>Memory descriptor for the input recurrent hidden state vector. </td></tr>
<tr><td class="paramname">weights_layer_desc</td><td>Memory descriptor for the weights applied to the layer input. </td></tr>
<tr><td class="paramname">weights_iter_desc</td><td>Memory descriptor for the weights applied to the recurrent input. </td></tr>
<tr><td class="paramname">bias_desc</td><td>Bias memory descriptor. </td></tr>
<tr><td class="paramname">dst_layer_desc</td><td>Memory descriptor for the output vector. </td></tr>
<tr><td class="paramname">dst_iter_desc</td><td>Memory descriptor for the output recurrent hidden state vector. </td></tr>
<tr><td class="paramname">flags</td><td>Unused. </td></tr>
<tr><td class="paramname">alpha</td><td>Negative slope if activation is <a class="el" href="group__dnnl__api__primitives__common.html#gga96946c805f6c4922c38c37049ab95d23a5e37643fec6531331e2e38df68d4c65a" title="Eltwise: ReLU.">dnnl_eltwise_relu</a>. </td></tr>
<tr><td class="paramname">beta</td><td>Unused. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaa31395e9dccc103cf166cf7b38fc5b9c" title="The operation was successful.">dnnl_success</a> on success and a status describing the error otherwise. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 5 2023 03:47:40 for mxnet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>