.. _global: .. index:: pair: namespace; global Global Namespace ================ .. toctree:: :hidden: namespace_std.rst namespace_sycl.rst struct_args_t.rst struct_cpu_deletor.rst struct_example_allows_unimplemented.rst struct_gemm_dims_t.rst struct_sycl_deletor.rst Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block // namespaces namespace :ref:`dnnl`; namespace :ref:`dnnl::graph`; namespace :ref:`dnnl::graph::sycl_interop`; 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:`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:`dnnl::memory::dim` :target:`dim_t`; typedef :ref:`dnnl::memory::dim` :target:`dim_t`; typedef :ref:`logical_tensor::data_type` :target:`data_type`; typedef :ref:`logical_tensor::layout_type` :target:`layout_type`; typedef :ref:`logical_tensor::dim` :target:`dim`; typedef :ref:`logical_tensor::dims` :target:`dims`; typedef :ref:`logical_tensor::data_type` :target:`data_type`; typedef :ref:`logical_tensor::layout_type` :target:`layout_type`; typedef :ref:`logical_tensor::property_type` :target:`property_type`; typedef :ref:`logical_tensor::dim` :target:`dim`; typedef :ref:`logical_tensor::dims` :target:`dims`; typedef :ref:`logical_tensor::data_type` :target:`data_type`; typedef :ref:`logical_tensor::layout_type` :target:`layout_type`; typedef :ref:`logical_tensor::dim` :target:`dim`; typedef :ref:`logical_tensor::dims` :target:`dims`; typedef :ref:`logical_tensor::data_type` :target:`data_type`; typedef :ref:`logical_tensor::layout_type` :target:`layout_type`; typedef :ref:`logical_tensor::dim` :target:`dim`; typedef :ref:`logical_tensor::dims` :target:`dims`; typedef :ref:`logical_tensor::data_type` :target:`data_type`; typedef :ref:`logical_tensor::layout_type` :target:`layout_type`; typedef :ref:`logical_tensor::dim` :target:`dim`; typedef :ref:`logical_tensor::dims` :target:`dims`; 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 :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 struct :ref:`dnnl_memory_desc`* :ref:`dnnl_memory_desc_t`; typedef const struct :ref:`dnnl_memory_desc`* :ref:`const_dnnl_memory_desc_t`; typedef struct :ref:`dnnl_memory`* :ref:`dnnl_memory_t`; typedef const struct :ref:`dnnl_memory`* :ref:`const_dnnl_memory_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 int64_t :ref:`dnnl_dim_t`; typedef :ref:`dnnl_dim_t` :ref:`dnnl_dims_t`[DNNL_MAX_NDIMS]; typedef struct :ref:`dnnl_engine`* :ref:`dnnl_engine_t`; typedef struct :ref:`dnnl_stream`* :ref:`dnnl_stream_t`; typedef const struct :ref:`dnnl_stream`* :ref:`const_dnnl_stream_t`; typedef void* (*:ref:`dnnl_graph_sycl_allocate_f`)( size_t size, size_t alignment, const void *dev, const void *context ); typedef void (*:ref:`dnnl_graph_sycl_deallocate_f`)( void *buf, const void *dev, const void *context, void *event ); typedef struct dnnl_graph_partition* :ref:`dnnl_graph_partition_t`; typedef const struct dnnl_graph_partition* :ref:`const_dnnl_graph_partition_t`; typedef struct dnnl_graph_graph* :ref:`dnnl_graph_graph_t`; typedef const struct dnnl_graph_graph* :ref:`const_dnnl_graph_graph_t`; typedef struct dnnl_graph_op* :ref:`dnnl_graph_op_t`; typedef const struct dnnl_graph_op* :ref:`const_dnnl_graph_op_t`; typedef void* (*:ref:`dnnl_graph_host_allocate_f`)( size_t size, size_t alignment ); typedef void (*:ref:`dnnl_graph_host_deallocate_f`)(void *); typedef struct dnnl_graph_allocator* :ref:`dnnl_graph_allocator_t`; typedef const struct dnnl_graph_allocator* :ref:`const_dnnl_graph_allocator_t`; typedef struct dnnl_graph_compiled_partition* :ref:`dnnl_graph_compiled_partition_t`; typedef const struct dnnl_graph_compiled_partition* :ref:`const_dnnl_graph_compiled_partition_t`; typedef struct dnnl_graph_tensor* :ref:`dnnl_graph_tensor_t`; typedef const struct dnnl_graph_tensor* :ref:`const_dnnl_graph_tensor_t`; // enums enum :ref:`dnnl_accumulation_mode_t`; 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_graph_layout_type_t`; enum :ref:`dnnl_graph_op_attr_t`; enum :ref:`dnnl_graph_op_kind_t`; enum :ref:`dnnl_graph_partition_policy_t`; enum :ref:`dnnl_graph_tensor_property_t`; enum :ref:`dnnl_normalization_flags_t`; enum :ref:`dnnl_ocl_interop_memory_kind_t`; enum :ref:`dnnl_primitive_kind_t`; enum :ref:`dnnl_profiling_data_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_scratchpad_mode_t`; enum :ref:`dnnl_sparse_encoding_t`; enum :ref:`dnnl_status_t`; enum :ref:`dnnl_stream_flags_t`; enum :ref:`dnnl_sycl_interop_memory_kind_t`; // structs struct :ref:`args_t`; struct :ref:`cpu_deletor`; struct :ref:`dnnl_engine`; struct :ref:`dnnl_exec_arg_t`; struct :ref:`dnnl_graph_inplace_pair_t`; struct :ref:`dnnl_graph_logical_tensor_t`; struct :ref:`dnnl_memory`; struct :ref:`dnnl_memory_desc`; struct :ref:`dnnl_post_ops`; struct :ref:`dnnl_primitive`; struct :ref:`dnnl_primitive_attr`; struct :ref:`dnnl_primitive_desc`; struct :ref:`dnnl_stream`; struct :ref:`dnnl_version_t`; struct :ref:`example_allows_unimplemented`; struct :ref:`gemm_dims_t`; struct :ref:`sycl_deletor`; // 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; static const int :target:`min_runs` = 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; 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, :ref:`const_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, :ref:`const_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); bool :target:`check_result`(:ref:`dnnl::memory` dst_mem); void :target:`sparse_matmul`(); int :target:`main`(int argc, char** argv); void :target:`matmul_example`(:ref:`dnnl::engine::kind` engine_kind); 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); void :target:`finalize`(); :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); int :target:`main`(int argc, char** argv); int :target:`main`(int argc, char** argv); int :target:`main`(int argc, char** argv); void :ref:`set_any_layout`( const std::vector<:ref:`dnnl::graph::partition`>& partitions, std::unordered_set& id_to_set_any_layout ); void* :target:`sycl_malloc_wrapper`( size_t size, size_t alignment, const void* dev, const void* ctx ); void :target:`sycl_free_wrapper`( void* ptr, const void* device, const void* context, void* event ); void :target:`allocate_graph_mem`( std::vector<:ref:`dnnl::graph::tensor`>& tensors, const std::vector<:ref:`dnnl::graph::logical_tensor`>& lts, std::vector>& data_buffer, const :ref:`dnnl::engine`& eng ); void :target:`allocate_graph_mem`( std::vector<:ref:`dnnl::graph::tensor`>& tensors, const std::vector<:ref:`dnnl::graph::logical_tensor`>& lts, std::vector>& data_buffer, std::unordered_map`>& global_outputs_ts_map, const :ref:`dnnl::engine`& eng, bool is_input ); void :target:`allocate_sycl_graph_mem`( std::vector<:ref:`dnnl::graph::tensor`>& tensors, const std::vector<:ref:`dnnl::graph::logical_tensor`>& lts, std::vector>& data_buffer, sycl::queue& q, const :ref:`dnnl::engine`& eng ); void :target:`allocate_sycl_graph_mem`( std::vector<:ref:`dnnl::graph::tensor`>& tensors, const std::vector<:ref:`dnnl::graph::logical_tensor`>& lts, std::vector>& data_buffer, std::unordered_map`>& global_outputs_ts_map, sycl::queue& q, const :ref:`dnnl::engine`& eng, bool is_input ); int :target:`main`(int argc, char** argv); const char* :target:`get_type_string`(:ref:`dt` type); void :target:`print_test_case`(:ref:`dt` type, gemm_dims_t dims); void :target:`fill_random`(std::vector& out, bool is_integer); double :target:`run_case`( :ref:`engine::kind` engine_kind, :ref:`dt` type, gemm_dims_t dims, double time_limit = 0. ); void :target:`run`(:ref:`engine::kind` engine_kind, :ref:`dt` type, gemm_dims_t dims, double time_limit); void :target:`bad_args`(); void :target:`matmul_perf`(:ref:`engine::kind` engine_kind, int argc, char** argv); 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); :ref:`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:`augru_example`(:ref:`dnnl::engine::kind` engine_kind); 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:`group_normalization_example`(:ref:`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:`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`( 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:`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:`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`& sc_A_mem, :ref:`memory`& sc_B_mem, :ref:`memory`& sc_C_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:`matmul::primitive_desc` :target:`matmul_pd_create`( int64_t M, int64_t N, int64_t K, int64_t G, const :ref:`engine`& eng ); void :target:`prepare_input`(:ref:`memory`& A_f32_mem, :ref:`memory`& sc_B_mem, :ref:`memory`& zp_B_mem); void :target:`infer`( const :ref:`matmul`& matmul_p, int64_t M, int64_t N, int64_t K, int64_t G, const :ref:`memory`& B_s8_mem, const :ref:`engine`& eng ); void :target:`weights_decompression_matmul`(:ref:`engine::kind` engine_kind); int :target:`main`(int argc, char** argv); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_desc_next_impl`(:ref:`dnnl_primitive_desc_t` 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 ); :ref:`const_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_create_from_cache_blob`( :ref:`dnnl_primitive_t`* primitive, :ref:`const_dnnl_primitive_desc_t` primitive_desc, size_t size, const uint8_t* cache_blob ); :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_get_cache_blob`( :ref:`const_dnnl_primitive_t` primitive, size_t* size, uint8_t* cache_blob ); :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_fpmath_mode_v2`( :ref:`const_dnnl_primitive_attr_t` attr, :ref:`dnnl_fpmath_mode_t`* mode, int* apply_to_int ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_fpmath_mode_v2`( :ref:`dnnl_primitive_attr_t` attr, :ref:`dnnl_fpmath_mode_t` mode, int apply_to_int ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_get_deterministic`( :ref:`const_dnnl_primitive_attr_t` attr, int* value ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_deterministic`( :ref:`dnnl_primitive_attr_t` attr, int value ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_get_accumulation_mode`( :ref:`const_dnnl_primitive_attr_t` attr, :ref:`dnnl_accumulation_mode_t`* mode ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_accumulation_mode`( :ref:`dnnl_primitive_attr_t` attr, :ref:`dnnl_accumulation_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_set_scales_mask`( :ref:`dnnl_primitive_attr_t` attr, int arg, int mask ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_scales`( :ref:`dnnl_primitive_attr_t` attr, int arg, int mask, int ndims, const :ref:`dnnl_dims_t` group_dims, :ref:`dnnl_data_type_t` data_type ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_zero_points_mask`( :ref:`dnnl_primitive_attr_t` attr, int arg, int mask ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_primitive_attr_set_zero_points`( :ref:`dnnl_primitive_attr_t` attr, int arg, int mask, int ndims, const :ref:`dnnl_dims_t` group_dims, :ref:`dnnl_data_type_t` data_type ); :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_clone`( :ref:`dnnl_post_ops_t`* post_ops, :ref:`const_dnnl_post_ops_t` existing_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, 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, 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, :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, :ref:`dnnl_alg_kind_t`* alg_kind, float* alpha, float* beta ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_append_dw`( :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` kernel_size, :ref:`dnnl_dim_t` stride_size, :ref:`dnnl_dim_t` padding_l_size ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_post_ops_get_params_dw`( :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`* kernel_size, :ref:`dnnl_dim_t`* stride_size, :ref:`dnnl_dim_t`* padding_l_size ); :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, :ref:`const_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, :ref:`const_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_destroy`(:ref:`dnnl_memory_desc_t` memory_desc); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_clone`( :ref:`dnnl_memory_desc_t`* memory_desc, :ref:`const_dnnl_memory_desc_t` existing_memory_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_get_blob`( uint8_t* blob, size_t* size, :ref:`const_dnnl_memory_desc_t` memory_desc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_create_with_blob`( :ref:`dnnl_memory_desc_t`* memory_desc, const uint8_t* blob ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_create_with_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_create_with_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_create_with_csr_encoding`( :ref:`dnnl_memory_desc_t`* memory_desc, int ndims, const :ref:`dnnl_dims_t` dims, :ref:`dnnl_data_type_t` data_type, :ref:`dnnl_dim_t` nnz, :ref:`dnnl_data_type_t` indices_dt, :ref:`dnnl_data_type_t` pointers_dt ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_create_with_packed_encoding`( :ref:`dnnl_memory_desc_t`* memory_desc, int ndims, const :ref:`dnnl_dims_t` dims, :ref:`dnnl_data_type_t` data_type, :ref:`dnnl_dim_t` nnz ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_create_submemory`( :ref:`dnnl_memory_desc_t`* memory_desc, :ref:`const_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, :ref:`const_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, :ref:`const_dnnl_memory_desc_t` in_memory_desc, const int* permutation ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_query`( :ref:`const_dnnl_memory_desc_t` memory_desc, :ref:`dnnl_query_t` what, void* result ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_desc_query_v2`( :ref:`const_dnnl_memory_desc_t` memory_desc, :ref:`dnnl_query_t` what, int index, void* result ); int DNNL_API :ref:`dnnl_memory_desc_equal`( :ref:`const_dnnl_memory_desc_t` lhs, :ref:`const_dnnl_memory_desc_t` rhs ); size_t DNNL_API :ref:`dnnl_memory_desc_get_size`(:ref:`const_dnnl_memory_desc_t` memory_desc); size_t DNNL_API :ref:`dnnl_memory_desc_get_size_v2`( :ref:`const_dnnl_memory_desc_t` memory_desc, int index ); 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, :ref:`const_dnnl_memory_desc_t` memory_desc, :ref:`dnnl_engine_t` engine, void* handle ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_create_v2`( :ref:`dnnl_memory_t`* memory, :ref:`const_dnnl_memory_desc_t` memory_desc, :ref:`dnnl_engine_t` engine, int nhandles, void** handles ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_get_memory_desc`( :ref:`const_dnnl_memory_t` memory, :ref:`const_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_map_data_v2`( :ref:`const_dnnl_memory_t` memory, void** mapped_ptr, int index ); :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_unmap_data_v2`( :ref:`const_dnnl_memory_t` memory, void* mapped_ptr, int index ); :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_get_data_handle_v2`( :ref:`const_dnnl_memory_t` memory, void** handle, int index ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_memory_set_data_handle_v2`( :ref:`dnnl_memory_t` memory, void* handle, int index ); :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, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`dnnl_engine_t` src_engine, :ref:`const_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, :ref:`dnnl_engine_t` engine, :ref:`const_dnnl_memory_desc_t` dst_desc, int n, int concat_dimension, :ref:`const_dnnl_memory_desc_t` const* src_descs, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_sum_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* sum_primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`const_dnnl_memory_desc_t` dst_desc, int n, const float* scales, :ref:`const_dnnl_memory_desc_t` const* src_descs, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_binary_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` src0_desc, :ref:`const_dnnl_memory_desc_t` src1_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_convolution_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` weights_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_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:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_convolution_backward_data_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` weights_desc, :ref:`const_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:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_convolution_backward_weights_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_desc, :ref:`const_dnnl_memory_desc_t` diff_bias_desc, :ref:`const_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:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_deconvolution_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` weights_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_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:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_deconvolution_backward_data_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` weights_desc, :ref:`const_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:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_deconvolution_backward_weights_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_desc, :ref:`const_dnnl_memory_desc_t` diff_bias_desc, :ref:`const_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:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_shuffle_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, int axis, :ref:`dnnl_dim_t` group_size, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_shuffle_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, int axis, :ref:`dnnl_dim_t` group_size, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_eltwise_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, float alpha, float beta, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_eltwise_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, :ref:`const_dnnl_memory_desc_t` data_desc, float alpha, float beta, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_softmax_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, int softmax_axis, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_softmax_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, int softmax_axis, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_pooling_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_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:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_pooling_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_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:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_prelu_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` weights_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_prelu_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` weights_desc, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lrn_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, :ref:`dnnl_dim_t` local_size, float alpha, float beta, float k, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lrn_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`dnnl_dim_t` local_size, float alpha, float beta, float k, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_batch_normalization_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, float epsilon, unsigned flags, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_batch_normalization_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, :ref:`const_dnnl_memory_desc_t` src_desc, float epsilon, unsigned flags, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_group_normalization_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, :ref:`dnnl_dim_t` groups, float epsilon, unsigned flags, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_group_normalization_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`dnnl_dim_t` groups, float epsilon, unsigned flags, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_layer_normalization_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, :ref:`const_dnnl_memory_desc_t` stat_desc, float epsilon, unsigned flags, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_layer_normalization_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` stat_desc, float epsilon, unsigned flags, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_layer_normalization_forward_primitive_desc_create_v2`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, :ref:`const_dnnl_memory_desc_t` stat_desc, :ref:`dnnl_data_type_t` scale_shift_data_type, float epsilon, unsigned flags, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_layer_normalization_backward_primitive_desc_create_v2`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` stat_desc, :ref:`dnnl_data_type_t` diff_scale_shift_data_type, :ref:`dnnl_data_type_t` scale_shift_data_type, float epsilon, unsigned flags, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_inner_product_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` weights_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_inner_product_backward_data_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` weights_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_inner_product_backward_weights_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_desc, :ref:`const_dnnl_memory_desc_t` diff_bias_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :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_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_alg_kind_t` activation, const :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, unsigned flags, float alpha, float beta, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_vanilla_rnn_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, const :ref:`dnnl_alg_kind_t` activation, const :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_src_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_src_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_bias_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_iter_desc, unsigned flags, float alpha, float beta, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lstm_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` src_iter_c_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` weights_peephole_desc, :ref:`const_dnnl_memory_desc_t` weights_projection_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_c_desc, unsigned flags, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lstm_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` src_iter_c_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` weights_peephole_desc, :ref:`const_dnnl_memory_desc_t` weights_projection_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_c_desc, :ref:`const_dnnl_memory_desc_t` diff_src_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_src_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_src_iter_c_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_peephole_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_projection_desc, :ref:`const_dnnl_memory_desc_t` diff_bias_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_iter_c_desc, unsigned flags, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_gru_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, unsigned flags, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_gru_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_src_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_src_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_bias_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_iter_desc, unsigned flags, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lbr_gru_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, unsigned flags, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lbr_gru_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_src_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_src_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_bias_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_iter_desc, unsigned flags, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_augru_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` attention_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, unsigned flags, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_augru_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` attention_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_src_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_src_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_attention_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_bias_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_iter_desc, unsigned flags, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lbr_augru_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` attention_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, unsigned flags, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_lbr_augru_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_rnn_direction_t` direction, :ref:`const_dnnl_memory_desc_t` src_layer_desc, :ref:`const_dnnl_memory_desc_t` src_iter_desc, :ref:`const_dnnl_memory_desc_t` attention_desc, :ref:`const_dnnl_memory_desc_t` weights_layer_desc, :ref:`const_dnnl_memory_desc_t` weights_iter_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_layer_desc, :ref:`const_dnnl_memory_desc_t` dst_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_src_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_src_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_attention_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_weights_iter_desc, :ref:`const_dnnl_memory_desc_t` diff_bias_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_layer_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_iter_desc, unsigned flags, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_matmul_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` weights_desc, :ref:`const_dnnl_memory_desc_t` bias_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_resampling_forward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_prop_kind_t` prop_kind, :ref:`dnnl_alg_kind_t` alg_kind, const float* factors, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_resampling_backward_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_alg_kind_t` alg_kind, const float* factors, :ref:`const_dnnl_memory_desc_t` diff_src_desc, :ref:`const_dnnl_memory_desc_t` diff_dst_desc, :ref:`const_dnnl_primitive_desc_t` hint_fwd_pd, :ref:`const_dnnl_primitive_attr_t` attr ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_reduction_primitive_desc_create`( :ref:`dnnl_primitive_desc_t`* primitive_desc, :ref:`dnnl_engine_t` engine, :ref:`dnnl_alg_kind_t` alg_kind, :ref:`const_dnnl_memory_desc_t` src_desc, :ref:`const_dnnl_memory_desc_t` dst_desc, float p, float eps, :ref:`const_dnnl_primitive_attr_t` attr ); :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_set_jit_dump`(int enable); :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_reset_profiling`(:ref:`dnnl_stream_t` stream); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_query_profiling_data`( :ref:`dnnl_stream_t` stream, :ref:`dnnl_profiling_data_kind_t` data_kind, int* num_entries, uint64_t* data ); :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_fpmath_mode2str`(:ref:`dnnl_fpmath_mode_t` v); const char DNNL_API* :target:`dnnl_accumulation_mode2str`(:ref:`dnnl_accumulation_mode_t` v); const char DNNL_API* :target:`dnnl_engine_kind2str`(:ref:`dnnl_engine_kind_t` v); const char DNNL_API* :target:`dnnl_sparse_encoding2str`(:ref:`dnnl_sparse_encoding_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_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); const char DNNL_API* :target:`dnnl_fmt_kind2str`(:ref:`dnnl_format_kind_t` v); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_memory_create`( :ref:`dnnl_memory_t`* memory, :ref:`const_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_get_cache_blob_id`( cl_device_id device, size_t* size, uint8_t* cache_blob_id ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_engine_get_cache_blob`( :ref:`dnnl_engine_t` engine, size_t* size, uint8_t* cache_blob ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_ocl_interop_engine_create_from_cache_blob`( :ref:`dnnl_engine_t`* engine, cl_device_id device, cl_context context, size_t size, const uint8_t* cache_blob ); :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_ocl_interop_primitive_execute`( :ref:`const_dnnl_primitive_t` primitive, :ref:`dnnl_stream_t` stream, int nargs, const :ref:`dnnl_exec_arg_t`* args, const cl_event* deps, int ndeps, cl_event* return_event ); :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, :ref:`const_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_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_set_max_concurrency`(int max_concurrency); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_threadpool_interop_get_max_concurrency`(int* max_concurrency); :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 ); 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_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); const :ref:`dnnl_version_t` DNNL_API* :ref:`dnnl_version`(void); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_allocator_create`( :ref:`dnnl_graph_allocator_t`* allocator, :ref:`dnnl_graph_host_allocate_f` host_malloc, :ref:`dnnl_graph_host_deallocate_f` host_free ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_allocator_destroy`(:ref:`dnnl_graph_allocator_t` allocator); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_make_engine_with_allocator`( :ref:`dnnl_engine_t`* engine, :ref:`dnnl_engine_kind_t` kind, size_t index, :ref:`const_dnnl_graph_allocator_t` alloc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_logical_tensor_init`( :ref:`dnnl_graph_logical_tensor_t`* logical_tensor, size_t tid, :ref:`dnnl_data_type_t` dtype, int32_t ndims, :ref:`dnnl_graph_layout_type_t` ltype, :ref:`dnnl_graph_tensor_property_t` ptype ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_logical_tensor_init_with_dims`( :ref:`dnnl_graph_logical_tensor_t`* logical_tensor, size_t tid, :ref:`dnnl_data_type_t` dtype, int32_t ndims, const :ref:`dnnl_dims_t` dims, :ref:`dnnl_graph_layout_type_t` ltype, :ref:`dnnl_graph_tensor_property_t` ptype ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_logical_tensor_init_with_strides`( :ref:`dnnl_graph_logical_tensor_t`* logical_tensor, size_t tid, :ref:`dnnl_data_type_t` dtype, int32_t ndims, const :ref:`dnnl_dims_t` dims, const :ref:`dnnl_dims_t` strides, :ref:`dnnl_graph_tensor_property_t` ptype ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_logical_tensor_get_mem_size`( const :ref:`dnnl_graph_logical_tensor_t`* logical_tensor, size_t* size ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_logical_tensor_is_equal`( const :ref:`dnnl_graph_logical_tensor_t`* lt1, const :ref:`dnnl_graph_logical_tensor_t`* lt2, uint8_t* is_equal ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_tensor_create`( :ref:`dnnl_graph_tensor_t`* tensor, const :ref:`dnnl_graph_logical_tensor_t`* logical_tensor, :ref:`dnnl_engine_t` engine, void* handle ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_tensor_destroy`(:ref:`dnnl_graph_tensor_t` tensor); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_tensor_get_data_handle`( :ref:`const_dnnl_graph_tensor_t` tensor, void** handle ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_tensor_set_data_handle`( :ref:`dnnl_graph_tensor_t` tensor, void* handle ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_tensor_get_engine`( :ref:`const_dnnl_graph_tensor_t` tensor, :ref:`dnnl_engine_t`* engine ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_op_create`( :ref:`dnnl_graph_op_t`* op, size_t id, :ref:`dnnl_graph_op_kind_t` kind, const char* verbose_name ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_op_destroy`(:ref:`dnnl_graph_op_t` op); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_op_add_input`( :ref:`dnnl_graph_op_t` op, const :ref:`dnnl_graph_logical_tensor_t`* input ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_op_add_output`( :ref:`dnnl_graph_op_t` op, const :ref:`dnnl_graph_logical_tensor_t`* output ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_op_set_attr_f32`( :ref:`dnnl_graph_op_t` op, :ref:`dnnl_graph_op_attr_t` name, const float* value, size_t value_len ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_op_set_attr_bool`( :ref:`dnnl_graph_op_t` op, :ref:`dnnl_graph_op_attr_t` name, const uint8_t* value, size_t value_len ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_op_set_attr_s64`( :ref:`dnnl_graph_op_t` op, :ref:`dnnl_graph_op_attr_t` name, const int64_t* value, size_t value_len ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_op_set_attr_str`( :ref:`dnnl_graph_op_t` op, :ref:`dnnl_graph_op_attr_t` name, const char* value, size_t value_len ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_op_get_id`( :ref:`const_dnnl_graph_op_t` op, size_t* id ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_op_get_kind`( :ref:`const_dnnl_graph_op_t` op, :ref:`dnnl_graph_op_kind_t`* kind ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_create_with_op`( :ref:`dnnl_graph_partition_t`* partition, :ref:`const_dnnl_graph_op_t` op, :ref:`dnnl_engine_kind_t` ekind ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_destroy`(:ref:`dnnl_graph_partition_t` partition); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_get_op_num`( :ref:`const_dnnl_graph_partition_t` partition, size_t* num ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_get_ops`( :ref:`dnnl_graph_partition_t` partition, size_t num, size_t* ids ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_get_id`( :ref:`const_dnnl_graph_partition_t` partition, size_t* id ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_compile`( :ref:`dnnl_graph_partition_t` partition, :ref:`dnnl_graph_compiled_partition_t` compiled_partition, size_t in_num, const :ref:`dnnl_graph_logical_tensor_t`** inputs, size_t out_num, const :ref:`dnnl_graph_logical_tensor_t`** outputs, :ref:`dnnl_engine_t` engine ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_get_input_ports_num`( :ref:`const_dnnl_graph_partition_t` partition, size_t* num ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_get_input_ports`( :ref:`const_dnnl_graph_partition_t` partition, size_t num, :ref:`dnnl_graph_logical_tensor_t`* inputs ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_get_output_ports_num`( :ref:`const_dnnl_graph_partition_t` partition, size_t* num ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_get_output_ports`( :ref:`const_dnnl_graph_partition_t` partition, size_t num, :ref:`dnnl_graph_logical_tensor_t`* outputs ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_is_supported`( :ref:`const_dnnl_graph_partition_t` partition, uint8_t* is_supported ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_partition_get_engine_kind`( :ref:`const_dnnl_graph_partition_t` partition, :ref:`dnnl_engine_kind_t`* kind ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_compiled_partition_create`( :ref:`dnnl_graph_compiled_partition_t`* compiled_partition, :ref:`dnnl_graph_partition_t` partition ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_compiled_partition_execute`( :ref:`const_dnnl_graph_compiled_partition_t` compiled_partition, :ref:`dnnl_stream_t` stream, size_t num_inputs, :ref:`const_dnnl_graph_tensor_t`* inputs, size_t num_outputs, :ref:`const_dnnl_graph_tensor_t`* outputs ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_compiled_partition_destroy`(:ref:`dnnl_graph_compiled_partition_t` compiled_partition); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_compiled_partition_query_logical_tensor`( :ref:`const_dnnl_graph_compiled_partition_t` compiled_partition, size_t tid, :ref:`dnnl_graph_logical_tensor_t`* lt ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_compiled_partition_get_inplace_ports`( :ref:`const_dnnl_graph_compiled_partition_t` compiled_partition, size_t* num_inplace_pairs, const :ref:`dnnl_graph_inplace_pair_t`** inplace_pairs ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_graph_create`( :ref:`dnnl_graph_graph_t`* graph, :ref:`dnnl_engine_kind_t` engine_kind ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_graph_create_with_fpmath_mode`( :ref:`dnnl_graph_graph_t`* graph, :ref:`dnnl_engine_kind_t` engine_kind, :ref:`dnnl_fpmath_mode_t` mode ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_graph_destroy`(:ref:`dnnl_graph_graph_t` graph); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_add_op`( :ref:`dnnl_graph_graph_t` graph, :ref:`dnnl_graph_op_t` op ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_graph_finalize`(:ref:`dnnl_graph_graph_t` graph); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_graph_is_finalized`( :ref:`dnnl_graph_graph_t` graph, uint8_t* finalized ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_graph_filter`( :ref:`dnnl_graph_graph_t` graph, :ref:`dnnl_graph_partition_policy_t` policy ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_graph_get_partition_num`( :ref:`const_dnnl_graph_graph_t` graph, size_t* num ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_graph_get_partitions`( :ref:`dnnl_graph_graph_t` graph, size_t num, :ref:`dnnl_graph_partition_t`* partitions ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_get_compiled_partition_cache_capacity`(int* capacity); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_set_compiled_partition_cache_capacity`(int capacity); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_set_constant_tensor_cache`(int flag); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_get_constant_tensor_cache`(int* flag); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_set_constant_tensor_cache_capacity`( :ref:`dnnl_engine_kind_t` eng_kind, size_t size ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_get_constant_tensor_cache_capacity`( :ref:`dnnl_engine_kind_t` eng_kind, size_t* size ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_sycl_interop_allocator_create`( :ref:`dnnl_graph_allocator_t`* allocator, :ref:`dnnl_graph_sycl_allocate_f` sycl_malloc, :ref:`dnnl_graph_sycl_deallocate_f` sycl_free ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_sycl_interop_make_engine_with_allocator`( :ref:`dnnl_engine_t`* engine, const void* device, const void* context, :ref:`const_dnnl_graph_allocator_t` alloc ); :ref:`dnnl_status_t` DNNL_API :ref:`dnnl_graph_sycl_interop_compiled_partition_execute`( :ref:`const_dnnl_graph_compiled_partition_t` compiled_partition, :ref:`dnnl_stream_t` stream, size_t num_inputs, :ref:`const_dnnl_graph_tensor_t`* inputs, size_t num_outputs, :ref:`const_dnnl_graph_tensor_t`* outputs, const void* deps, void* sycl_event ); // 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_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_SCALES` #define :ref:`DNNL_ARG_ATTR_ZERO_POINTS` #define :ref:`DNNL_ARG_AUGRU_ATTENTION` #define :ref:`DNNL_ARG_BIAS` #define :ref:`DNNL_ARG_DIFF_AUGRU_ATTENTION` #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_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_3` #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_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_3` #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_GRAPH_UNKNOWN_DIM` #define :ref:`DNNL_GRAPH_UNKNOWN_NDIMS` #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_RUNTIME_DIM_VAL` #define :ref:`DNNL_RUNTIME_F32_VAL` #define :ref:`DNNL_RUNTIME_S32_VAL` #define :ref:`DNNL_RUNTIME_SIZE_VAL` #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:`TYPE_CASE`(T) #define :target:`UNUSED`(x) #define :target:`_POSIX_C_SOURCE` #define :target:`_POSIX_C_SOURCE` .. _details-global: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Global Functions ---------------- .. index:: pair: function; set_any_layout .. _doxid-graph__example__utils_8hpp_1af80343ea471266a6b9747466539e80ee: .. ref-code-block:: cpp :class: doxyrest-title-code-block void set_any_layout( const std::vector<:ref:`dnnl::graph::partition`>& partitions, std::unordered_set& id_to_set_any_layout ) Set any layout according to the connection relationship of partitions. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - partitions - a list of partitions * - id_to_set_any_layout - a set of ids of logical tensors with any layout type