oneAPI Deep Neural Network Library (oneDNN)  1.4.0
Performance library for Deep Learning
Loading...
Searching...
No Matches
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
38
39#ifdef __cplusplus
40extern "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
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
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
938 const dnnl_memory_desc_t *lhs, const dnnl_memory_desc_t *rhs);
939
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
1289 dnnl_convolution_desc_t *conv_desc, dnnl_prop_kind_t prop_kind,
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
1334 dnnl_convolution_desc_t *conv_desc, dnnl_prop_kind_t prop_kind,
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
1538 dnnl_deconvolution_desc_t *deconv_desc, dnnl_prop_kind_t prop_kind,
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
1582 dnnl_deconvolution_desc_t *deconv_desc, dnnl_prop_kind_t prop_kind,
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
1765 dnnl_shuffle_desc_t *shuffle_desc, dnnl_prop_kind_t prop_kind,
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
1812 dnnl_eltwise_desc_t *eltwise_desc, dnnl_prop_kind_t prop_kind,
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
1861 dnnl_softmax_desc_t *softmax_desc, dnnl_prop_kind_t prop_kind,
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
1905 dnnl_logsoftmax_desc_t *logsoftmax_desc, dnnl_prop_kind_t prop_kind,
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
1964 dnnl_pooling_desc_t *pool_desc, dnnl_prop_kind_t prop_kind,
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
2034 dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind,
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
2273 dnnl_inner_product_desc_t *ip_desc, dnnl_prop_kind_t prop_kind,
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
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
2468 dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind,
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
2546 dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind,
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
2621 dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction,
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
2693 dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction,
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
2775 dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction,
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
2869 dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction,
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
2980 dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind,
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
3111 dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind,
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
3182 dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction,
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
3253 dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction,
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
3311 dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction,
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
3382 dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind,
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
3458 dnnl_resampling_desc_t *resampling_desc, dnnl_prop_kind_t prop_kind,
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
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
3590dnnl_status_t DNNL_API dnnl_stream_attr_set_threadpool(
3591 dnnl_stream_attr_t attr, void *threadpool);
3592
3604dnnl_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
3684
3695
3703
3729
3754
3784
3786
3789
3830dnnl_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
3897dnnl_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
3965dnnl_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
3974dnnl_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
3982dnnl_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
3991dnnl_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
C API types definitions.
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.
struct dnnl_primitive_attr * dnnl_primitive_attr_t
A primitive descriptor attributes handle that controls primitive behavior.
Definition dnnl_types.h:1734
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_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_primitive_attr_get_post_ops(const_dnnl_primitive_attr_t attr, const_dnnl_post_ops_t *post_ops)
Returns primitive attributes post-ops.
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_destroy(dnnl_post_ops_t post_ops)
Destroys post-ops.
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_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_post_ops_append_sum(dnnl_post_ops_t post_ops, float scale)
Appends an accumulation (sum) to post-ops.
struct dnnl_post_ops * dnnl_post_ops_t
A post operation chain handle.
Definition dnnl_types.h:1760
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.
const struct dnnl_primitive_attr * const_dnnl_primitive_attr_t
A constant primitive descriptor attributes handle.
Definition dnnl_types.h:1737
dnnl_status_t DNNL_API dnnl_primitive_attr_destroy(dnnl_primitive_attr_t attr)
Destroys primitive attributes.
int DNNL_API dnnl_post_ops_len(const_dnnl_post_ops_t post_ops)
Returns the length of post-ops.
const struct dnnl_post_ops * const_dnnl_post_ops_t
A constant post operation chain handle.
Definition dnnl_types.h:1763
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.
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_status_t DNNL_API dnnl_post_ops_create(dnnl_post_ops_t *post_ops)
Creates empty post-ops sequence.
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_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_primitive_attr_clone(dnnl_primitive_attr_t *attr, const_dnnl_primitive_attr_t existing_attr)
Clones primitive attributes.
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_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_scratchpad_mode_t
Scratchpad mode.
Definition dnnl_types.h:1700
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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_convolution_desc_t dnnl_deconvolution_desc_t
A descriptor of a deconvolution operation.
Definition dnnl_types.h:1179
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_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_engine_kind_t
Kinds of engines.
Definition dnnl_types.h:1646
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.
struct dnnl_engine * dnnl_engine_t
An engine handle.
Definition dnnl_types.h:1659
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_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_engine_destroy(dnnl_engine_t engine)
Destroys an engine.
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_engine_create(dnnl_engine_t *engine, dnnl_engine_kind_t kind, size_t index)
Creates an engine.
size_t DNNL_API dnnl_engine_get_count(dnnl_engine_kind_t kind)
Returns the number of engines of a particular kind.
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_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_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_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_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_softmax_desc_t dnnl_logsoftmax_desc_t
A descriptor of a LogSoftmax operation.
Definition dnnl_types.h:1283
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_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_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_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_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_data_type_t
Data type specification.
Definition dnnl_types.h:62
const struct dnnl_memory * const_dnnl_memory_t
A constant memory handle.
Definition dnnl_types.h:1107
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...
struct dnnl_memory * dnnl_memory_t
A memory handle.
Definition dnnl_types.h:1104
dnnl_format_tag_t
Memory format tag specification.
Definition dnnl_types.h:164
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_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_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_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_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_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 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_memory_get_data_handle(const_dnnl_memory_t memory, void **handle)
Returns memory object's data handle.
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_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_dim_t dnnl_dims_t[DNNL_MAX_NDIMS]
A type to describe tensor dimensions.
Definition dnnl_types.h:947
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition dnnl_types.h:944
dnnl_status_t DNNL_API dnnl_memory_destroy(dnnl_memory_t memory)
Destroys a memory object.
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_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_memory_set_ocl_mem_object(dnnl_memory_t memory, cl_mem mem_object)
Sets OpenCL memory object associated with a memory object.
size_t DNNL_API dnnl_memory_desc_get_size(const dnnl_memory_desc_t *memory_desc)
Returns the size of a memory descriptor.
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.
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_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_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_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_primitive_desc_iterator_destroy(dnnl_primitive_desc_iterator_t iterator)
Destroys a primitive descriptor iterator.
struct dnnl_primitive * dnnl_primitive_t
A primitive handle.
Definition dnnl_types.h:1774
struct dnnl_primitive_desc_iterator * dnnl_primitive_desc_iterator_t
A primitive descriptor iterator handle.
Definition dnnl_types.h:1678
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_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.
const struct dnnl_primitive * const_dnnl_primitive_t
A constant primitive handle.
Definition dnnl_types.h:1776
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_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_primitive_desc_iterator_next(dnnl_primitive_desc_iterator_t iterator)
Advances the primitive descriptor iterator to point to the next available implementation.
dnnl_status_t DNNL_API dnnl_primitive_desc_destroy(dnnl_primitive_desc_t primitive_desc)
Destroys a primitive descriptor.
const void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition dnnl_types.h:1122
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_alg_kind_t
Kinds of algorithms.
Definition dnnl_types.h:748
dnnl_primitive_kind_t
Kinds of primitives.
Definition dnnl_types.h:704
dnnl_query_t
Primitive descriptor query specification.
Definition dnnl_types.h:2002
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.
struct dnnl_primitive_desc * dnnl_primitive_desc_t
A primitive descriptor handle.
Definition dnnl_types.h:1689
const struct dnnl_primitive_desc * const_dnnl_primitive_desc_t
A constant primitive descriptor handle.
Definition dnnl_types.h:1692
dnnl_status_t DNNL_API dnnl_primitive_destroy(dnnl_primitive_t primitive)
Destroys a 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_primitive_create(dnnl_primitive_t *primitive, const_dnnl_primitive_desc_t primitive_desc)
Creates a primitive.
dnnl_prop_kind_t
Kinds of propagation.
Definition dnnl_types.h:677
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_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.
const struct dnnl_primitive_desc_iterator * const_dnnl_primitive_desc_iterator_t
A constant primitive descriptor iterator handle.
Definition dnnl_types.h:1681
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_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_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_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_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_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_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_rnn_direction_t
A direction of RNN primitive execution.
Definition dnnl_types.h:1470
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_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_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_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_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_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_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_set_jit_dump(int enable)
Configures dumping of JIT-generated code.
dnnl_status_t DNNL_API dnnl_set_verbose(int level)
Configures verbose output to stdout.
dnnl_cpu_isa_t
CPU instruction set flags.
Definition dnnl_types.h:2150
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_set_jit_profiling_flags(unsigned flags)
Sets library profiling flags.
const dnnl_version_t DNNL_API * dnnl_version()
Returns library version information.
dnnl_status_t DNNL_API dnnl_set_jit_profiling_jitdumpdir(const char *dir)
Sets JIT dump output path.
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_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_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_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.
struct dnnl_stream_attr * dnnl_stream_attr_t
An execution stream attributes handle.
Definition dnnl_types.h:2091
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_stream_wait(dnnl_stream_t stream)
Waits for all primitives in the execution stream to finish computations.
struct dnnl_stream * dnnl_stream_t
An execution stream handle.
Definition dnnl_types.h:2084
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_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_stream_attr_destroy(dnnl_stream_attr_t attr)
Destroys execution stream attributes.
dnnl_status_t DNNL_API dnnl_stream_destroy(dnnl_stream_t stream)
Destroys an execution stream.
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_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_create(dnnl_stream_t *stream, dnnl_engine_t engine, unsigned flags)
Creates an execution stream.
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_status_t
Status values returned by the library functions.
Definition dnnl_types.h:39
A descriptor of a Batch Normalization operation.
Definition dnnl_types.h:1360
A descriptor of a binary operation.
Definition dnnl_types.h:1568
A descriptor of a convolution operation.
Definition dnnl_types.h:1134
A descriptor of a element-wise operation.
Definition dnnl_types.h:1209
A structure that contains an index and a memory object, and is used to pass arguments to dnnl_primiti...
Definition dnnl_types.h:1963
A descriptor of an inner product operation.
Definition dnnl_types.h:1430
A descriptor of a Layer Normalization operation.
Definition dnnl_types.h:1393
A descriptor of a Local Response Normalization (LRN) operation.
Definition dnnl_types.h:1329
A descriptor of a matrix multiplication operation.
Definition dnnl_types.h:1594
Memory descriptor.
Definition dnnl_types.h:1050
A descriptor of a pooling operation.
Definition dnnl_types.h:1291
A descriptor of resampling operation.
Definition dnnl_types.h:1616
A descriptor for an RNN operation.
Definition dnnl_types.h:1486
A descriptor of a shuffle operation.
Definition dnnl_types.h:1187
A descriptor of a Softmax operation.
Definition dnnl_types.h:1261
Structure containing version information as per Semantic Versioning
Definition dnnl_types.h:2120