.. _global: .. index:: pair: namespace; global Global Namespace ================ .. toctree:: :hidden: namespace_std.rst namespace_sycl.rst enum_q10n_scheme_t.rst struct_args_t.rst struct_example_allows_unimplemented.rst .. ref-code-block:: cpp :class: doxyrest-overview-code-block // namespaces namespace :ref:`dnnl`; namespace :ref:`dnnl::ocl_interop`; namespace :ref:`dnnl::sycl_interop`; namespace :ref:`dnnl::threadpool_interop`; namespace :ref:`oneapi`; namespace :ref:`std`; namespace :ref:`sycl`; // typedefs typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`dnnl::memory::dim` :target:`dim_t`; typedef :ref:`dnnl::memory::dim` :target:`dim_t`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef :ref:`memory::format_tag` :target:`tag`; typedef :ref:`memory::data_type` :target:`dt`; typedef int64_t :ref:`dnnl_dim_t`; typedef :ref:`dnnl_dim_t` :ref:`dnnl_dims_t`[DNNL_MAX_NDIMS]; typedef struct :ref:`dnnl_memory`* :ref:`dnnl_memory_t`; typedef const struct :ref:`dnnl_memory`* :ref:`const_dnnl_memory_t`; typedef void* :ref:`dnnl_op_desc_t`; typedef const void* :ref:`const_dnnl_op_desc_t`; typedef :ref:`dnnl_convolution_desc_t` :ref:`dnnl_deconvolution_desc_t`; typedef :ref:`dnnl_softmax_desc_t` :ref:`dnnl_logsoftmax_desc_t`; typedef struct :ref:`dnnl_engine`* :ref:`dnnl_engine_t`; typedef struct :ref:`dnnl_primitive_desc_iterator`* :ref:`dnnl_primitive_desc_iterator_t`; typedef const struct :ref:`dnnl_primitive_desc_iterator`* :ref:`const_dnnl_primitive_desc_iterator_t`; typedef struct :ref:`dnnl_primitive_desc`* :ref:`dnnl_primitive_desc_t`; typedef const struct :ref:`dnnl_primitive_desc`* :ref:`const_dnnl_primitive_desc_t`; typedef struct :ref:`dnnl_primitive_attr`* :ref:`dnnl_primitive_attr_t`; typedef const struct :ref:`dnnl_primitive_attr`* :ref:`const_dnnl_primitive_attr_t`; typedef struct :ref:`dnnl_post_ops`* :ref:`dnnl_post_ops_t`; typedef const struct :ref:`dnnl_post_ops`* :ref:`const_dnnl_post_ops_t`; typedef struct :ref:`dnnl_primitive`* :ref:`dnnl_primitive_t`; typedef const struct :ref:`dnnl_primitive`* :ref:`const_dnnl_primitive_t`; typedef struct :ref:`dnnl_stream`* :ref:`dnnl_stream_t`; typedef const struct :ref:`dnnl_stream`* :ref:`const_dnnl_stream_t`; // enums enum :ref:`dnnl_alg_kind_t`; enum :ref:`dnnl_cpu_isa_hints_t`; enum :ref:`dnnl_cpu_isa_t`; enum :ref:`dnnl_data_type_t`; enum :ref:`dnnl_engine_kind_t`; enum :ref:`dnnl_format_kind_t`; enum :ref:`dnnl_format_tag_t`; enum :ref:`dnnl_fpmath_mode_t`; enum :ref:`dnnl_memory_extra_flags_t`; enum :ref:`dnnl_normalization_flags_t`; enum :ref:`dnnl_ocl_interop_memory_kind_t`; enum :ref:`dnnl_primitive_kind_t`; enum :ref:`dnnl_prop_kind_t`; enum :ref:`dnnl_query_t`; enum :ref:`dnnl_rnn_direction_t`; enum :ref:`dnnl_rnn_flags_t`; enum :ref:`dnnl_rnn_packed_memory_format_t`; enum :ref:`dnnl_scratchpad_mode_t`; enum :ref:`dnnl_status_t`; enum :ref:`dnnl_stream_flags_t`; enum :ref:`dnnl_sycl_interop_memory_kind_t`; enum :ref:`dnnl_wino_memory_format_t`; enum :ref:`q10n_scheme_t`; // structs struct :ref:`args_t`; struct :ref:`dnnl_batch_normalization_desc_t`; struct :ref:`dnnl_binary_desc_t`; struct :ref:`dnnl_blocking_desc_t`; struct :ref:`dnnl_convolution_desc_t`; struct :ref:`dnnl_eltwise_desc_t`; struct :ref:`dnnl_engine`; struct :ref:`dnnl_exec_arg_t`; struct :ref:`dnnl_inner_product_desc_t`; struct :ref:`dnnl_layer_normalization_desc_t`; struct :ref:`dnnl_lrn_desc_t`; struct :ref:`dnnl_matmul_desc_t`; struct :ref:`dnnl_memory`; struct :ref:`dnnl_memory_desc_t`; struct :ref:`dnnl_memory_extra_desc_t`; struct :ref:`dnnl_pooling_desc_t`; struct :ref:`dnnl_pooling_v2_desc_t`; struct :ref:`dnnl_post_ops`; struct :ref:`dnnl_prelu_desc_t`; struct :ref:`dnnl_primitive`; struct :ref:`dnnl_primitive_attr`; struct :ref:`dnnl_primitive_desc`; struct :ref:`dnnl_primitive_desc_iterator`; struct :ref:`dnnl_reduction_desc_t`; struct :ref:`dnnl_resampling_desc_t`; struct :ref:`dnnl_rnn_desc_t`; struct :ref:`dnnl_rnn_packed_desc_t`; struct :ref:`dnnl_shuffle_desc_t`; struct :ref:`dnnl_softmax_desc_t`; struct :ref:`dnnl_stream`; struct :ref:`dnnl_version_t`; struct :ref:`dnnl_wino_desc_t`; struct :ref:`example_allows_unimplemented`; // global variables const dim_t :target:`batch` = 32; const dim_t :target:`src_seq_length_max` = 10; const dim_t :target:`tgt_seq_length_max` = 10; const dim_t :target:`feature_size` = 256; const dim_t :target:`enc_bidir_n_layers` = 1; const dim_t :target:`enc_unidir_n_layers` = 3; const dim_t :target:`dec_n_layers` = 4; const int :target:`lstm_n_gates` = 4; const dim_t :target:`batch` = 32; const dim_t :target:`src_seq_length_max` = 10; const dim_t :target:`tgt_seq_length_max` = 10; const dim_t :target:`feature_size` = 256; const dim_t :target:`enc_bidir_n_layers` = 1; const dim_t :target:`enc_unidir_n_layers` = 3; const dim_t :target:`dec_n_layers` = 4; const int :target:`lstm_n_gates` = 4; const :ref:`memory::dims` :target:`strides` = {4, 4}; const :ref:`memory::dims` :target:`padding` = {0, 0}; const int :target:`N0` = 1 + rand() % 31; const int :target:`N1` = 1 + rand() % 31; const int :target:`T0` = 31 + 1 + rand() % 31; const int :target:`T1` = 1 + rand() % 31; const int :target:`leftmost_batch` = N0 + N1; const int :target:`rightmost_batch` = N0; const int :target:`leftmost_seq_length` = T1; const int :target:`rightmost_seq_length` = T0 - T1; const int :target:`common_feature_size` = 1024; const int :target:`common_n_layers` = 1; const int :target:`lstm_n_gates` = 4; :ref:`engine` :target:`eng`(engine::kind::cpu, 0); int :target:`number_of_runs` = 1; float :target:`fixed_beta` = 0.f; :ref:`engine` :target:`eng`(engine::kind::cpu, 0); int :target:`number_of_runs` = 1; // global functions void :target:`bnorm_u8_via_binary_postops`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); static size_t :target:`product`(:ref:`dnnl_dim_t`* arr, size_t size); static void :target:`init_net_data`(float* data, uint32_t dim, const :ref:`dnnl_dim_t`* dims); static void :target:`prepare_arg_node`(args_t* node, int nargs); static void :target:`free_arg_node`(args_t* node); static void :target:`set_arg`(:ref:`dnnl_exec_arg_t`* arg, int arg_idx, :ref:`dnnl_memory_t` memory); static void :target:`init_data_memory`( uint32_t dim, const :ref:`dnnl_dim_t`* dims, :ref:`dnnl_format_tag_t` user_tag, :ref:`dnnl_engine_t` engine, float* data, :ref:`dnnl_memory_t`* memory ); :ref:`dnnl_status_t` :target:`prepare_reorder`( :ref:`dnnl_memory_t`* user_memory, const :ref:`dnnl_memory_desc_t`* prim_memory_md, :ref:`dnnl_engine_t` prim_engine, int dir_is_user_to_prim, :ref:`dnnl_memory_t`* prim_memory, :ref:`dnnl_primitive_t`* reorder, uint32_t* net_index, :ref:`dnnl_primitive_t`* net, args_t* net_args ); void :target:`simple_net`(:ref:`dnnl_engine_kind_t` engine_kind); int :target:`main`(int argc, char** argv); void :target:`cnn_inference_f32`(:ref:`engine::kind` engine_kind); int :target:`main`(int argc, char** argv); int :target:`main`(int argc, char** argv); void :target:`simple_net`(:ref:`engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`simple_net`(:ref:`engine::kind` engine_kind); int :target:`main`(int argc, char** argv); static size_t :target:`product`(:ref:`dnnl_dim_t`* arr, size_t size); static void :target:`init_net_data`(float* data, uint32_t dim, const :ref:`dnnl_dim_t`* dims); static void :target:`prepare_arg_node`(args_t* node, int nargs); static void :target:`free_arg_node`(args_t* node); static void :target:`set_arg`(:ref:`dnnl_exec_arg_t`* arg, int arg_idx, :ref:`dnnl_memory_t` memory); static void :target:`init_data_memory`( uint32_t dim, const :ref:`dnnl_dim_t`* dims, :ref:`dnnl_format_tag_t` user_tag, :ref:`dnnl_engine_t` engine, float* data, :ref:`dnnl_memory_t`* memory ); :ref:`dnnl_status_t` :target:`prepare_reorder`( :ref:`dnnl_memory_t`* user_memory, const :ref:`dnnl_memory_desc_t`* prim_memory_md, :ref:`dnnl_engine_t` prim_engine, int dir_is_user_to_prim, :ref:`dnnl_memory_t`* prim_memory, :ref:`dnnl_primitive_t`* reorder, uint32_t* net_index, :ref:`dnnl_primitive_t`* net, args_t* net_args ); void :target:`simple_net`(); int :target:`main`(int argc, char** argv); std::vector :target:`weighted_src_layer`(batch* feature_size, 1. 0f); std::vector :target:`alignment_model`( src_seq_length_max*batch* feature_size, 1. 0f ); std::vector :target:`alignments`(src_seq_length_max* batch, 1. 0f); std::vector :target:`exp_sums`(batch, 1. 0f); void :target:`compute_weighted_annotations`( float* weighted_annotations, dim_t src_seq_length_max, dim_t batch, dim_t feature_size, float* weights_annot, float* annotations ); void :target:`compute_attention`( float* context_vectors, dim_t src_seq_length_max, dim_t batch, dim_t feature_size, float* weights_src_layer, float* dec_src_layer, float* annotations, float* weighted_annotations, float* weights_alignments ); void :target:`copy_context`( float* src_iter, dim_t n_layers, dim_t batch, dim_t feature_size ); int :target:`main`(int argc, char** argv); std::vector :target:`weighted_src_layer`(batch* feature_size, 1); std::vector :target:`alignment_model`( src_seq_length_max*batch* feature_size, 1. 0f ); std::vector :target:`alignments`(src_seq_length_max* batch, 1. 0f); std::vector :target:`exp_sums`(batch, 1. 0f); void :target:`compute_weighted_annotations`( float* weighted_annotations, dim_t src_seq_length_max, dim_t batch, dim_t feature_size, float* weights_annot, float* annotations ); void :target:`compute_sum_of_rows`(int8_t* a, dim_t rows, dim_t cols, int32_t* a_reduced); void :target:`compute_attention`( float* context_vectors, dim_t src_seq_length_max, dim_t batch, dim_t feature_size, int8_t* weights_src_layer, float weights_src_layer_scale, int32_t* compensation, uint8_t* dec_src_layer, float dec_src_layer_scale, float dec_src_layer_shift, uint8_t* annotations, float* weighted_annotations, float* weights_alignments ); void :target:`copy_context`( float* src_iter, dim_t n_layers, dim_t batch, dim_t feature_size ); int :target:`main`(int argc, char** argv); size_t :target:`product`(int n_dims, const :ref:`dnnl_dim_t` dims[]); void :target:`fill`(:ref:`dnnl_memory_t` mem, int n_dims, const :ref:`dnnl_dim_t` dims[]); int :target:`find_negative`(:ref:`dnnl_memory_t` mem, int n_dims, const :ref:`dnnl_dim_t` dims[]); void :target:`cross_engine_reorder`(); int :target:`main`(); void :target:`fill`(:ref:`memory`& mem, const :ref:`memory::dims`& adims); int :target:`find_negative`(:ref:`memory`& mem, const :ref:`memory::dims`& adims); int :target:`main`(int argc, char** argv); static :ref:`dnnl_engine_kind_t` :target:`validate_engine_kind`(:ref:`dnnl_engine_kind_t` akind); static :ref:`dnnl_engine_kind_t` :target:`parse_engine_kind`(int argc, char** argv); static const char* :target:`engine_kind2str_upper`(:ref:`dnnl_engine_kind_t` kind); static void :target:`read_from_dnnl_memory`(void* handle, :ref:`dnnl_memory_t` mem); static void :target:`write_to_dnnl_memory`(void* handle, :ref:`dnnl_memory_t` mem); :ref:`dnnl::engine::kind` :target:`validate_engine_kind`(:ref:`dnnl::engine::kind` akind); const char* :target:`engine_kind2str_upper`(:ref:`dnnl::engine::kind` kind); int :target:`handle_example_errors`( std::initializer_list<:ref:`dnnl::engine::kind`> engine_kinds, std::function example ); int :target:`handle_example_errors`( std::function`, int, char**)> example, :ref:`dnnl::engine::kind` engine_kind, int argc, char** argv ); int :target:`handle_example_errors`( std::function`)> example, :ref:`dnnl::engine::kind` engine_kind ); :ref:`dnnl::engine::kind` :target:`parse_engine_kind`(int argc, char** argv, int extra_args = 0); :ref:`dnnl::memory::dim` :target:`product`(const :ref:`dnnl::memory::dims`& dims); void :target:`read_from_dnnl_memory`(void* handle, :ref:`dnnl::memory`& mem); void :target:`write_to_dnnl_memory`(void* handle, :ref:`dnnl::memory`& mem); int :target:`main`(int argc, char** argv); cl_kernel :target:`create_init_opencl_kernel`( cl_context ocl_ctx, const char* kernel_name, const char* ocl_code ); int :target:`main`(int argc, char** argv); int :target:`main`(int argc, char** argv); void :target:`init_data`(:ref:`memory`& m, float v); void :target:`create_and_execute_relu`(:ref:`memory`& data, :ref:`engine`& eng, :ref:`stream`& s); primitive_attr :target:`create_attr_with_relu_post_op`(); void :target:`performance_profiling`(:ref:`engine::kind` engine_kind, int argc, char** argv); int :target:`main`(int argc, char** argv); void :target:`batch_normalization_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`binary_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`concat_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`convolution_example`(:ref:`dnnl::engine::kind` engine_kind); void :target:`depthwise_convolution_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`eltwise_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`inner_product_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`layer_normalization_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`logsoftmax_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`lrn_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`lstm_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`matmul_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`pooling_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`prelu_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`reduction_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`reorder_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`resampling_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`shuffle_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`softmax_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`sum_example`(:ref:`dnnl::engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`simple_net`(:ref:`engine::kind` engine_kind); int :target:`main`(int argc, char** argv); int :target:`main`(int argc, char** argv); void :target:`sycl_usm_tutorial`(:ref:`engine::kind` engine_kind); int :target:`main`(int argc, char** argv); void :target:`quantize`( q10n_scheme_t q10n_scheme, const std::vector& X_f32, float scale_X, int32_t zp_X, :ref:`memory`& X_int_m ); void :target:`f32_matmul_compute`( int64_t M, int64_t N, int64_t K, const std::vector& A_f32, const std::vector& B_f32, std::vector& C_f32 ); void :target:`dynamic_q10n_matmul`( int64_t M, int64_t N, int64_t K, const std::vector& A_f32, const std::vector& B_f32, std::vector& C_u8, float& scale_C, int32_t& zp_C ); void :target:`static_q10n_matmul`( int64_t M, int64_t N, int64_t K, const std::vector& A_f32, const std::vector& B_f32, float scale_A, int32_t zp_A, float scale_B, float scale_C, int32_t zp_C, std::vector& C_u8 ); void :target:`compare_f32_and_quantized_matmuls`(); int :target:`main`(int argc, char** argv); :ref:`matmul` :target:`dynamic_matmul_create`(); void :target:`dynamic_matmul_execute`( :ref:`matmul`& matmul_p, char transA, char transB, int64_t M, int64_t N, int64_t K, float alpha, const float* A, int64_t lda, const float* B, int64_t ldb, float beta, float* C, int64_t ldc ); void :target:`static_matmul_create_and_execute`( char transA, char transB, int64_t M, int64_t N, int64_t K, float alpha, const float* A, int64_t lda, const float* B, int64_t ldb, float beta, float* C, int64_t ldc ); void :target:`sgemm_and_matmul_with_params`( char transA, char transB, int64_t M, int64_t N, int64_t K, float alpha, float beta ); void :target:`sgemm_and_matmul`(); int :target:`main`(int argc, char** argv); :ref:`matmul::primitive_desc` :target:`matmul_pd_create`(int64_t K, int64_t N, const :ref:`engine`& eng); void :target:`prepare_input`( :ref:`memory`& A_u8_mem, :ref:`memory`& scale_f32_mem, :ref:`memory`& zp_A_mem, :ref:`memory`& zp_C_mem ); void :target:`sanity_check`(:ref:`memory`& C_u8_mem, :ref:`memory`& zp_C_mem); void :target:`infer`( const :ref:`matmul`& matmul_p, int64_t M, int64_t N, int64_t K, const :ref:`memory`& B_s8_mem, const :ref:`engine`& eng ); void :target:`inference_int8_matmul`(:ref:`engine::kind` engine_kind); int :target:`main`(int argc, char** argv); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_desc_iterator_create`( :ref:`dnnl_primitive_desc_iterator_t`* iterator, :ref:`const_dnnl_op_desc_t` op_desc, :ref:`const_dnnl_primitive_attr_t` attr, :ref:`dnnl_engine_t` engine, :ref:`const_dnnl_primitive_desc_t` hint_forward_primitive_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_desc_iterator_next`(:ref:`dnnl_primitive_desc_iterator_t` iterator); :ref:`dnnl_primitive_desc_t` DNNL_API :ref:`dnnl_primitive_desc_iterator_fetch`(:ref:`const_dnnl_primitive_desc_iterator_t` iterator); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_desc_iterator_destroy`(:ref:`dnnl_primitive_desc_iterator_t` iterator); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`const_dnnl_op_desc_t` op_desc, :ref:`const_dnnl_primitive_attr_t` attr, :ref:`dnnl_engine_t` engine, :ref:`const_dnnl_primitive_desc_t` hint_forward_primitive_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_desc_clone`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`const_dnnl_primitive_desc_t` existing_primitive_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_desc_get_attr`( :ref:`const_dnnl_primitive_desc_t` primitive_desc, :ref:`const_dnnl_primitive_attr_t`* attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_desc_destroy`(:ref:`dnnl_primitive_desc_t` primitive_desc); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_desc_query`( :ref:`const_dnnl_primitive_desc_t` primitive_desc, :ref:`dnnl_query_t` what, int index, void* result ); const :ref:`dnnl_memory_desc_t` DNNL_API* :ref:`dnnl_primitive_desc_query_md`( :ref:`const_dnnl_primitive_desc_t` primitive_desc, :ref:`dnnl_query_t` what, int index ); int DNNL_API :ref:`dnnl_primitive_desc_query_s32`( :ref:`const_dnnl_primitive_desc_t` primitive_desc, :ref:`dnnl_query_t` what, int index ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_create`( :ref:`dnnl_primitive_t`* primitive, :ref:`const_dnnl_primitive_desc_t` primitive_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_execute`( :ref:`const_dnnl_primitive_t` primitive, :ref:`dnnl_stream_t` stream, int nargs, const :ref:`dnnl_exec_arg_t`* args ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_get_primitive_desc`( :ref:`const_dnnl_primitive_t` primitive, :ref:`const_dnnl_primitive_desc_t`* primitive_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_destroy`(:ref:`dnnl_primitive_t` primitive); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_create`(:ref:`dnnl_primitive_attr_t`* attr); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_clone`( :ref:`dnnl_primitive_attr_t`* attr, :ref:`const_dnnl_primitive_attr_t` existing_attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_destroy`(:ref:`dnnl_primitive_attr_t` attr); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_get_fpmath_mode`( :ref:`const_dnnl_primitive_attr_t` attr, :ref:`dnnl_fpmath_mode_t`* mode ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_fpmath_mode`( :ref:`dnnl_primitive_attr_t` attr, :ref:`dnnl_fpmath_mode_t` mode ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_get_scratchpad_mode`( :ref:`const_dnnl_primitive_attr_t` attr, :ref:`dnnl_scratchpad_mode_t`* mode ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_scratchpad_mode`( :ref:`dnnl_primitive_attr_t` attr, :ref:`dnnl_scratchpad_mode_t` mode ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_get_output_scales`( :ref:`const_dnnl_primitive_attr_t` attr, :ref:`dnnl_dim_t`* count, int* mask, const float** scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_output_scales`( :ref:`dnnl_primitive_attr_t` attr, :ref:`dnnl_dim_t` count, int mask, const float* scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_get_scales`( :ref:`dnnl_primitive_attr_t` attr, int arg, :ref:`dnnl_dim_t`* count, int* mask, const float** scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_scales`( :ref:`dnnl_primitive_attr_t` attr, int arg, :ref:`dnnl_dim_t` count, int mask, const float* scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_get_zero_points`( :ref:`const_dnnl_primitive_attr_t` attr, int arg, :ref:`dnnl_dim_t`* count, int* mask, const int32_t** zero_points ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_zero_points`( :ref:`dnnl_primitive_attr_t` attr, int arg, :ref:`dnnl_dim_t` count, int mask, const int32_t* zero_points ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_get_post_ops`( :ref:`const_dnnl_primitive_attr_t` attr, :ref:`const_dnnl_post_ops_t`* post_ops ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_post_ops`( :ref:`dnnl_primitive_attr_t` attr, :ref:`const_dnnl_post_ops_t` post_ops ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_create`(:ref:`dnnl_post_ops_t`* post_ops); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_destroy`(:ref:`dnnl_post_ops_t` post_ops); int DNNL_API :ref:`dnnl_post_ops_len`(:ref:`const_dnnl_post_ops_t` post_ops); :ref:`dnnl_primitive_kind_t` DNNL_API :ref:`dnnl_post_ops_get_kind`( :ref:`const_dnnl_post_ops_t` post_ops, int index ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_append_sum`( :ref:`dnnl_post_ops_t` post_ops, float scale ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_append_sum_v2`( :ref:`dnnl_post_ops_t` post_ops, float scale, :ref:`dnnl_data_type_t` data_type ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_append_sum_v3`( :ref:`dnnl_post_ops_t` post_ops, float scale, int32_t zero_point, :ref:`dnnl_data_type_t` data_type ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_get_params_sum`( :ref:`const_dnnl_post_ops_t` post_ops, int index, float* scale ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_get_params_sum_v2`( :ref:`const_dnnl_post_ops_t` post_ops, int index, float* scale, :ref:`dnnl_data_type_t`* data_type ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_get_params_sum_v3`( :ref:`const_dnnl_post_ops_t` post_ops, int index, float* scale, int32_t* zero_point, :ref:`dnnl_data_type_t`* data_type ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_append_eltwise`( :ref:`dnnl_post_ops_t` post_ops, float scale, :ref:`dnnl_alg_kind_t` alg_kind, float alpha, float beta ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_get_params_eltwise`( :ref:`const_dnnl_post_ops_t` post_ops, int index, float* scale, :ref:`dnnl_alg_kind_t`* alg_kind, float* alpha, float* beta ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_append_dw_k3s1p1`( :ref:`dnnl_post_ops_t` post_ops, :ref:`dnnl_data_type_t` weights_data_type, :ref:`dnnl_data_type_t` bias_data_type, :ref:`dnnl_data_type_t` dst_data_type, :ref:`dnnl_dim_t` count, int mask, const float* scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_get_params_dw_k3s1p1`( :ref:`const_dnnl_post_ops_t` post_ops, int index, :ref:`dnnl_data_type_t`* weights_data_type, :ref:`dnnl_data_type_t`* bias_data_type, :ref:`dnnl_data_type_t`* dst_data_type, :ref:`dnnl_dim_t`* count, int* mask, const float** scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_append_dw_k3s2p1`( :ref:`dnnl_post_ops_t` post_ops, :ref:`dnnl_data_type_t` weights_data_type, :ref:`dnnl_data_type_t` bias_data_type, :ref:`dnnl_data_type_t` dst_data_type, :ref:`dnnl_dim_t` count, int mask, const float* scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_get_params_dw_k3s2p1`( :ref:`const_dnnl_post_ops_t` post_ops, int index, :ref:`dnnl_data_type_t`* weights_data_type, :ref:`dnnl_data_type_t`* bias_data_type, :ref:`dnnl_data_type_t`* dst_data_type, :ref:`dnnl_dim_t`* count, int* mask, const float** scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_append_binary`( :ref:`dnnl_post_ops_t` post_ops, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src1_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_get_params_binary`( :ref:`const_dnnl_post_ops_t` post_ops, int index, :ref:`dnnl_alg_kind_t`* alg_kind, const :ref:`dnnl_memory_desc_t`** src1_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_append_prelu`( :ref:`dnnl_post_ops_t` post_ops, int mask ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_get_params_prelu`( :ref:`const_dnnl_post_ops_t` post_ops, int index, int* mask ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_init_by_strides`( :ref:`dnnl_memory_desc_t`* memory_desc, int ndims, const :ref:`dnnl_dims_t` dims, :ref:`dnnl_data_type_t` data_type, const :ref:`dnnl_dims_t` strides ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_init_by_tag`( :ref:`dnnl_memory_desc_t`* memory_desc, int ndims, const :ref:`dnnl_dims_t` dims, :ref:`dnnl_data_type_t` data_type, :ref:`dnnl_format_tag_t` tag ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_init_submemory`( :ref:`dnnl_memory_desc_t`* memory_desc, const :ref:`dnnl_memory_desc_t`* parent_memory_desc, const :ref:`dnnl_dims_t` dims, const :ref:`dnnl_dims_t` offsets ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_reshape`( :ref:`dnnl_memory_desc_t`* out_memory_desc, const :ref:`dnnl_memory_desc_t`* in_memory_desc, int ndims, const :ref:`dnnl_dims_t` dims ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_permute_axes`( :ref:`dnnl_memory_desc_t`* out_memory_desc, const :ref:`dnnl_memory_desc_t`* in_memory_desc, const int* permutation ); int DNNL_API :ref:`dnnl_memory_desc_equal`( const :ref:`dnnl_memory_desc_t`* lhs, const :ref:`dnnl_memory_desc_t`* rhs ); size_t DNNL_API :ref:`dnnl_memory_desc_get_size`(const :ref:`dnnl_memory_desc_t`* memory_desc); size_t DNNL_API :ref:`dnnl_data_type_size`(:ref:`dnnl_data_type_t` data_type); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_create`( :ref:`dnnl_memory_t`* memory, const :ref:`dnnl_memory_desc_t`* memory_desc, :ref:`dnnl_engine_t` engine, void* handle ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_get_memory_desc`( :ref:`const_dnnl_memory_t` memory, const :ref:`dnnl_memory_desc_t`** memory_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_get_engine`( :ref:`const_dnnl_memory_t` memory, :ref:`dnnl_engine_t`* engine ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_map_data`( :ref:`const_dnnl_memory_t` memory, void** mapped_ptr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_unmap_data`( :ref:`const_dnnl_memory_t` memory, void* mapped_ptr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_get_data_handle`( :ref:`const_dnnl_memory_t` memory, void** handle ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_set_data_handle`( :ref:`dnnl_memory_t` memory, void* handle ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_set_data_handle_v2`( :ref:`dnnl_memory_t` memory, void* handle, :ref:`dnnl_stream_t` stream ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_destroy`(:ref:`dnnl_memory_t` memory); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_reorder_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* reorder_primitive_desc, const :ref:`dnnl_memory_desc_t`* src_desc, :ref:`dnnl_engine_t` src_engine, const :ref:`dnnl_memory_desc_t`* dst_desc, :ref:`dnnl_engine_t` dst_engine, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_concat_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* concat_primitive_desc, const :ref:`dnnl_memory_desc_t`* dst_desc, int n, int concat_dimension, const :ref:`dnnl_memory_desc_t`* src_descs, :ref:`const_dnnl_primitive_attr_t` attr, :ref:`dnnl_engine_t` engine ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sum_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* sum_primitive_desc, const :ref:`dnnl_memory_desc_t`* dst_desc, int n, const float* scales, const :ref:`dnnl_memory_desc_t`* src_descs, :ref:`const_dnnl_primitive_attr_t` attr, :ref:`dnnl_engine_t` engine ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_binary_desc_init`( :ref:`dnnl_binary_desc_t`* binary_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src0_desc, const :ref:`dnnl_memory_desc_t`* src1_desc, const :ref:`dnnl_memory_desc_t`* dst_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_convolution_forward_desc_init`( :ref:`dnnl_convolution_desc_t`* conv_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_dilated_convolution_forward_desc_init`( :ref:`dnnl_convolution_desc_t`* conv_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` dilates, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_convolution_backward_data_desc_init`( :ref:`dnnl_convolution_desc_t`* conv_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* diff_src_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_dilated_convolution_backward_data_desc_init`( :ref:`dnnl_convolution_desc_t`* conv_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* diff_src_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` dilates, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_convolution_backward_weights_desc_init`( :ref:`dnnl_convolution_desc_t`* conv_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_desc, const :ref:`dnnl_memory_desc_t`* diff_bias_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_dilated_convolution_backward_weights_desc_init`( :ref:`dnnl_convolution_desc_t`* conv_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_desc, const :ref:`dnnl_memory_desc_t`* diff_bias_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` dilates, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_deconvolution_forward_desc_init`( :ref:`dnnl_deconvolution_desc_t`* deconv_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_dilated_deconvolution_forward_desc_init`( :ref:`dnnl_deconvolution_desc_t`* deconv_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` dilates, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_deconvolution_backward_data_desc_init`( :ref:`dnnl_deconvolution_desc_t`* deconv_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* diff_src_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_dilated_deconvolution_backward_data_desc_init`( :ref:`dnnl_deconvolution_desc_t`* deconv_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* diff_src_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` dilates, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_deconvolution_backward_weights_desc_init`( :ref:`dnnl_deconvolution_desc_t`* deconv_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_desc, const :ref:`dnnl_memory_desc_t`* diff_bias_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_dilated_deconvolution_backward_weights_desc_init`( :ref:`dnnl_deconvolution_desc_t`* deconv_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_desc, const :ref:`dnnl_memory_desc_t`* diff_bias_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` dilates, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_shuffle_forward_desc_init`( :ref:`dnnl_shuffle_desc_t`* shuffle_desc, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_memory_desc_t`* data_desc, int axis, :ref:`dnnl_dim_t` group_size ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_shuffle_backward_desc_init`( :ref:`dnnl_shuffle_desc_t`* shuffle_desc, const :ref:`dnnl_memory_desc_t`* diff_data_desc, int axis, :ref:`dnnl_dim_t` group_size ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_eltwise_forward_desc_init`( :ref:`dnnl_eltwise_desc_t`* eltwise_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* data_desc, float alpha, float beta ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_eltwise_backward_desc_init`( :ref:`dnnl_eltwise_desc_t`* eltwise_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* diff_data_desc, const :ref:`dnnl_memory_desc_t`* data_desc, float alpha, float beta ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_softmax_forward_desc_init`( :ref:`dnnl_softmax_desc_t`* softmax_desc, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_memory_desc_t`* data_desc, int softmax_axis ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_softmax_backward_desc_init`( :ref:`dnnl_softmax_desc_t`* softmax_desc, const :ref:`dnnl_memory_desc_t`* diff_data_desc, const :ref:`dnnl_memory_desc_t`* data_desc, int softmax_axis ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_logsoftmax_forward_desc_init`( :ref:`dnnl_logsoftmax_desc_t`* logsoftmax_desc, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_memory_desc_t`* data_desc, int logsoftmax_axis ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_logsoftmax_backward_desc_init`( :ref:`dnnl_logsoftmax_desc_t`* logsoftmax_desc, const :ref:`dnnl_memory_desc_t`* diff_data_desc, const :ref:`dnnl_memory_desc_t`* data_desc, int logsoftmax_axis ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_pooling_forward_desc_init`( :ref:`dnnl_pooling_desc_t`* pool_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` kernel, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_pooling_backward_desc_init`( :ref:`dnnl_pooling_desc_t`* pool_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* diff_src_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` kernel, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_pooling_v2_forward_desc_init`( :ref:`dnnl_pooling_v2_desc_t`* pool_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` kernel, const :ref:`dnnl_dims_t` dilation, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_pooling_v2_backward_desc_init`( :ref:`dnnl_pooling_v2_desc_t`* pool_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* diff_src_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc, const :ref:`dnnl_dims_t` strides, const :ref:`dnnl_dims_t` kernel, const :ref:`dnnl_dims_t` dilation, const :ref:`dnnl_dims_t` padding_l, const :ref:`dnnl_dims_t` padding_r ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_prelu_forward_desc_init`( dnnl_prelu_desc_t* prelu_desc, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_memory_desc_t`* data_desc, const :ref:`dnnl_memory_desc_t`* weights_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_prelu_backward_desc_init`( dnnl_prelu_desc_t* prelu_desc, const :ref:`dnnl_memory_desc_t`* data_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* diff_data_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lrn_forward_desc_init`( :ref:`dnnl_lrn_desc_t`* lrn_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* data_desc, :ref:`dnnl_dim_t` local_size, float alpha, float beta, float k ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lrn_backward_desc_init`( :ref:`dnnl_lrn_desc_t`* lrn_desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* diff_data_desc, const :ref:`dnnl_memory_desc_t`* data_desc, :ref:`dnnl_dim_t` local_size, float alpha, float beta, float k ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_batch_normalization_forward_desc_init`( :ref:`dnnl_batch_normalization_desc_t`* bnrm_desc, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_memory_desc_t`* data_desc, float epsilon, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_batch_normalization_backward_desc_init`( :ref:`dnnl_batch_normalization_desc_t`* bnrm_desc, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_memory_desc_t`* diff_data_desc, const :ref:`dnnl_memory_desc_t`* data_desc, float epsilon, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_layer_normalization_forward_desc_init`( :ref:`dnnl_layer_normalization_desc_t`* lnrm_desc, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_memory_desc_t`* data_desc, const :ref:`dnnl_memory_desc_t`* stat_desc, float epsilon, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_layer_normalization_backward_desc_init`( :ref:`dnnl_layer_normalization_desc_t`* lnrm_desc, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_memory_desc_t`* diff_data_desc, const :ref:`dnnl_memory_desc_t`* data_desc, const :ref:`dnnl_memory_desc_t`* stat_desc, float epsilon, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_inner_product_forward_desc_init`( :ref:`dnnl_inner_product_desc_t`* ip_desc, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_inner_product_backward_data_desc_init`( :ref:`dnnl_inner_product_desc_t`* ip_desc, const :ref:`dnnl_memory_desc_t`* diff_src_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_inner_product_backward_weights_desc_init`( :ref:`dnnl_inner_product_desc_t`* ip_desc, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_desc, const :ref:`dnnl_memory_desc_t`* diff_bias_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_rnn_data_qparams`( :ref:`dnnl_primitive_attr_t` attr, const float scale, const float shift ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_get_rnn_data_qparams`( :ref:`const_dnnl_primitive_attr_t` attr, float* scale, float* shift ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_rnn_weights_qparams`( :ref:`dnnl_primitive_attr_t` attr, :ref:`dnnl_dim_t` count, int mask, const float* scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_get_rnn_weights_qparams`( :ref:`const_dnnl_primitive_attr_t` attr, :ref:`dnnl_dim_t`* count, int* mask, const float** scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_rnn_weights_projection_qparams`( :ref:`dnnl_primitive_attr_t` attr, :ref:`dnnl_dim_t` count, int mask, const float* scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_get_rnn_weights_projection_qparams`( :ref:`const_dnnl_primitive_attr_t` attr, :ref:`dnnl_dim_t`* count, int* mask, const float** scales ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_vanilla_rnn_forward_desc_init`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_alg_kind_t` activation, const :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, unsigned flags, float alpha, float beta ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_vanilla_rnn_backward_desc_init`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_alg_kind_t` activation, const :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_src_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_src_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_bias_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_iter_desc, unsigned flags, float alpha, float beta ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lstm_forward_desc_init`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* src_iter_c_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_c_desc, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lstm_forward_desc_init_v2`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* src_iter_c_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* weights_peephole_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_c_desc, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lstm_forward_desc_init_v3`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* src_iter_c_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* weights_peephole_desc, const :ref:`dnnl_memory_desc_t`* weights_projection_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_c_desc, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lstm_backward_desc_init`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* src_iter_c_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_c_desc, const :ref:`dnnl_memory_desc_t`* diff_src_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_src_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_src_iter_c_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_bias_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_iter_c_desc, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lstm_backward_desc_init_v2`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* src_iter_c_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* weights_peephole_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_c_desc, const :ref:`dnnl_memory_desc_t`* diff_src_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_src_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_src_iter_c_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_peephole_desc, const :ref:`dnnl_memory_desc_t`* diff_bias_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_iter_c_desc, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lstm_backward_desc_init_v3`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* src_iter_c_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* weights_peephole_desc, const :ref:`dnnl_memory_desc_t`* weights_projection_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_c_desc, const :ref:`dnnl_memory_desc_t`* diff_src_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_src_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_src_iter_c_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_peephole_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_projection_desc, const :ref:`dnnl_memory_desc_t`* diff_bias_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_iter_c_desc, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_gru_forward_desc_init`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_gru_backward_desc_init`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_src_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_src_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_bias_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_iter_desc, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lbr_gru_forward_desc_init`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lbr_gru_backward_desc_init`( :ref:`dnnl_rnn_desc_t`* rnn_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, const :ref:`dnnl_memory_desc_t`* src_layer_desc, const :ref:`dnnl_memory_desc_t`* src_iter_desc, const :ref:`dnnl_memory_desc_t`* weights_layer_desc, const :ref:`dnnl_memory_desc_t`* weights_iter_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_layer_desc, const :ref:`dnnl_memory_desc_t`* dst_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_src_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_src_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_weights_iter_desc, const :ref:`dnnl_memory_desc_t`* diff_bias_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_layer_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_iter_desc, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_matmul_desc_init`( :ref:`dnnl_matmul_desc_t`* matmul_desc, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* weights_desc, const :ref:`dnnl_memory_desc_t`* bias_desc, const :ref:`dnnl_memory_desc_t`* dst_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_resampling_forward_desc_init`( :ref:`dnnl_resampling_desc_t`* resampling_desc, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, const float* factors, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* dst_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_resampling_backward_desc_init`( :ref:`dnnl_resampling_desc_t`* resampling_desc, :ref:`dnnl_alg_kind_t` alg_kind, const float* factors, const :ref:`dnnl_memory_desc_t`* diff_src_desc, const :ref:`dnnl_memory_desc_t`* diff_dst_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_reduction_desc_init`( :ref:`dnnl_reduction_desc_t`* desc, :ref:`dnnl_alg_kind_t` alg_kind, const :ref:`dnnl_memory_desc_t`* src_desc, const :ref:`dnnl_memory_desc_t`* dst_desc, float p, float eps ); size_t DNNL_API :ref:`dnnl_engine_get_count`(:ref:`dnnl_engine_kind_t` kind); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_engine_create`( :ref:`dnnl_engine_t`* engine, :ref:`dnnl_engine_kind_t` kind, size_t index ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_engine_get_kind`( :ref:`dnnl_engine_t` engine, :ref:`dnnl_engine_kind_t`* kind ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_engine_destroy`(:ref:`dnnl_engine_t` engine); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_stream_create`( :ref:`dnnl_stream_t`* stream, :ref:`dnnl_engine_t` engine, unsigned flags ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_stream_get_engine`( :ref:`const_dnnl_stream_t` stream, :ref:`dnnl_engine_t`* engine ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_stream_wait`(:ref:`dnnl_stream_t` stream); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_stream_destroy`(:ref:`dnnl_stream_t` stream); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_get_primitive_cache_capacity`(int* capacity); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_set_primitive_cache_capacity`(int capacity); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_get_default_fpmath_mode`(:ref:`dnnl_fpmath_mode_t`* mode); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_set_default_fpmath_mode`(:ref:`dnnl_fpmath_mode_t` mode); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_set_verbose`(int level); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_set_jit_dump`(int enable); const :ref:`dnnl_version_t` DNNL_API* :ref:`dnnl_version`(void); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_set_jit_profiling_flags`(unsigned flags); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_set_jit_profiling_jitdumpdir`(const char* dir); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_set_max_cpu_isa`(:ref:`dnnl_cpu_isa_t` isa); :ref:`dnnl_cpu_isa_t` DNNL_API :ref:`dnnl_get_effective_cpu_isa`(void); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_set_cpu_isa_hints`(:ref:`dnnl_cpu_isa_hints_t` isa_hints); :ref:`dnnl_cpu_isa_hints_t` DNNL_API :ref:`dnnl_get_cpu_isa_hints`(void); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sgemm`( char transa, char transb, :ref:`dnnl_dim_t` M, :ref:`dnnl_dim_t` N, :ref:`dnnl_dim_t` K, float alpha, const float* A, :ref:`dnnl_dim_t` lda, const float* B, :ref:`dnnl_dim_t` ldb, float beta, float* C, :ref:`dnnl_dim_t` ldc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_gemm_u8s8s32`( char transa, char transb, char offsetc, :ref:`dnnl_dim_t` M, :ref:`dnnl_dim_t` N, :ref:`dnnl_dim_t` K, float alpha, const uint8_t* A, :ref:`dnnl_dim_t` lda, uint8_t ao, const int8_t* B, :ref:`dnnl_dim_t` ldb, int8_t bo, float beta, int32_t* C, :ref:`dnnl_dim_t` ldc, const int32_t* co ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_gemm_s8s8s32`( char transa, char transb, char offsetc, :ref:`dnnl_dim_t` M, :ref:`dnnl_dim_t` N, :ref:`dnnl_dim_t` K, float alpha, const int8_t* A, :ref:`dnnl_dim_t` lda, int8_t ao, const int8_t* B, :ref:`dnnl_dim_t` ldb, int8_t bo, float beta, int32_t* C, :ref:`dnnl_dim_t` ldc, const int32_t* co ); const char DNNL_API* :target:`dnnl_status2str`(:ref:`dnnl_status_t` v); const char DNNL_API* :target:`dnnl_dt2str`(:ref:`dnnl_data_type_t` v); const char DNNL_API* :target:`dnnl_fmt_kind2str`(:ref:`dnnl_format_kind_t` v); const char DNNL_API* :target:`dnnl_fmt_tag2str`(:ref:`dnnl_format_tag_t` v); const char DNNL_API* :target:`dnnl_prop_kind2str`(:ref:`dnnl_prop_kind_t` v); const char DNNL_API* :target:`dnnl_prim_kind2str`(:ref:`dnnl_primitive_kind_t` v); const char DNNL_API* :target:`dnnl_alg_kind2str`(:ref:`dnnl_alg_kind_t` v); const char DNNL_API* :target:`dnnl_rnn_flags2str`(:ref:`dnnl_rnn_flags_t` v); const char DNNL_API* :target:`dnnl_rnn_direction2str`(:ref:`dnnl_rnn_direction_t` v); const char DNNL_API* :target:`dnnl_engine_kind2str`(:ref:`dnnl_engine_kind_t` v); const char DNNL_API* :target:`dnnl_fpmath_mode2str`(:ref:`dnnl_fpmath_mode_t` v); const char DNNL_API* :target:`dnnl_scratchpad_mode2str`(:ref:`dnnl_scratchpad_mode_t` v); const char DNNL_API* :target:`dnnl_cpu_isa2str`(:ref:`dnnl_cpu_isa_t` v); const char DNNL_API* :target:`dnnl_cpu_isa_hints2str`(:ref:`dnnl_cpu_isa_hints_t` v); const char DNNL_API* :target:`dnnl_runtime2str`(unsigned v); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_memory_create`( :ref:`dnnl_memory_t`* memory, const :ref:`dnnl_memory_desc_t`* memory_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_ocl_interop_memory_kind_t` memory_kind, void* handle ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_memory_get_memory_kind`( :ref:`const_dnnl_memory_t` memory, :ref:`dnnl_ocl_interop_memory_kind_t`* memory_kind ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_memory_get_mem_object`( :ref:`const_dnnl_memory_t` memory, cl_mem* mem_object ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_memory_set_mem_object`( :ref:`dnnl_memory_t` memory, cl_mem mem_object ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_engine_create`( :ref:`dnnl_engine_t`* engine, cl_device_id device, cl_context context ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_engine_get_context`( :ref:`dnnl_engine_t` engine, cl_context* context ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_get_device`( :ref:`dnnl_engine_t` engine, cl_device_id* device ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_stream_create`( :ref:`dnnl_stream_t`* stream, :ref:`dnnl_engine_t` engine, cl_command_queue queue ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_stream_get_command_queue`( :ref:`dnnl_stream_t` stream, cl_command_queue* queue ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sycl_interop_engine_create`( :ref:`dnnl_engine_t`* engine, const void* device, const void* context ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sycl_interop_engine_get_context`( :ref:`dnnl_engine_t` engine, void** context ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sycl_interop_engine_get_device`( :ref:`dnnl_engine_t` engine, void** device ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sycl_interop_memory_create`( :ref:`dnnl_memory_t`* memory, const :ref:`dnnl_memory_desc_t`* memory_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_sycl_interop_memory_kind_t` memory_kind, void* handle ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sycl_interop_memory_get_memory_kind`( :ref:`const_dnnl_memory_t` memory, :ref:`dnnl_sycl_interop_memory_kind_t`* memory_kind ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sycl_interop_memory_set_buffer`( :ref:`dnnl_memory_t` memory, void* buffer, :ref:`dnnl_stream_t` stream ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sycl_interop_stream_create`( :ref:`dnnl_stream_t`* stream, :ref:`dnnl_engine_t` engine, void* queue ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sycl_interop_stream_get_queue`( :ref:`dnnl_stream_t` stream, void** queue ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sycl_interop_primitive_execute`( :ref:`const_dnnl_primitive_t` primitive, :ref:`dnnl_stream_t` stream, int nargs, const :ref:`dnnl_exec_arg_t`* args, const void* deps, void* return_event ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_threadpool_interop_stream_create`( :ref:`dnnl_stream_t`* stream, :ref:`dnnl_engine_t` engine, void* threadpool ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_threadpool_interop_stream_get_threadpool`( :ref:`dnnl_stream_t` astream, void** threadpool ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_threadpool_interop_sgemm`( char transa, char transb, :ref:`dnnl_dim_t` M, :ref:`dnnl_dim_t` N, :ref:`dnnl_dim_t` K, float alpha, const float* A, :ref:`dnnl_dim_t` lda, const float* B, :ref:`dnnl_dim_t` ldb, float beta, float* C, :ref:`dnnl_dim_t` ldc, void* threadpool ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_threadpool_interop_gemm_u8s8s32`( char transa, char transb, char offsetc, :ref:`dnnl_dim_t` M, :ref:`dnnl_dim_t` N, :ref:`dnnl_dim_t` K, float alpha, const uint8_t* A, :ref:`dnnl_dim_t` lda, uint8_t ao, const int8_t* B, :ref:`dnnl_dim_t` ldb, int8_t bo, float beta, int32_t* C, :ref:`dnnl_dim_t` ldc, const int32_t* co, void* threadpool ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_threadpool_interop_gemm_s8s8s32`( char transa, char transb, char offsetc, :ref:`dnnl_dim_t` M, :ref:`dnnl_dim_t` N, :ref:`dnnl_dim_t` K, float alpha, const int8_t* A, :ref:`dnnl_dim_t` lda, int8_t ao, const int8_t* B, :ref:`dnnl_dim_t` ldb, int8_t bo, float beta, int32_t* C, :ref:`dnnl_dim_t` ldc, const int32_t* co, void* threadpool ); // macros #define :target:`BATCH` #define :target:`BATCH` #define :target:`CHECK`(f) #define :target:`COMPLAIN_DNNL_ERROR_AND_EXIT`(what, status) #define :target:`COMPLAIN_EXAMPLE_ERROR_AND_EXIT`(complain_fmt, ...) #define :target:`CONV_IH` #define :target:`CONV_IH` #define :target:`CONV_IW` #define :target:`CONV_IW` #define :target:`CONV_OH` #define :target:`CONV_OH` #define :target:`CONV_OW` #define :target:`CONV_OW` #define :target:`CONV_PAD` #define :target:`CONV_PAD` #define :target:`CONV_STRIDE` #define :target:`CONV_STRIDE` #define :ref:`DNNL_ARG_ATTR_INPUT_SCALES` #define :ref:`DNNL_ARG_ATTR_MULTIPLE_POST_OP`(idx) #define :ref:`DNNL_ARG_ATTR_MULTIPLE_POST_OP_BASE` #define :ref:`DNNL_ARG_ATTR_OUTPUT_SCALES` #define :ref:`DNNL_ARG_ATTR_POST_OP_DW` #define :ref:`DNNL_ARG_ATTR_ZERO_POINTS` #define :ref:`DNNL_ARG_BIAS` #define :ref:`DNNL_ARG_DIFF_BIAS` #define :ref:`DNNL_ARG_DIFF_DST` #define :ref:`DNNL_ARG_DIFF_DST_0` #define :ref:`DNNL_ARG_DIFF_DST_1` #define :ref:`DNNL_ARG_DIFF_DST_2` #define :ref:`DNNL_ARG_DIFF_DST_ITER` #define :ref:`DNNL_ARG_DIFF_DST_ITER_C` #define :ref:`DNNL_ARG_DIFF_DST_LAYER` #define :ref:`DNNL_ARG_DIFF_SCALE` #define :ref:`DNNL_ARG_DIFF_SCALE_SHIFT` #define :ref:`DNNL_ARG_DIFF_SHIFT` #define :ref:`DNNL_ARG_DIFF_SRC` #define :ref:`DNNL_ARG_DIFF_SRC_0` #define :ref:`DNNL_ARG_DIFF_SRC_1` #define :ref:`DNNL_ARG_DIFF_SRC_2` #define :ref:`DNNL_ARG_DIFF_SRC_ITER` #define :ref:`DNNL_ARG_DIFF_SRC_ITER_C` #define :ref:`DNNL_ARG_DIFF_SRC_LAYER` #define :ref:`DNNL_ARG_DIFF_WEIGHTS` #define :ref:`DNNL_ARG_DIFF_WEIGHTS_0` #define :ref:`DNNL_ARG_DIFF_WEIGHTS_1` #define :ref:`DNNL_ARG_DIFF_WEIGHTS_2` #define :ref:`DNNL_ARG_DIFF_WEIGHTS_3` #define :ref:`DNNL_ARG_DIFF_WEIGHTS_ITER` #define :ref:`DNNL_ARG_DIFF_WEIGHTS_LAYER` #define :ref:`DNNL_ARG_DIFF_WEIGHTS_PEEPHOLE` #define :ref:`DNNL_ARG_DIFF_WEIGHTS_PROJECTION` #define :ref:`DNNL_ARG_DST` #define :ref:`DNNL_ARG_DST_0` #define :ref:`DNNL_ARG_DST_1` #define :ref:`DNNL_ARG_DST_2` #define :ref:`DNNL_ARG_DST_ITER` #define :ref:`DNNL_ARG_DST_ITER_C` #define :ref:`DNNL_ARG_DST_LAYER` #define :ref:`DNNL_ARG_FROM` #define :ref:`DNNL_ARG_MEAN` #define :ref:`DNNL_ARG_MULTIPLE_DST` #define :ref:`DNNL_ARG_MULTIPLE_SRC` #define :ref:`DNNL_ARG_SCALE` #define :ref:`DNNL_ARG_SCALE_SHIFT` #define :ref:`DNNL_ARG_SCRATCHPAD` #define :ref:`DNNL_ARG_SHIFT` #define :ref:`DNNL_ARG_SRC` #define :ref:`DNNL_ARG_SRC_0` #define :ref:`DNNL_ARG_SRC_1` #define :ref:`DNNL_ARG_SRC_2` #define :ref:`DNNL_ARG_SRC_ITER` #define :ref:`DNNL_ARG_SRC_ITER_C` #define :ref:`DNNL_ARG_SRC_LAYER` #define :ref:`DNNL_ARG_TO` #define :ref:`DNNL_ARG_VARIANCE` #define :ref:`DNNL_ARG_WEIGHTS` #define :ref:`DNNL_ARG_WEIGHTS_0` #define :ref:`DNNL_ARG_WEIGHTS_1` #define :ref:`DNNL_ARG_WEIGHTS_2` #define :ref:`DNNL_ARG_WEIGHTS_3` #define :ref:`DNNL_ARG_WEIGHTS_ITER` #define :ref:`DNNL_ARG_WEIGHTS_LAYER` #define :ref:`DNNL_ARG_WEIGHTS_PEEPHOLE` #define :ref:`DNNL_ARG_WEIGHTS_PROJECTION` #define :ref:`DNNL_ARG_WORKSPACE` #define :target:`DNNL_ENABLE_EXCEPTIONS` #define :ref:`DNNL_JIT_PROFILE_LINUX_JITDUMP` #define :ref:`DNNL_JIT_PROFILE_LINUX_JITDUMP_USE_TSC` #define :ref:`DNNL_JIT_PROFILE_LINUX_PERF` #define :ref:`DNNL_JIT_PROFILE_LINUX_PERFMAP` #define :ref:`DNNL_JIT_PROFILE_NONE` #define :ref:`DNNL_JIT_PROFILE_VTUNE` #define :ref:`DNNL_MAX_NDIMS` #define :ref:`DNNL_MEMORY_ALLOCATE` #define :ref:`DNNL_MEMORY_NONE` #define :ref:`DNNL_RNN_MAX_N_PARTS` #define :ref:`DNNL_RUNTIME_DIM_VAL` #define :ref:`DNNL_RUNTIME_DPCPP` #define :ref:`DNNL_RUNTIME_F32_VAL` #define :ref:`DNNL_RUNTIME_NONE` #define :ref:`DNNL_RUNTIME_OCL` #define :ref:`DNNL_RUNTIME_OMP` #define :ref:`DNNL_RUNTIME_S32_VAL` #define :ref:`DNNL_RUNTIME_SEQ` #define :ref:`DNNL_RUNTIME_SIZE_VAL` #define :ref:`DNNL_RUNTIME_SYCL` #define :ref:`DNNL_RUNTIME_TBB` #define :ref:`DNNL_RUNTIME_THREADPOOL` #define :target:`DNNL_THROW_ERROR`(status, msg) #define :target:`IC` #define :target:`IC` #define :target:`OC` #define :target:`OC` #define :target:`OCL_CHECK`(x) #define :target:`POOL_OH` #define :target:`POOL_OH` #define :target:`POOL_OW` #define :target:`POOL_OW` #define :target:`POOL_PAD` #define :target:`POOL_PAD` #define :target:`POOL_STRIDE` #define :target:`POOL_STRIDE` #define :target:`PRAGMA_MACRO`(x) #define :target:`PRAGMA_MACRo`(x) #define :target:`PRAGMA_OMP_PARALLEL_FOR_COLLAPSE`(n) #define :target:`_POSIX_C_SOURCE` #define :target:`_POSIX_C_SOURCE`