oneAPI Deep Neural Network Library (oneDNN)  1.4.0
Performance library for Deep Learning
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
dnnl.h
Go to the documentation of this file.
1 /*******************************************************************************
2 * Copyright 2016-2020 Intel Corporation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *******************************************************************************/
16 
19 
20 #ifndef DNNL_H
21 #define DNNL_H
22 
23 #include "dnnl_config.h"
24 #include "dnnl_types.h"
25 #include "dnnl_version.h"
26 
28 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
29 
30 // Set target version for OpenCL explicitly to suppress a compiler warning.
31 #ifndef CL_TARGET_OPENCL_VERSION
32 #define CL_TARGET_OPENCL_VERSION 120
33 #endif
34 
35 #include <CL/cl.h>
36 #endif
37 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
45 
48 
51 
66  const_dnnl_primitive_desc_t hint_forward_primitive_desc);
67 
77 
89 
97 
113  dnnl_primitive_desc_t *primitive_desc, const_dnnl_op_desc_t op_desc,
115  const_dnnl_primitive_desc_t hint_forward_primitive_desc);
116 
125  dnnl_primitive_desc_t *primitive_desc,
126  const_dnnl_primitive_desc_t existing_primitive_desc);
127 
143  const_dnnl_primitive_desc_t primitive_desc,
145 
152  dnnl_primitive_desc_t primitive_desc);
153 
194  const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what,
195  int index, void *result);
196 
212  const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what,
213  int index);
214 
228 int DNNL_API dnnl_primitive_desc_query_s32(
229  const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what,
230  int index);
231 
239  const_dnnl_primitive_desc_t primitive_desc);
240 
255  dnnl_stream_t stream, int nargs, const dnnl_exec_arg_t *args);
256 
270  const_dnnl_primitive_t primitive,
271  const_dnnl_primitive_desc_t *primitive_desc);
272 
279 
281 
284 
294 
303 
310 
319 
330 
354  const_dnnl_primitive_attr_t attr, dnnl_dim_t *count, int *mask,
355  const float **scales);
356 
403  dnnl_primitive_attr_t attr, dnnl_dim_t count, int mask,
404  const float *scales);
405 
433  dnnl_primitive_attr_t attr, int arg, dnnl_dim_t *count, int *mask,
434  const float **scales);
435 
457  dnnl_primitive_attr_t attr, int arg, dnnl_dim_t count, int mask,
458  const float *scales);
459 
489  const_dnnl_primitive_attr_t attr, int arg, dnnl_dim_t *count, int *mask,
490  const int32_t **zero_points);
491 
518  dnnl_primitive_attr_t attr, int arg, dnnl_dim_t count, int mask,
519  const int32_t *zero_points);
520 
535 
549 
556 
563 
568 int DNNL_API dnnl_post_ops_len(const_dnnl_post_ops_t post_ops);
569 
578  const_dnnl_post_ops_t post_ops, int index);
579 
605  dnnl_post_ops_t post_ops, float scale);
606 
617  const_dnnl_post_ops_t post_ops, int index, float *scale);
618 
638  float scale, dnnl_alg_kind_t alg_kind, float alpha, float beta);
639 
653  const_dnnl_post_ops_t post_ops, int index, float *scale,
654  dnnl_alg_kind_t *alg_kind, float *alpha, float *beta);
655 
687  dnnl_data_type_t weights_data_type, dnnl_data_type_t bias_data_type,
688  dnnl_data_type_t dst_data_type, dnnl_dim_t count, int mask,
689  const float *scales);
690 
708  const_dnnl_post_ops_t post_ops, int index,
709  dnnl_data_type_t *weights_data_type, dnnl_data_type_t *bias_data_type,
710  dnnl_data_type_t *dst_data_type, dnnl_dim_t *count, int *mask,
711  const float **scales);
712 
747  dnnl_data_type_t weights_data_type, dnnl_data_type_t bias_data_type,
748  dnnl_data_type_t dst_data_type, dnnl_dim_t count, int mask,
749  const float *scales);
750 
768  const_dnnl_post_ops_t post_ops, int index,
769  dnnl_data_type_t *weights_data_type, dnnl_data_type_t *bias_data_type,
770  dnnl_data_type_t *dst_data_type, dnnl_dim_t *count, int *mask,
771  const float **scales);
772 
774 
776 
779 
796  dnnl_memory_desc_t *memory_desc, int ndims, const dnnl_dims_t dims,
797  dnnl_data_type_t data_type, const dnnl_dims_t strides);
798 
818  dnnl_memory_desc_t *memory_desc, int ndims, const dnnl_dims_t dims,
819  dnnl_data_type_t data_type, dnnl_format_tag_t tag);
820 
827 //
836  dnnl_memory_desc_t *memory_desc,
837  const dnnl_memory_desc_t *parent_memory_desc, const dnnl_dims_t dims,
838  const dnnl_dims_t offsets);
839 
880  dnnl_memory_desc_t *out_memory_desc,
881  const dnnl_memory_desc_t *in_memory_desc, int ndims,
882  const dnnl_dims_t dims);
883 
925  dnnl_memory_desc_t *out_memory_desc,
926  const dnnl_memory_desc_t *in_memory_desc, const int *permutation);
927 
937 int DNNL_API dnnl_memory_desc_equal(
938  const dnnl_memory_desc_t *lhs, const dnnl_memory_desc_t *rhs);
939 
945 size_t DNNL_API dnnl_memory_desc_get_size(
946  const dnnl_memory_desc_t *memory_desc);
947 
969  const dnnl_memory_desc_t *memory_desc, dnnl_engine_t engine,
970  void *handle);
971 
979  const_dnnl_memory_t memory, const dnnl_memory_desc_t **memory_desc);
980 
988  const_dnnl_memory_t memory, dnnl_engine_t *engine);
989 
1014  const_dnnl_memory_t memory, void **mapped_ptr);
1015 
1031  const_dnnl_memory_t memory, void *mapped_ptr);
1032 
1041  const_dnnl_memory_t memory, void **handle);
1042 
1053  dnnl_memory_t memory, void *handle);
1054 
1084  dnnl_memory_t memory, void *handle, dnnl_stream_t stream);
1085 
1086 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
1094  const_dnnl_memory_t memory, cl_mem *mem_object);
1095 
1105  dnnl_memory_t memory, cl_mem mem_object);
1106 #endif
1107 
1114 
1116 
1119 
1122 
1142  dnnl_primitive_desc_t *reorder_primitive_desc,
1143  const dnnl_memory_desc_t *src_desc, dnnl_engine_t src_engine,
1144  const dnnl_memory_desc_t *dst_desc, dnnl_engine_t dst_engine,
1146 
1148 
1151 
1176  dnnl_primitive_desc_t *concat_primitive_desc,
1177  const dnnl_memory_desc_t *dst_desc, int n, int concat_dimension,
1178  const dnnl_memory_desc_t *src_descs, const_dnnl_primitive_attr_t attr,
1179  dnnl_engine_t engine);
1180 
1182 
1185 
1208  dnnl_primitive_desc_t *sum_primitive_desc,
1209  const dnnl_memory_desc_t *dst_desc, int n, const float *scales,
1210  const dnnl_memory_desc_t *src_descs, const_dnnl_primitive_attr_t attr,
1211  dnnl_engine_t engine);
1212 
1214 
1217 
1245  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src0_desc,
1246  const dnnl_memory_desc_t *src1_desc,
1247  const dnnl_memory_desc_t *dst_desc);
1248 
1250 
1253 
1290  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc,
1291  const dnnl_memory_desc_t *weights_desc,
1292  const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc,
1293  const dnnl_dims_t strides, const dnnl_dims_t padding_l,
1294  const dnnl_dims_t padding_r);
1295 
1335  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc,
1336  const dnnl_memory_desc_t *weights_desc,
1337  const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc,
1338  const dnnl_dims_t strides, const dnnl_dims_t dilates,
1339  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1340 
1370  dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind,
1371  const dnnl_memory_desc_t *diff_src_desc,
1372  const dnnl_memory_desc_t *weights_desc,
1373  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1374  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1375 
1408  dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind,
1409  const dnnl_memory_desc_t *diff_src_desc,
1410  const dnnl_memory_desc_t *weights_desc,
1411  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1412  const dnnl_dims_t dilates, const dnnl_dims_t padding_l,
1413  const dnnl_dims_t padding_r);
1414 
1448  dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind,
1449  const dnnl_memory_desc_t *src_desc,
1450  const dnnl_memory_desc_t *diff_weights_desc,
1451  const dnnl_memory_desc_t *diff_bias_desc,
1452  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1453  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1454 
1491  dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind,
1492  const dnnl_memory_desc_t *src_desc,
1493  const dnnl_memory_desc_t *diff_weights_desc,
1494  const dnnl_memory_desc_t *diff_bias_desc,
1495  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1496  const dnnl_dims_t dilates, const dnnl_dims_t padding_l,
1497  const dnnl_dims_t padding_r);
1498 
1500 
1503 
1539  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc,
1540  const dnnl_memory_desc_t *weights_desc,
1541  const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc,
1542  const dnnl_dims_t strides, const dnnl_dims_t padding_l,
1543  const dnnl_dims_t padding_r);
1544 
1583  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc,
1584  const dnnl_memory_desc_t *weights_desc,
1585  const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc,
1586  const dnnl_dims_t strides, const dnnl_dims_t dilates,
1587  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1588 
1617  dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind,
1618  const dnnl_memory_desc_t *diff_src_desc,
1619  const dnnl_memory_desc_t *weights_desc,
1620  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1621  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1622 
1654  dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind,
1655  const dnnl_memory_desc_t *diff_src_desc,
1656  const dnnl_memory_desc_t *weights_desc,
1657  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1658  const dnnl_dims_t dilates, const dnnl_dims_t padding_l,
1659  const dnnl_dims_t padding_r);
1660 
1693  dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind,
1694  const dnnl_memory_desc_t *src_desc,
1695  const dnnl_memory_desc_t *diff_weights_desc,
1696  const dnnl_memory_desc_t *diff_bias_desc,
1697  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1698  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1699 
1735  dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind,
1736  const dnnl_memory_desc_t *src_desc,
1737  const dnnl_memory_desc_t *diff_weights_desc,
1738  const dnnl_memory_desc_t *diff_bias_desc,
1739  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1740  const dnnl_dims_t dilates, const dnnl_dims_t padding_l,
1741  const dnnl_dims_t padding_r);
1742 
1744 
1747 
1766  const dnnl_memory_desc_t *data_desc, int axis, dnnl_dim_t group_size);
1767 
1783  dnnl_shuffle_desc_t *shuffle_desc,
1784  const dnnl_memory_desc_t *diff_data_desc, int axis,
1785  dnnl_dim_t group_size);
1786 
1788 
1791 
1813  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *data_desc,
1814  float alpha, float beta);
1815 
1836  dnnl_eltwise_desc_t *eltwise_desc, dnnl_alg_kind_t alg_kind,
1837  const dnnl_memory_desc_t *diff_data_desc,
1838  const dnnl_memory_desc_t *data_desc, float alpha, float beta);
1839 
1841 
1844 
1862  const dnnl_memory_desc_t *data_desc, int softmax_axis);
1863 
1880  dnnl_softmax_desc_t *softmax_desc,
1881  const dnnl_memory_desc_t *diff_data_desc,
1882  const dnnl_memory_desc_t *data_desc, int softmax_axis);
1883 
1885 
1888 
1906  const dnnl_memory_desc_t *data_desc, int logsoftmax_axis);
1907 
1924  dnnl_logsoftmax_desc_t *logsoftmax_desc,
1925  const dnnl_memory_desc_t *diff_data_desc,
1926  const dnnl_memory_desc_t *data_desc, int logsoftmax_axis);
1927 
1929 
1932 
1965  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc,
1966  const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides,
1967  const dnnl_dims_t kernel, const dnnl_dims_t padding_l,
1968  const dnnl_dims_t padding_r);
1969 
1998  dnnl_pooling_desc_t *pool_desc, dnnl_alg_kind_t alg_kind,
1999  const dnnl_memory_desc_t *diff_src_desc,
2000  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
2001  const dnnl_dims_t kernel, const dnnl_dims_t padding_l,
2002  const dnnl_dims_t padding_r);
2003 
2005 
2008 
2035  const dnnl_memory_desc_t *data_desc, dnnl_dim_t local_size, float alpha,
2036  float beta, float k);
2037 
2063  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_data_desc,
2064  const dnnl_memory_desc_t *data_desc, dnnl_dim_t local_size, float alpha,
2065  float beta, float k);
2066 
2068 
2071 
2112  const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags);
2113 
2149  const dnnl_memory_desc_t *diff_data_desc,
2150  const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags);
2151 
2153 
2156 
2197  const dnnl_memory_desc_t *data_desc,
2198  const dnnl_memory_desc_t *stat_desc, float epsilon, unsigned flags);
2199 
2238  const dnnl_memory_desc_t *diff_data_desc,
2239  const dnnl_memory_desc_t *data_desc,
2240  const dnnl_memory_desc_t *stat_desc, float epsilon, unsigned flags);
2241 
2243 
2246 
2274  const dnnl_memory_desc_t *src_desc,
2275  const dnnl_memory_desc_t *weights_desc,
2276  const dnnl_memory_desc_t *bias_desc,
2277  const dnnl_memory_desc_t *dst_desc);
2278 
2299  dnnl_inner_product_desc_t *ip_desc,
2300  const dnnl_memory_desc_t *diff_src_desc,
2301  const dnnl_memory_desc_t *weights_desc,
2302  const dnnl_memory_desc_t *diff_dst_desc);
2303 
2328  dnnl_inner_product_desc_t *ip_desc, const dnnl_memory_desc_t *src_desc,
2329  const dnnl_memory_desc_t *diff_weights_desc,
2330  const dnnl_memory_desc_t *diff_bias_desc,
2331  const dnnl_memory_desc_t *diff_dst_desc);
2332 
2334 
2337 
2378  dnnl_primitive_attr_t attr, const float scale, const float shift);
2379 
2410  dnnl_primitive_attr_t attr, dnnl_dim_t count, int mask,
2411  const float *scales);
2412 
2414 
2417 
2469  const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction,
2470  const dnnl_memory_desc_t *src_layer_desc,
2471  const dnnl_memory_desc_t *src_iter_desc,
2472  const dnnl_memory_desc_t *weights_layer_desc,
2473  const dnnl_memory_desc_t *weights_iter_desc,
2474  const dnnl_memory_desc_t *bias_desc,
2475  const dnnl_memory_desc_t *dst_layer_desc,
2476  const dnnl_memory_desc_t *dst_iter_desc, unsigned flags, float alpha,
2477  float beta);
2478 
2547  const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction,
2548  const dnnl_memory_desc_t *src_layer_desc,
2549  const dnnl_memory_desc_t *src_iter_desc,
2550  const dnnl_memory_desc_t *weights_layer_desc,
2551  const dnnl_memory_desc_t *weights_iter_desc,
2552  const dnnl_memory_desc_t *bias_desc,
2553  const dnnl_memory_desc_t *dst_layer_desc,
2554  const dnnl_memory_desc_t *dst_iter_desc,
2555  const dnnl_memory_desc_t *diff_src_layer_desc,
2556  const dnnl_memory_desc_t *diff_src_iter_desc,
2557  const dnnl_memory_desc_t *diff_weights_layer_desc,
2558  const dnnl_memory_desc_t *diff_weights_iter_desc,
2559  const dnnl_memory_desc_t *diff_bias_desc,
2560  const dnnl_memory_desc_t *diff_dst_layer_desc,
2561  const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags,
2562  float alpha, float beta);
2563 
2622  const dnnl_memory_desc_t *src_layer_desc,
2623  const dnnl_memory_desc_t *src_iter_desc,
2624  const dnnl_memory_desc_t *src_iter_c_desc,
2625  const dnnl_memory_desc_t *weights_layer_desc,
2626  const dnnl_memory_desc_t *weights_iter_desc,
2627  const dnnl_memory_desc_t *bias_desc,
2628  const dnnl_memory_desc_t *dst_layer_desc,
2629  const dnnl_memory_desc_t *dst_iter_desc,
2630  const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags);
2631 
2694  const dnnl_memory_desc_t *src_layer_desc,
2695  const dnnl_memory_desc_t *src_iter_desc,
2696  const dnnl_memory_desc_t *src_iter_c_desc,
2697  const dnnl_memory_desc_t *weights_layer_desc,
2698  const dnnl_memory_desc_t *weights_iter_desc,
2699  const dnnl_memory_desc_t *weights_peephole_desc,
2700  const dnnl_memory_desc_t *bias_desc,
2701  const dnnl_memory_desc_t *dst_layer_desc,
2702  const dnnl_memory_desc_t *dst_iter_desc,
2703  const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags);
2704 
2776  const dnnl_memory_desc_t *src_layer_desc,
2777  const dnnl_memory_desc_t *src_iter_desc,
2778  const dnnl_memory_desc_t *src_iter_c_desc,
2779  const dnnl_memory_desc_t *weights_layer_desc,
2780  const dnnl_memory_desc_t *weights_iter_desc,
2781  const dnnl_memory_desc_t *weights_peephole_desc,
2782  const dnnl_memory_desc_t *weights_projection_desc,
2783  const dnnl_memory_desc_t *bias_desc,
2784  const dnnl_memory_desc_t *dst_layer_desc,
2785  const dnnl_memory_desc_t *dst_iter_desc,
2786  const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags);
2787 
2870  const dnnl_memory_desc_t *src_layer_desc,
2871  const dnnl_memory_desc_t *src_iter_desc,
2872  const dnnl_memory_desc_t *src_iter_c_desc,
2873  const dnnl_memory_desc_t *weights_layer_desc,
2874  const dnnl_memory_desc_t *weights_iter_desc,
2875  const dnnl_memory_desc_t *bias_desc,
2876  const dnnl_memory_desc_t *dst_layer_desc,
2877  const dnnl_memory_desc_t *dst_iter_desc,
2878  const dnnl_memory_desc_t *dst_iter_c_desc,
2879  const dnnl_memory_desc_t *diff_src_layer_desc,
2880  const dnnl_memory_desc_t *diff_src_iter_desc,
2881  const dnnl_memory_desc_t *diff_src_iter_c_desc,
2882  const dnnl_memory_desc_t *diff_weights_layer_desc,
2883  const dnnl_memory_desc_t *diff_weights_iter_desc,
2884  const dnnl_memory_desc_t *diff_bias_desc,
2885  const dnnl_memory_desc_t *diff_dst_layer_desc,
2886  const dnnl_memory_desc_t *diff_dst_iter_desc,
2887  const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags);
2888 
2981  dnnl_rnn_direction_t direction,
2982  const dnnl_memory_desc_t *src_layer_desc,
2983  const dnnl_memory_desc_t *src_iter_desc,
2984  const dnnl_memory_desc_t *src_iter_c_desc,
2985  const dnnl_memory_desc_t *weights_layer_desc,
2986  const dnnl_memory_desc_t *weights_iter_desc,
2987  const dnnl_memory_desc_t *weights_peephole_desc,
2988  const dnnl_memory_desc_t *bias_desc,
2989  const dnnl_memory_desc_t *dst_layer_desc,
2990  const dnnl_memory_desc_t *dst_iter_desc,
2991  const dnnl_memory_desc_t *dst_iter_c_desc,
2992  const dnnl_memory_desc_t *diff_src_layer_desc,
2993  const dnnl_memory_desc_t *diff_src_iter_desc,
2994  const dnnl_memory_desc_t *diff_src_iter_c_desc,
2995  const dnnl_memory_desc_t *diff_weights_layer_desc,
2996  const dnnl_memory_desc_t *diff_weights_iter_desc,
2997  const dnnl_memory_desc_t *diff_weights_peephole_desc,
2998  const dnnl_memory_desc_t *diff_bias_desc,
2999  const dnnl_memory_desc_t *diff_dst_layer_desc,
3000  const dnnl_memory_desc_t *diff_dst_iter_desc,
3001  const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags);
3002 
3112  dnnl_rnn_direction_t direction,
3113  const dnnl_memory_desc_t *src_layer_desc,
3114  const dnnl_memory_desc_t *src_iter_desc,
3115  const dnnl_memory_desc_t *src_iter_c_desc,
3116  const dnnl_memory_desc_t *weights_layer_desc,
3117  const dnnl_memory_desc_t *weights_iter_desc,
3118  const dnnl_memory_desc_t *weights_peephole_desc,
3119  const dnnl_memory_desc_t *weights_projection_desc,
3120  const dnnl_memory_desc_t *bias_desc,
3121  const dnnl_memory_desc_t *dst_layer_desc,
3122  const dnnl_memory_desc_t *dst_iter_desc,
3123  const dnnl_memory_desc_t *dst_iter_c_desc,
3124  const dnnl_memory_desc_t *diff_src_layer_desc,
3125  const dnnl_memory_desc_t *diff_src_iter_desc,
3126  const dnnl_memory_desc_t *diff_src_iter_c_desc,
3127  const dnnl_memory_desc_t *diff_weights_layer_desc,
3128  const dnnl_memory_desc_t *diff_weights_iter_desc,
3129  const dnnl_memory_desc_t *diff_weights_peephole_desc,
3130  const dnnl_memory_desc_t *diff_weights_projection_desc,
3131  const dnnl_memory_desc_t *diff_bias_desc,
3132  const dnnl_memory_desc_t *diff_dst_layer_desc,
3133  const dnnl_memory_desc_t *diff_dst_iter_desc,
3134  const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags);
3135 
3183  const dnnl_memory_desc_t *src_layer_desc,
3184  const dnnl_memory_desc_t *src_iter_desc,
3185  const dnnl_memory_desc_t *weights_layer_desc,
3186  const dnnl_memory_desc_t *weights_iter_desc,
3187  const dnnl_memory_desc_t *bias_desc,
3188  const dnnl_memory_desc_t *dst_layer_desc,
3189  const dnnl_memory_desc_t *dst_iter_desc, unsigned flags);
3190 
3254  const dnnl_memory_desc_t *src_layer_desc,
3255  const dnnl_memory_desc_t *src_iter_desc,
3256  const dnnl_memory_desc_t *weights_layer_desc,
3257  const dnnl_memory_desc_t *weights_iter_desc,
3258  const dnnl_memory_desc_t *bias_desc,
3259  const dnnl_memory_desc_t *dst_layer_desc,
3260  const dnnl_memory_desc_t *dst_iter_desc,
3261  const dnnl_memory_desc_t *diff_src_layer_desc,
3262  const dnnl_memory_desc_t *diff_src_iter_desc,
3263  const dnnl_memory_desc_t *diff_weights_layer_desc,
3264  const dnnl_memory_desc_t *diff_weights_iter_desc,
3265  const dnnl_memory_desc_t *diff_bias_desc,
3266  const dnnl_memory_desc_t *diff_dst_layer_desc,
3267  const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags);
3268 
3312  const dnnl_memory_desc_t *src_layer_desc,
3313  const dnnl_memory_desc_t *src_iter_desc,
3314  const dnnl_memory_desc_t *weights_layer_desc,
3315  const dnnl_memory_desc_t *weights_iter_desc,
3316  const dnnl_memory_desc_t *bias_desc,
3317  const dnnl_memory_desc_t *dst_layer_desc,
3318  const dnnl_memory_desc_t *dst_iter_desc, unsigned flags);
3319 
3383  dnnl_rnn_direction_t direction,
3384  const dnnl_memory_desc_t *src_layer_desc,
3385  const dnnl_memory_desc_t *src_iter_desc,
3386  const dnnl_memory_desc_t *weights_layer_desc,
3387  const dnnl_memory_desc_t *weights_iter_desc,
3388  const dnnl_memory_desc_t *bias_desc,
3389  const dnnl_memory_desc_t *dst_layer_desc,
3390  const dnnl_memory_desc_t *dst_iter_desc,
3391  const dnnl_memory_desc_t *diff_src_layer_desc,
3392  const dnnl_memory_desc_t *diff_src_iter_desc,
3393  const dnnl_memory_desc_t *diff_weights_layer_desc,
3394  const dnnl_memory_desc_t *diff_weights_iter_desc,
3395  const dnnl_memory_desc_t *diff_bias_desc,
3396  const dnnl_memory_desc_t *diff_dst_layer_desc,
3397  const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags);
3398 
3400 
3403 
3424  const dnnl_memory_desc_t *src_desc,
3425  const dnnl_memory_desc_t *weights_desc,
3426  const dnnl_memory_desc_t *bias_desc,
3427  const dnnl_memory_desc_t *dst_desc);
3428 
3430 
3433 
3459  dnnl_alg_kind_t alg_kind, const float *factors,
3460  const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *dst_desc);
3461 
3480  dnnl_resampling_desc_t *resampling_desc, dnnl_alg_kind_t alg_kind,
3481  const float *factors, const dnnl_memory_desc_t *diff_src_desc,
3482  const dnnl_memory_desc_t *diff_dst_desc);
3483 
3485 
3487 
3490 
3495 size_t DNNL_API dnnl_engine_get_count(dnnl_engine_kind_t kind);
3496 
3506  dnnl_engine_t *engine, dnnl_engine_kind_t kind, size_t index);
3507 
3508 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
3518  dnnl_engine_kind_t kind, cl_device_id device, cl_context context);
3519 #endif
3520 
3528  dnnl_engine_t engine, dnnl_engine_kind_t *kind);
3529 
3530 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
3538  dnnl_engine_t engine, cl_context *context);
3539 
3547  dnnl_engine_t engine, cl_device_id *device);
3548 #endif
3549 
3556 
3558 
3561 
3571 
3578 
3579 #if DNNL_CPU_THREADING_RUNTIME == DNNL_RUNTIME_THREADPOOL
3580 dnnl_status_t DNNL_API dnnl_stream_attr_set_threadpool(
3591  dnnl_stream_attr_t attr, void *threadpool);
3592 
3604 dnnl_status_t DNNL_API dnnl_stream_attr_get_threadpool(
3605  dnnl_stream_attr_t attr, void **threadpool);
3606 #endif
3607 
3616  dnnl_stream_t *stream, dnnl_engine_t engine, unsigned flags);
3617 
3627  dnnl_engine_t engine, unsigned flags, const_dnnl_stream_attr_t attr);
3628 
3629 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
3639  dnnl_stream_t *stream, dnnl_engine_t engine, cl_command_queue queue);
3640 
3648  dnnl_stream_t stream, cl_command_queue *queue);
3649 #endif
3650 
3657 
3664 
3666 
3669 
3683 dnnl_status_t DNNL_API dnnl_set_verbose(int level);
3684 
3694 dnnl_status_t DNNL_API dnnl_set_jit_dump(int enable);
3695 
3702 const dnnl_version_t DNNL_API *dnnl_version();
3703 
3728 dnnl_status_t DNNL_API dnnl_set_jit_profiling_flags(unsigned flags);
3729 
3753 dnnl_status_t DNNL_API dnnl_set_jit_profiling_jitdumpdir(const char *dir);
3754 
3784 
3786 
3789 
3830 dnnl_status_t DNNL_API dnnl_sgemm(char transa, char transb, dnnl_dim_t M,
3831  dnnl_dim_t N, dnnl_dim_t K, float alpha, const float *A, dnnl_dim_t lda,
3832  const float *B, dnnl_dim_t ldb, float beta, float *C, dnnl_dim_t ldc);
3833 
3897 dnnl_status_t DNNL_API dnnl_gemm_u8s8s32(char transa, char transb, char offsetc,
3898  dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const uint8_t *A,
3899  dnnl_dim_t lda, uint8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo,
3900  float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co);
3901 
3965 dnnl_status_t DNNL_API dnnl_gemm_s8s8s32(char transa, char transb, char offsetc,
3966  dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const int8_t *A,
3967  dnnl_dim_t lda, int8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo,
3968  float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co);
3969 
3970 #if DNNL_CPU_RUNTIME == DNNL_RUNTIME_THREADPOOL
3971 dnnl_status_t DNNL_API dnnl_sgemm_tp(char transa, char transb, dnnl_dim_t M,
3975  dnnl_dim_t N, dnnl_dim_t K, float alpha, const float *A, dnnl_dim_t lda,
3976  const float *B, dnnl_dim_t ldb, float beta, float *C, dnnl_dim_t ldc,
3977  void *tp);
3978 
3982 dnnl_status_t DNNL_API dnnl_gemm_u8s8s32_tp(char transa, char transb,
3983  char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha,
3984  const uint8_t *A, dnnl_dim_t lda, uint8_t ao, const int8_t *B,
3985  dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc,
3986  const int32_t *co, void *tp);
3987 
3991 dnnl_status_t DNNL_API dnnl_gemm_s8s8s32_tp(char transa, char transb,
3992  char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha,
3993  const int8_t *A, dnnl_dim_t lda, int8_t ao, const int8_t *B,
3994  dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc,
3995  const int32_t *co, void *tp);
3996 #endif
3997 
3999 
4001 
4002 #ifdef __cplusplus
4003 }
4004 #endif
4005 
4006 #endif
dnnl_status_t DNNL_API dnnl_primitive_attr_create(dnnl_primitive_attr_t *attr)
Creates an empty (default) primitive attributes with all the parameters set to their default values...
dnnl_status_t DNNL_API dnnl_post_ops_get_params_dw_k3s1p1(const_dnnl_post_ops_t post_ops, int index, dnnl_data_type_t *weights_data_type, dnnl_data_type_t *bias_data_type, dnnl_data_type_t *dst_data_type, dnnl_dim_t *count, int *mask, const float **scales)
Returns the parameters of an depthwise post-op with stride 1.
dnnl_status_t DNNL_API dnnl_primitive_attr_set_rnn_data_qparams(dnnl_primitive_attr_t attr, const float scale, const float shift)
Set quantization scale and shift parameters for RNN data tensors.
dnnl_status_t DNNL_API dnnl_post_ops_get_params_dw_k3s2p1(const_dnnl_post_ops_t post_ops, int index, dnnl_data_type_t *weights_data_type, dnnl_data_type_t *bias_data_type, dnnl_data_type_t *dst_data_type, dnnl_dim_t *count, int *mask, const float **scales)
Returns the parameters of an depthwise post-op with stride 2.
dnnl_status_t DNNL_API dnnl_lstm_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags)
Initializes a descriptor for LSTM forward propagation primitive.
prop_kind
Propagation kind.
Definition: dnnl.hpp:440
dnnl_status_t DNNL_API dnnl_gemm_s8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const int8_t *A, dnnl_dim_t lda, int8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co)
Performs integer matrix-matrix multiply on 8-bit signed matrix A, 8-bit signed matrix B...
dnnl_status_t DNNL_API dnnl_primitive_desc_get_attr(const_dnnl_primitive_desc_t primitive_desc, const_dnnl_primitive_attr_t *attr)
Returns a constant reference to the attributes of a primitive descriptor.
dnnl_status_t DNNL_API dnnl_convolution_backward_weights_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a convolution weights gradient primitive.
dnnl_status_t DNNL_API dnnl_gemm_u8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const uint8_t *A, dnnl_dim_t lda, uint8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co)
Performs integer matrix-matrix multiply on 8-bit unsigned matrix A, 8-bit signed matrix B...
A descriptor for an RNN operation.
Definition: dnnl_types.h:1486
dnnl_primitive_kind_t
Kinds of primitives.
Definition: dnnl_types.h:704
An opaque structure to describe a primitive.
dnnl_status_t DNNL_API dnnl_lstm_backward_desc_init_v2(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *weights_peephole_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_src_iter_c_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_weights_peephole_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags)
Initializes a descriptor for an LSTM (with or without peephole) backward propagation primitive...
dnnl_status_t DNNL_API dnnl_memory_desc_init_by_strides(dnnl_memory_desc_t *memory_desc, int ndims, const dnnl_dims_t dims, dnnl_data_type_t data_type, const dnnl_dims_t strides)
Initializes a memory descriptor using dimensions and strides.
dnnl_status_t DNNL_API dnnl_dilated_convolution_forward_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated convolution forward propagation primitive. ...
dnnl_status_t DNNL_API dnnl_lrn_backward_desc_init(dnnl_lrn_desc_t *lrn_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, dnnl_dim_t local_size, float alpha, float beta, float k)
Initializes a descriptor for LRN backward propagation primitive.
dnnl_status_t DNNL_API dnnl_layer_normalization_backward_desc_init(dnnl_layer_normalization_desc_t *lnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, const dnnl_memory_desc_t *stat_desc, float epsilon, unsigned flags)
Initializes a descriptor for a layer normalization backward propagation primitive.
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_next(dnnl_primitive_desc_iterator_t iterator)
Advances the primitive descriptor iterator to point to the next available implementation.
C API types definitions.
const void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: dnnl_types.h:1122
An opaque structure for primitive descriptor attributes.
dnnl_status_t DNNL_API dnnl_convolution_backward_data_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a convolution backward propagation primitive.
An opaque structure to describe a memory.
dnnl_engine_kind_t
Kinds of engines.
Definition: dnnl_types.h:1646
dnnl_status_t DNNL_API dnnl_lstm_forward_desc_init_v3(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *weights_peephole_desc, const dnnl_memory_desc_t *weights_projection_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags)
Initializes a descriptor for an LSTM (with or without peephole and with or without recurrent projecti...
dnnl_status_t DNNL_API dnnl_memory_destroy(dnnl_memory_t memory)
Destroys a memory object.
dnnl_status_t DNNL_API dnnl_memory_get_data_handle(const_dnnl_memory_t memory, void **handle)
Returns memory object's data handle.
dnnl_status_t DNNL_API dnnl_primitive_attr_destroy(dnnl_primitive_attr_t attr)
Destroys primitive attributes.
A descriptor of a pooling operation.
Definition: dnnl_types.h:1291
dnnl_status_t DNNL_API dnnl_vanilla_rnn_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags, float alpha, float beta)
Initializes a descriptor for vanilla RNN backward propagation primitive.
dnnl_status_t DNNL_API dnnl_post_ops_get_params_eltwise(const_dnnl_post_ops_t post_ops, int index, float *scale, dnnl_alg_kind_t *alg_kind, float *alpha, float *beta)
Returns the parameters of an elementwise post-up.
int DNNL_API dnnl_primitive_desc_query_s32(const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what, int index)
Queries primitive descriptor for a signed 32bit int.
An opaque structure to describe a primitive descriptor iterator.
dnnl_status_t DNNL_API dnnl_memory_set_data_handle(dnnl_memory_t memory, void *handle)
Sets a memory object's data handle.
dnnl_status_t DNNL_API dnnl_stream_create(dnnl_stream_t *stream, dnnl_engine_t engine, unsigned flags)
Creates an execution stream.
dnnl_status_t DNNL_API dnnl_memory_desc_permute_axes(dnnl_memory_desc_t *out_memory_desc, const dnnl_memory_desc_t *in_memory_desc, const int *permutation)
Initializes a memory descriptor by permuting axes in an existing one.
dnnl_status_t DNNL_API dnnl_primitive_desc_query(const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what, int index, void *result)
Queries a primitive descriptor for various pieces of information.
dnnl_status_t DNNL_API dnnl_memory_unmap_data(const_dnnl_memory_t memory, void *mapped_ptr)
Unmaps a memory object and writes back any changes made to the previously mapped memory buffer...
dnnl_status_t DNNL_API dnnl_lstm_forward_desc_init_v2(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *weights_peephole_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags)
Initializes a descriptor for an LSTM (with or without peephole) forward propagation primitive...
dnnl_status_t DNNL_API dnnl_gru_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags)
Initializes a descriptor for GRU backward propagation primitive.
dnnl_status_t DNNL_API dnnl_deconvolution_backward_weights_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a deconvolution weights gradient primitive.
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_create(dnnl_primitive_desc_iterator_t *iterator, 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)
Creates a primitive descriptor iterator.
dnnl_status_t DNNL_API dnnl_post_ops_append_eltwise(dnnl_post_ops_t post_ops, float scale, dnnl_alg_kind_t alg_kind, float alpha, float beta)
Appends an elementwise post-op.
A descriptor of a matrix multiplication operation.
Definition: dnnl_types.h:1594
dnnl_status_t DNNL_API dnnl_primitive_attr_get_scales(dnnl_primitive_attr_t attr, int arg, dnnl_dim_t *count, int *mask, const float **scales)
Returns primitive attributes scaling factors correspondence mask and values for a given memory argume...
dnnl_status_t DNNL_API dnnl_set_jit_profiling_flags(unsigned flags)
Sets library profiling flags.
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)
Sets output scaling factors correspondence mask and values.
dnnl_query_t
Primitive descriptor query specification.
Definition: dnnl_types.h:2002
A descriptor of a binary operation.
Definition: dnnl_types.h:1568
dnnl_status_t DNNL_API dnnl_gru_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, unsigned flags)
Initializes a descriptor for GRU forward propagation primitive.
Structure containing version information as per Semantic Versioning
Definition: dnnl_types.h:2120
dnnl_status_t DNNL_API dnnl_primitive_attr_set_zero_points(dnnl_primitive_attr_t attr, int arg, dnnl_dim_t count, int mask, const int32_t *zero_points)
Sets primitive attributes zero points for primitive operations for a given memory argument...
int DNNL_API dnnl_post_ops_len(const_dnnl_post_ops_t post_ops)
Returns the length of post-ops.
dnnl_status_t DNNL_API dnnl_softmax_forward_desc_init(dnnl_softmax_desc_t *softmax_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, int softmax_axis)
Initializes a descriptor for softmax forward propagation primitive.
A descriptor of a convolution operation.
Definition: dnnl_types.h:1134
dnnl_status_t DNNL_API dnnl_dilated_convolution_backward_weights_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated convolution weights gradient primitive.
dnnl_status_t DNNL_API dnnl_sum_primitive_desc_create(dnnl_primitive_desc_t *sum_primitive_desc, const dnnl_memory_desc_t *dst_desc, int n, const float *scales, const dnnl_memory_desc_t *src_descs, const_dnnl_primitive_attr_t attr, dnnl_engine_t engine)
Creates a primitive descriptor for an (out-of-place) sum primitive.
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition: dnnl_types.h:1700
dnnl_status_t DNNL_API dnnl_logsoftmax_backward_desc_init(dnnl_logsoftmax_desc_t *logsoftmax_desc, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, int logsoftmax_axis)
Initializes a descriptor for logsoftmax backward propagation primitive.
dnnl_status_t DNNL_API dnnl_concat_primitive_desc_create(dnnl_primitive_desc_t *concat_primitive_desc, const dnnl_memory_desc_t *dst_desc, int n, int concat_dimension, const dnnl_memory_desc_t *src_descs, const_dnnl_primitive_attr_t attr, dnnl_engine_t engine)
Creates a primitive descriptor for an out-of-place concatenation primitive.
dnnl_status_t DNNL_API dnnl_lrn_forward_desc_init(dnnl_lrn_desc_t *lrn_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *data_desc, dnnl_dim_t local_size, float alpha, float beta, float k)
Initializes a descriptor for LRN forward propagation primitive.
dnnl_status_t DNNL_API dnnl_shuffle_backward_desc_init(dnnl_shuffle_desc_t *shuffle_desc, const dnnl_memory_desc_t *diff_data_desc, int axis, dnnl_dim_t group_size)
Initializes a descriptor for shuffle backward propagation primitive.
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)
Creates a primitive descriptor.
An opaque structure to describe an engine.
size_t DNNL_API dnnl_memory_desc_get_size(const dnnl_memory_desc_t *memory_desc)
Returns the size of a memory descriptor.
A descriptor of a element-wise operation.
Definition: dnnl_types.h:1209
dnnl_status_t DNNL_API dnnl_post_ops_get_params_sum(const_dnnl_post_ops_t post_ops, int index, float *scale)
Returns the parameters of an accumulation (sum) post-op.
A descriptor of a Softmax operation.
Definition: dnnl_types.h:1261
An opaque structure for a chain of post operations.
A descriptor of an inner product operation.
Definition: dnnl_types.h:1430
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition: dnnl_types.h:1470
dnnl_status_t DNNL_API dnnl_memory_get_memory_desc(const_dnnl_memory_t memory, const dnnl_memory_desc_t **memory_desc)
Returns the memory descriptor for a memory object.
dnnl_status_t
Status values returned by the library functions.
Definition: dnnl_types.h:39
dnnl_status_t DNNL_API dnnl_primitive_create(dnnl_primitive_t *primitive, const_dnnl_primitive_desc_t primitive_desc)
Creates a primitive.
dnnl_status_t DNNL_API dnnl_post_ops_destroy(dnnl_post_ops_t post_ops)
Destroys post-ops.
const dnnl_memory_desc_t DNNL_API * dnnl_primitive_desc_query_md(const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what, int index)
Queries primitive descriptor for a memory descriptor.
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition: dnnl_types.h:944
dnnl_status_t DNNL_API dnnl_primitive_desc_clone(dnnl_primitive_desc_t *primitive_desc, const_dnnl_primitive_desc_t existing_primitive_desc)
Clones a primitive descriptor.
dnnl_status_t DNNL_API dnnl_engine_get_ocl_context(dnnl_engine_t engine, cl_context *context)
Returns the OpenCL context associated with an engine.
dnnl_status_t DNNL_API dnnl_lstm_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_src_iter_c_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags)
Initializes a descriptor for an LSTM backward propagation primitive.
dnnl_data_type_t
Data type specification.
Definition: dnnl_types.h:62
dnnl_status_t DNNL_API dnnl_engine_create(dnnl_engine_t *engine, dnnl_engine_kind_t kind, size_t index)
Creates an engine.
dnnl_format_tag_t
Memory format tag specification.
Definition: dnnl_types.h:164
dnnl_status_t DNNL_API dnnl_memory_get_engine(const_dnnl_memory_t memory, dnnl_engine_t *engine)
Returns the engine of a memory object.
dnnl_status_t DNNL_API dnnl_memory_map_data(const_dnnl_memory_t memory, void **mapped_ptr)
Maps a memory object and returns a host-side pointer to a memory buffer with a copy of its contents...
dnnl_status_t DNNL_API dnnl_inner_product_backward_data_desc_init(dnnl_inner_product_desc_t *ip_desc, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc)
Initializes descriptor for inner product backward propagation.
const dnnl_version_t DNNL_API * dnnl_version()
Returns library version information.
dnnl_status_t DNNL_API dnnl_lstm_backward_desc_init_v3(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *weights_peephole_desc, const dnnl_memory_desc_t *weights_projection_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_src_iter_c_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_weights_peephole_desc, const dnnl_memory_desc_t *diff_weights_projection_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags)
Initializes a descriptor for an LSTM (with or without peephole and with or with out recurrent project...
dnnl_status_t DNNL_API dnnl_pooling_forward_desc_init(dnnl_pooling_desc_t *pool_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t kernel, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for pooling forward propagation primitive.
A descriptor of a shuffle operation.
Definition: dnnl_types.h:1187
dnnl_status_t DNNL_API dnnl_reorder_primitive_desc_create(dnnl_primitive_desc_t *reorder_primitive_desc, const dnnl_memory_desc_t *src_desc, dnnl_engine_t src_engine, const dnnl_memory_desc_t *dst_desc, dnnl_engine_t dst_engine, const_dnnl_primitive_attr_t attr)
Creates a primitive descriptor for a reorder primitive.
dnnl_status_t DNNL_API dnnl_lbr_gru_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags)
Initializes a descriptor for LBR GRU backward propagation primitive.
dnnl_status_t DNNL_API dnnl_shuffle_forward_desc_init(dnnl_shuffle_desc_t *shuffle_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, int axis, dnnl_dim_t group_size)
Initializes a descriptor for shuffle forward propagation primitive.
dnnl_status_t DNNL_API dnnl_memory_desc_reshape(dnnl_memory_desc_t *out_memory_desc, const dnnl_memory_desc_t *in_memory_desc, int ndims, const dnnl_dims_t dims)
Initializes a memory descriptor by reshaping an existing one.
dnnl_status_t DNNL_API dnnl_set_max_cpu_isa(dnnl_cpu_isa_t isa)
Sets the maximal ISA the library can dispatch to on the CPU.
dnnl_status_t DNNL_API dnnl_memory_desc_init_by_tag(dnnl_memory_desc_t *memory_desc, int ndims, const dnnl_dims_t dims, dnnl_data_type_t data_type, dnnl_format_tag_t tag)
Initializes a memory descriptor using dimensions and memory format tag.
dnnl_status_t DNNL_API dnnl_eltwise_forward_desc_init(dnnl_eltwise_desc_t *eltwise_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *data_desc, float alpha, float beta)
Initializes a descriptor for eltwise forward propagation primitive.
dnnl_status_t DNNL_API dnnl_primitive_get_primitive_desc(const_dnnl_primitive_t primitive, const_dnnl_primitive_desc_t *primitive_desc)
Retrieves a constant reference to the primitive descriptor of a given primitive.
int DNNL_API dnnl_memory_desc_equal(const dnnl_memory_desc_t *lhs, const dnnl_memory_desc_t *rhs)
Compares two memory descriptors.
dnnl_status_t DNNL_API dnnl_post_ops_append_dw_k3s1p1(dnnl_post_ops_t post_ops, dnnl_data_type_t weights_data_type, dnnl_data_type_t bias_data_type, dnnl_data_type_t dst_data_type, dnnl_dim_t count, int mask, const float *scales)
Appends a depthwise post-op convolution with stride 1.
dnnl_status_t DNNL_API dnnl_post_ops_append_dw_k3s2p1(dnnl_post_ops_t post_ops, dnnl_data_type_t weights_data_type, dnnl_data_type_t bias_data_type, dnnl_data_type_t dst_data_type, dnnl_dim_t count, int mask, const float *scales)
Appends a depthwise post-op convolution with stride 2.
A descriptor of a Layer Normalization operation.
Definition: dnnl_types.h:1393
dnnl_status_t DNNL_API dnnl_convolution_forward_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a convolution forward propagation primitive.
dnnl_status_t DNNL_API dnnl_set_jit_profiling_jitdumpdir(const char *dir)
Sets JIT dump output path.
dnnl_status_t DNNL_API dnnl_primitive_destroy(dnnl_primitive_t primitive)
Destroys a primitive.
dnnl_status_t DNNL_API dnnl_dilated_convolution_backward_data_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated convolution backward propagation primitive.
dnnl_status_t DNNL_API dnnl_deconvolution_forward_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a deconvolution forward propagation primitive.
dnnl_status_t DNNL_API dnnl_post_ops_append_sum(dnnl_post_ops_t post_ops, float scale)
Appends an accumulation (sum) to post-ops.
dnnl_status_t DNNL_API dnnl_primitive_attr_get_output_scales(const_dnnl_primitive_attr_t attr, dnnl_dim_t *count, int *mask, const float **scales)
Returns primitive attributes output scaling factors correspondence mask and values.
dnnl_status_t DNNL_API dnnl_binary_desc_init(dnnl_binary_desc_t *binary_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src0_desc, const dnnl_memory_desc_t *src1_desc, const dnnl_memory_desc_t *dst_desc)
Initializes a descriptor for a binary primitive.
dnnl_status_t DNNL_API dnnl_stream_create_v2(dnnl_stream_t *stream, dnnl_engine_t engine, unsigned flags, const_dnnl_stream_attr_t attr)
Creates an execution stream.
dnnl_status_t DNNL_API dnnl_set_jit_dump(int enable)
Configures dumping of JIT-generated code.
dnnl_status_t DNNL_API dnnl_memory_set_data_handle_v2(dnnl_memory_t memory, void *handle, dnnl_stream_t stream)
Sets a memory object's data handle.
dnnl_status_t DNNL_API dnnl_deconvolution_backward_data_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a deconvolution backward propagation primitive.
dnnl_status_t DNNL_API dnnl_stream_wait(dnnl_stream_t stream)
Waits for all primitives in the execution stream to finish computations.
dnnl_primitive_kind_t DNNL_API dnnl_post_ops_get_kind(const_dnnl_post_ops_t post_ops, int index)
Returns the kind of a post-op entry.
dnnl_status_t DNNL_API dnnl_batch_normalization_backward_desc_init(dnnl_batch_normalization_desc_t *bnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags)
Initializes a descriptor for a batch normalization backward propagation primitive.
dnnl_status_t DNNL_API dnnl_primitive_attr_set_scales(dnnl_primitive_attr_t attr, int arg, dnnl_dim_t count, int mask, const float *scales)
Sets primitive attributes scaling factors for primitive operations for a given memory argument...
struct dnnl_stream_attr * dnnl_stream_attr_t
An execution stream attributes handle.
Definition: dnnl_types.h:2091
Memory descriptor.
Definition: dnnl_types.h:1050
dnnl_status_t DNNL_API dnnl_engine_get_ocl_device(dnnl_engine_t engine, cl_device_id *device)
Returns the OpenCL device associated with an engine.
dnnl_status_t DNNL_API dnnl_layer_normalization_forward_desc_init(dnnl_layer_normalization_desc_t *lnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, const dnnl_memory_desc_t *stat_desc, float epsilon, unsigned flags)
Initializes a descriptor for layer normalization forward propagation primitive.
dnnl_status_t DNNL_API dnnl_engine_destroy(dnnl_engine_t engine)
Destroys an engine.
dnnl_status_t DNNL_API dnnl_softmax_backward_desc_init(dnnl_softmax_desc_t *softmax_desc, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, int softmax_axis)
Initializes a descriptor for softmax backward propagation primitive.
dnnl_status_t DNNL_API dnnl_primitive_execute(const_dnnl_primitive_t primitive, dnnl_stream_t stream, int nargs, const dnnl_exec_arg_t *args)
Executes a primitive.
dnnl_status_t DNNL_API dnnl_sgemm(char transa, char transb, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const float *A, dnnl_dim_t lda, const float *B, dnnl_dim_t ldb, float beta, float *C, dnnl_dim_t ldc)
Performs single-precision matrix-matrix multiply.
const struct dnnl_stream_attr * const_dnnl_stream_attr_t
A constant execution stream attributes handle.
Definition: dnnl_types.h:2093
dnnl_status_t DNNL_API dnnl_primitive_attr_set_rnn_weights_qparams(dnnl_primitive_attr_t attr, dnnl_dim_t count, int mask, const float *scales)
Sets quantization scaling factors for RNN weights tensors.
dnnl_status_t DNNL_API dnnl_memory_get_ocl_mem_object(const_dnnl_memory_t memory, cl_mem *mem_object)
Returns an OpenCL memory object associated with a memory object.
A structure that contains an index and a memory object, and is used to pass arguments to dnnl_primiti...
Definition: dnnl_types.h:1963
dnnl_status_t DNNL_API dnnl_memory_create(dnnl_memory_t *memory, const dnnl_memory_desc_t *memory_desc, dnnl_engine_t engine, void *handle)
Creates a memory object.
dnnl_status_t DNNL_API dnnl_eltwise_backward_desc_init(dnnl_eltwise_desc_t *eltwise_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, float alpha, float beta)
Initializes a descriptor for eltwise backward propagation primitive.
dnnl_status_t DNNL_API dnnl_primitive_attr_set_scratchpad_mode(dnnl_primitive_attr_t attr, dnnl_scratchpad_mode_t mode)
Sets primitive attributes scratchpad mode.
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_backward_weights_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated deconvolution weights gradient primitive.
dnnl_status_t DNNL_API dnnl_stream_create_ocl(dnnl_stream_t *stream, dnnl_engine_t engine, cl_command_queue queue)
Creates an execution stream for a given engine associated with an OpenCL command queue.
dnnl_status_t DNNL_API dnnl_pooling_backward_desc_init(dnnl_pooling_desc_t *pool_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t kernel, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for pooling backward propagation primitive.
dnnl_alg_kind_t
Kinds of algorithms.
Definition: dnnl_types.h:748
dnnl_status_t DNNL_API dnnl_memory_set_ocl_mem_object(dnnl_memory_t memory, cl_mem mem_object)
Sets OpenCL memory object associated with a memory object.
dnnl_status_t DNNL_API dnnl_primitive_desc_destroy(dnnl_primitive_desc_t primitive_desc)
Destroys a primitive descriptor.
dnnl_status_t DNNL_API dnnl_post_ops_create(dnnl_post_ops_t *post_ops)
Creates empty post-ops sequence.
A descriptor of a Local Response Normalization (LRN) operation.
Definition: dnnl_types.h:1329
dnnl_dim_t dnnl_dims_t[DNNL_MAX_NDIMS]
A type to describe tensor dimensions.
Definition: dnnl_types.h:947
dnnl_status_t DNNL_API dnnl_engine_get_kind(dnnl_engine_t engine, dnnl_engine_kind_t *kind)
Returns the kind of an engine.
dnnl_status_t DNNL_API dnnl_primitive_attr_clone(dnnl_primitive_attr_t *attr, const_dnnl_primitive_attr_t existing_attr)
Clones primitive attributes.
dnnl_status_t DNNL_API dnnl_stream_attr_destroy(dnnl_stream_attr_t attr)
Destroys execution stream attributes.
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_destroy(dnnl_primitive_desc_iterator_t iterator)
Destroys a primitive descriptor iterator.
dnnl_status_t DNNL_API dnnl_logsoftmax_forward_desc_init(dnnl_logsoftmax_desc_t *logsoftmax_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, int logsoftmax_axis)
Initializes a descriptor for logsoftmax forward propagation primitive.
dnnl_status_t DNNL_API dnnl_inner_product_backward_weights_desc_init(dnnl_inner_product_desc_t *ip_desc, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc)
Initializes descriptor for inner product weights gradient primitive.
A descriptor of a Batch Normalization operation.
Definition: dnnl_types.h:1360
dnnl_status_t DNNL_API dnnl_lbr_gru_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, unsigned flags)
Initializes a descriptor for LBR GRU forward propagation primitive.
dnnl_status_t DNNL_API dnnl_matmul_desc_init(dnnl_matmul_desc_t *matmul_desc, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc)
Initializes a matrix multiplication descriptor.
dnnl_primitive_desc_t DNNL_API dnnl_primitive_desc_iterator_fetch(const_dnnl_primitive_desc_iterator_t iterator)
Fetches the current primitive descriptor from a primitive descriptor iterator.
size_t DNNL_API dnnl_engine_get_count(dnnl_engine_kind_t kind)
Returns the number of engines of a particular kind.
An opaque structure to describe a primitive descriptor.
An opaque structure to describe an execution stream.
dnnl_status_t DNNL_API dnnl_resampling_backward_desc_init(dnnl_resampling_desc_t *resampling_desc, dnnl_alg_kind_t alg_kind, const float *factors, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *diff_dst_desc)
Initializes a descriptor for resampling backward propagation primitive.
dnnl_status_t DNNL_API dnnl_memory_desc_init_submemory(dnnl_memory_desc_t *memory_desc, const dnnl_memory_desc_t *parent_memory_desc, const dnnl_dims_t dims, const dnnl_dims_t offsets)
Initializes a memory descriptor for a region inside an area described by an existing memory descripto...
A descriptor of resampling operation.
Definition: dnnl_types.h:1616
dnnl_status_t DNNL_API dnnl_set_verbose(int level)
Configures verbose output to stdout.
dnnl_status_t DNNL_API dnnl_primitive_attr_get_post_ops(const_dnnl_primitive_attr_t attr, const_dnnl_post_ops_t *post_ops)
Returns primitive attributes post-ops.
dnnl_prop_kind_t
Kinds of propagation.
Definition: dnnl_types.h:677
dnnl_status_t DNNL_API dnnl_batch_normalization_forward_desc_init(dnnl_batch_normalization_desc_t *bnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags)
Initializes a descriptor for a batch normalization forward propagation primitive. ...
dnnl_status_t DNNL_API dnnl_stream_destroy(dnnl_stream_t stream)
Destroys an execution stream.
dnnl_status_t DNNL_API dnnl_stream_attr_create(dnnl_stream_attr_t *attr, dnnl_engine_kind_t kind)
Creates execution stream attributes for a stream that runs on an engine of a particular kind...
dnnl_status_t DNNL_API dnnl_stream_get_ocl_command_queue(dnnl_stream_t stream, cl_command_queue *queue)
Returns the OpenCL command queue associated with an execution stream.
dnnl_status_t DNNL_API dnnl_vanilla_rnn_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, unsigned flags, float alpha, float beta)
Initializes a descriptor for vanilla RNN forward propagation primitive.
dnnl_status_t DNNL_API dnnl_inner_product_forward_desc_init(dnnl_inner_product_desc_t *ip_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc)
Initializes descriptor for inner product forward propagation.
dnnl_status_t DNNL_API dnnl_resampling_forward_desc_init(dnnl_resampling_desc_t *resampling_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const float *factors, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *dst_desc)
Initializes a descriptor for a resampling forward propagation primitive.
dnnl_status_t DNNL_API dnnl_primitive_attr_get_zero_points(const_dnnl_primitive_attr_t attr, int arg, dnnl_dim_t *count, int *mask, const int32_t **zero_points)
Returns count, correspondence zero point mask, and a pointer to a constant int32_t array of zero_poin...
dnnl_status_t DNNL_API dnnl_engine_create_ocl(dnnl_engine_t *engine, dnnl_engine_kind_t kind, cl_device_id device, cl_context context)
Creates an engine associated with an OpenCL device and an OpenCL context.
dnnl_cpu_isa_t
CPU instruction set flags.
Definition: dnnl_types.h:2150
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_backward_data_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated deconvolution backward propagation primitive.
dnnl_status_t DNNL_API dnnl_primitive_attr_set_post_ops(dnnl_primitive_attr_t attr, const_dnnl_post_ops_t post_ops)
Sets primitive attributes post-ops.
dnnl_status_t DNNL_API dnnl_primitive_attr_get_scratchpad_mode(const_dnnl_primitive_attr_t attr, dnnl_scratchpad_mode_t *mode)
Returns the primitive attributes scratchpad mode.
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_forward_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated deconvolution forward propagation primitive.