.. index:: pair: struct; dnnl::rnn_primitive_desc_base .. _doxid-structdnnl_1_1rnn__primitive__desc__base: struct dnnl::rnn_primitive_desc_base ==================================== .. toctree:: :hidden: Overview ~~~~~~~~ Base class for primitive descriptors for RNN primitives. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include struct rnn_primitive_desc_base: public :ref:`dnnl::primitive_desc` { // construction :ref:`rnn_primitive_desc_base`(); :ref:`rnn_primitive_desc_base`( :ref:`dnnl_primitive_desc_t` pd, :ref:`dnnl::prop_kind` aprop_kind, :ref:`dnnl::algorithm` cell_kind ); // methods :ref:`memory::desc` :ref:`src_layer_desc`() const; :ref:`memory::desc` :ref:`src_iter_desc`() const; :ref:`memory::desc` :ref:`src_iter_c_desc`() const; :ref:`memory::desc` :ref:`weights_layer_desc`() const; :ref:`memory::desc` :ref:`weights_iter_desc`() const; :ref:`memory::desc` :ref:`weights_peephole_desc`() const; :ref:`memory::desc` :ref:`weights_projection_desc`() const; :ref:`memory::desc` :ref:`bias_desc`() const; :ref:`memory::desc` :ref:`dst_layer_desc`() const; :ref:`memory::desc` :ref:`dst_iter_desc`() const; :ref:`memory::desc` :ref:`dst_iter_c_desc`() const; :ref:`memory::desc` :ref:`diff_src_layer_desc`() const; :ref:`memory::desc` :ref:`diff_src_iter_desc`() const; :ref:`memory::desc` :ref:`diff_src_iter_c_desc`() const; :ref:`memory::desc` :ref:`diff_weights_layer_desc`() const; :ref:`memory::desc` :ref:`diff_weights_iter_desc`() const; :ref:`memory::desc` :ref:`diff_weights_peephole_desc`() const; :ref:`memory::desc` :ref:`diff_weights_projection_desc`() const; :ref:`memory::desc` :ref:`diff_bias_desc`() const; :ref:`memory::desc` :ref:`diff_dst_layer_desc`() const; :ref:`memory::desc` :ref:`diff_dst_iter_desc`() const; :ref:`memory::desc` :ref:`diff_dst_iter_c_desc`() const; :target:`primitive_desc`(); :ref:`primitive_desc`(); }; // direct descendants struct :ref:`primitive_desc`; struct :ref:`primitive_desc`; struct :ref:`primitive_desc`; struct :ref:`primitive_desc`; struct :ref:`primitive_desc`; struct :ref:`primitive_desc`; struct :ref:`primitive_desc`; struct :ref:`primitive_desc`; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // methods :ref:`handle`& :ref:`operator =` (const :ref:`handle`&); :ref:`handle`& :ref:`operator =` (:ref:`handle`&&); void :ref:`reset`(T t, bool weak = false); T :ref:`get`(bool allow_empty = false) const; :ref:`operator T` () const; :ref:`operator bool` () const; bool :ref:`operator ==` (const :ref:`handle`& other) const; bool :ref:`operator !=` (const :ref:`handle`& other) const; :ref:`engine` :ref:`get_engine`() const; const char* :ref:`impl_info_str`() const; :ref:`memory::dim` :ref:`query_s64`(:ref:`query` what) const; :ref:`memory::desc` :ref:`query_md`(:ref:`query` what, int idx = 0) const; :ref:`memory::desc` :ref:`src_desc`(int idx) const; :ref:`memory::desc` :ref:`dst_desc`(int idx) const; :ref:`memory::desc` :ref:`weights_desc`(int idx) const; :ref:`memory::desc` :ref:`diff_src_desc`(int idx) const; :ref:`memory::desc` :ref:`diff_dst_desc`(int idx) const; :ref:`memory::desc` :ref:`diff_weights_desc`(int idx) const; :ref:`memory::desc` :ref:`src_desc`() const; :ref:`memory::desc` :ref:`dst_desc`() const; :ref:`memory::desc` :ref:`weights_desc`() const; :ref:`memory::desc` :ref:`diff_src_desc`() const; :ref:`memory::desc` :ref:`diff_dst_desc`() const; :ref:`memory::desc` :ref:`diff_weights_desc`() const; :ref:`memory::desc` :ref:`workspace_desc`() const; :ref:`memory::desc` :ref:`scratchpad_desc`() const; :ref:`engine` :ref:`scratchpad_engine`() const; primitive_attr :ref:`get_primitive_attr`() const; :ref:`dnnl::primitive::kind` :ref:`get_kind`() const; bool :ref:`next_impl`(); :ref:`primitive_desc_base`(); :ref:`primitive_desc_base`(); :ref:`primitive_desc_base`(); :ref:`primitive_desc_base`(); .. _details-structdnnl_1_1rnn__primitive__desc__base: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Base class for primitive descriptors for RNN primitives. Construction ------------ .. index:: pair: function; rnn_primitive_desc_base .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a5f08b3113b2f2b4b67d9348ef7046251: .. ref-code-block:: cpp :class: doxyrest-title-code-block rnn_primitive_desc_base() Default constructor. Produces an empty object. .. index:: pair: function; rnn_primitive_desc_base .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a91be3d723ce87dc5498d061f269f9705: .. ref-code-block:: cpp :class: doxyrest-title-code-block rnn_primitive_desc_base( :ref:`dnnl_primitive_desc_t` pd, :ref:`dnnl::prop_kind` aprop_kind, :ref:`dnnl::algorithm` cell_kind ) Constructs an RNN primitive descriptor base from a C API primitive descriptor while checking that it actually describes the expected primitive by comparing propagation and primitive kinds. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - pd - C API primitive descriptor. * - aprop_kind - Expected propagation kind. * - cell_kind - Expected cell kind. Methods ------- .. index:: pair: function; src_layer_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1ae49709b806f2cb108affe1ec5aebb504: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` src_layer_desc() const Returns source layer memory descriptor. .. rubric:: Returns: Source layer memory descriptor. .. index:: pair: function; src_iter_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1ab73a02922a9a7d2f0d6066572d5c6a09: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` src_iter_desc() const Returns source iteration memory descriptor. .. rubric:: Returns: Source iteration memory descriptor. A zero memory descriptor if the primitive does not have a source iteration parameter. .. index:: pair: function; src_iter_c_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1ab37877634785901c8d8850d1a928c9b2: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` src_iter_c_desc() const Returns source recurrent cell state memory descriptor. .. rubric:: Returns: Source recurrent cell state memory descriptor. .. index:: pair: function; weights_layer_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a20737480e3672640657a34afd631f11f: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` weights_layer_desc() const Returns weights layer memory descriptor. .. rubric:: Returns: Weights layer memory descriptor. .. index:: pair: function; weights_iter_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a2464426ea23b9d026fd5d2c8d92c942a: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` weights_iter_desc() const Returns weights iteration memory descriptor. .. rubric:: Returns: Weights iteration memory descriptor. .. index:: pair: function; weights_peephole_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a1d634c656c92e69393cd52a4551c951b: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` weights_peephole_desc() const Returns weights peephole memory descriptor. .. rubric:: Returns: Weights peephole memory descriptor. .. index:: pair: function; weights_projection_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1ac42d2cf801857a02db5c23e4a4d4eba1: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` weights_projection_desc() const Returns weights projection memory descriptor. .. rubric:: Returns: Weights projection memory descriptor. .. index:: pair: function; bias_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1ac2045ddda996b5e3ac2c0974ca70bfa1: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` bias_desc() const Returns bias memory descriptor. .. rubric:: Returns: Bias memory descriptor. A zero memory descriptor if the primitive does not have a bias parameter. .. index:: pair: function; dst_layer_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1aa9a4652f8f5c8d1b32d2f26deac70f92: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` dst_layer_desc() const Returns destination layer memory descriptor. .. rubric:: Returns: Destination layer memory descriptor. .. index:: pair: function; dst_iter_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1af82a946c412df434d8842292d77a496c: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` dst_iter_desc() const Returns destination iteration memory descriptor. .. rubric:: Returns: Destination iteration memory descriptor. A zero memory descriptor if the primitive does not have a destination iteration parameter. .. index:: pair: function; dst_iter_c_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a1d56829ac12568aea3a7203631e7c202: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` dst_iter_c_desc() const Returns destination recurrent cell state memory descriptor. .. rubric:: Returns: Destination recurrent cell state memory descriptor. .. index:: pair: function; diff_src_layer_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1afbf93e3cf53b5ef7d04a0b2fcb41f77b: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` diff_src_layer_desc() const Returns diff source layer memory descriptor. .. rubric:: Returns: Diff source layer memory descriptor. .. index:: pair: function; diff_src_iter_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a248bcc0f5bec8d76eda24ad391693fa2: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` diff_src_iter_desc() const Returns diff source iteration memory descriptor. .. rubric:: Returns: Diff source iteration memory descriptor. A zero memory descriptor if the primitive does not have a diff source iteration parameter. .. index:: pair: function; diff_src_iter_c_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a6f3d6865c312c3231ff7dec8df561ecb: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` diff_src_iter_c_desc() const Returns diff source recurrent cell state memory descriptor. .. rubric:: Returns: Diff source recurrent cell state memory descriptor. .. index:: pair: function; diff_weights_layer_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a1df1f7cb00c68c73bc4320d7b5fda7bb: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` diff_weights_layer_desc() const Returns diff weights layer memory descriptor. .. rubric:: Returns: Diff weights layer memory descriptor. .. index:: pair: function; diff_weights_iter_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a4243bb55a8d07fa66a3c44633996e73b: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` diff_weights_iter_desc() const Returns diff weights iteration memory descriptor. .. rubric:: Returns: Diff weights iteration memory descriptor. .. index:: pair: function; diff_weights_peephole_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1af8f947d6baeee3cded8f178c0d87532a: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` diff_weights_peephole_desc() const Returns diff weights peephole memory descriptor. .. rubric:: Returns: Diff weights peephole memory descriptor. .. index:: pair: function; diff_weights_projection_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1aab56611714a0496cfe15a36e68b2c495: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` diff_weights_projection_desc() const Returns diff weights projection memory descriptor. .. rubric:: Returns: Diff weights projection memory descriptor. .. index:: pair: function; diff_bias_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1aa81c0dbda6447fe83d1d37122fdc708c: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` diff_bias_desc() const Returns diff bias memory descriptor. .. rubric:: Returns: Diff bias memory descriptor. A zero memory descriptor if the primitive does not have a diff bias parameter. .. index:: pair: function; diff_dst_layer_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1aeb8d331bd2bcb80bd06ec729175e4314: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` diff_dst_layer_desc() const Returns diff destination layer memory descriptor. .. rubric:: Returns: Diff destination layer memory descriptor. .. index:: pair: function; diff_dst_iter_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a4a5eceabe7b1ffd9f181376192f5d397: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` diff_dst_iter_desc() const Returns diff destination iteration memory descriptor. .. rubric:: Returns: Diff destination iteration memory descriptor. A zero memory descriptor if the primitive does not have a diff destination iteration parameter. .. index:: pair: function; diff_dst_iter_c_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a33e735717f2dffa22cc28e90e20bd344: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`memory::desc` diff_dst_iter_c_desc() const Returns diff destination recurrent cell state memory descriptor. .. rubric:: Returns: Diff destination recurrent cell state memory descriptor. .. index:: pair: function; primitive_desc .. _doxid-structdnnl_1_1rnn__primitive__desc__base_1a1d5b57166120c0204ee4bb86d310b9ab: .. ref-code-block:: cpp :class: doxyrest-title-code-block primitive_desc() Constructs a primitive descriptor. .. note:: If ``allow_empty`` is true, the constructor does not throw if a primitive descriptor cannot be created. But calling :ref:`next_impl() ` in this case will throw. .. note:: This is a low-level implementation detail that is typically not needed in application code. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - desc - Constant C API operation descriptor. * - attr - Pointer to primitive attributes. It is safe to pass nullptr to indicate absence of attributes. * - aengine - Engine to use. * - hint_fwd_pd - C API primitive descriptor for a forward propagation primitive. It is used as a hint for deciding which memory format to use for backward propagation or weights gradient. * - allow_empty - A flag signifying whether construction is allowed to fail without throwing an exception. In this case an empty object will be produced. This flag is optional and defaults to false.