Intel® oneAPI Deep Neural Network Developer Guide and Reference
A newer version of this document is available. Customers should click here to go to the newest version.
RNN
Overview
A primitive to compute recurrent neural network layers. More…
// enums enum dnnl_rnn_direction_t; enum dnnl_rnn_flags_t; enum dnnl::rnn_direction; enum dnnl::rnn_flags; // structs struct dnnl::augru_backward; struct dnnl::augru_forward; struct dnnl::gru_backward; struct dnnl::gru_forward; struct dnnl::lbr_augru_backward; struct dnnl::lbr_augru_forward; struct dnnl::lbr_gru_backward; struct dnnl::lbr_gru_forward; struct dnnl::lstm_backward; struct dnnl::lstm_forward; struct dnnl::rnn_primitive_desc_base; struct dnnl::vanilla_rnn_backward; struct dnnl::vanilla_rnn_forward; // global functions dnnl_rnn_flags_t dnnl::convert_to_c(rnn_flags flags); dnnl_rnn_direction_t dnnl::convert_to_c(rnn_direction dir); dnnl_status_t DNNL_API dnnl_vanilla_rnn_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, unsigned flags, float alpha, float beta, const_dnnl_primitive_attr_t attr ); dnnl_status_t DNNL_API dnnl_vanilla_rnn_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, unsigned flags, float alpha, float beta, const_dnnl_primitive_desc_t hint_fwd_pd, const_dnnl_primitive_attr_t attr ); dnnl_status_t DNNL_API dnnl_lstm_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t src_iter_c_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t weights_peephole_desc, const_dnnl_memory_desc_t weights_projection_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t dst_iter_c_desc, unsigned flags, const_dnnl_primitive_attr_t attr ); dnnl_status_t DNNL_API dnnl_lstm_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t src_iter_c_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t weights_peephole_desc, const_dnnl_memory_desc_t weights_projection_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t dst_iter_c_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_src_iter_c_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_weights_peephole_desc, const_dnnl_memory_desc_t diff_weights_projection_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, const_dnnl_memory_desc_t diff_dst_iter_c_desc, unsigned flags, const_dnnl_primitive_desc_t hint_fwd_pd, const_dnnl_primitive_attr_t attr ); dnnl_status_t DNNL_API dnnl_gru_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, unsigned flags, const_dnnl_primitive_attr_t attr ); dnnl_status_t DNNL_API dnnl_gru_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, unsigned flags, const_dnnl_primitive_desc_t hint_fwd_pd, const_dnnl_primitive_attr_t attr ); dnnl_status_t DNNL_API dnnl_lbr_gru_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, unsigned flags, const_dnnl_primitive_attr_t attr ); dnnl_status_t DNNL_API dnnl_lbr_gru_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, unsigned flags, const_dnnl_primitive_desc_t hint_fwd_pd, const_dnnl_primitive_attr_t attr ); dnnl_status_t DNNL_API dnnl_augru_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t attention_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, unsigned flags, const_dnnl_primitive_attr_t attr ); dnnl_status_t DNNL_API dnnl_augru_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t attention_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_attention_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, unsigned flags, const_dnnl_primitive_desc_t hint_fwd_pd, const_dnnl_primitive_attr_t attr ); dnnl_status_t DNNL_API dnnl_lbr_augru_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t attention_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, unsigned flags, const_dnnl_primitive_attr_t attr ); dnnl_status_t DNNL_API dnnl_lbr_augru_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t attention_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_attention_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, unsigned flags, const_dnnl_primitive_desc_t hint_fwd_pd, const_dnnl_primitive_attr_t attr );
Detailed Documentation
A primitive to compute recurrent neural network layers.
See also:
RNN in developer guide
Global Functions
dnnl_rnn_flags_t dnnl::convert_to_c(rnn_flags flags)
Converts RNN cell flags enum value from C++ API to C API type.
Parameters:
flags  |  
        C++ API RNN cell flags enum value.  |  
       
Returns:
Corresponding C API RNN cell flags enum value.
dnnl_rnn_direction_t dnnl::convert_to_c(rnn_direction dir)
Converts RNN direction enum value from C++ API to C API type.
Parameters:
dir  |  
        C++ API RNN direction enum value.  |  
       
Returns:
Corresponding C API RNN direction enum value.
dnnl_status_t DNNL_API dnnl_vanilla_rnn_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, unsigned flags, float alpha, float beta, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Possible values are dnnl_forward_training and dnnl_forward_inference.  |  
       
activation  |  
        Activation kind. Possible values are dnnl_eltwise_relu, dnnl_eltwise_tanh or dnnl_eltwise_logistic.  |  
       
direction  |  
        RNN direction. See 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 dnnl_eltwise_relu.  |  
       
beta  |  
        Unused.  |  
       
