Deep Neural Network Library (DNNL)  1.2.2
Performance library for Deep Learning
dnnl.h
Go to the documentation of this file.
1 /*******************************************************************************
2 * Copyright 2016-2019 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 #include <CL/cl.h>
30 #endif
31 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
39 
42 
45 
60  const_dnnl_primitive_desc_t hint_forward_primitive_desc);
61 
71 
83 
91 
107  dnnl_primitive_desc_t *primitive_desc, const_dnnl_op_desc_t op_desc,
109  const_dnnl_primitive_desc_t hint_forward_primitive_desc);
110 
119  dnnl_primitive_desc_t *primitive_desc,
120  const_dnnl_primitive_desc_t existing_primitive_desc);
121 
137  const_dnnl_primitive_desc_t primitive_desc,
139 
146  dnnl_primitive_desc_t primitive_desc);
147 
188  const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what,
189  int index, void *result);
190 
206  const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what,
207  int index);
208 
222 int DNNL_API dnnl_primitive_desc_query_s32(
223  const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what,
224  int index);
225 
233  const_dnnl_primitive_desc_t primitive_desc);
234 
249  dnnl_stream_t stream, int nargs, const dnnl_exec_arg_t *args);
250 
264  const_dnnl_primitive_t primitive,
265  const_dnnl_primitive_desc_t *primitive_desc);
266 
273 
275 
278 
288 
297 
304 
313 
324 
348  const_dnnl_primitive_attr_t attr, dnnl_dim_t *count, int *mask,
349  const float **scales);
350 
397  dnnl_primitive_attr_t attr, dnnl_dim_t count, int mask,
398  const float *scales);
399 
427  dnnl_primitive_attr_t attr, int arg, dnnl_dim_t *count, int *mask,
428  const float **scales);
429 
451  dnnl_primitive_attr_t attr, int arg, dnnl_dim_t count, int mask,
452  const float *scales);
453 
483  const_dnnl_primitive_attr_t attr, int arg, dnnl_dim_t *count, int *mask,
484  const int32_t **zero_points);
485 
512  dnnl_primitive_attr_t attr, int arg, dnnl_dim_t count, int mask,
513  const int32_t *zero_points);
514 
529 
543 
550 
557 
562 int DNNL_API dnnl_post_ops_len(const_dnnl_post_ops_t post_ops);
563 
572  const_dnnl_post_ops_t post_ops, int index);
573 
599  dnnl_post_ops_t post_ops, float scale);
600 
611  const_dnnl_post_ops_t post_ops, int index, float *scale);
612 
632  float scale, dnnl_alg_kind_t alg_kind, float alpha, float beta);
633 
647  const_dnnl_post_ops_t post_ops, int index, float *scale,
648  dnnl_alg_kind_t *alg_kind, float *alpha, float *beta);
649 
651 
653 
656 
673  dnnl_memory_desc_t *memory_desc, int ndims, const dnnl_dims_t dims,
674  dnnl_data_type_t data_type, const dnnl_dims_t strides);
675 
695  dnnl_memory_desc_t *memory_desc, int ndims, const dnnl_dims_t dims,
696  dnnl_data_type_t data_type, dnnl_format_tag_t tag);
697 
704 //
713  dnnl_memory_desc_t *memory_desc,
714  const dnnl_memory_desc_t *parent_memory_desc, const dnnl_dims_t dims,
715  const dnnl_dims_t offsets);
716 
733  dnnl_memory_desc_t *out_memory_desc,
734  const dnnl_memory_desc_t *in_memory_desc, int ndims,
735  const dnnl_dims_t dims);
736 
746 int DNNL_API dnnl_memory_desc_equal(
747  const dnnl_memory_desc_t *lhs, const dnnl_memory_desc_t *rhs);
748 
754 size_t DNNL_API dnnl_memory_desc_get_size(
755  const dnnl_memory_desc_t *memory_desc);
756 
772  const dnnl_memory_desc_t *memory_desc, dnnl_engine_t engine,
773  void *handle);
774 
782  const_dnnl_memory_t memory, const dnnl_memory_desc_t **memory_desc);
783 
791  const_dnnl_memory_t memory, dnnl_engine_t *engine);
792 
817  const_dnnl_memory_t memory, void **mapped_ptr);
818 
833  const_dnnl_memory_t memory, void *mapped_ptr);
834 
843  const_dnnl_memory_t memory, void **handle);
844 
853  dnnl_memory_t memory, void *handle);
854 
855 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
856 dnnl_status_t DNNL_API dnnl_memory_get_ocl_mem_object(
863  const_dnnl_memory_t memory, cl_mem *mem_object);
864 
871 dnnl_status_t DNNL_API dnnl_memory_set_ocl_mem_object(
872  dnnl_memory_t memory, cl_mem mem_object);
873 #endif
874 
881 
883 
886 
889 
909  dnnl_primitive_desc_t *reorder_primitive_desc,
910  const dnnl_memory_desc_t *src_desc, dnnl_engine_t src_engine,
911  const dnnl_memory_desc_t *dst_desc, dnnl_engine_t dst_engine,
913 
915 
918 
943  dnnl_primitive_desc_t *concat_primitive_desc,
944  const dnnl_memory_desc_t *dst_desc, int n, int concat_dimension,
945  const dnnl_memory_desc_t *src_descs, const_dnnl_primitive_attr_t attr,
946  dnnl_engine_t engine);
947 
949 
952 
975  dnnl_primitive_desc_t *sum_primitive_desc,
976  const dnnl_memory_desc_t *dst_desc, int n, const float *scales,
977  const dnnl_memory_desc_t *src_descs, const_dnnl_primitive_attr_t attr,
978  dnnl_engine_t engine);
979 
981 
984 
1012  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src0_desc,
1013  const dnnl_memory_desc_t *src1_desc,
1014  const dnnl_memory_desc_t *dst_desc);
1015 
1017 
1020 
1057  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc,
1058  const dnnl_memory_desc_t *weights_desc,
1059  const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc,
1060  const dnnl_dims_t strides, const dnnl_dims_t padding_l,
1061  const dnnl_dims_t padding_r);
1062 
1102  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc,
1103  const dnnl_memory_desc_t *weights_desc,
1104  const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc,
1105  const dnnl_dims_t strides, const dnnl_dims_t dilates,
1106  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1107 
1137  dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind,
1138  const dnnl_memory_desc_t *diff_src_desc,
1139  const dnnl_memory_desc_t *weights_desc,
1140  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1141  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1142 
1175  dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind,
1176  const dnnl_memory_desc_t *diff_src_desc,
1177  const dnnl_memory_desc_t *weights_desc,
1178  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1179  const dnnl_dims_t dilates, const dnnl_dims_t padding_l,
1180  const dnnl_dims_t padding_r);
1181 
1215  dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind,
1216  const dnnl_memory_desc_t *src_desc,
1217  const dnnl_memory_desc_t *diff_weights_desc,
1218  const dnnl_memory_desc_t *diff_bias_desc,
1219  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1220  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1221 
1258  dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind,
1259  const dnnl_memory_desc_t *src_desc,
1260  const dnnl_memory_desc_t *diff_weights_desc,
1261  const dnnl_memory_desc_t *diff_bias_desc,
1262  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1263  const dnnl_dims_t dilates, const dnnl_dims_t padding_l,
1264  const dnnl_dims_t padding_r);
1265 
1267 
1270 
1306  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc,
1307  const dnnl_memory_desc_t *weights_desc,
1308  const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc,
1309  const dnnl_dims_t strides, const dnnl_dims_t padding_l,
1310  const dnnl_dims_t padding_r);
1311 
1350  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc,
1351  const dnnl_memory_desc_t *weights_desc,
1352  const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc,
1353  const dnnl_dims_t strides, const dnnl_dims_t dilates,
1354  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1355 
1384  dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind,
1385  const dnnl_memory_desc_t *diff_src_desc,
1386  const dnnl_memory_desc_t *weights_desc,
1387  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1388  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1389 
1421  dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind,
1422  const dnnl_memory_desc_t *diff_src_desc,
1423  const dnnl_memory_desc_t *weights_desc,
1424  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1425  const dnnl_dims_t dilates, const dnnl_dims_t padding_l,
1426  const dnnl_dims_t padding_r);
1427 
1460  dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind,
1461  const dnnl_memory_desc_t *src_desc,
1462  const dnnl_memory_desc_t *diff_weights_desc,
1463  const dnnl_memory_desc_t *diff_bias_desc,
1464  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1465  const dnnl_dims_t padding_l, const dnnl_dims_t padding_r);
1466 
1502  dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind,
1503  const dnnl_memory_desc_t *src_desc,
1504  const dnnl_memory_desc_t *diff_weights_desc,
1505  const dnnl_memory_desc_t *diff_bias_desc,
1506  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1507  const dnnl_dims_t dilates, const dnnl_dims_t padding_l,
1508  const dnnl_dims_t padding_r);
1509 
1511 
1514 
1533  const dnnl_memory_desc_t *data_desc, int axis, dnnl_dim_t group_size);
1534 
1550  dnnl_shuffle_desc_t *shuffle_desc,
1551  const dnnl_memory_desc_t *diff_data_desc, int axis,
1552  dnnl_dim_t group_size);
1553 
1555 
1558 
1580  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *data_desc,
1581  float alpha, float beta);
1582 
1603  dnnl_eltwise_desc_t *eltwise_desc, dnnl_alg_kind_t alg_kind,
1604  const dnnl_memory_desc_t *diff_data_desc,
1605  const dnnl_memory_desc_t *data_desc, float alpha, float beta);
1606 
1608 
1611 
1629  const dnnl_memory_desc_t *data_desc, int softmax_axis);
1630 
1647  dnnl_softmax_desc_t *softmax_desc,
1648  const dnnl_memory_desc_t *diff_data_desc,
1649  const dnnl_memory_desc_t *data_desc, int softmax_axis);
1650 
1652 
1655 
1673  const dnnl_memory_desc_t *data_desc, int logsoftmax_axis);
1674 
1691  dnnl_logsoftmax_desc_t *logsoftmax_desc,
1692  const dnnl_memory_desc_t *diff_data_desc,
1693  const dnnl_memory_desc_t *data_desc, int logsoftmax_axis);
1694 
1696 
1699 
1732  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc,
1733  const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides,
1734  const dnnl_dims_t kernel, const dnnl_dims_t padding_l,
1735  const dnnl_dims_t padding_r);
1736 
1765  dnnl_pooling_desc_t *pool_desc, dnnl_alg_kind_t alg_kind,
1766  const dnnl_memory_desc_t *diff_src_desc,
1767  const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides,
1768  const dnnl_dims_t kernel, const dnnl_dims_t padding_l,
1769  const dnnl_dims_t padding_r);
1770 
1772 
1775 
1802  const dnnl_memory_desc_t *data_desc, dnnl_dim_t local_size, float alpha,
1803  float beta, float k);
1804 
1830  dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_data_desc,
1831  const dnnl_memory_desc_t *data_desc, dnnl_dim_t local_size, float alpha,
1832  float beta, float k);
1833 
1835 
1838 
1879  const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags);
1880 
1916  const dnnl_memory_desc_t *diff_data_desc,
1917  const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags);
1918 
1920 
1923 
1964  const dnnl_memory_desc_t *data_desc,
1965  const dnnl_memory_desc_t *stat_desc, float epsilon, unsigned flags);
1966 
2005  const dnnl_memory_desc_t *diff_data_desc,
2006  const dnnl_memory_desc_t *data_desc,
2007  const dnnl_memory_desc_t *stat_desc, float epsilon, unsigned flags);
2008 
2010 
2013 
2041  const dnnl_memory_desc_t *src_desc,
2042  const dnnl_memory_desc_t *weights_desc,
2043  const dnnl_memory_desc_t *bias_desc,
2044  const dnnl_memory_desc_t *dst_desc);
2045 
2066  dnnl_inner_product_desc_t *ip_desc,
2067  const dnnl_memory_desc_t *diff_src_desc,
2068  const dnnl_memory_desc_t *weights_desc,
2069  const dnnl_memory_desc_t *diff_dst_desc);
2070 
2095  dnnl_inner_product_desc_t *ip_desc, const dnnl_memory_desc_t *src_desc,
2096  const dnnl_memory_desc_t *diff_weights_desc,
2097  const dnnl_memory_desc_t *diff_bias_desc,
2098  const dnnl_memory_desc_t *diff_dst_desc);
2099 
2101 
2104 
2145  dnnl_primitive_attr_t attr, const float scale, const float shift);
2146 
2177  dnnl_primitive_attr_t attr, dnnl_dim_t count, int mask,
2178  const float *scales);
2179 
2181 
2184 
2236  const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction,
2237  const dnnl_memory_desc_t *src_layer_desc,
2238  const dnnl_memory_desc_t *src_iter_desc,
2239  const dnnl_memory_desc_t *weights_layer_desc,
2240  const dnnl_memory_desc_t *weights_iter_desc,
2241  const dnnl_memory_desc_t *bias_desc,
2242  const dnnl_memory_desc_t *dst_layer_desc,
2243  const dnnl_memory_desc_t *dst_iter_desc, unsigned flags, float alpha,
2244  float beta);
2245 
2314  const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction,
2315  const dnnl_memory_desc_t *src_layer_desc,
2316  const dnnl_memory_desc_t *src_iter_desc,
2317  const dnnl_memory_desc_t *weights_layer_desc,
2318  const dnnl_memory_desc_t *weights_iter_desc,
2319  const dnnl_memory_desc_t *bias_desc,
2320  const dnnl_memory_desc_t *dst_layer_desc,
2321  const dnnl_memory_desc_t *dst_iter_desc,
2322  const dnnl_memory_desc_t *diff_src_layer_desc,
2323  const dnnl_memory_desc_t *diff_src_iter_desc,
2324  const dnnl_memory_desc_t *diff_weights_layer_desc,
2325  const dnnl_memory_desc_t *diff_weights_iter_desc,
2326  const dnnl_memory_desc_t *diff_bias_desc,
2327  const dnnl_memory_desc_t *diff_dst_layer_desc,
2328  const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags,
2329  float alpha, float beta);
2330 
2384  const dnnl_memory_desc_t *src_layer_desc,
2385  const dnnl_memory_desc_t *src_iter_desc,
2386  const dnnl_memory_desc_t *src_iter_c_desc,
2387  const dnnl_memory_desc_t *weights_layer_desc,
2388  const dnnl_memory_desc_t *weights_iter_desc,
2389  const dnnl_memory_desc_t *bias_desc,
2390  const dnnl_memory_desc_t *dst_layer_desc,
2391  const dnnl_memory_desc_t *dst_iter_desc,
2392  const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags);
2393 
2471  const dnnl_memory_desc_t *src_layer_desc,
2472  const dnnl_memory_desc_t *src_iter_desc,
2473  const dnnl_memory_desc_t *src_iter_c_desc,
2474  const dnnl_memory_desc_t *weights_layer_desc,
2475  const dnnl_memory_desc_t *weights_iter_desc,
2476  const dnnl_memory_desc_t *bias_desc,
2477  const dnnl_memory_desc_t *dst_layer_desc,
2478  const dnnl_memory_desc_t *dst_iter_desc,
2479  const dnnl_memory_desc_t *dst_iter_c_desc,
2480  const dnnl_memory_desc_t *diff_src_layer_desc,
2481  const dnnl_memory_desc_t *diff_src_iter_desc,
2482  const dnnl_memory_desc_t *diff_src_iter_c_desc,
2483  const dnnl_memory_desc_t *diff_weights_layer_desc,
2484  const dnnl_memory_desc_t *diff_weights_iter_desc,
2485  const dnnl_memory_desc_t *diff_bias_desc,
2486  const dnnl_memory_desc_t *diff_dst_layer_desc,
2487  const dnnl_memory_desc_t *diff_dst_iter_desc,
2488  const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags);
2489 
2537  const dnnl_memory_desc_t *src_layer_desc,
2538  const dnnl_memory_desc_t *src_iter_desc,
2539  const dnnl_memory_desc_t *weights_layer_desc,
2540  const dnnl_memory_desc_t *weights_iter_desc,
2541  const dnnl_memory_desc_t *bias_desc,
2542  const dnnl_memory_desc_t *dst_layer_desc,
2543  const dnnl_memory_desc_t *dst_iter_desc, unsigned flags);
2544 
2608  const dnnl_memory_desc_t *src_layer_desc,
2609  const dnnl_memory_desc_t *src_iter_desc,
2610  const dnnl_memory_desc_t *weights_layer_desc,
2611  const dnnl_memory_desc_t *weights_iter_desc,
2612  const dnnl_memory_desc_t *bias_desc,
2613  const dnnl_memory_desc_t *dst_layer_desc,
2614  const dnnl_memory_desc_t *dst_iter_desc,
2615  const dnnl_memory_desc_t *diff_src_layer_desc,
2616  const dnnl_memory_desc_t *diff_src_iter_desc,
2617  const dnnl_memory_desc_t *diff_weights_layer_desc,
2618  const dnnl_memory_desc_t *diff_weights_iter_desc,
2619  const dnnl_memory_desc_t *diff_bias_desc,
2620  const dnnl_memory_desc_t *diff_dst_layer_desc,
2621  const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags);
2622 
2666  const dnnl_memory_desc_t *src_layer_desc,
2667  const dnnl_memory_desc_t *src_iter_desc,
2668  const dnnl_memory_desc_t *weights_layer_desc,
2669  const dnnl_memory_desc_t *weights_iter_desc,
2670  const dnnl_memory_desc_t *bias_desc,
2671  const dnnl_memory_desc_t *dst_layer_desc,
2672  const dnnl_memory_desc_t *dst_iter_desc, unsigned flags);
2673 
2737  dnnl_rnn_direction_t direction,
2738  const dnnl_memory_desc_t *src_layer_desc,
2739  const dnnl_memory_desc_t *src_iter_desc,
2740  const dnnl_memory_desc_t *weights_layer_desc,
2741  const dnnl_memory_desc_t *weights_iter_desc,
2742  const dnnl_memory_desc_t *bias_desc,
2743  const dnnl_memory_desc_t *dst_layer_desc,
2744  const dnnl_memory_desc_t *dst_iter_desc,
2745  const dnnl_memory_desc_t *diff_src_layer_desc,
2746  const dnnl_memory_desc_t *diff_src_iter_desc,
2747  const dnnl_memory_desc_t *diff_weights_layer_desc,
2748  const dnnl_memory_desc_t *diff_weights_iter_desc,
2749  const dnnl_memory_desc_t *diff_bias_desc,
2750  const dnnl_memory_desc_t *diff_dst_layer_desc,
2751  const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags);
2752 
2754 
2757 
2778  const dnnl_memory_desc_t *src_desc,
2779  const dnnl_memory_desc_t *weights_desc,
2780  const dnnl_memory_desc_t *bias_desc,
2781  const dnnl_memory_desc_t *dst_desc);
2782 
2784 
2787 
2813  dnnl_alg_kind_t alg_kind, const float *factors,
2814  const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *dst_desc);
2815 
2834  dnnl_resampling_desc_t *resampling_desc, dnnl_alg_kind_t alg_kind,
2835  const float *factors, const dnnl_memory_desc_t *diff_src_desc,
2836  const dnnl_memory_desc_t *diff_dst_desc);
2837 
2839 
2841 
2844 
2849 size_t DNNL_API dnnl_engine_get_count(dnnl_engine_kind_t kind);
2850 
2860  dnnl_engine_t *engine, dnnl_engine_kind_t kind, size_t index);
2861 
2862 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
2863 dnnl_status_t DNNL_API dnnl_engine_create_ocl(dnnl_engine_t *engine,
2872  dnnl_engine_kind_t kind, cl_device_id device, cl_context context);
2873 #endif
2874 
2882  dnnl_engine_t engine, dnnl_engine_kind_t *kind);
2883 
2884 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
2885 dnnl_status_t DNNL_API dnnl_engine_get_ocl_context(
2892  dnnl_engine_t engine, cl_context *context);
2893 
2900 dnnl_status_t DNNL_API dnnl_engine_get_ocl_device(
2901  dnnl_engine_t engine, cl_device_id *device);
2902 #endif
2903 
2910 
2912 
2915 
2918  dnnl_stream_t *stream, dnnl_engine_t engine, unsigned flags);
2919 
2920 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
2921 dnnl_status_t DNNL_API dnnl_stream_create_ocl(
2930  dnnl_stream_t *stream, dnnl_engine_t engine, cl_command_queue queue);
2931 
2938 dnnl_status_t DNNL_API dnnl_stream_get_ocl_command_queue(
2939  dnnl_stream_t stream, cl_command_queue *queue);
2940 #endif
2941 
2948 
2955 
2957 
2960 
2974 dnnl_status_t DNNL_API dnnl_set_verbose(int level);
2975 
2985 dnnl_status_t DNNL_API dnnl_set_jit_dump(int enable);
2986 
2993 const dnnl_version_t DNNL_API *dnnl_version();
2994 
3018 dnnl_status_t DNNL_API dnnl_set_jit_profiling_flags(unsigned flags);
3019 
3043 dnnl_status_t DNNL_API dnnl_set_jit_profiling_jitdumpdir(const char *dir);
3044 
3074 
3076 
3079 
3120 dnnl_status_t DNNL_API dnnl_sgemm(char transa, char transb, dnnl_dim_t M,
3121  dnnl_dim_t N, dnnl_dim_t K, float alpha, const float *A, dnnl_dim_t lda,
3122  const float *B, dnnl_dim_t ldb, float beta, float *C, dnnl_dim_t ldc);
3123 
3187 dnnl_status_t DNNL_API dnnl_gemm_u8s8s32(char transa, char transb, char offsetc,
3188  dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const uint8_t *A,
3189  dnnl_dim_t lda, uint8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo,
3190  float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co);
3191 
3255 dnnl_status_t DNNL_API dnnl_gemm_s8s8s32(char transa, char transb, char offsetc,
3256  dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const int8_t *A,
3257  dnnl_dim_t lda, int8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo,
3258  float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co);
3260 
3262 
3263 #ifdef __cplusplus
3264 }
3265 #endif
3266 
3267 #endif
dnnl_primitive_desc_iterator_next
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.
dnnl_set_jit_profiling_flags
dnnl_status_t DNNL_API dnnl_set_jit_profiling_flags(unsigned flags)
Sets library profiling flags.
dnnl_inner_product_forward_desc_init
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_convolution_forward_desc_init
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_pooling_backward_desc_init
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::prop_kind
prop_kind
Propagation kind.
Definition: dnnl.hpp:419
dnnl_dilated_deconvolution_forward_desc_init
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.
dnnl_format_tag_t
dnnl_format_tag_t
Memory format tag specification.
Definition: dnnl_types.h:164
dnnl_memory
dnnl_primitive_desc_iterator
An opaque structure to describe a primitive descriptor iterator.
dnnl_lstm_forward_desc_init
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.
dnnl_status_t
dnnl_status_t
Status values returned by the library functions.
Definition: dnnl_types.h:39
dnnl_engine
An opaque structure to describe an engine.
dnnl_version
const dnnl_version_t DNNL_API * dnnl_version()
Returns library version information.
dnnl_matmul_desc_t
A descriptor of a matrix multiplication operation.
Definition: dnnl_types.h:1502
dnnl_memory_desc_get_size
size_t DNNL_API dnnl_memory_desc_get_size(const dnnl_memory_desc_t *memory_desc)
Returns the size of a memory descriptor.
dnnl_convolution_desc_t
A descriptor of a convolution operation.
Definition: dnnl_types.h:1061
dnnl_primitive_kind_t
dnnl_primitive_kind_t
Kinds of primitives.
Definition: dnnl_types.h:663
dnnl_primitive_desc_query_s32
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.
dnnl_exec_arg_t
A structure that contains an index and a memory object, and is used to pass arguments to dnnl_primiti...
Definition: dnnl_types.h:1843
dnnl_engine_get_kind
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_memory_desc_reshape
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_query_t
dnnl_query_t
Primitive descriptor query specification.
Definition: dnnl_types.h:1882
dnnl_types.h
dnnl_logsoftmax_forward_desc_init
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_rnn_desc_t
A descriptor for an RNN operation.
Definition: dnnl_types.h:1405
dnnl_rnn_direction_t
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition: dnnl_types.h:1389
dnnl_inner_product_desc_t
A descriptor of an inner product operation.
Definition: dnnl_types.h:1349
dnnl_memory_unmap_data
dnnl_status_t DNNL_API dnnl_memory_unmap_data(const_dnnl_memory_t memory, void *mapped_ptr)
Unmaps a memory objects and writes any changes to the previously mapped buffer back.
dnnl_layer_normalization_backward_desc_init
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_lstm_backward_desc_init
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 LSTM backward propagation primitive.
dnnl_pooling_desc_t
A descriptor of a pooling operation.
Definition: dnnl_types.h:1210
dnnl_data_type_t
dnnl_data_type_t
Data type specification.
Definition: dnnl_types.h:62
dnnl_memory_destroy
dnnl_status_t DNNL_API dnnl_memory_destroy(dnnl_memory_t memory)
Destroys a memory object.
dnnl_primitive_attr_create
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_primitive_attr_get_zero_points
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_primitive_attr_set_output_scales
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_primitive_desc_iterator_create
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_softmax_forward_desc_init
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.
dnnl_primitive_desc_clone
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_memory_set_data_handle
dnnl_status_t DNNL_API dnnl_memory_set_data_handle(dnnl_memory_t memory, void *handle)
Sets memory object's data handle.
dnnl_primitive_desc_query
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_primitive_execute
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_stream_destroy
dnnl_status_t DNNL_API dnnl_stream_destroy(dnnl_stream_t stream)
Destroys an execution stream.
dnnl_primitive_attr_destroy
dnnl_status_t DNNL_API dnnl_primitive_attr_destroy(dnnl_primitive_attr_t attr)
Destroys primitive attributes.
dnnl_post_ops_append_sum
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_gru_forward_desc_init
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.
dnnl_gemm_s8s8s32
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_memory_desc_init_submemory
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...
dnnl_engine_kind_t
dnnl_engine_kind_t
Kinds of engines.
Definition: dnnl_types.h:1554
dnnl_post_ops_append_eltwise
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.
dnnl_primitive_attr_get_scratchpad_mode
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_concat_primitive_desc_create
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_post_ops_destroy
dnnl_status_t DNNL_API dnnl_post_ops_destroy(dnnl_post_ops_t post_ops)
Destroys post-ops.
dnnl_eltwise_backward_desc_init
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_convolution_backward_data_desc_init
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.
dnnl_softmax_desc_t
A descriptor of a Softmax operation.
Definition: dnnl_types.h:1180
dnnl_memory_get_data_handle
dnnl_status_t DNNL_API dnnl_memory_get_data_handle(const_dnnl_memory_t memory, void **handle)
Returns memory object's data handle.
dnnl_primitive_attr_set_scales
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.
dnnl_stream_create
dnnl_status_t DNNL_API dnnl_stream_create(dnnl_stream_t *stream, dnnl_engine_t engine, unsigned flags)
Creates an execution stream for engine and with flags.
dnnl_sgemm
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.
dnnl_stream_wait
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_desc
An opaque structure to describe a primitive descriptor.
dnnl_sum_primitive_desc_create
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_primitive_desc_get_attr
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_gru_backward_desc_init
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_lbr_gru_backward_desc_init
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_set_max_cpu_isa
dnnl_status_t DNNL_API dnnl_set_max_cpu_isa(dnnl_cpu_isa_t isa)
Sets the maximal ISA DNNL can dispatch to on the CPU.
dnnl_convolution_backward_weights_desc_init
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_primitive
dnnl_reorder_primitive_desc_create
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_softmax_backward_desc_init
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_dim_t
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition: dnnl_types.h:871
dnnl_memory_get_memory_desc
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_vanilla_rnn_backward_desc_init
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_deconvolution_backward_weights_desc_init
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_resampling_backward_desc_init
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_primitive_get_primitive_desc
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.
dnnl_memory_desc_equal
int DNNL_API dnnl_memory_desc_equal(const dnnl_memory_desc_t *lhs, const dnnl_memory_desc_t *rhs)
Compares two memory descriptors.
dnnl_deconvolution_backward_data_desc_init
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_lrn_desc_t
A descriptor of a Local Response Normalization (LRN) operation.
Definition: dnnl_types.h:1248
dnnl_shuffle_desc_t
A descriptor of a shuffle operation.
Definition: dnnl_types.h:1114
dnnl_version_t
Structure containing version information as per Semantic Versioning
Definition: dnnl_types.h:1990
dnnl_batch_normalization_desc_t
A descriptor of a Batch Normalization operation.
Definition: dnnl_types.h:1279
dnnl_set_verbose
dnnl_status_t DNNL_API dnnl_set_verbose(int level)
Configures verbose output to stdout.
dnnl_dims_t
dnnl_dim_t dnnl_dims_t[DNNL_MAX_NDIMS]
A type to describe tensor dimensions.
Definition: dnnl_types.h:874
dnnl_eltwise_desc_t
A descriptor of a element-wise operation.
Definition: dnnl_types.h:1136
dnnl_eltwise_forward_desc_init
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_memory_get_engine
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_layer_normalization_desc_t
A descriptor of a Layer Normalization operation.
Definition: dnnl_types.h:1312
dnnl_engine_get_count
size_t DNNL_API dnnl_engine_get_count(dnnl_engine_kind_t kind)
Returns the number of engines of a particular kind.
dnnl_engine_create
dnnl_status_t DNNL_API dnnl_engine_create(dnnl_engine_t *engine, dnnl_engine_kind_t kind, size_t index)
Creates an engine.
dnnl_set_jit_profiling_jitdumpdir
dnnl_status_t DNNL_API dnnl_set_jit_profiling_jitdumpdir(const char *dir)
Sets JIT dump output path.
dnnl_primitive_desc_iterator_destroy
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_destroy(dnnl_primitive_desc_iterator_t iterator)
Destroys a primitive descriptor iterator.
dnnl_inner_product_backward_data_desc_init
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.
dnnl_memory_map_data
dnnl_status_t DNNL_API dnnl_memory_map_data(const_dnnl_memory_t memory, void **mapped_ptr)
Maps a memory object and returns a pointer to host-side buffer with a copy of its contents.
dnnl_dilated_deconvolution_backward_weights_desc_init
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_batch_normalization_backward_desc_init
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_lbr_gru_forward_desc_init
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_inner_product_backward_weights_desc_init
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.
dnnl_primitive_attr
An opaque structure for primitive descriptor attributes.
dnnl_primitive_attr_get_scales
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_primitive_attr_set_rnn_data_qparams
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_primitive_attr_get_post_ops
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_scratchpad_mode_t
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition: dnnl_types.h:1608
dnnl_dilated_deconvolution_backward_data_desc_init
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_resampling_desc_t
A descriptor of resampling operation.
Definition: dnnl_types.h:1524
dnnl_post_ops
An opaque structure for a chain of post operations.
dnnl_dilated_convolution_backward_weights_desc_init
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_primitive_destroy
dnnl_status_t DNNL_API dnnl_primitive_destroy(dnnl_primitive_t primitive)
Destroys a primitive.
dnnl_memory_create
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_pooling_forward_desc_init
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.
dnnl_logsoftmax_backward_desc_init
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_shuffle_forward_desc_init
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_memory_desc_t
Memory descriptor.
Definition: dnnl_types.h:977
dnnl_cpu_isa_t
dnnl_cpu_isa_t
CPU instruction set flags.
Definition: dnnl_types.h:2020
dnnl_lrn_forward_desc_init
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_engine_destroy
dnnl_status_t DNNL_API dnnl_engine_destroy(dnnl_engine_t engine)
Destroys an engine.
dnnl_post_ops_len
int DNNL_API dnnl_post_ops_len(const_dnnl_post_ops_t post_ops)
Returns the length of post-ops.
dnnl_batch_normalization_forward_desc_init
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_shuffle_backward_desc_init
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_lrn_backward_desc_init
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_post_ops_get_params_sum
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.
dnnl_primitive_attr_set_scratchpad_mode
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_alg_kind_t
dnnl_alg_kind_t
Kinds of algorithms.
Definition: dnnl_types.h:707
dnnl_memory_desc_init_by_strides
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_primitive_attr_set_zero_points
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.
dnnl_primitive_create
dnnl_status_t DNNL_API dnnl_primitive_create(dnnl_primitive_t *primitive, const_dnnl_primitive_desc_t primitive_desc)
Creates a primitive.
dnnl_stream
dnnl_binary_desc_t
A descriptor of a binary operation.
Definition: dnnl_types.h:1477
dnnl_primitive_attr_clone
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_post_ops_get_kind
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_primitive_desc_create
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.
dnnl_deconvolution_forward_desc_init
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_resampling_forward_desc_init
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_matmul_desc_init
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_memory_desc_init_by_tag
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_primitive_desc_iterator_fetch
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.
dnnl_dilated_convolution_backward_data_desc_init
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_layer_normalization_forward_desc_init
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_primitive_attr_set_rnn_weights_qparams
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_primitive_attr_set_post_ops
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_primitive_desc_destroy
dnnl_status_t DNNL_API dnnl_primitive_desc_destroy(dnnl_primitive_desc_t primitive_desc)
Destroys a primitive descriptor.
dnnl_prop_kind_t
dnnl_prop_kind_t
Kinds of propagation.
Definition: dnnl_types.h:636
dnnl_dilated_convolution_forward_desc_init
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_primitive_attr_get_output_scales
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_primitive_desc_query_md
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.
dnnl_gemm_u8s8s32
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,...
dnnl_post_ops_create
dnnl_status_t DNNL_API dnnl_post_ops_create(dnnl_post_ops_t *post_ops)
Creates empty post-ops sequence.
const_dnnl_op_desc_t
const typedef void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: dnnl_types.h:1049
dnnl_vanilla_rnn_forward_desc_init
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_post_ops_get_params_eltwise
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.
dnnl_set_jit_dump
dnnl_status_t DNNL_API dnnl_set_jit_dump(int enable)
Configures dumping of JIT-generated code.
dnnl_binary_desc_init
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.