struct dnnl::matmul::primitive_desc

struct dnnl::matmul::primitive_desc#

Overview#

Primitive descriptor for a matmul primitive. More…

#include <dnnl.hpp>

struct primitive_desc: public dnnl::primitive_desc
{
    // construction

    primitive_desc();

    primitive_desc(
        const engine& aengine,
        const memory::desc& src_desc,
        const memory::desc& weights_desc,
        const memory::desc& dst_desc,
        const primitive_attr& attr = default_attr(),
        bool allow_empty = false
        );

    primitive_desc(
        const engine& aengine,
        const memory::desc& src_desc,
        const memory::desc& weights_desc,
        const memory::desc& bias_desc,
        const memory::desc& dst_desc,
        const primitive_attr& attr = default_attr(),
        bool allow_empty = false
        );

    primitive_desc(dnnl_primitive_desc_t pd);

    // methods

    memory::desc src_desc() const;
    memory::desc weights_desc() const;
    memory::desc bias_desc() const;
    memory::desc dst_desc() const;
};

Inherited Members#

public:
    // methods

    handle<T, traits>& operator = (const handle<T, traits>&);
    handle<T, traits>& operator = (handle<T, traits>&&);
    void reset(T t, bool weak = false);
    T get(bool allow_empty = false) const;
    operator T () const;
    operator bool () const;
    bool operator == (const handle<T, traits>& other) const;
    bool operator != (const handle& other) const;
    engine get_engine() const;
    const char* impl_info_str() const;
    memory::dim query_s64(query what) const;
    memory::dims get_strides() const;
    memory::dims get_dilations() const;
    memory::dims get_padding_l() const;
    memory::dims get_padding_r() const;
    float get_epsilon() const;

    template <typename T = unsigned>
    T get_flags() const;

    dnnl::algorithm get_algorithm() const;
    float get_alpha() const;
    float get_beta() const;
    int get_axis() const;
    memory::dim get_local_size() const;
    float get_k() const;
    float get_p() const;
    std::vector<float> get_factors() const;
    dnnl::algorithm get_cell_kind() const;
    dnnl::rnn_direction get_direction() const;
    dnnl::algorithm get_activation_kind() const;
    memory::dims get_kernel() const;
    memory::dim get_group_size() const;
    dnnl::prop_kind get_prop_kind() const;
    memory::desc query_md(query what, int idx = 0) const;
    memory::desc src_desc(int idx) const;
    memory::desc dst_desc(int idx) const;
    memory::desc weights_desc(int idx) const;
    memory::desc diff_src_desc(int idx) const;
    memory::desc diff_dst_desc(int idx) const;
    memory::desc diff_weights_desc(int idx) const;
    memory::desc src_desc() const;
    memory::desc dst_desc() const;
    memory::desc weights_desc() const;
    memory::desc diff_src_desc() const;
    memory::desc diff_dst_desc() const;
    memory::desc diff_weights_desc() const;
    memory::desc workspace_desc() const;
    memory::desc scratchpad_desc() const;
    engine scratchpad_engine() const;
    primitive_attr get_primitive_attr() const;
    dnnl::primitive::kind get_kind() const;
    std::vector<uint8_t> get_cache_blob_id() const;
    bool next_impl();
    primitive_desc_base();
    primitive_desc_base();
    primitive_desc_base();
    primitive_desc_base();

protected:
    // typedefs

    typedef primitive_desc_base base;

    // methods

    bool operator == (const T other) const;
    bool operator != (const T other) const;
    float query_f32(query what) const;
    algorithm query_alg(query what) const;
    memory::dims query_dims(query what) const;
    engine query_engine(query what) const;
    void reset_with_clone(const_dnnl_primitive_desc_t pd);
    const_dnnl_memory_desc_t optional_arg(const memory::desc* md);
    const dnnl_dim_t* optional_arg(const memory::dims* dims);
    const float* optional_arg(const std::vector<float>* arg);
    static const primitive_attr& default_attr();

Detailed Documentation#

Primitive descriptor for a matmul primitive.

Construction#

primitive_desc()

Default constructor. Produces an empty object.

primitive_desc(
    const engine& aengine,
    const memory::desc& src_desc,
    const memory::desc& weights_desc,
    const memory::desc& dst_desc,
    const primitive_attr& attr = default_attr(),
    bool allow_empty = false
    )

Constructs a primitive descriptor for a matmul primitive without bias.

Parameters:

aengine

Engine to use.

src_desc

Memory descriptor for source (matrix A).

weights_desc

Memory descriptor for weights (matrix B).

dst_desc

Memory descriptor for destination (matrix C).

attr

Primitive attributes to use. Attributes are optional and default to empty attributes.

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.

primitive_desc(
    const engine& aengine,
    const memory::desc& src_desc,
    const memory::desc& weights_desc,
    const memory::desc& bias_desc,
    const memory::desc& dst_desc,
    const primitive_attr& attr = default_attr(),
    bool allow_empty = false
    )

Constructs a primitive descriptor for a matmul primitive with bias.

Parameters:

aengine

Engine to use.

src_desc

Memory descriptor for source (matrix A).

weights_desc

Memory descriptor for weights (matrix B).

dst_desc

Memory descriptor for destination (matrix C).

bias_desc

Memory descriptor for bias.

attr

Primitive attributes to use. Attributes are optional and default to empty attributes.

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.

primitive_desc(dnnl_primitive_desc_t pd)

Constructs a primitive descriptor for a matmul primitive from a C API primitive descriptor that must have a matching kind.

Parameters:

pd

C API primitive descriptor for a matmul primitive.

Methods#

memory::desc src_desc() const

Returns a source memory descriptor.

Returns:

Source memory descriptor.

A zero memory descriptor if the primitive does not have a source parameter.

memory::desc weights_desc() const

Returns a weights memory descriptor.

Returns:

Weights memory descriptor.

A zero memory descriptor if the primitive does not have a weights parameter.

memory::desc bias_desc() const

Returns the bias memory descriptor.

Returns:

The bias memory descriptor.

A zero memory descriptor of the primitive does not have a bias parameter.

memory::desc dst_desc() const

Returns a destination memory descriptor.

Returns:

Destination memory descriptor.

A zero memory descriptor if the primitive does not have a destination parameter.