attr  |  
        Primitive attributes (can be NULL).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.
dnnl_status_t DNNL_API dnnl_vanilla_rnn_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, unsigned flags, float alpha, float beta, const_dnnl_primitive_desc_t hint_fwd_pd, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Must be dnnl_backward.  |  
       
activation  |  
        Activation kind. Possible values are dnnl_eltwise_relu, dnnl_eltwise_tanh or dnnl_eltwise_logistic.  |  
       
direction  |  
        RNN direction. See 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 dnnl_eltwise_relu.  |  
       
beta  |  
        Unused.  |  
       
hint_fwd_pd  |  
        Primitive descriptor for a respective forward propagation primitive.  |  
       
attr  |  
        Primitive attributes (can be NULL).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.
dnnl_status_t DNNL_API dnnl_lstm_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t src_iter_c_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t weights_peephole_desc, const_dnnl_memory_desc_t weights_projection_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t dst_iter_c_desc, unsigned flags, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Possible values are dnnl_forward_training and dnnl_forward_inference.  |  
       
direction  |  
        RNN direction. See 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).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.
dnnl_status_t DNNL_API dnnl_lstm_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t src_iter_c_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t weights_peephole_desc, const_dnnl_memory_desc_t weights_projection_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t dst_iter_c_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_src_iter_c_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_weights_peephole_desc, const_dnnl_memory_desc_t diff_weights_projection_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, const_dnnl_memory_desc_t diff_dst_iter_c_desc, unsigned flags, const_dnnl_primitive_desc_t hint_fwd_pd, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Must be dnnl_backward.  |  
       
direction  |  
        RNN direction. See 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).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.
dnnl_status_t DNNL_API dnnl_gru_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, unsigned flags, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Possible values are dnnl_forward_training and dnnl_forward_inference.  |  
       
direction  |  
        RNN direction. See 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).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.
dnnl_status_t DNNL_API dnnl_gru_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, unsigned flags, const_dnnl_primitive_desc_t hint_fwd_pd, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Must be dnnl_backward.  |  
       
direction  |  
        RNN direction. See 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).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.
dnnl_status_t DNNL_API dnnl_lbr_gru_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, unsigned flags, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Possible values are dnnl_forward_training and dnnl_forward_inference.  |  
       
direction  |  
        RNN direction. See 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).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.
dnnl_status_t DNNL_API dnnl_lbr_gru_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, unsigned flags, const_dnnl_primitive_desc_t hint_fwd_pd, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Must be dnnl_backward.  |  
       
direction  |  
        RNN direction. See 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).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.
dnnl_status_t DNNL_API dnnl_augru_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t attention_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, unsigned flags, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Possible values are dnnl_forward_training and dnnl_forward_inference.  |  
       
direction  |  
        RNN direction. See 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).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.
dnnl_status_t DNNL_API dnnl_augru_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t attention_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_attention_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, unsigned flags, const_dnnl_primitive_desc_t hint_fwd_pd, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Must be dnnl_backward.  |  
       
direction  |  
        RNN direction. See 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).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.
dnnl_status_t DNNL_API dnnl_lbr_augru_forward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t attention_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, unsigned flags, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Possible values are dnnl_forward_training and dnnl_forward_inference.  |  
       
direction  |  
        RNN direction. See 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).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.
dnnl_status_t DNNL_API dnnl_lbr_augru_backward_primitive_desc_create( dnnl_primitive_desc_t* primitive_desc, dnnl_engine_t engine, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const_dnnl_memory_desc_t src_layer_desc, const_dnnl_memory_desc_t src_iter_desc, const_dnnl_memory_desc_t attention_desc, const_dnnl_memory_desc_t weights_layer_desc, const_dnnl_memory_desc_t weights_iter_desc, const_dnnl_memory_desc_t bias_desc, const_dnnl_memory_desc_t dst_layer_desc, const_dnnl_memory_desc_t dst_iter_desc, const_dnnl_memory_desc_t diff_src_layer_desc, const_dnnl_memory_desc_t diff_src_iter_desc, const_dnnl_memory_desc_t diff_attention_desc, const_dnnl_memory_desc_t diff_weights_layer_desc, const_dnnl_memory_desc_t diff_weights_iter_desc, const_dnnl_memory_desc_t diff_bias_desc, const_dnnl_memory_desc_t diff_dst_layer_desc, const_dnnl_memory_desc_t diff_dst_iter_desc, unsigned flags, const_dnnl_primitive_desc_t hint_fwd_pd, 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.
Parameters:
primitive_desc  |  
        Output primitive descriptor.  |  
       
engine  |  
        Engine to use.  |  
       
prop_kind  |  
        Propagation kind. Must be dnnl_backward.  |  
       
direction  |  
        RNN direction. See 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).  |  
       
Returns:
dnnl_success on success and a status describing the error otherwise.