| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.13"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>mxnet: Dnnl_api_blas</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.13 --> |
| <script type="text/javascript"> |
| var searchBox = new SearchBox("searchBox", "search",false,'Search'); |
| </script> |
| <script type="text/javascript" src="menudata.js"></script> |
| <script type="text/javascript" src="menu.js"></script> |
| <script type="text/javascript"> |
| $(function() { |
| initMenu('',true,false,'search.php','Search'); |
| $(document).ready(function() { init_search(); }); |
| }); |
| </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="#func-members">Functions</a> </div> |
| <div class="headertitle"> |
| <div class="title">Dnnl_api_blas<div class="ingroups"><a class="el" href="group__dnnl__api.html">Dnnl_api</a></div></div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <div class="dynheader"> |
| Collaboration diagram for Dnnl_api_blas:</div> |
| <div class="dyncontent"> |
| <center><table><tr><td><img src="group__dnnl__api__blas.png" border="0" alt="" usemap="#group____dnnl____api____blas"/> |
| <map name="group____dnnl____api____blas" id="group____dnnl____api____blas"> |
| <area shape="rect" id="node2" href="group__dnnl__api.html" title="Dnnl_api" alt="" coords="5,5,84,32"/> |
| </map> |
| </td></tr></table></center> |
| </div> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> |
| Functions</h2></td></tr> |
| <tr class="memitem:ga75ee119765bdac249200fda42c0617f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API </td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__blas.html#ga75ee119765bdac249200fda42c0617f8">dnnl_sgemm</a> (char transa, char transb, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> M, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> N, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> K, float alpha, const float *A, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> lda, const float *B, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> ldb, float beta, float *C, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> ldc)</td></tr> |
| <tr class="separator:ga75ee119765bdac249200fda42c0617f8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaef24848fd198d8a178d3ad95a78c1767"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API </td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__blas.html#gaef24848fd198d8a178d3ad95a78c1767">dnnl_gemm_u8s8s32</a> (char transa, char transb, char offsetc, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> M, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> N, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> K, float alpha, const uint8_t *A, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> lda, uint8_t ao, const int8_t *B, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> ldb, int8_t bo, float beta, int32_t *C, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> ldc, const int32_t *co)</td></tr> |
| <tr class="separator:gaef24848fd198d8a178d3ad95a78c1767"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga2b763b7629846913507d88fba875cc26"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__dnnl__api__utils.html#gad24f9ded06e34d3ee71e7fc4b408d57a">dnnl_status_t</a> DNNL_API </td><td class="memItemRight" valign="bottom"><a class="el" href="group__dnnl__api__blas.html#ga2b763b7629846913507d88fba875cc26">dnnl_gemm_s8s8s32</a> (char transa, char transb, char offsetc, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> M, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> N, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> K, float alpha, const int8_t *A, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> lda, int8_t ao, const int8_t *B, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> ldb, int8_t bo, float beta, int32_t *C, <a class="el" href="group__dnnl__api__memory.html#ga872631b12a112bf43fba985cba24dd20">dnnl_dim_t</a> ldc, const int32_t *co)</td></tr> |
| <tr class="separator:ga2b763b7629846913507d88fba875cc26"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> |
| <h2 class="groupheader">Function Documentation</h2> |
| <a id="ga2b763b7629846913507d88fba875cc26"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga2b763b7629846913507d88fba875cc26">◆ </a></span>dnnl_gemm_s8s8s32()</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_gemm_s8s8s32 </td> |
| <td>(</td> |
| <td class="paramtype">char </td> |
| <td class="paramname"><em>transa</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">char </td> |
| <td class="paramname"><em>transb</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">char </td> |
| <td class="paramname"><em>offsetc</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> </td> |
| <td class="paramname"><em>M</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> </td> |
| <td class="paramname"><em>N</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> </td> |
| <td class="paramname"><em>K</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>alpha</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const int8_t * </td> |
| <td class="paramname"><em>A</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> </td> |
| <td class="paramname"><em>lda</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int8_t </td> |
| <td class="paramname"><em>ao</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const int8_t * </td> |
| <td class="paramname"><em>B</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> </td> |
| <td class="paramname"><em>ldb</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int8_t </td> |
| <td class="paramname"><em>bo</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>beta</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t * </td> |
| <td class="paramname"><em>C</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> </td> |
| <td class="paramname"><em>ldc</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const int32_t * </td> |
| <td class="paramname"><em>co</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Performs integer matrix-matrix multiply on 8-bit signed matrix A, 8-bit signed matrix B, and 32-bit signed resulting matrix C.</p> |
| <p>The operation is defined as:</p> |
| <p><code>C := alpha * (op(A) - A_offset) * (op(B) - B_offset) + beta * C + C_offset</code></p> |
| <p>where</p><ul> |
| <li><code>op( X ) = X</code> or <code>op( X ) = X**T</code>,</li> |
| <li><code>alpha</code> and <code>beta</code> are scalars, and</li> |
| <li><code>A</code>, <code>B</code>, and <code>C</code> are matrices:<ul> |
| <li><code>op( A )</code> is an <code>MxK</code> matrix,</li> |
| <li><code>op( B )</code> is an <code>KxN</code> matrix,</li> |
| <li><code>C</code> is an <code>MxN</code> matrix.</li> |
| </ul> |
| </li> |
| <li><code>A_offset</code> is an <code>MxK</code> matrix with every element equal the <code>ao</code> value,</li> |
| <li><code>B_offset</code> is an <code>KxN</code> matrix with every element equal the <code>bo</code> value,</li> |
| <li><code>C_offset</code> is an <code>MxN</code> matrix which is defined by the <code>co</code> array of size <code>len</code>:<ul> |
| <li>if <code>offsetc = F</code>: the <code>len</code> must be at least <code>1</code>,</li> |
| <li>if <code>offsetc = C</code>: the <code>len</code> must be at least <code>max(1, m)</code>,</li> |
| <li>if <code>offsetc = R</code>: the <code>len</code> must be at least <code>max(1, n)</code>,</li> |
| </ul> |
| </li> |
| </ul> |
| <p>The matrices are assumed to be stored in row-major order (the elements in each of the matrix rows are contiguous in memory).</p> |
| <dl class="section note"><dt>Note</dt><dd>This API does not support XERBLA. Instead, unlike the standard BLAS functions, this one returns a dnnl_status_t value to allow error handling.</dd></dl> |
| <dl class="section warning"><dt>Warning</dt><dd>On some architectures saturation may happen during intermediate computations, which would lead to unexpected results. For more details, refer to dev_guide_int8_computations.</dd></dl> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">transa</td><td>Transposition flag for matrix A: 'N' or 'n' means A is not transposed, and 'T' or 't' means that A is transposed. </td></tr> |
| <tr><td class="paramname">transb</td><td>Transposition flag for matrix B: 'N' or 'n' means B is not transposed, and 'T' or 't' means that B is transposed. </td></tr> |
| <tr><td class="paramname">offsetc</td><td>Flag specifying how offsets should be applied to matrix C:<ul> |
| <li>'F' means that the same offset will be applied to each element of the matrix C,</li> |
| <li>'C' means that individual offset will be applied to each element within each column,</li> |
| <li>'R' means that individual offset will be applied to each element within each row. </li> |
| </ul> |
| </td></tr> |
| <tr><td class="paramname">M</td><td>The M dimension. </td></tr> |
| <tr><td class="paramname">N</td><td>The N dimension. </td></tr> |
| <tr><td class="paramname">K</td><td>The K dimension. </td></tr> |
| <tr><td class="paramname">alpha</td><td>The alpha parameter that is used to scale the product of matrices A and B. </td></tr> |
| <tr><td class="paramname">A</td><td>A pointer to the A matrix data. </td></tr> |
| <tr><td class="paramname">lda</td><td>The leading dimension for the matrix A. </td></tr> |
| <tr><td class="paramname">ao</td><td>The offset value for the matrix A. </td></tr> |
| <tr><td class="paramname">B</td><td>A pointer to the B matrix data. </td></tr> |
| <tr><td class="paramname">ldb</td><td>The leading dimension for the matrix B. </td></tr> |
| <tr><td class="paramname">bo</td><td>The offset value for the matrix B. </td></tr> |
| <tr><td class="paramname">beta</td><td>The beta parameter that is used to scale the matrix C. </td></tr> |
| <tr><td class="paramname">C</td><td>A pointer to the C matrix data. </td></tr> |
| <tr><td class="paramname">ldc</td><td>The leading dimension for the matrix C. </td></tr> |
| <tr><td class="paramname">co</td><td>An array of offset values for the matrix C. The number of elements in the array depends on the value of <code>offsetc</code>. </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>/#dnnl::status::success on success and a status describing the error otherwise. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="gaef24848fd198d8a178d3ad95a78c1767"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaef24848fd198d8a178d3ad95a78c1767">◆ </a></span>dnnl_gemm_u8s8s32()</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_gemm_u8s8s32 </td> |
| <td>(</td> |
| <td class="paramtype">char </td> |
| <td class="paramname"><em>transa</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">char </td> |
| <td class="paramname"><em>transb</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">char </td> |
| <td class="paramname"><em>offsetc</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> </td> |
| <td class="paramname"><em>M</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> </td> |
| <td class="paramname"><em>N</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> </td> |
| <td class="paramname"><em>K</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>alpha</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const uint8_t * </td> |
| <td class="paramname"><em>A</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> </td> |
| <td class="paramname"><em>lda</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint8_t </td> |
| <td class="paramname"><em>ao</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const int8_t * </td> |
| <td class="paramname"><em>B</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> </td> |
| <td class="paramname"><em>ldb</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int8_t </td> |
| <td class="paramname"><em>bo</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>beta</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int32_t * </td> |
| <td class="paramname"><em>C</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> </td> |
| <td class="paramname"><em>ldc</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const int32_t * </td> |
| <td class="paramname"><em>co</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Performs integer matrix-matrix multiply on 8-bit unsigned matrix A, 8-bit signed matrix B, and 32-bit signed resulting matrix C.</p> |
| <p>The operation is defined as:</p> |
| <p><code>C := alpha * (op(A) - A_offset) * (op(B) - B_offset) + beta * C + C_offset</code></p> |
| <p>where</p><ul> |
| <li><code>op( X ) = X</code> or <code>op( X ) = X**T</code>,</li> |
| <li><code>alpha</code> and <code>beta</code> are scalars, and</li> |
| <li><code>A</code>, <code>B</code>, and <code>C</code> are matrices:<ul> |
| <li><code>op( A )</code> is an <code>MxK</code> matrix,</li> |
| <li><code>op( B )</code> is an <code>KxN</code> matrix,</li> |
| <li><code>C</code> is an <code>MxN</code> matrix.</li> |
| </ul> |
| </li> |
| <li><code>A_offset</code> is an <code>MxK</code> matrix with every element equal the <code>ao</code> value,</li> |
| <li><code>B_offset</code> is an <code>KxN</code> matrix with every element equal the <code>bo</code> value,</li> |
| <li><code>C_offset</code> is an <code>MxN</code> matrix which is defined by the <code>co</code> array of size <code>len</code>:<ul> |
| <li>if <code>offsetc = F</code>: the <code>len</code> must be at least <code>1</code>,</li> |
| <li>if <code>offsetc = C</code>: the <code>len</code> must be at least <code>max(1, m)</code>,</li> |
| <li>if <code>offsetc = R</code>: the <code>len</code> must be at least <code>max(1, n)</code>,</li> |
| </ul> |
| </li> |
| </ul> |
| <p>The matrices are assumed to be stored in row-major order (the elements in each of the matrix rows are contiguous in memory).</p> |
| <dl class="section note"><dt>Note</dt><dd>This API does not support XERBLA. Instead, unlike the standard BLAS functions, this one returns a dnnl_status_t value to allow error handling.</dd></dl> |
| <dl class="section warning"><dt>Warning</dt><dd>On some architectures saturation may happen during intermediate computations, which would lead to unexpected results. For more details, refer to dev_guide_int8_computations.</dd></dl> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">transa</td><td>Transposition flag for matrix A: 'N' or 'n' means A is not transposed, and 'T' or 't' means that A is transposed. </td></tr> |
| <tr><td class="paramname">transb</td><td>Transposition flag for matrix B: 'N' or 'n' means B is not transposed, and 'T' or 't' means that B is transposed. </td></tr> |
| <tr><td class="paramname">offsetc</td><td>Flag specifying how offsets should be applied to matrix C:<ul> |
| <li>'F' means that the same offset will be applied to each element of the matrix C,</li> |
| <li>'C' means that individual offset will be applied to each element within each column,</li> |
| <li>'R' means that individual offset will be applied to each element within each row. </li> |
| </ul> |
| </td></tr> |
| <tr><td class="paramname">M</td><td>The M dimension. </td></tr> |
| <tr><td class="paramname">N</td><td>The N dimension. </td></tr> |
| <tr><td class="paramname">K</td><td>The K dimension. </td></tr> |
| <tr><td class="paramname">alpha</td><td>The alpha parameter that is used to scale the product of matrices A and B. </td></tr> |
| <tr><td class="paramname">A</td><td>A pointer to the A matrix data. </td></tr> |
| <tr><td class="paramname">lda</td><td>The leading dimension for the matrix A. </td></tr> |
| <tr><td class="paramname">ao</td><td>The offset value for the matrix A. </td></tr> |
| <tr><td class="paramname">B</td><td>A pointer to the B matrix data. </td></tr> |
| <tr><td class="paramname">ldb</td><td>The leading dimension for the matrix B. </td></tr> |
| <tr><td class="paramname">bo</td><td>The offset value for the matrix B. </td></tr> |
| <tr><td class="paramname">beta</td><td>The beta parameter that is used to scale the matrix C. </td></tr> |
| <tr><td class="paramname">C</td><td>A pointer to the C matrix data. </td></tr> |
| <tr><td class="paramname">ldc</td><td>The leading dimension for the matrix C. </td></tr> |
| <tr><td class="paramname">co</td><td>An array of offset values for the matrix C. The number of elements in the array depends on the value of <code>offsetc</code>. </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>/#dnnl::status::success on success and a status describing the error otherwise. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ga75ee119765bdac249200fda42c0617f8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga75ee119765bdac249200fda42c0617f8">◆ </a></span>dnnl_sgemm()</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_sgemm </td> |
| <td>(</td> |
| <td class="paramtype">char </td> |
| <td class="paramname"><em>transa</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">char </td> |
| <td class="paramname"><em>transb</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> </td> |
| <td class="paramname"><em>M</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> </td> |
| <td class="paramname"><em>N</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> </td> |
| <td class="paramname"><em>K</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>alpha</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const float * </td> |
| <td class="paramname"><em>A</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> </td> |
| <td class="paramname"><em>lda</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const float * </td> |
| <td class="paramname"><em>B</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> </td> |
| <td class="paramname"><em>ldb</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float </td> |
| <td class="paramname"><em>beta</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">float * </td> |
| <td class="paramname"><em>C</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> </td> |
| <td class="paramname"><em>ldc</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Performs single-precision matrix-matrix multiply.</p> |
| <p>The operation is defined as:</p> |
| <p><code>C := alpha * op( A ) * op( B ) + beta * C</code></p> |
| <p>where</p><ul> |
| <li><code>op( X ) = X</code> or <code>op( X ) = X**T</code>,</li> |
| <li><code>alpha</code> and <code>beta</code> are scalars, and</li> |
| <li><code>A</code>, <code>B</code>, and <code>C</code> are matrices:<ul> |
| <li><code>op( A )</code> is an <code>MxK</code> matrix,</li> |
| <li><code>op( B )</code> is an <code>KxN</code> matrix,</li> |
| <li><code>C</code> is an <code>MxN</code> matrix.</li> |
| </ul> |
| </li> |
| </ul> |
| <p>The matrices are assumed to be stored in row-major order (the elements in each of the matrix rows are contiguous in memory).</p> |
| <dl class="section note"><dt>Note</dt><dd>This API does not support XERBLA. Instead, unlike the standard BLAS functions, this one returns a dnnl_status_t value to allow error handling.</dd></dl> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">transa</td><td>Transposition flag for matrix A: 'N' or 'n' means A is not transposed, and 'T' or 't' means that A is transposed. </td></tr> |
| <tr><td class="paramname">transb</td><td>Transposition flag for matrix B: 'N' or 'n' means B is not transposed, and 'T' or 't' means that B is transposed. </td></tr> |
| <tr><td class="paramname">M</td><td>The M dimension. </td></tr> |
| <tr><td class="paramname">N</td><td>The N dimension. </td></tr> |
| <tr><td class="paramname">K</td><td>The K dimension. </td></tr> |
| <tr><td class="paramname">alpha</td><td>The alpha parameter that is used to scale the product of matrices A and B. </td></tr> |
| <tr><td class="paramname">A</td><td>A pointer to the A matrix data. </td></tr> |
| <tr><td class="paramname">lda</td><td>The leading dimension for the matrix A. </td></tr> |
| <tr><td class="paramname">B</td><td>A pointer to the B matrix data. </td></tr> |
| <tr><td class="paramname">ldb</td><td>The leading dimension for the matrix B. </td></tr> |
| <tr><td class="paramname">beta</td><td>The beta parameter that is used to scale the matrix C. </td></tr> |
| <tr><td class="paramname">C</td><td>A pointer to the C matrix data. </td></tr> |
| <tr><td class="paramname">ldc</td><td>The leading dimension for the matrix C. </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>/#dnnl::status::success on success and a status describing the error otherwise. </dd></dl> |
| |
| </div> |
| </div> |
| </div><!-- contents --> |
| <!-- start footer part --> |
| <hr class="footer"/><address class="footer"><small> |
| Generated on Thu Jan 5 2023 00:58:43 for mxnet by  <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/> |
| </a> 1.8.13 |
| </small></address> |
| </body> |
| </html> |