.. index:: pair: group; RNN .. _doxid-group__dnnl__api__rnn: RNN === .. toctree:: :hidden: enum_dnnl_rnn_direction_t.rst enum_dnnl_rnn_flags_t.rst enum_dnnl_rnn_direction.rst enum_dnnl_rnn_flags.rst struct_dnnl_augru_backward.rst struct_dnnl_augru_forward.rst struct_dnnl_gru_backward.rst struct_dnnl_gru_forward.rst struct_dnnl_lbr_augru_backward.rst struct_dnnl_lbr_augru_forward.rst struct_dnnl_lbr_gru_backward.rst struct_dnnl_lbr_gru_forward.rst struct_dnnl_lstm_backward.rst struct_dnnl_lstm_forward.rst struct_dnnl_rnn_primitive_desc_base.rst struct_dnnl_vanilla_rnn_backward.rst struct_dnnl_vanilla_rnn_forward.rst Overview ~~~~~~~~ A primitive to compute recurrent neural network layers. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block // enums enum :ref:`dnnl_rnn_direction_t`; enum :ref:`dnnl_rnn_flags_t`; enum :ref:`dnnl::rnn_direction`; enum :ref:`dnnl::rnn_flags`; // structs struct :ref:`dnnl::augru_backward`; struct :ref:`dnnl::augru_forward`; struct :ref:`dnnl::gru_backward`; struct :ref:`dnnl::gru_forward`; struct :ref:`dnnl::lbr_augru_backward`; struct :ref:`dnnl::lbr_augru_forward`; struct :ref:`dnnl::lbr_gru_backward`; struct :ref:`dnnl::lbr_gru_forward`; struct :ref:`dnnl::lstm_backward`; struct :ref:`dnnl::lstm_forward`; struct :ref:`dnnl::rnn_primitive_desc_base`; struct :ref:`dnnl::vanilla_rnn_backward`; struct :ref:`dnnl::vanilla_rnn_forward`; // global functions :ref:`dnnl_rnn_flags_t` :ref:`dnnl::convert_to_c`(:ref:`rnn_flags` flags); :ref:`dnnl_rnn_direction_t` :ref:`dnnl::convert_to_c`(:ref:`rnn_direction` dir); :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 ); .. _details-group__dnnl__api__rnn: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ A primitive to compute recurrent neural network layers. .. rubric:: See also: :ref:`RNN ` in developer guide Global Functions ---------------- .. index:: pair: function; convert_to_c .. _doxid-group__dnnl__api__rnn_1ga0a340195a137f906e858418d91397777: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_rnn_flags_t` dnnl::convert_to_c(:ref:`rnn_flags` flags) Converts RNN cell flags enum value from C++ API to C API type. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - flags - C++ API RNN cell flags enum value. .. rubric:: Returns: Corresponding C API RNN cell flags enum value. .. index:: pair: function; convert_to_c .. _doxid-group__dnnl__api__rnn_1ga1915ea2d2fe94077fa30734ced88a225: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_rnn_direction_t` dnnl::convert_to_c(:ref:`rnn_direction` dir) Converts RNN direction enum value from C++ API to C API type. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - dir - C++ API RNN direction enum value. .. rubric:: Returns: Corresponding C API RNN direction enum value. .. index:: pair: function; dnnl_vanilla_rnn_forward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1gacae0d89a99432e71bf935f4b8bc8c370: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a primitive descriptor for vanilla RNN forward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc``, * ``bias_desc``, * ``dst_iter_desc``. This would then indicate that the RNN forward propagation primitive should not use them and should default to zero values instead. .. note:: All memory descriptors can be initialized with :ref:`dnnl_format_tag_any ` or with format_kind set to :ref:`dnnl_format_kind_any `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Possible values are :ref:`dnnl_forward_training ` and :ref:`dnnl_forward_inference `. * - activation - Activation kind. Possible values are :ref:`dnnl_eltwise_relu `, :ref:`dnnl_eltwise_tanh ` or :ref:`dnnl_eltwise_logistic `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - flags - Unused. * - alpha - Negative slope if activation is :ref:`dnnl_eltwise_relu `. * - beta - Unused. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise. .. index:: pair: function; dnnl_vanilla_rnn_backward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1ga01f9132fb153989baaa01f5d2f4f9097: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a primitive descriptor for vanilla RNN backward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc`` together with ``diff_src_iter_desc``, * ``bias_desc`` together with ``diff_bias_desc``, * ``dst_iter_desc`` together with ``diff_dst_iter_desc``. This would then indicate that the RNN backward propagation primitive should not use the respective data and should use zero values instead. .. note:: All memory descriptors can be initialized with :ref:`dnnl_format_tag_any ` or with format_kind set to :ref:`dnnl_format_kind_any `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Must be :ref:`dnnl_backward `. * - activation - Activation kind. Possible values are :ref:`dnnl_eltwise_relu `, :ref:`dnnl_eltwise_tanh ` or :ref:`dnnl_eltwise_logistic `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - diff_src_layer_desc - Memory descriptor for the diff of input vector. * - diff_src_iter_desc - Memory descriptor for the diff of input recurrent hidden state vector. * - diff_weights_layer_desc - Memory descriptor for the diff of weights applied to the layer input. * - diff_weights_iter_desc - Memory descriptor for the diff of weights applied to the recurrent input. * - diff_bias_desc - Diff bias memory descriptor. * - diff_dst_layer_desc - Memory descriptor for the diff of output vector. * - diff_dst_iter_desc - Memory descriptor for the diff of output recurrent hidden state vector. * - flags - Unused. * - alpha - Negative slope if activation is :ref:`dnnl_eltwise_relu `. * - beta - Unused. * - hint_fwd_pd - Primitive descriptor for a respective forward propagation primitive. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise. .. index:: pair: function; dnnl_lstm_forward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1ga7184f51a15df7f2d0105caf4bb810c5e: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a primitive descriptor for an LSTM forward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc`` together with ``src_iter_c_desc``, * ``weights_peephole_desc``, * ``bias_desc``, * ``dst_iter_desc`` together with ``dst_iter_c_desc``. This would then indicate that the LSTM forward propagation primitive should not use them and should default to zero values instead. The ``weights_projection_desc`` could either be ``NULL`` or point to a zero memory descriptor. This would then indicate that the LSTM doesn't have recurrent projection layer. .. note:: All memory descriptors can be initialized with :ref:`dnnl_format_tag_any ` or with format_kind set to :ref:`dnnl_format_kind_any `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Possible values are :ref:`dnnl_forward_training ` and :ref:`dnnl_forward_inference `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - src_iter_c_desc - Memory descriptor for the input recurrent cell state vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - weights_peephole_desc - Memory descriptor for the weights applied to the cell states (according to the Peephole LSTM formula). * - weights_projection_desc - Memory descriptor for the weights applied to the hidden states to get the recurrent projection (according to the Projection LSTM formula). * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - dst_iter_c_desc - Memory descriptor for the output recurrent cell state vector. * - flags - Unused. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise. .. index:: pair: function; dnnl_lstm_backward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1ga7b80d3a81aa9772d20e6061cbf4ffc32: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a primitive descriptor for an LSTM backward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc`` together with ``src_iter_c_desc``, ``diff_src_iter_desc``, and ``diff_src_iter_c_desc``, * ``weights_peephole_desc`` together with ``diff_weights_peephole_desc``, * ``bias_desc`` together with ``diff_bias_desc``, * ``dst_iter_desc`` together with ``dst_iter_c_desc``, ``diff_dst_iter_desc``, and ``diff_dst_iter_c_desc``. This would then indicate that the LSTM backward propagation primitive should not use them and should default to zero values instead. The ``weights_projection_desc`` together with ``diff_weights_projection_desc`` could either be ``NULL`` or point to a zero memory descriptor. This would then indicate that the LSTM doesn't have recurrent projection layer. .. note:: All memory descriptors can be initialized with :ref:`dnnl_format_tag_any ` or with format_kind set to :ref:`dnnl_format_kind_any `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Must be :ref:`dnnl_backward `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - src_iter_c_desc - Memory descriptor for the input recurrent cell state vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - weights_peephole_desc - Memory descriptor for the weights applied to the cell states (according to the Peephole LSTM formula). * - weights_projection_desc - Memory descriptor for the weights applied to the hidden states to get the recurrent projection (according to the Projection LSTM formula). * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - dst_iter_c_desc - Memory descriptor for the output recurrent cell state vector. * - diff_src_layer_desc - Memory descriptor for the diff of input vector. * - diff_src_iter_desc - Memory descriptor for the diff of input recurrent hidden state vector. * - diff_src_iter_c_desc - Memory descriptor for the diff of input recurrent cell state vector. * - diff_weights_layer_desc - Memory descriptor for the diff of weights applied to the layer input. * - diff_weights_iter_desc - Memory descriptor for the diff of weights applied to the recurrent input. * - diff_weights_peephole_desc - Memory descriptor for the diff of weights applied to the cell states (according to the Peephole LSTM formula). * - diff_weights_projection_desc - Memory descriptor for the diff of weights applied to the hidden states to get the recurrent projection (according to the Projection LSTM formula). * - diff_bias_desc - Diff bias memory descriptor. * - diff_dst_layer_desc - Memory descriptor for the diff of output vector. * - diff_dst_iter_desc - Memory descriptor for the diff of output recurrent hidden state vector. * - diff_dst_iter_c_desc - Memory descriptor for the diff of output recurrent cell state vector. * - flags - Unused. * - hint_fwd_pd - Primitive descriptor for a respective forward propagation primitive. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise. .. index:: pair: function; dnnl_gru_forward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1gaa2c83abbb22c101e2369161750d80e5e: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a primitive descriptor for GRU forward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc``, * ``bias_desc``, * ``dst_iter_desc``. This would then indicate that the GRU forward propagation primitive should not use them and should default to zero values instead. .. note:: All memory descriptors can be initialized with :ref:`dnnl_format_tag_any ` or with format_kind set to :ref:`dnnl_format_kind_any `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Possible values are :ref:`dnnl_forward_training ` and :ref:`dnnl_forward_inference `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - flags - Unused. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise. .. index:: pair: function; dnnl_gru_backward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1ga1911de70db4048436e71c1ed90d2c214: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a primitive descriptor for GRU backward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc`` together with ``diff_src_iter_desc``, * ``bias_desc`` together with ``diff_bias_desc``, * ``dst_iter_desc`` together with ``diff_dst_iter_desc``. This would then indicate that the GRU backward propagation primitive should not use them and should default to zero values instead. .. note:: All memory descriptors can be initialized with :ref:`dnnl_format_tag_any ` or with format_kind set to :ref:`dnnl_format_kind_any `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Must be :ref:`dnnl_backward `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - diff_src_layer_desc - Memory descriptor for the diff of input vector. * - diff_src_iter_desc - Memory descriptor for the diff of input recurrent hidden state vector. * - diff_weights_layer_desc - Memory descriptor for the diff of weights applied to the layer input. * - diff_weights_iter_desc - Memory descriptor for the diff of weights applied to the recurrent input. * - diff_bias_desc - Diff bias memory descriptor. * - diff_dst_layer_desc - Memory descriptor for the diff of output vector. * - diff_dst_iter_desc - Memory descriptor for the diff of output recurrent hidden state vector. * - flags - Unused. * - hint_fwd_pd - Primitive descriptor for a respective forward propagation primitive. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise. .. index:: pair: function; dnnl_lbr_gru_forward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1ga399570ef09834faa8b426ca8dbe231ae: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a descriptor for LBR GRU forward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc``, * ``bias_desc``, * ``dst_iter_desc``. This would then indicate that the LBR GRU forward propagation primitive should not use them and should default to zero values instead. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Possible values are :ref:`dnnl_forward_training ` and :ref:`dnnl_forward_inference `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - flags - Unused. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise. .. index:: pair: function; dnnl_lbr_gru_backward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1ga0a6d44b064f5c819ed335d3061dbcc7d: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a primitive descriptor for LBR GRU backward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc`` together with ``diff_src_iter_desc``, * ``bias_desc`` together with ``diff_bias_desc``, * ``dst_iter_desc`` together with ``diff_dst_iter_desc``. This would then indicate that the LBR GRU backward propagation primitive should not use them and should default to zero values instead. .. note:: All memory descriptors can be initialized with :ref:`dnnl_format_tag_any ` or with format_kind set to :ref:`dnnl_format_kind_any `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Must be :ref:`dnnl_backward `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - diff_src_layer_desc - Memory descriptor for the diff of input vector. * - diff_src_iter_desc - Memory descriptor for the diff of input recurrent hidden state vector. * - diff_weights_layer_desc - Memory descriptor for the diff of weights applied to the layer input. * - diff_weights_iter_desc - Memory descriptor for the diff of weights applied to the recurrent input. * - diff_bias_desc - Diff bias memory descriptor. * - diff_dst_layer_desc - Memory descriptor for the diff of output vector. * - diff_dst_iter_desc - Memory descriptor for the diff of output recurrent hidden state vector. * - flags - Unused. * - hint_fwd_pd - Primitive descriptor for a respective forward propagation primitive. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise. .. index:: pair: function; dnnl_augru_forward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1ga53c0f055391601f4e305f50fe1459f8b: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a primitive descriptor for AUGRU forward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc``, * ``bias_desc``, * ``dst_iter_desc``. This would then indicate that the AUGRU forward propagation primitive should not use them and should default to zero values instead. .. note:: All memory descriptors can be initialized with :ref:`dnnl_format_tag_any ` or with format_kind set to :ref:`dnnl_format_kind_any `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Possible values are :ref:`dnnl_forward_training ` and :ref:`dnnl_forward_inference `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - attention_desc - Memory descriptor for the attention vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - flags - Unused. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise. .. index:: pair: function; dnnl_augru_backward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1gadf5b33eaacf3396fa2f68b2cb9fff2aa: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a primitive descriptor for AUGRU backward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc`` together with ``diff_src_iter_desc``, * ``bias_desc`` together with ``diff_bias_desc``, * ``dst_iter_desc`` together with ``diff_dst_iter_desc``. This would then indicate that the AUGRU backward propagation primitive should not use them and should default to zero values instead. .. note:: All memory descriptors can be initialized with :ref:`dnnl_format_tag_any ` or with format_kind set to :ref:`dnnl_format_kind_any `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Must be :ref:`dnnl_backward `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - attention_desc - Memory descriptor for the attention vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - diff_src_layer_desc - Memory descriptor for the diff of input vector. * - diff_src_iter_desc - Memory descriptor for the diff of input recurrent hidden state vector. * - diff_attention_desc - Memory descriptor for the diff of attention vector. * - diff_weights_layer_desc - Memory descriptor for the diff of weights applied to the layer input. * - diff_weights_iter_desc - Memory descriptor for the diff of weights applied to the recurrent input. * - diff_bias_desc - Diff bias memory descriptor. * - diff_dst_layer_desc - Memory descriptor for the diff of output vector. * - diff_dst_iter_desc - Memory descriptor for the diff of output recurrent hidden state vector. * - flags - Unused. * - hint_fwd_pd - Primitive descriptor for a respective forward propagation primitive. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise. .. index:: pair: function; dnnl_lbr_augru_forward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1ga5ed039eae7580b12e460095f026c6139: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a primitive descriptor for LBR AUGRU forward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc``, * ``bias_desc``, * ``dst_iter_desc``. This would then indicate that the LBR AUGRU forward propagation primitive should not use them and should default to zero values instead. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Possible values are :ref:`dnnl_forward_training ` and :ref:`dnnl_forward_inference `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - attention_desc - Memory descriptor for the attention vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - flags - Unused. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise. .. index:: pair: function; dnnl_lbr_augru_backward_primitive_desc_create .. _doxid-group__dnnl__api__rnn_1ga8d9f06ca2b9280715cd8dc9cabb2297e: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`dnnl_status_t` DNNL_API 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 ) Creates a primitive descriptor for LBR AUGRU backward propagation primitive. The following arguments may either be ``NULL`` or point to a zero memory descriptor: * ``src_iter_desc`` together with ``diff_src_iter_desc``, * ``bias_desc`` together with ``diff_bias_desc``, * ``dst_iter_desc`` together with ``diff_dst_iter_desc``. This would then indicate that the LBR AUGRU backward propagation primitive should not use them and should default to zero values instead. .. note:: All memory descriptors can be initialized with :ref:`dnnl_format_tag_any ` or with format_kind set to :ref:`dnnl_format_kind_any `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - primitive_desc - Output primitive descriptor. * - engine - Engine to use. * - prop_kind - Propagation kind. Must be :ref:`dnnl_backward `. * - direction - RNN direction. See :ref:`dnnl_rnn_direction_t ` for more info. * - src_layer_desc - Memory descriptor for the input vector. * - src_iter_desc - Memory descriptor for the input recurrent hidden state vector. * - attention_desc - Memory descriptor for the attention vector. * - weights_layer_desc - Memory descriptor for the weights applied to the layer input. * - weights_iter_desc - Memory descriptor for the weights applied to the recurrent input. * - bias_desc - Bias memory descriptor. * - dst_layer_desc - Memory descriptor for the output vector. * - dst_iter_desc - Memory descriptor for the output recurrent hidden state vector. * - diff_src_layer_desc - Memory descriptor for the diff of input vector. * - diff_src_iter_desc - Memory descriptor for the diff of input recurrent hidden state vector. * - diff_attention_desc - Memory descriptor for the diff of attention vector. * - diff_weights_layer_desc - Memory descriptor for the diff of weights applied to the layer input. * - diff_weights_iter_desc - Memory descriptor for the diff of weights applied to the recurrent input. * - diff_bias_desc - Diff bias memory descriptor. * - diff_dst_layer_desc - Memory descriptor for the diff of output vector. * - diff_dst_iter_desc - Memory descriptor for the diff of output recurrent hidden state vector. * - flags - Unused. * - hint_fwd_pd - Primitive descriptor for a respective forward propagation primitive. * - attr - Primitive attributes (can be NULL). .. rubric:: Returns: :ref:`dnnl_success ` on success and a status describing the error otherwise.