blob: 401538651f80f3bfe6f4ed5fb2a6425e2a6ddc11 [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_attributes</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="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Dnnl_api_attributes<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_attributes:</div>
<div class="dyncontent">
<div class="center"><img src="group__dnnl__api__attributes.png" border="0" usemap="#group____dnnl____api____attributes" 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__primitive__attr.html">dnnl_primitive_attr</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An opaque structure for primitive descriptor attributes. <a href="structdnnl__primitive__attr.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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__post__ops.html">dnnl_post_ops</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An opaque structure for a chain of post operations. <a href="structdnnl__post__ops.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="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga06d701a25b82d4c8a93aaabb93e03dc3"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structdnnl__primitive__attr.html">dnnl_primitive_attr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a></td></tr>
<tr class="memdesc:ga06d701a25b82d4c8a93aaabb93e03dc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">A primitive descriptor attributes handle that controls primitive behavior. <a href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">More...</a><br /></td></tr>
<tr class="separator:ga06d701a25b82d4c8a93aaabb93e03dc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga871d7ee732a90fec43f1c878581bb59a"><td class="memItemLeft" align="right" valign="top">typedef const struct <a class="el" href="structdnnl__primitive__attr.html">dnnl_primitive_attr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a></td></tr>
<tr class="memdesc:ga871d7ee732a90fec43f1c878581bb59a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A constant primitive descriptor attributes handle. <a href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">More...</a><br /></td></tr>
<tr class="separator:ga871d7ee732a90fec43f1c878581bb59a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d715ce1a81606584df9dcf045976401"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structdnnl__post__ops.html">dnnl_post_ops</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a></td></tr>
<tr class="memdesc:ga7d715ce1a81606584df9dcf045976401"><td class="mdescLeft">&#160;</td><td class="mdescRight">A post operation chain handle. <a href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">More...</a><br /></td></tr>
<tr class="separator:ga7d715ce1a81606584df9dcf045976401"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga997bc4a3d9d2ce50238b1c035963fc39"><td class="memItemLeft" align="right" valign="top">typedef const struct <a class="el" href="structdnnl__post__ops.html">dnnl_post_ops</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a></td></tr>
<tr class="memdesc:ga997bc4a3d9d2ce50238b1c035963fc39"><td class="mdescLeft">&#160;</td><td class="mdescRight">A constant post operation chain handle. <a href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">More...</a><br /></td></tr>
<tr class="separator:ga997bc4a3d9d2ce50238b1c035963fc39"><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:ga62f956692c5a70353f164e09ff524912"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__attributes.html#ga62f956692c5a70353f164e09ff524912">dnnl_fpmath_mode_t</a> { <a class="el" href="group__dnnl__api__attributes.html#gga62f956692c5a70353f164e09ff524912ab062cd5c71803f26ab700073c8f18bd3">dnnl_fpmath_mode_strict</a>,
<a class="el" href="group__dnnl__api__attributes.html#gga62f956692c5a70353f164e09ff524912ac7e140804cd26325c9c5563fa421b7f7">dnnl_fpmath_mode_bf16</a>,
<a class="el" href="group__dnnl__api__attributes.html#gga62f956692c5a70353f164e09ff524912aa128d95a43cba562c8b90cd820d3faaf">dnnl_fpmath_mode_f16</a>,
<a class="el" href="group__dnnl__api__attributes.html#gga62f956692c5a70353f164e09ff524912ad54e0a51f937a49dd4c2c3d50ca1b94c">dnnl_fpmath_mode_any</a>
}</td></tr>
<tr class="memdesc:ga62f956692c5a70353f164e09ff524912"><td class="mdescLeft">&#160;</td><td class="mdescRight">Floating-point math mode. <a href="group__dnnl__api__attributes.html#ga62f956692c5a70353f164e09ff524912">More...</a><br /></td></tr>
<tr class="separator:ga62f956692c5a70353f164e09ff524912"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacda323181ab267e571c31435b0817de4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__attributes.html#gacda323181ab267e571c31435b0817de4">dnnl_scratchpad_mode_t</a> { <a class="el" href="group__dnnl__api__attributes.html#ggacda323181ab267e571c31435b0817de4ac6aab09a2f8ef442a6a59800549b0487">dnnl_scratchpad_mode_library</a>,
<a class="el" href="group__dnnl__api__attributes.html#ggacda323181ab267e571c31435b0817de4a7e9d97b9ceefc5e47512d83c097d6927">dnnl_scratchpad_mode_user</a>
}</td></tr>
<tr class="memdesc:gacda323181ab267e571c31435b0817de4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scratchpad mode. <a href="group__dnnl__api__attributes.html#gacda323181ab267e571c31435b0817de4">More...</a><br /></td></tr>
<tr class="separator:gacda323181ab267e571c31435b0817de4"><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:gaf630fdc0d8d0fd8522ec93852a559081"><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__attributes.html#gaf630fdc0d8d0fd8522ec93852a559081">dnnl_primitive_attr_create</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> *attr)</td></tr>
<tr class="separator:gaf630fdc0d8d0fd8522ec93852a559081"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab6ac5a4b13fa1ab3251c51f3c750bd63"><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__attributes.html#gab6ac5a4b13fa1ab3251c51f3c750bd63">dnnl_primitive_attr_clone</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> *attr, <a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a> existing_attr)</td></tr>
<tr class="separator:gab6ac5a4b13fa1ab3251c51f3c750bd63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96a7539382945195627f2932bff8fadb"><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__attributes.html#ga96a7539382945195627f2932bff8fadb">dnnl_primitive_attr_destroy</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> attr)</td></tr>
<tr class="separator:ga96a7539382945195627f2932bff8fadb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac63b70ab1d2fe88c31f03c961b2e924a"><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__attributes.html#gac63b70ab1d2fe88c31f03c961b2e924a">dnnl_primitive_attr_get_fpmath_mode</a> (<a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__attributes.html#ga62f956692c5a70353f164e09ff524912">dnnl_fpmath_mode_t</a> *mode)</td></tr>
<tr class="separator:gac63b70ab1d2fe88c31f03c961b2e924a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafe55fa618bc10b65b6c0b6eca7e43840"><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__attributes.html#gafe55fa618bc10b65b6c0b6eca7e43840">dnnl_primitive_attr_set_fpmath_mode</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__attributes.html#ga62f956692c5a70353f164e09ff524912">dnnl_fpmath_mode_t</a> mode)</td></tr>
<tr class="separator:gafe55fa618bc10b65b6c0b6eca7e43840"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab14d8e830a52510a75a917f75764a6b8"><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__attributes.html#gab14d8e830a52510a75a917f75764a6b8">dnnl_primitive_attr_get_scratchpad_mode</a> (<a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__attributes.html#gacda323181ab267e571c31435b0817de4">dnnl_scratchpad_mode_t</a> *mode)</td></tr>
<tr class="separator:gab14d8e830a52510a75a917f75764a6b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4adeb17e538392ec3a16d2f6ef3f7cca"><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__attributes.html#ga4adeb17e538392ec3a16d2f6ef3f7cca">dnnl_primitive_attr_set_scratchpad_mode</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__attributes.html#gacda323181ab267e571c31435b0817de4">dnnl_scratchpad_mode_t</a> mode)</td></tr>
<tr class="separator:ga4adeb17e538392ec3a16d2f6ef3f7cca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf85a41b0666a93ba20c756b49fdcb0c2"><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__attributes.html#gaf85a41b0666a93ba20c756b49fdcb0c2">dnnl_primitive_attr_get_output_scales</a> (<a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *count, int *mask, const float **scales)</td></tr>
<tr class="separator:gaf85a41b0666a93ba20c756b49fdcb0c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae3ff1fe9449f2d9b1cd02ad864b57057"><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__attributes.html#gae3ff1fe9449f2d9b1cd02ad864b57057">dnnl_primitive_attr_set_output_scales</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> count, int mask, const float *scales)</td></tr>
<tr class="separator:gae3ff1fe9449f2d9b1cd02ad864b57057"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf405f0476714bdcb5d0dad1c9e720030"><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__attributes.html#gaf405f0476714bdcb5d0dad1c9e720030">dnnl_primitive_attr_get_scales</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> attr, int arg, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *count, int *mask, const float **scales)</td></tr>
<tr class="separator:gaf405f0476714bdcb5d0dad1c9e720030"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa6b2f9a167cfd6ddee2ec93be8ea41e"><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__attributes.html#gaaa6b2f9a167cfd6ddee2ec93be8ea41e">dnnl_primitive_attr_set_scales</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> attr, int arg, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> count, int mask, const float *scales)</td></tr>
<tr class="separator:gaaa6b2f9a167cfd6ddee2ec93be8ea41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd27e1e35b2854f593360f90acc8965f"><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__attributes.html#gadd27e1e35b2854f593360f90acc8965f">dnnl_primitive_attr_get_zero_points</a> (<a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a> attr, int arg, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *count, int *mask, const int32_t **zero_points)</td></tr>
<tr class="separator:gadd27e1e35b2854f593360f90acc8965f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6f4b625c7f238883fe32cbf6829b7f30"><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__attributes.html#ga6f4b625c7f238883fe32cbf6829b7f30">dnnl_primitive_attr_set_zero_points</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> attr, int arg, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> count, int mask, const int32_t *zero_points)</td></tr>
<tr class="separator:ga6f4b625c7f238883fe32cbf6829b7f30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50c92661cc69e1eeb17b61f006320a05"><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__attributes.html#ga50c92661cc69e1eeb17b61f006320a05">dnnl_primitive_attr_get_post_ops</a> (<a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> *post_ops)</td></tr>
<tr class="separator:ga50c92661cc69e1eeb17b61f006320a05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7045d42606599f156bfca69820c21ea2"><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__attributes.html#ga7045d42606599f156bfca69820c21ea2">dnnl_primitive_attr_set_post_ops</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops)</td></tr>
<tr class="separator:ga7045d42606599f156bfca69820c21ea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8d8c32ad4472de464e47336ad702a48"><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__attributes.html#gaa8d8c32ad4472de464e47336ad702a48">dnnl_post_ops_create</a> (<a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> *post_ops)</td></tr>
<tr class="separator:gaa8d8c32ad4472de464e47336ad702a48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga67487a65afa2e2066f4b4eb12d47535b"><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__attributes.html#ga67487a65afa2e2066f4b4eb12d47535b">dnnl_post_ops_destroy</a> (<a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> post_ops)</td></tr>
<tr class="separator:ga67487a65afa2e2066f4b4eb12d47535b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98550f7eddff153ea819a6c4a68e7eec"><td class="memItemLeft" align="right" valign="top">int DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__attributes.html#ga98550f7eddff153ea819a6c4a68e7eec">dnnl_post_ops_len</a> (<a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops)</td></tr>
<tr class="separator:ga98550f7eddff153ea819a6c4a68e7eec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb9d82e4e8f1c83f169468d4b92f4109"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__primitives__common.html#ga9878f4795e53ad8443e5c0a29e53286a">dnnl_primitive_kind_t</a> DNNL_API&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__attributes.html#gabb9d82e4e8f1c83f169468d4b92f4109">dnnl_post_ops_get_kind</a> (<a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops, int index)</td></tr>
<tr class="separator:gabb9d82e4e8f1c83f169468d4b92f4109"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7175edf83658bd14dd5d7cd9e9193e92"><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__attributes.html#ga7175edf83658bd14dd5d7cd9e9193e92">dnnl_post_ops_append_sum</a> (<a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> post_ops, float scale)</td></tr>
<tr class="separator:ga7175edf83658bd14dd5d7cd9e9193e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga97ce3bde45e1a8f1970c899e4e519497"><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__attributes.html#ga97ce3bde45e1a8f1970c899e4e519497">dnnl_post_ops_append_sum_v2</a> (<a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> post_ops, float scale, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> data_type)</td></tr>
<tr class="separator:ga97ce3bde45e1a8f1970c899e4e519497"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga74d7cdc5f9954e42c662d81fa1a83f3a"><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__attributes.html#ga74d7cdc5f9954e42c662d81fa1a83f3a">dnnl_post_ops_append_sum_v3</a> (<a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> post_ops, float scale, int32_t zero_point, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> data_type)</td></tr>
<tr class="separator:ga74d7cdc5f9954e42c662d81fa1a83f3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade0dbf6e22ef699e31166c341f9d043a"><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__attributes.html#gade0dbf6e22ef699e31166c341f9d043a">dnnl_post_ops_get_params_sum</a> (<a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops, int index, float *scale)</td></tr>
<tr class="separator:gade0dbf6e22ef699e31166c341f9d043a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0546f6cb1352f898ef9444a4e0a79c06"><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__attributes.html#ga0546f6cb1352f898ef9444a4e0a79c06">dnnl_post_ops_get_params_sum_v2</a> (<a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops, int index, float *scale, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *data_type)</td></tr>
<tr class="separator:ga0546f6cb1352f898ef9444a4e0a79c06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b09d3bfddb7e539fe900d6aa7690a09"><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__attributes.html#ga9b09d3bfddb7e539fe900d6aa7690a09">dnnl_post_ops_get_params_sum_v3</a> (<a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops, int index, float *scale, int32_t *zero_point, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *data_type)</td></tr>
<tr class="separator:ga9b09d3bfddb7e539fe900d6aa7690a09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad3a93e3c396b07066d42eadbe119b7a4"><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__attributes.html#gad3a93e3c396b07066d42eadbe119b7a4">dnnl_post_ops_append_eltwise</a> (<a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> post_ops, float scale, <a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a> alg_kind, float alpha, float beta)</td></tr>
<tr class="separator:gad3a93e3c396b07066d42eadbe119b7a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa57e61baf091b255b4cc0c3648bac3a5"><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__attributes.html#gaa57e61baf091b255b4cc0c3648bac3a5">dnnl_post_ops_get_params_eltwise</a> (<a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops, int index, float *scale, <a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a> *alg_kind, float *alpha, float *beta)</td></tr>
<tr class="separator:gaa57e61baf091b255b4cc0c3648bac3a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae29a3c0c6b3d624cdcaea0196246ac38"><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__attributes.html#gae29a3c0c6b3d624cdcaea0196246ac38">dnnl_post_ops_append_dw</a> (<a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> post_ops, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> weights_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> bias_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> dst_data_type, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> kernel_size, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> stride_size, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> padding_l_size, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> count, int mask, const float *scales)</td></tr>
<tr class="separator:gae29a3c0c6b3d624cdcaea0196246ac38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga63cec6b35b8dd473222bd4ddff38995e"><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__attributes.html#ga63cec6b35b8dd473222bd4ddff38995e">dnnl_post_ops_get_params_dw</a> (<a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops, int index, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *weights_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *bias_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *dst_data_type, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *kernel_size, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *stride_size, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *padding_l_size, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *count, int *mask, const float **scales)</td></tr>
<tr class="separator:ga63cec6b35b8dd473222bd4ddff38995e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga60126f67fa1dd9df8cca16e2dd471184"><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__attributes.html#ga60126f67fa1dd9df8cca16e2dd471184">dnnl_post_ops_append_dw_k3s1p1</a> (<a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> post_ops, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> weights_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> bias_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> dst_data_type, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> count, int mask, const float *scales)</td></tr>
<tr class="separator:ga60126f67fa1dd9df8cca16e2dd471184"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab7b3337bc132438f4dada22f6fe72a0f"><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__attributes.html#gab7b3337bc132438f4dada22f6fe72a0f">dnnl_post_ops_get_params_dw_k3s1p1</a> (<a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops, int index, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *weights_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *bias_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *dst_data_type, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *count, int *mask, const float **scales)</td></tr>
<tr class="separator:gab7b3337bc132438f4dada22f6fe72a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa31670d933930b7c7940379bff0de326"><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__attributes.html#gaa31670d933930b7c7940379bff0de326">dnnl_post_ops_append_dw_k3s2p1</a> (<a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> post_ops, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> weights_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> bias_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> dst_data_type, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> count, int mask, const float *scales)</td></tr>
<tr class="separator:gaa31670d933930b7c7940379bff0de326"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0b82c6ac2d4bd5c8ddee4a807fd2e527"><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__attributes.html#ga0b82c6ac2d4bd5c8ddee4a807fd2e527">dnnl_post_ops_get_params_dw_k3s2p1</a> (<a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops, int index, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *weights_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *bias_data_type, <a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *dst_data_type, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *count, int *mask, const float **scales)</td></tr>
<tr class="separator:ga0b82c6ac2d4bd5c8ddee4a807fd2e527"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9d6524a5808500e78138dd2125ac2cbe"><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__attributes.html#ga9d6524a5808500e78138dd2125ac2cbe">dnnl_post_ops_append_binary</a> (<a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> post_ops, <a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a> alg_kind, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> *src1_desc)</td></tr>
<tr class="separator:ga9d6524a5808500e78138dd2125ac2cbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade0e47fd1f367bf5d8119b21751038ba"><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__attributes.html#gade0e47fd1f367bf5d8119b21751038ba">dnnl_post_ops_get_params_binary</a> (<a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops, int index, <a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a> *alg_kind, const <a class="el" href="structdnnl__memory__desc__t.html">dnnl_memory_desc_t</a> **src1_desc)</td></tr>
<tr class="separator:gade0e47fd1f367bf5d8119b21751038ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga833465b0aac349988b29245e1112656f"><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__attributes.html#ga833465b0aac349988b29245e1112656f">dnnl_post_ops_append_prelu</a> (<a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> post_ops, int mask)</td></tr>
<tr class="separator:ga833465b0aac349988b29245e1112656f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5207e88213978239909da6e9f346cda7"><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__attributes.html#ga5207e88213978239909da6e9f346cda7">dnnl_post_ops_get_params_prelu</a> (<a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> post_ops, int index, int *mask)</td></tr>
<tr class="separator:ga5207e88213978239909da6e9f346cda7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0067a4b6e5dd2fe7578cd4a25dddfe39"><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__attributes.html#ga0067a4b6e5dd2fe7578cd4a25dddfe39">dnnl_primitive_attr_set_rnn_data_qparams</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> attr, const float scale, const float shift)</td></tr>
<tr class="separator:ga0067a4b6e5dd2fe7578cd4a25dddfe39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae04744b95cdabcbcda1087229759be04"><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__attributes.html#gae04744b95cdabcbcda1087229759be04">dnnl_primitive_attr_get_rnn_data_qparams</a> (<a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a> attr, float *scale, float *shift)</td></tr>
<tr class="separator:gae04744b95cdabcbcda1087229759be04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga815dbfe548cfcb70076fe091888e5466"><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__attributes.html#ga815dbfe548cfcb70076fe091888e5466">dnnl_primitive_attr_set_rnn_weights_qparams</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> count, int mask, const float *scales)</td></tr>
<tr class="separator:ga815dbfe548cfcb70076fe091888e5466"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5bb88cfe42454f01884ddcdb906f6f7c"><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__attributes.html#ga5bb88cfe42454f01884ddcdb906f6f7c">dnnl_primitive_attr_get_rnn_weights_qparams</a> (<a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *count, int *mask, const float **scales)</td></tr>
<tr class="separator:ga5bb88cfe42454f01884ddcdb906f6f7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac7973cc7b4c62eb6766e9ac96c51d49d"><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__attributes.html#gac7973cc7b4c62eb6766e9ac96c51d49d">dnnl_primitive_attr_set_rnn_weights_projection_qparams</a> (<a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> count, int mask, const float *scales)</td></tr>
<tr class="separator:gac7973cc7b4c62eb6766e9ac96c51d49d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa33206be6e7a0b7de2341041da75cc90"><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__attributes.html#gaa33206be6e7a0b7de2341041da75cc90">dnnl_primitive_attr_get_rnn_weights_projection_qparams</a> (<a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a> attr, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *count, int *mask, const float **scales)</td></tr>
<tr class="separator:gaa33206be6e7a0b7de2341041da75cc90"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga997bc4a3d9d2ce50238b1c035963fc39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga997bc4a3d9d2ce50238b1c035963fc39">&#9670;&nbsp;</a></span>const_dnnl_post_ops_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef const struct <a class="el" href="structdnnl__post__ops.html">dnnl_post_ops</a>* <a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A constant post operation chain handle. </p>
</div>
</div>
<a id="ga871d7ee732a90fec43f1c878581bb59a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga871d7ee732a90fec43f1c878581bb59a">&#9670;&nbsp;</a></span>const_dnnl_primitive_attr_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef const struct <a class="el" href="structdnnl__primitive__attr.html">dnnl_primitive_attr</a>* <a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A constant primitive descriptor attributes handle. </p>
</div>
</div>
<a id="ga7d715ce1a81606584df9dcf045976401"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7d715ce1a81606584df9dcf045976401">&#9670;&nbsp;</a></span>dnnl_post_ops_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structdnnl__post__ops.html">dnnl_post_ops</a>* <a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A post operation chain handle. </p>
</div>
</div>
<a id="ga06d701a25b82d4c8a93aaabb93e03dc3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga06d701a25b82d4c8a93aaabb93e03dc3">&#9670;&nbsp;</a></span>dnnl_primitive_attr_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structdnnl__primitive__attr.html">dnnl_primitive_attr</a>* <a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A primitive descriptor attributes handle that controls primitive behavior. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga62f956692c5a70353f164e09ff524912"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga62f956692c5a70353f164e09ff524912">&#9670;&nbsp;</a></span>dnnl_fpmath_mode_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__dnnl__api__attributes.html#ga62f956692c5a70353f164e09ff524912">dnnl_fpmath_mode_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Floating-point math mode. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga62f956692c5a70353f164e09ff524912ab062cd5c71803f26ab700073c8f18bd3"></a>dnnl_fpmath_mode_strict&#160;</td><td class="fielddoc"><p>Default behavior, no downconversions allowed. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga62f956692c5a70353f164e09ff524912ac7e140804cd26325c9c5563fa421b7f7"></a>dnnl_fpmath_mode_bf16&#160;</td><td class="fielddoc"><p>Implicit f32-&gt;bf16 conversions allowed. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga62f956692c5a70353f164e09ff524912aa128d95a43cba562c8b90cd820d3faaf"></a>dnnl_fpmath_mode_f16&#160;</td><td class="fielddoc"><p>Implicit f32-&gt;f16 conversions allowed. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga62f956692c5a70353f164e09ff524912ad54e0a51f937a49dd4c2c3d50ca1b94c"></a>dnnl_fpmath_mode_any&#160;</td><td class="fielddoc"><p>Implicit f32-&gt;f16 or f32-&gt;bf16 conversions allowed. </p>
</td></tr>
</table>
</div>
</div>
<a id="gacda323181ab267e571c31435b0817de4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacda323181ab267e571c31435b0817de4">&#9670;&nbsp;</a></span>dnnl_scratchpad_mode_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__dnnl__api__attributes.html#gacda323181ab267e571c31435b0817de4">dnnl_scratchpad_mode_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Scratchpad mode. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggacda323181ab267e571c31435b0817de4ac6aab09a2f8ef442a6a59800549b0487"></a>dnnl_scratchpad_mode_library&#160;</td><td class="fielddoc"><p>The library manages the scratchpad allocation according to the policy specified by the <code>DNNL_ENABLE_CONCURRENT_EXEC</code> build option (default).</p>
<p>When <code>DNNL_ENABLE_CONCURRENT_EXEC=OFF</code> (default), the library scratchpad is common to all primitives to reduce the memory footprint. This configuration comes with limited thread-safety properties, namely primitives can be created and executed in parallel but cannot migrate between threads (in other words, each primitive should be executed in the same thread it was created in).</p>
<p>When <code>DNNL_ENABLE_CONCURRENT_EXEC=ON</code>, the library scratchpad is private to each primitive. The memory footprint is larger than when using <code>DNNL_ENABLE_CONCURRENT_EXEC=OFF</code> but different primitives can be created and run concurrently (the same primitive cannot be run concurrently from two different threads though). </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacda323181ab267e571c31435b0817de4a7e9d97b9ceefc5e47512d83c097d6927"></a>dnnl_scratchpad_mode_user&#160;</td><td class="fielddoc"><p>The user manages the scratchpad allocation by querying and providing the scratchpad memory to primitives. This mode is thread-safe as long as the scratchpad buffers are not used concurrently by two primitive executions. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga9d6524a5808500e78138dd2125ac2cbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9d6524a5808500e78138dd2125ac2cbe">&#9670;&nbsp;</a></span>dnnl_post_ops_append_binary()</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_post_ops_append_binary </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a>&#160;</td>
<td class="paramname"><em>alg_kind</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>src1_desc</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Appends a binary post-op.</p>
<p>The kind of this post operation is <a class="el" href="group__dnnl__api__primitives__common.html#gga9878f4795e53ad8443e5c0a29e53286aa1d51705e2642ce2ce19a3e163bb25f93" title="A binary primitive.">dnnl_binary</a>.</p>
<p>In the simplest case when the binary is the only post operation, the computations would be: </p><pre class="fragment">dst[:] &lt;- binary_op (dst[:], another_input[:])
</pre><p>where binary_op is configured with the given parameters. binary_op supports broadcast semantics for a second operand.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">alg_kind</td><td>Binary algorithm for the post-op. </td></tr>
<tr><td class="paramname">src1_desc</td><td>Memory descriptor of a second operand. </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="gae29a3c0c6b3d624cdcaea0196246ac38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae29a3c0c6b3d624cdcaea0196246ac38">&#9670;&nbsp;</a></span>dnnl_post_ops_append_dw()</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_post_ops_append_dw </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a>&#160;</td>
<td class="paramname"><em>weights_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a>&#160;</td>
<td class="paramname"><em>bias_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a>&#160;</td>
<td class="paramname"><em>dst_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a>&#160;</td>
<td class="paramname"><em>kernel_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a>&#160;</td>
<td class="paramname"><em>stride_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a>&#160;</td>
<td class="paramname"><em>padding_l_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a>&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float *&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Appends a depthwise post-op convolution.</p>
<p>This post-op can only be fused with a 2D 1x1 convolution (convolution with weights spatial dimensions equal to 1 i.e., kh=kw=1).</p>
<p>The kind of this post-op is <a class="el" href="group__dnnl__api__primitives__common.html#gga9878f4795e53ad8443e5c0a29e53286aa402cfeaa257524d301bb73e770bc87f6" title="A convolution primitive.">dnnl_convolution</a>.</p>
<p>The number of outputs for primitive with fusion is one. The output spatial size can be derived as below:</p>
<p>output_height = ceil(output_height_1x1_convolution, stride) output_width = ceil(output_width_1x1_convolution, stride)</p>
<p>See dev_guide_attributes_post_ops_depthwise and dev_guide_attributes_post_ops_depthwise_fusion for more info.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">weights_data_type</td><td>Weights data type of depthwise post-op </td></tr>
<tr><td class="paramname">bias_data_type</td><td>Bias data type of depthwise post-op </td></tr>
<tr><td class="paramname">dst_data_type</td><td>Output data type of depthwise post-op </td></tr>
<tr><td class="paramname">kernel_size</td><td>Size of kernel of depthwise post-op </td></tr>
<tr><td class="paramname">stride_size</td><td>Size of stride of depthwise post-op </td></tr>
<tr><td class="paramname">padding_l_size</td><td>Size of left and top paddings of depthwise post-op </td></tr>
<tr><td class="paramname">count</td><td>Output length of the array of scaling factors <code>scales</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Output scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> array. The set i-th bit indicates that a dedicated output scaling factor is used for each index along that dimension. The mask value of 0 implies a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Output pointer to a constant array of float scaling factors. </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="ga60126f67fa1dd9df8cca16e2dd471184"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga60126f67fa1dd9df8cca16e2dd471184">&#9670;&nbsp;</a></span>dnnl_post_ops_append_dw_k3s1p1()</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_post_ops_append_dw_k3s1p1 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a>&#160;</td>
<td class="paramname"><em>weights_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a>&#160;</td>
<td class="paramname"><em>bias_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a>&#160;</td>
<td class="paramname"><em>dst_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a>&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float *&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Appends a depthwise post-op convolution with stride 1.</p>
<p>This post-op can only be fused with a 2D 1x1 convolution (convolution with weights spatial dimension equal to 1 i.e., kh=kw=1).</p>
<p>The kind of this post-op is <a class="el" href="group__dnnl__api__primitives__common.html#gga9878f4795e53ad8443e5c0a29e53286aa402cfeaa257524d301bb73e770bc87f6" title="A convolution primitive.">dnnl_convolution</a>.</p>
<p>The number of outputs for primitive remain same as before. The output size remain same as the original primitive due to stride=1.</p>
<p>The Post-op can be defined as: </p><pre class="fragment"> dst[:] &lt;- scales * (conv_dw(conv_1x1))
</pre><p>See dev_guide_attributes_post_ops_depthwise and dev_guide_attributes_post_ops_depthwise_fusion for more info.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">weights_data_type</td><td>Weights data type of depthwise post-op </td></tr>
<tr><td class="paramname">bias_data_type</td><td>Bias data type of depthwise post-op </td></tr>
<tr><td class="paramname">dst_data_type</td><td>Output data type of depthwise post-op </td></tr>
<tr><td class="paramname">count</td><td>Output length of the array of scaling factors <code>scales</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Output scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> array. The set i-th bit indicates that a dedicated output scaling factor is used for each index along that dimension. The mask value of 0 implies a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Output pointer to a constant array of float scaling factors. </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="gaa31670d933930b7c7940379bff0de326"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa31670d933930b7c7940379bff0de326">&#9670;&nbsp;</a></span>dnnl_post_ops_append_dw_k3s2p1()</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_post_ops_append_dw_k3s2p1 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a>&#160;</td>
<td class="paramname"><em>weights_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a>&#160;</td>
<td class="paramname"><em>bias_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a>&#160;</td>
<td class="paramname"><em>dst_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a>&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float *&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Appends a depthwise post-op convolution with stride 2.</p>
<p>This post-op can only be fused with a 2D 1x1 convolution (convolution with weights spatial dimension equal to 1 i.e., kh=kw=1).</p>
<p>The kind of this post-op is <a class="el" href="group__dnnl__api__primitives__common.html#gga9878f4795e53ad8443e5c0a29e53286aa402cfeaa257524d301bb73e770bc87f6" title="A convolution primitive.">dnnl_convolution</a>.</p>
<p>The number of outputs for primitive remain same as before. The output spatial size can be derived as below:</p>
<p>output_height = ceil(output_height_1x1_convolution, stride) output_width = ceil(output_width_1x1_convolution, stride)</p>
<p>The Post-op can be defined as: </p><pre class="fragment"> dst[:] &lt;- scales * (conv_dw(conv_1x1))
</pre><p>See dev_guide_attributes_post_ops_depthwise and dev_guide_attributes_post_ops_depthwise_fusion for more info.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">weights_data_type</td><td>Weights data type of depthwise post-op </td></tr>
<tr><td class="paramname">bias_data_type</td><td>Bias data type of depthwise post-op </td></tr>
<tr><td class="paramname">dst_data_type</td><td>Output data type of depthwise post-op </td></tr>
<tr><td class="paramname">count</td><td>Output length of the array of scaling factors <code>scales</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Output scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> array. The set i-th bit indicates that a dedicated output scaling factor is used for each index along that dimension. The mask value of 0 implies a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Output pointer to a constant array of float scaling factors. </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="gad3a93e3c396b07066d42eadbe119b7a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad3a93e3c396b07066d42eadbe119b7a4">&#9670;&nbsp;</a></span>dnnl_post_ops_append_eltwise()</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_post_ops_append_eltwise </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a>&#160;</td>
<td class="paramname"><em>alg_kind</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>Appends an elementwise post-op.</p>
<p>The kind of this post operation is <a class="el" href="group__dnnl__api__primitives__common.html#gga9878f4795e53ad8443e5c0a29e53286aa9d7e709dd7e25d7ff11cf51c13fa2819" title="An element-wise primitive.">dnnl_eltwise</a>.</p>
<p>In the simplest case when the elementwise is the only post operation, the computations would be: </p><pre class="fragment">dst[:] &lt;- scale * eltwise_op (op(...)) // instead of dst[:] &lt;- op(...)
</pre><p>where eltwise_op is configured with the given parameters.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">scale</td><td>Scaling factor. </td></tr>
<tr><td class="paramname">alg_kind</td><td>Elementwise algorithm for the post-op. </td></tr>
<tr><td class="paramname">alpha</td><td>Alpha parameter for the elementwise algorithm. </td></tr>
<tr><td class="paramname">beta</td><td>Beta parameter for the elementwise algorithm. </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="ga833465b0aac349988b29245e1112656f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga833465b0aac349988b29245e1112656f">&#9670;&nbsp;</a></span>dnnl_post_ops_append_prelu()</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_post_ops_append_prelu </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Appends a prelu forward post-op.</p>
<p>The kind of this post-op is #dnnl::primitive::kind::prelu.</p>
<p>The post-op can be defined as: </p><pre class="fragment"> dst[:] &lt;- prelu(dst[:], weights[:])
prelu:
dst[:] &lt;- dst[:] if dst[:] &gt; 0
dst[:] &lt;- dst[:] * weights[:] if dst[:] &lt;= 0
</pre><dl class="section note"><dt>Note</dt><dd>The order of dimensions does not depend on how elements are laid out in memory. For example:<ul>
<li>for a 2D CNN activations tensor the order is always (n, c)</li>
<li>for a 4D CNN activations tensor the order is always (n, c, h, w)</li>
<li>for a 5D CNN weights tensor the order is always (g, oc, ic, kh, kw)</li>
</ul>
</dd></dl>
<p>Prelu weights tensor is passed in runtime execution phase. Prelu weights tensor data type is implicitly assumed as f32 using plain layout (a, ab, acb, acdb, acdeb)</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">mask</td><td>Defines the correspondence between the output tensor dimensions and the prelu weights tensor. The set i-th bit indicates that a dedicated weights value is used for each index along that dimension. Set the mask to 0 to use a common weights value for the whole output tensor. </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="ga7175edf83658bd14dd5d7cd9e9193e92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7175edf83658bd14dd5d7cd9e9193e92">&#9670;&nbsp;</a></span>dnnl_post_ops_append_sum()</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_post_ops_append_sum </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>scale</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Appends an accumulation (sum) to post-ops. Prior to accumulating the result, the previous value is multiplied by a scale.</p>
<p>The kind of this post-op is <a class="el" href="group__dnnl__api__primitives__common.html#gga9878f4795e53ad8443e5c0a29e53286aa8ab0990125f2a743db86666c9d8b401b" title="A sum primitive.">dnnl_sum</a>.</p>
<p>This feature may improve performance for cases like residual learning blocks, where the result of convolution is accumulated to the previously computed activations. The parameter <code>scale</code> may be used for the integer-based computations when the result and previous activations have different logical scaling factors.</p>
<p>In the simplest case where the accumulation is the only post-op, the computations will be: </p><pre class="fragment">dst[:] &lt;- scale * dst[:] + op(...) // instead of dst[:] &lt;- op(...)
</pre><dl class="section note"><dt>Note</dt><dd>This post-op executes in-place and does not change the destination layout.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">scale</td><td>Accumulation scaling factor. </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="ga97ce3bde45e1a8f1970c899e4e519497"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga97ce3bde45e1a8f1970c899e4e519497">&#9670;&nbsp;</a></span>dnnl_post_ops_append_sum_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_post_ops_append_sum_v2 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a>&#160;</td>
<td class="paramname"><em>data_type</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Appends an accumulation v2 (sum) to post-ops. Prior to accumulating the result, the previous value is multiplied by a scale.</p>
<p>The kind of this post-op is <a class="el" href="group__dnnl__api__primitives__common.html#gga9878f4795e53ad8443e5c0a29e53286aa8ab0990125f2a743db86666c9d8b401b" title="A sum primitive.">dnnl_sum</a>.</p>
<p>This feature may improve performance for cases like residual learning blocks, where the result of convolution is accumulated to the previously computed activations. The parameter <code>scale</code> may be used for the integer-based computations when the result and previous activations have different logical scaling factors.</p>
<p>In the simplest case where the accumulation is the only post-op, the computations will be: </p><pre class="fragment">dst[:] &lt;- scale * dst[:] + op(...) // instead of dst[:] &lt;- op(...)
</pre><p>If <code>data_type</code> is specified, original dst tensor will be reinterpreted as a tensor with provided data type. Since it is reinterpretation, data_type and dst data type should have the same size. As a result, computations will be: </p><pre class="fragment">dst[:] &lt;- scale * as_data_type(dst[:]) + op(...)
// instead of dst[:] &lt;- op(...)
</pre> <dl class="section note"><dt>Note</dt><dd>This post-op executes in-place and does not change the destination layout.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">scale</td><td>Accumulation scaling factor. </td></tr>
<tr><td class="paramname">data_type</td><td>Accumulation data_type. </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="ga74d7cdc5f9954e42c662d81fa1a83f3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga74d7cdc5f9954e42c662d81fa1a83f3a">&#9670;&nbsp;</a></span>dnnl_post_ops_append_sum_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_post_ops_append_sum_v3 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>zero_point</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a>&#160;</td>
<td class="paramname"><em>data_type</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Appends an accumulation v3 (sum) to post-ops. Prior to accumulating the result, a zero point is subtracted from the previous value and is multiplied by the scale.</p>
<p>The kind of this post-op is <a class="el" href="group__dnnl__api__primitives__common.html#gga9878f4795e53ad8443e5c0a29e53286aa8ab0990125f2a743db86666c9d8b401b" title="A sum primitive.">dnnl_sum</a>.</p>
<p>This feature may improve performance for cases like dequantize the asymmetrically quantized sum's src1 tensor to f32 domain before performing the sum operation by subtracting the <code>zero_point</code> before the scaling.</p>
<p>In the simplest case where accumulation is the only post-op, the computations will be: </p><pre class="fragment">dst[:] &lt;- scale * (dst[:] - zero_point) + op(...)
// instead of dst[:] &lt;- op(...)
</pre><p>If <code>data_type</code> is specified, original dst tensor will be reinterpreted as a tensor with provided data type. Since it is reinterpretation, data_type and dst data type should have the same size. As a result, computations will be: </p><pre class="fragment">dst[:] &lt;- scale * (as_data_type(dst[:]) - zero_point) + op(...)
// instead of dst[:] &lt;- op(...)
</pre> <dl class="section note"><dt>Note</dt><dd>This post-op executes in-place and does not change the destination layout.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">scale</td><td>Accumulation scaling factor. </td></tr>
<tr><td class="paramname">zero_point</td><td>Single scalar int32_t value of zero point. </td></tr>
<tr><td class="paramname">data_type</td><td>Accumulation data_type. </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="gaa8d8c32ad4472de464e47336ad702a48"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa8d8c32ad4472de464e47336ad702a48">&#9670;&nbsp;</a></span>dnnl_post_ops_create()</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_post_ops_create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a> *&#160;</td>
<td class="paramname"><em>post_ops</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates empty post-ops sequence.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Output post-ops. </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="ga67487a65afa2e2066f4b4eb12d47535b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga67487a65afa2e2066f4b4eb12d47535b">&#9670;&nbsp;</a></span>dnnl_post_ops_destroy()</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_post_ops_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga7d715ce1a81606584df9dcf045976401">dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys post-ops.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops to destroy. </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="gabb9d82e4e8f1c83f169468d4b92f4109"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabb9d82e4e8f1c83f169468d4b92f4109">&#9670;&nbsp;</a></span>dnnl_post_ops_get_kind()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__dnnl__api__primitives__common.html#ga9878f4795e53ad8443e5c0a29e53286a">dnnl_primitive_kind_t</a> DNNL_API dnnl_post_ops_get_kind </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the kind of a post-op entry.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">index</td><td>Post-op entry index. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The kind of the post-op with the specified index. </dd>
<dd>
<a class="el" href="group__dnnl__api__primitives__common.html#gga9878f4795e53ad8443e5c0a29e53286aa89c48c6939d9f939b0f66d9b018a03b9" title="Undefined primitive.">dnnl_undefined_primitive</a> if there is no post-op at the specified index. </dd></dl>
</div>
</div>
<a id="gade0e47fd1f367bf5d8119b21751038ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade0e47fd1f367bf5d8119b21751038ba">&#9670;&nbsp;</a></span>dnnl_post_ops_get_params_binary()</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_post_ops_get_params_binary </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a> *&#160;</td>
<td class="paramname"><em>alg_kind</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>src1_desc</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the parameters of a binary post-op.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">index</td><td>Index of the binary post-op. </td></tr>
<tr><td class="paramname">alg_kind</td><td>Output binary algorithm kind. </td></tr>
<tr><td class="paramname">src1_desc</td><td>Output memory descriptor of a second operand. </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>
<dd>
<a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaecec97c787d74a33924abcf16ae4f51c" title="The operation failed because of incorrect function arguments.">dnnl_invalid_arguments</a> if <code>index</code> does not refer to a binary post-op. </dd></dl>
</div>
</div>
<a id="ga63cec6b35b8dd473222bd4ddff38995e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga63cec6b35b8dd473222bd4ddff38995e">&#9670;&nbsp;</a></span>dnnl_post_ops_get_params_dw()</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_post_ops_get_params_dw </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *&#160;</td>
<td class="paramname"><em>weights_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *&#160;</td>
<td class="paramname"><em>bias_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *&#160;</td>
<td class="paramname"><em>dst_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *&#160;</td>
<td class="paramname"><em>kernel_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *&#160;</td>
<td class="paramname"><em>stride_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *&#160;</td>
<td class="paramname"><em>padding_l_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float **&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the parameters of an depthwise post-op.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">index</td><td>Index of the elementwise post-op. </td></tr>
<tr><td class="paramname">weights_data_type</td><td>Weights data type of depthwise post-op </td></tr>
<tr><td class="paramname">bias_data_type</td><td>Bias data type of depthwise post-op </td></tr>
<tr><td class="paramname">dst_data_type</td><td>Output data type of depthwise post-op </td></tr>
<tr><td class="paramname">kernel_size</td><td>Size of kernel of depthwise post-op </td></tr>
<tr><td class="paramname">stride_size</td><td>Size of stride of depthwise post-op </td></tr>
<tr><td class="paramname">padding_l_size</td><td>Size of left and top paddings of depthwise post-op </td></tr>
<tr><td class="paramname">count</td><td>Output length of the array of scaling factors <code>scales</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Output scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> array. The set i-th bit indicates that a dedicated output scaling factor is used for each index along that dimension. The mask value of 0 implies a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Output pointer to a constant array of float scaling factors. </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="gab7b3337bc132438f4dada22f6fe72a0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab7b3337bc132438f4dada22f6fe72a0f">&#9670;&nbsp;</a></span>dnnl_post_ops_get_params_dw_k3s1p1()</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_post_ops_get_params_dw_k3s1p1 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *&#160;</td>
<td class="paramname"><em>weights_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *&#160;</td>
<td class="paramname"><em>bias_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *&#160;</td>
<td class="paramname"><em>dst_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float **&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the parameters of an depthwise post-op with stride 1.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">index</td><td>Index of the elementwise post-op. </td></tr>
<tr><td class="paramname">weights_data_type</td><td>Weights data type of depthwise post-op </td></tr>
<tr><td class="paramname">bias_data_type</td><td>Bias data type of depthwise post-op </td></tr>
<tr><td class="paramname">dst_data_type</td><td>Output data type of depthwise post-op </td></tr>
<tr><td class="paramname">count</td><td>Output length of the array of scaling factors <code>scales</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Output scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> array. The set i-th bit indicates that a dedicated output scaling factor is used for each index along that dimension. The mask value of 0 implies a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Output pointer to a constant array of float scaling factors. </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="ga0b82c6ac2d4bd5c8ddee4a807fd2e527"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0b82c6ac2d4bd5c8ddee4a807fd2e527">&#9670;&nbsp;</a></span>dnnl_post_ops_get_params_dw_k3s2p1()</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_post_ops_get_params_dw_k3s2p1 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *&#160;</td>
<td class="paramname"><em>weights_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *&#160;</td>
<td class="paramname"><em>bias_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *&#160;</td>
<td class="paramname"><em>dst_data_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float **&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the parameters of an depthwise post-op with stride 2.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">index</td><td>Index of the elementwise post-op. </td></tr>
<tr><td class="paramname">weights_data_type</td><td>Weights data type of depthwise post-op </td></tr>
<tr><td class="paramname">bias_data_type</td><td>Bias data type of depthwise post-op </td></tr>
<tr><td class="paramname">dst_data_type</td><td>Output data type of depthwise post-op </td></tr>
<tr><td class="paramname">count</td><td>Output length of the array of scaling factors <code>scales</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Output scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> array. The set i-th bit indicates that a dedicated output scaling factor is used for each index along that dimension. The mask value of 0 implies a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Output pointer to a constant array of float scaling factors. </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="gaa57e61baf091b255b4cc0c3648bac3a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa57e61baf091b255b4cc0c3648bac3a5">&#9670;&nbsp;</a></span>dnnl_post_ops_get_params_eltwise()</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_post_ops_get_params_eltwise </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float *&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__primitives__common.html#ga96946c805f6c4922c38c37049ab95d23">dnnl_alg_kind_t</a> *&#160;</td>
<td class="paramname"><em>alg_kind</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>Returns the parameters of an elementwise post-op.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">index</td><td>Index of the elementwise post-op. </td></tr>
<tr><td class="paramname">scale</td><td>Output scaling factor. </td></tr>
<tr><td class="paramname">alg_kind</td><td>Output elementwise algorithm kind. </td></tr>
<tr><td class="paramname">alpha</td><td>Output alpha parameter for the elementwise algorithm. </td></tr>
<tr><td class="paramname">beta</td><td>Output beta parameter for the elementwise algorithm. </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>
<dd>
<a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaecec97c787d74a33924abcf16ae4f51c" title="The operation failed because of incorrect function arguments.">dnnl_invalid_arguments</a> if <code>index</code> does not refer to an elementwise post-op. </dd></dl>
</div>
</div>
<a id="ga5207e88213978239909da6e9f346cda7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5207e88213978239909da6e9f346cda7">&#9670;&nbsp;</a></span>dnnl_post_ops_get_params_prelu()</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_post_ops_get_params_prelu </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the parameters of a prelu post-op.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">index</td><td>Index of the prelu post-op. </td></tr>
<tr><td class="paramname">mask</td><td>Mask of the prelu post-op. </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="gade0dbf6e22ef699e31166c341f9d043a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade0dbf6e22ef699e31166c341f9d043a">&#9670;&nbsp;</a></span>dnnl_post_ops_get_params_sum()</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_post_ops_get_params_sum </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float *&#160;</td>
<td class="paramname"><em>scale</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the parameters of an accumulation (sum) post-op.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">index</td><td>Index of the sum post-op. </td></tr>
<tr><td class="paramname">scale</td><td>Output accumulation scaling factor. </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>
<dd>
<a class="el" href="group__dnnl__api__utils.html#ggad24f9ded06e34d3ee71e7fc4b408d57aaecec97c787d74a33924abcf16ae4f51c" title="The operation failed because of incorrect function arguments.">dnnl_invalid_arguments</a> if <code>index</code> does not refer to a sum post-op. </dd></dl>
</div>
</div>
<a id="ga0546f6cb1352f898ef9444a4e0a79c06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0546f6cb1352f898ef9444a4e0a79c06">&#9670;&nbsp;</a></span>dnnl_post_ops_get_params_sum_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_post_ops_get_params_sum_v2 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float *&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *&#160;</td>
<td class="paramname"><em>data_type</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the parameters of an accumulation (sum) post-op with a data type parameter.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">index</td><td>Index of the sum post-op. </td></tr>
<tr><td class="paramname">scale</td><td>Output accumulation scaling factor. </td></tr>
<tr><td class="paramname">data_type</td><td>Data type for accumulation. </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="ga9b09d3bfddb7e539fe900d6aa7690a09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9b09d3bfddb7e539fe900d6aa7690a09">&#9670;&nbsp;</a></span>dnnl_post_ops_get_params_sum_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_post_ops_get_params_sum_v3 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float *&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t *&#160;</td>
<td class="paramname"><em>zero_point</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga012ba1c84ff24bdd068f9d2f9b26a130">dnnl_data_type_t</a> *&#160;</td>
<td class="paramname"><em>data_type</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the parameters of an accumulation (sum) post-op with zero point and data type parameter.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
<tr><td class="paramname">index</td><td>Index of the sum post-op. </td></tr>
<tr><td class="paramname">scale</td><td>Output accumulation scaling factor. </td></tr>
<tr><td class="paramname">zero_point</td><td>Zero point. </td></tr>
<tr><td class="paramname">data_type</td><td>Data type for accumulation. </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="ga98550f7eddff153ea819a6c4a68e7eec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga98550f7eddff153ea819a6c4a68e7eec">&#9670;&nbsp;</a></span>dnnl_post_ops_len()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int DNNL_API dnnl_post_ops_len </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the length of post-ops.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">post_ops</td><td>Post-ops. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of post-ops entries. </dd></dl>
</div>
</div>
<a id="gab6ac5a4b13fa1ab3251c51f3c750bd63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab6ac5a4b13fa1ab3251c51f3c750bd63">&#9670;&nbsp;</a></span>dnnl_primitive_attr_clone()</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_primitive_attr_clone </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> *&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>existing_attr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clones primitive attributes.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Output primitive attributes. </td></tr>
<tr><td class="paramname">existing_attr</td><td>Primitive attributes to clone. </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="gaf630fdc0d8d0fd8522ec93852a559081"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf630fdc0d8d0fd8522ec93852a559081">&#9670;&nbsp;</a></span>dnnl_primitive_attr_create()</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_primitive_attr_create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a> *&#160;</td>
<td class="paramname"><em>attr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates an empty (default) primitive attributes with all the parameters set to their default values.</p>
<p>Empty attributes are implied whenever the respective argument is NULL.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Output primitive attributes. </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="ga96a7539382945195627f2932bff8fadb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga96a7539382945195627f2932bff8fadb">&#9670;&nbsp;</a></span>dnnl_primitive_attr_destroy()</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_primitive_attr_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys primitive attributes.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes to destroy. </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="gac63b70ab1d2fe88c31f03c961b2e924a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac63b70ab1d2fe88c31f03c961b2e924a">&#9670;&nbsp;</a></span>dnnl_primitive_attr_get_fpmath_mode()</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_primitive_attr_get_fpmath_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga62f956692c5a70353f164e09ff524912">dnnl_fpmath_mode_t</a> *&#160;</td>
<td class="paramname"><em>mode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the floating-point math mode primitive attribute.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">mode</td><td>Output FP math mode. </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="gaf85a41b0666a93ba20c756b49fdcb0c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf85a41b0666a93ba20c756b49fdcb0c2">&#9670;&nbsp;</a></span>dnnl_primitive_attr_get_output_scales()</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_primitive_attr_get_output_scales </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float **&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns primitive attributes output scaling factors correspondence mask and values.</p>
<dl class="section warning"><dt>Warning</dt><dd>The <code>scales</code> array is an internal part of the primitive attributes <code>attr</code>, so it is an error to modify or destroy the <code>scales</code> array.</dd>
<dd>
The lifetime of <code>scales</code> array is the same as that of the primitive attributes <code>attr</code> to which it belongs, so it is an error to use <code>scales</code> after <code>attr</code> is destroyed.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">count</td><td>Output length of the array of scaling factors <code>scales</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Output scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> vector. The set i-th bit indicates that a dedicated output scaling factor is used for each index along that dimension. The mask value of 0 implies a common output scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Output pointer to a constant array of scaling factors. </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="ga50c92661cc69e1eeb17b61f006320a05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga50c92661cc69e1eeb17b61f006320a05">&#9670;&nbsp;</a></span>dnnl_primitive_attr_get_post_ops()</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_primitive_attr_get_post_ops </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a> *&#160;</td>
<td class="paramname"><em>post_ops</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns primitive attributes post-ops.</p>
<dl class="section warning"><dt>Warning</dt><dd>The output <code>post_ops</code> points to the internal <code>attr</code> field, so it is an error to modify or destroy them. The lifetime of <code>post_ops</code> is the same as that of the <code>attr</code> it belongs to, so it is an error to use <code>post_ops</code> after <code>attr</code> has been destroyed.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">post_ops</td><td>Output post-ops. </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="gae04744b95cdabcbcda1087229759be04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae04744b95cdabcbcda1087229759be04">&#9670;&nbsp;</a></span>dnnl_primitive_attr_get_rnn_data_qparams()</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_primitive_attr_get_rnn_data_qparams </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float *&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float *&#160;</td>
<td class="paramname"><em>shift</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the quantization scale and shift parameters for RNN data tensors.</p>
<dl class="section note"><dt>Note</dt><dd>Quantization scale and shift are common for src_layer, src_iter, dst_iter, and dst_layer.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">scale</td><td>The value to scale the data by. </td></tr>
<tr><td class="paramname">shift</td><td>The value to shift the data by. </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="gaa33206be6e7a0b7de2341041da75cc90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa33206be6e7a0b7de2341041da75cc90">&#9670;&nbsp;</a></span>dnnl_primitive_attr_get_rnn_weights_projection_qparams()</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_primitive_attr_get_rnn_weights_projection_qparams </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float **&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the quantization scaling factors for RNN projection weights tensors.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">count</td><td>Number of elements in the <code>scales</code> array. </td></tr>
<tr><td class="paramname">mask</td><td>Scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> vector. The set i-th bit indicates that a dedicated scaling factor should be used for each index along that dimension. Set the mask to 0 to use a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Array of output scaling factors that contain <code>count</code> values and the following equality must hold: <p class="formulaDsp">
<img class="formulaDsp" alt="\[count = \prod\limits_{d \in mask} weights.dims[d].\]" src="form_1.png"/>
</p>
</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="ga5bb88cfe42454f01884ddcdb906f6f7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5bb88cfe42454f01884ddcdb906f6f7c">&#9670;&nbsp;</a></span>dnnl_primitive_attr_get_rnn_weights_qparams()</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_primitive_attr_get_rnn_weights_qparams </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float **&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the quantization scaling factors for RNN weights tensors.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">count</td><td>Number of elements in the <code>scales</code> array. </td></tr>
<tr><td class="paramname">mask</td><td>Scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> vector. The set i-th bit indicates that a dedicated scaling factor should be used for each index along that dimension. Set the mask to 0 to use a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Array of output scaling factors that contain <code>count</code> values and the following equality must hold: <p class="formulaDsp">
<img class="formulaDsp" alt="\[count = \prod\limits_{d \in mask} weights.dims[d].\]" src="form_1.png"/>
</p>
</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="gaf405f0476714bdcb5d0dad1c9e720030"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf405f0476714bdcb5d0dad1c9e720030">&#9670;&nbsp;</a></span>dnnl_primitive_attr_get_scales()</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_primitive_attr_get_scales </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>arg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float **&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns primitive attributes scaling factors correspondence mask and values for a given memory argument.</p>
<dl class="section warning"><dt>Warning</dt><dd>The output <code>scales</code> array is an internal part of the primitive attributes <code>attr</code>, so it is an error to modify or destroy the <code>scales</code> array.</dd>
<dd>
The lifetime of the <code>scales</code> array is the same as that of the primitive attributes <code>attr</code> to which it belongs, so it is an error to use <code>scales</code> after <code>attr</code> is destroyed.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">arg</td><td>Parameter argument index as passed to the <a class="el" href="group__dnnl__api__primitives__common.html#ga57f8ec3a6e5b33a1068cf2236028935c">dnnl_primitive_execute()</a> call. </td></tr>
<tr><td class="paramname">count</td><td>Output length of the array of scaling factors <code>scales</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Output scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> array. The set i-th bit indicates that a dedicated output scaling factor is used for each index along that dimension. The mask value of 0 implies a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Output pointer to a constant array of float scaling factors. </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="gab14d8e830a52510a75a917f75764a6b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab14d8e830a52510a75a917f75764a6b8">&#9670;&nbsp;</a></span>dnnl_primitive_attr_get_scratchpad_mode()</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_primitive_attr_get_scratchpad_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#gacda323181ab267e571c31435b0817de4">dnnl_scratchpad_mode_t</a> *&#160;</td>
<td class="paramname"><em>mode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the primitive attributes scratchpad mode.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">mode</td><td>Output scratchpad mode. </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="gadd27e1e35b2854f593360f90acc8965f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadd27e1e35b2854f593360f90acc8965f">&#9670;&nbsp;</a></span>dnnl_primitive_attr_get_zero_points()</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_primitive_attr_get_zero_points </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga871d7ee732a90fec43f1c878581bb59a">const_dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>arg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> *&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int32_t **&#160;</td>
<td class="paramname"><em>zero_points</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns <code>count</code>, correspondence zero point <code>mask</code>, and a pointer to a constant int32_t array of <code>zero_points</code> for given <code>attr</code> and memory argument (index), previously set by dnnl_primitive_attr_set_zero_points.</p>
<dl class="section warning"><dt>Warning</dt><dd>The output <code>zero_points</code> array is an internal part of the primitive attributes <code>attr</code>, so it is an error to modify or destroy the <code>zero_points</code> array.</dd>
<dd>
The lifetime of <code>zero_points</code> array is the same as that of the primitive attributes <code>attr</code> to which it belongs, so it is an error to use <code>zero_points</code> after <code>attr</code> is destroyed.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">arg</td><td>Parameter argument index as passed to the <a class="el" href="group__dnnl__api__primitives__common.html#ga57f8ec3a6e5b33a1068cf2236028935c">dnnl_primitive_execute()</a> call. </td></tr>
<tr><td class="paramname">count</td><td>Output length of the array of zero points <code>zero_points</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Output zero points correspondence mask that defines the correspondence between the output tensor dimensions and the <code>zero_points</code> array. The set i-th bit indicates that a dedicated output zero point is used for each index along that dimension. The mask value of 0 implies a common zero point for the whole output tensor. </td></tr>
<tr><td class="paramname">zero_points</td><td>Output pointer to a constant array of int32_t zero points. </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="gafe55fa618bc10b65b6c0b6eca7e43840"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafe55fa618bc10b65b6c0b6eca7e43840">&#9670;&nbsp;</a></span>dnnl_primitive_attr_set_fpmath_mode()</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_primitive_attr_set_fpmath_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga62f956692c5a70353f164e09ff524912">dnnl_fpmath_mode_t</a>&#160;</td>
<td class="paramname"><em>mode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the floating-point math mode primitive attributes.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">mode</td><td>FP math mode. The possible values are: <a class="el" href="group__dnnl__api__attributes.html#gga62f956692c5a70353f164e09ff524912ab062cd5c71803f26ab700073c8f18bd3" title="Default behavior, no downconversions allowed.">dnnl_fpmath_mode_strict</a> (default), <a class="el" href="group__dnnl__api__attributes.html#gga62f956692c5a70353f164e09ff524912ac7e140804cd26325c9c5563fa421b7f7" title="Implicit f32-&gt;bf16 conversions allowed.">dnnl_fpmath_mode_bf16</a>, <a class="el" href="group__dnnl__api__attributes.html#gga62f956692c5a70353f164e09ff524912aa128d95a43cba562c8b90cd820d3faaf" title="Implicit f32-&gt;f16 conversions allowed.">dnnl_fpmath_mode_f16</a>, <a class="el" href="group__dnnl__api__attributes.html#gga62f956692c5a70353f164e09ff524912ad54e0a51f937a49dd4c2c3d50ca1b94c" title="Implicit f32-&gt;f16 or f32-&gt;bf16 conversions allowed.">dnnl_fpmath_mode_any</a>. </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="gae3ff1fe9449f2d9b1cd02ad864b57057"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae3ff1fe9449f2d9b1cd02ad864b57057">&#9670;&nbsp;</a></span>dnnl_primitive_attr_set_output_scales()</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_primitive_attr_set_output_scales </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a>&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float *&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets output scaling factors correspondence mask and values.</p>
<dl class="section note"><dt>Note</dt><dd>The order of dimensions does not depend on how elements are laid out in memory. For example:<ul>
<li>for a 2D CNN activations tensor the order is always (n, c)</li>
<li>for a 4D CNN activations tensor the order is always (n, c, h, w)</li>
<li>for a 5D CNN weights tensor the order is always (g, oc, ic, kh, kw)</li>
</ul>
</dd></dl>
<p>Example usage: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> mb = 32, oc = 32, oh = 14, ow = 14; <span class="comment">// convolution output params</span></div>
<div class="line"><span class="keywordtype">float</span> scales[oc] = { ... }; <span class="comment">// unique output scales per output channel</span></div>
<div class="line"><span class="keywordtype">int</span> oc_dim = 1; <span class="comment">// mb_dim = 0, channel_dim = 1, height_dim = 2, ...</span></div>
<div class="line"> </div>
<div class="line"><a class="code" href="structdnnl__convolution__desc__t.html">dnnl_convolution_desc_t</a> conv_d; <span class="comment">// create a convolution descriptor</span></div>
<div class="line"> </div>
<div class="line"><a class="code" href="structdnnl__primitive__attr.html">dnnl_primitive_attr_t</a> attr;</div>
<div class="line"><a class="code" href="group__dnnl__api__attributes.html#gaf630fdc0d8d0fd8522ec93852a559081">dnnl_primitive_attr_create</a>(&amp;attr); <span class="comment">// create primitive attributes</span></div>
<div class="line"><a class="code" href="group__dnnl__api__attributes.html#gae3ff1fe9449f2d9b1cd02ad864b57057">dnnl_primitive_attr_set_output_scales</a>(attr, oc, 1 &lt;&lt; oc_dim, scales);</div>
<div class="line"> </div>
<div class="line"><a class="code" href="structdnnl__primitive__desc.html">dnnl_primitive_desc_t</a> conv_pd;</div>
<div class="line"><a class="code" href="group__dnnl__api__primitives__common.html#ga336dd467c36d8fe0d3311ddc73f239cb">dnnl_primitive_desc_create</a>(&amp;conv_pd, &amp;conv_d, attr, engine, NULL);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">count</td><td>Length of the array of scaling factors <code>scales</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> array. The set i-th bit indicates that a dedicated output scaling factor is used for each index along that dimension. The mask value of 0 implies a common output scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Array of output scaling factors. If the output scaling factors are known at the time of this call, this array must contain <code>count</code> values and the following equality must hold: <p class="formulaDsp">
<img class="formulaDsp" alt="\[count = \prod\limits_{d \in mask} output.dims[d].\]" src="form_0.png"/>
</p>
Violations can only be detected when the attributes are used to create a primitive descriptor. If the output scaling factors are not known at the time of the call, this array must contain a single <a class="el" href="group__dnnl__api__memory.html#gab16365c11b4dc88fbb453edb51f1979f">DNNL_RUNTIME_F32_VAL</a> value and the output scaling factors must be passed at execution time as an argument with index <a class="el" href="group__dnnl__api__primitives__common.html#ga0afb48b0c2b8f3ee30609aaa47aa29db" title="Output scaling factors provided at execution time.">DNNL_ARG_ATTR_OUTPUT_SCALES</a>. </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="ga7045d42606599f156bfca69820c21ea2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7045d42606599f156bfca69820c21ea2">&#9670;&nbsp;</a></span>dnnl_primitive_attr_set_post_ops()</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_primitive_attr_set_post_ops </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga997bc4a3d9d2ce50238b1c035963fc39">const_dnnl_post_ops_t</a>&#160;</td>
<td class="paramname"><em>post_ops</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets primitive attributes post-ops.</p>
<dl class="section note"><dt>Note</dt><dd>There is no way to check whether the post-ops would be supported by the target primitive. Any error will be reported by the <a class="el" href="group__dnnl__api__primitives__common.html#ga336dd467c36d8fe0d3311ddc73f239cb">dnnl_primitive_desc_create()</a> function call.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">post_ops</td><td>Post-ops to set. </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="ga0067a4b6e5dd2fe7578cd4a25dddfe39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0067a4b6e5dd2fe7578cd4a25dddfe39">&#9670;&nbsp;</a></span>dnnl_primitive_attr_set_rnn_data_qparams()</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_primitive_attr_set_rnn_data_qparams </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float&#160;</td>
<td class="paramname"><em>shift</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set quantization scale and shift parameters for RNN data tensors.</p>
<p>For performance reasons, the low-precision configuration of the RNN primitives expects input activations to have the unsigned 8-bit integer data type. The scale and shift parameters are used to quantize floating-point data to unsigned integer and must be passed to the RNN primitive using attributes.</p>
<p>The quantization formula is <code>scale * data + shift</code>.</p>
<dl class="section note"><dt>Note</dt><dd>Quantization scale and shift are common for src_layer, src_iter, dst_iter, and dst_layer.</dd></dl>
<p>Example usage: </p><div class="fragment"><div class="line"><span class="comment">// RNN parameters</span></div>
<div class="line"><span class="keywordtype">int</span> l = 2, t = 2, mb = 32, sic = 32, slc = 32, dic = 32, dlc = 32;</div>
<div class="line"><span class="comment">// Activations quantization parameters</span></div>
<div class="line"><span class="keywordtype">float</span> scale = 63.f, shift = 64.f;</div>
<div class="line"> </div>
<div class="line"><a class="code" href="structdnnl__primitive__attr.html">dnnl_primitive_attr_t</a> rnn_attr;</div>
<div class="line"><span class="comment">// Create default attributes</span></div>
<div class="line"><a class="code" href="group__dnnl__api__attributes.html#gaf630fdc0d8d0fd8522ec93852a559081">dnnl_primitive_attr_create</a>(&amp;rnn_attr);</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Set scale and shift for int8 quantization of activation</span></div>
<div class="line"><a class="code" href="group__dnnl__api__attributes.html#ga0067a4b6e5dd2fe7578cd4a25dddfe39">dnnl_primitive_attr_set_rnn_data_qparams</a>(rnn_attr, scale, shift);</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Create and configure rnn op_desc</span></div>
<div class="line"><a class="code" href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a> rnn_d;</div>
<div class="line"><a class="code" href="structdnnl__primitive__desc.html">dnnl_primitive_desc_t</a> rnn_pd;</div>
<div class="line"><a class="code" href="group__dnnl__api__primitives__common.html#ga336dd467c36d8fe0d3311ddc73f239cb">dnnl_primitive_desc_create</a>(&amp;rnn_pd, &amp;rnn_d, attr, engine, NULL);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">scale</td><td>The value to scale the data by. </td></tr>
<tr><td class="paramname">shift</td><td>The value to shift the data by. </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="gac7973cc7b4c62eb6766e9ac96c51d49d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac7973cc7b4c62eb6766e9ac96c51d49d">&#9670;&nbsp;</a></span>dnnl_primitive_attr_set_rnn_weights_projection_qparams()</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_primitive_attr_set_rnn_weights_projection_qparams </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a>&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float *&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets quantization scaling factors for RNN projection weights tensors. The low-precision configuration of the RNN primitives expects input weights to use the signed 8-bit integer data type. The scaling factors are used to quantize floating-point data to signed integer and must be passed to RNN primitives using attributes.</p>
<dl class="section note"><dt>Note</dt><dd>The dimension order is always native and does not depend on the actual layout used. For example, five-dimensional weights always have (l, d, i, g, o) logical dimension ordering.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">count</td><td>Number of elements in the <code>scales</code> array. </td></tr>
<tr><td class="paramname">mask</td><td>Scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> vector. The set i-th bit indicates that a dedicated scaling factor should be used for each index along that dimension. Set the mask to 0 to use a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Array of output scaling factors that must contain <code>count</code> values and the following equality must hold: <p class="formulaDsp">
<img class="formulaDsp" alt="\[count = \prod\limits_{d \in mask} weights.dims[d].\]" src="form_1.png"/>
</p>
Violations can only be detected when the attributes are used to create a primitive descriptor. </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="ga815dbfe548cfcb70076fe091888e5466"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga815dbfe548cfcb70076fe091888e5466">&#9670;&nbsp;</a></span>dnnl_primitive_attr_set_rnn_weights_qparams()</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_primitive_attr_set_rnn_weights_qparams </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a>&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float *&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets quantization scaling factors for RNN weights tensors. The low-precision configuration of the RNN primitives expects input weights to use the signed 8-bit integer data type. The scaling factors are used to quantize floating-point data to signed integer and must be passed to RNN primitives using attributes.</p>
<dl class="section note"><dt>Note</dt><dd>The dimension order is always native and does not depend on the actual layout used. For example, five-dimensional weights always have (l, d, i, g, o) logical dimension ordering.</dd>
<dd>
Quantization scales are common for weights_layer and weights_iteration</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">count</td><td>Number of elements in the <code>scales</code> array. </td></tr>
<tr><td class="paramname">mask</td><td>Scaling factors correspondence mask that defines the correspondence between the output tensor dimensions and the <code>scales</code> vector. The set i-th bit indicates that a dedicated scaling factor should be used for each index along that dimension. Set the mask to 0 to use a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Array of output scaling factors that must contain <code>count</code> values and the following equality must hold: <p class="formulaDsp">
<img class="formulaDsp" alt="\[count = \prod\limits_{d \in mask} weights.dims[d].\]" src="form_1.png"/>
</p>
Violations can only be detected when the attributes are used to create a primitive descriptor. </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="gaaa6b2f9a167cfd6ddee2ec93be8ea41e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaa6b2f9a167cfd6ddee2ec93be8ea41e">&#9670;&nbsp;</a></span>dnnl_primitive_attr_set_scales()</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_primitive_attr_set_scales </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>arg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a>&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float *&#160;</td>
<td class="paramname"><em>scales</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets primitive attributes scaling factors for primitive operations for a given memory argument.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__dnnl__api__attributes.html#gae3ff1fe9449f2d9b1cd02ad864b57057">dnnl_primitive_attr_set_output_scales</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">arg</td><td>Parameter argument index as passed to the <a class="el" href="group__dnnl__api__primitives__common.html#ga57f8ec3a6e5b33a1068cf2236028935c">dnnl_primitive_execute()</a> call. </td></tr>
<tr><td class="paramname">count</td><td>Length of the array of scaling factors <code>scales</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Scaling factors correspondence mask that defines the correspondence between the tensor dimensions and the <code>scales</code> array. The set i-th bit indicates that a dedicated scaling factor is used for each index along that dimension. Set the mask to 0 to use a common scaling factor for the whole output tensor. </td></tr>
<tr><td class="paramname">scales</td><td>Constant array of float scaling factors. This array must contain <code>count</code> scales and the following equality must hold: <p class="formulaDsp">
<img class="formulaDsp" alt="\[count = \prod\limits_{d \in mask} output.dims[d].\]" src="form_0.png"/>
</p>
</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="ga4adeb17e538392ec3a16d2f6ef3f7cca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4adeb17e538392ec3a16d2f6ef3f7cca">&#9670;&nbsp;</a></span>dnnl_primitive_attr_set_scratchpad_mode()</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_primitive_attr_set_scratchpad_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#gacda323181ab267e571c31435b0817de4">dnnl_scratchpad_mode_t</a>&#160;</td>
<td class="paramname"><em>mode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets primitive attributes scratchpad mode.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">mode</td><td>Scratchpad mode. The possible values are: <a class="el" href="group__dnnl__api__attributes.html#ggacda323181ab267e571c31435b0817de4ac6aab09a2f8ef442a6a59800549b0487">dnnl_scratchpad_mode_library</a> (default) and <a class="el" href="group__dnnl__api__attributes.html#ggacda323181ab267e571c31435b0817de4a7e9d97b9ceefc5e47512d83c097d6927">dnnl_scratchpad_mode_user</a>. </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="ga6f4b625c7f238883fe32cbf6829b7f30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6f4b625c7f238883fe32cbf6829b7f30">&#9670;&nbsp;</a></span>dnnl_primitive_attr_set_zero_points()</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_primitive_attr_set_zero_points </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__dnnl__api__attributes.html#ga06d701a25b82d4c8a93aaabb93e03dc3">dnnl_primitive_attr_t</a>&#160;</td>
<td class="paramname"><em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>arg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a>&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int32_t *&#160;</td>
<td class="paramname"><em>zero_points</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets primitive attributes zero points for primitive operations for a given memory argument.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__dnnl__api__attributes.html#gae3ff1fe9449f2d9b1cd02ad864b57057">dnnl_primitive_attr_set_output_scales</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Primitive attributes. </td></tr>
<tr><td class="paramname">arg</td><td>Parameter argument index as passed to the <a class="el" href="group__dnnl__api__primitives__common.html#ga57f8ec3a6e5b33a1068cf2236028935c">dnnl_primitive_execute()</a> call. </td></tr>
<tr><td class="paramname">count</td><td>Length of the array of zero points <code>zero_points</code>. </td></tr>
<tr><td class="paramname">mask</td><td>Zero point correspondence mask that defines the correspondence between the tensor dimensions and the <code>zero_points</code> array. The set i-th bit indicates that a dedicated zero point is used for each index along that dimension. Set the mask to 0 to use a common zero point for the whole output tensor. </td></tr>
<tr><td class="paramname">zero_points</td><td>Constant array of int32_t zero points. If the zero points are known at the time of this call, this array must contain <code>count</code> zero points and the following equality must hold: <p class="formulaDsp">
<img class="formulaDsp" alt="\[count = \prod\limits_{d \in mask} output.dims[d].\]" src="form_0.png"/>
</p>
If the zero points are not known at the time of the call, this array must contain a single <a class="el" href="group__dnnl__api__memory.html#ga30139d5110e9e895ccd93fe503ca4c35">DNNL_RUNTIME_S32_VAL</a> and the zero points must be passed at execution time as an argument with index <a class="el" href="group__dnnl__api__primitives__common.html#gaf8d879adfe2baa2f9f2a5143a0f274b6" title="Zero points provided at execution time.">DNNL_ARG_ATTR_ZERO_POINTS</a>. </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 -->
<div class="ttc" id="astructdnnl__convolution__desc__t_html"><div class="ttname"><a href="structdnnl__convolution__desc__t.html">dnnl_convolution_desc_t</a></div><div class="ttdoc">A descriptor of a convolution operation.</div><div class="ttdef"><b>Definition:</b> dnnl_types.h:1881</div></div>
<div class="ttc" id="astructdnnl__rnn__desc__t_html"><div class="ttname"><a href="structdnnl__rnn__desc__t.html">dnnl_rnn_desc_t</a></div><div class="ttdoc">A descriptor for an RNN operation.</div><div class="ttdef"><b>Definition:</b> dnnl_types.h:2331</div></div>
<div class="ttc" id="agroup__dnnl__api__attributes_html_gaf630fdc0d8d0fd8522ec93852a559081"><div class="ttname"><a href="group__dnnl__api__attributes.html#gaf630fdc0d8d0fd8522ec93852a559081">dnnl_primitive_attr_create</a></div><div class="ttdeci">dnnl_status_t DNNL_API dnnl_primitive_attr_create(dnnl_primitive_attr_t *attr)</div></div>
<div class="ttc" id="agroup__dnnl__api__attributes_html_gae3ff1fe9449f2d9b1cd02ad864b57057"><div class="ttname"><a href="group__dnnl__api__attributes.html#gae3ff1fe9449f2d9b1cd02ad864b57057">dnnl_primitive_attr_set_output_scales</a></div><div class="ttdeci">dnnl_status_t DNNL_API dnnl_primitive_attr_set_output_scales(dnnl_primitive_attr_t attr, dnnl_dim_t count, int mask, const float *scales)</div></div>
<div class="ttc" id="astructdnnl__primitive__desc_html"><div class="ttname"><a href="structdnnl__primitive__desc.html">dnnl_primitive_desc</a></div><div class="ttdoc">An opaque structure to describe a primitive descriptor.</div></div>
<div class="ttc" id="astructdnnl__primitive__attr_html"><div class="ttname"><a href="structdnnl__primitive__attr.html">dnnl_primitive_attr</a></div><div class="ttdoc">An opaque structure for primitive descriptor attributes.</div></div>
<div class="ttc" id="agroup__dnnl__api__attributes_html_ga0067a4b6e5dd2fe7578cd4a25dddfe39"><div class="ttname"><a href="group__dnnl__api__attributes.html#ga0067a4b6e5dd2fe7578cd4a25dddfe39">dnnl_primitive_attr_set_rnn_data_qparams</a></div><div class="ttdeci">dnnl_status_t DNNL_API dnnl_primitive_attr_set_rnn_data_qparams(dnnl_primitive_attr_t attr, const float scale, const float shift)</div></div>
<div class="ttc" id="agroup__dnnl__api__primitives__common_html_ga336dd467c36d8fe0d3311ddc73f239cb"><div class="ttname"><a href="group__dnnl__api__primitives__common.html#ga336dd467c36d8fe0d3311ddc73f239cb">dnnl_primitive_desc_create</a></div><div class="ttdeci">dnnl_status_t DNNL_API dnnl_primitive_desc_create(dnnl_primitive_desc_t *primitive_desc, const_dnnl_op_desc_t op_desc, const_dnnl_primitive_attr_t attr, dnnl_engine_t engine, const_dnnl_primitive_desc_t hint_forward_primitive_desc)</div></div>
<!-- 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>