struct dnnl::sum::primitive_desc

struct dnnl::sum::primitive_desc#

Overview#

Primitive descriptor for a sum primitive. More…

#include <dnnl.hpp>

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

    primitive_desc();

    primitive_desc(
        const engine& aengine,
        const memory::desc& dst,
        const std::vector<float>& scales,
        const std::vector<memory::desc>& srcs,
        const primitive_attr& attr = default_attr(),
        bool allow_empty = false
        );

    primitive_desc(
        const engine& aengine,
        const std::vector<float>& scales,
        const std::vector<memory::desc>& srcs,
        const primitive_attr& attr = default_attr(),
        bool allow_empty = false
        );

    primitive_desc(dnnl_primitive_desc_t pd);

    // methods

    memory::desc src_desc(int idx = 0) const;
    memory::desc dst_desc() const;
    primitive_desc_base();
    primitive_desc_base();
    primitive_desc_base();
    primitive_desc_base();
};

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;

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 sum primitive.

Construction#

primitive_desc()

Default constructor. Produces an empty object.

primitive_desc(
    const engine& aengine,
    const memory::desc& dst,
    const std::vector<float>& scales,
    const std::vector<memory::desc>& srcs,
    const primitive_attr& attr = default_attr(),
    bool allow_empty = false
    )

Constructs a primitive descriptor for a sum primitive.

Parameters:

aengine

Engine to perform the operation on.

dst

Destination memory descriptor.

scales

Vector of scales to multiply data in each source memory by.

srcs

Vector of source memory descriptors.

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 std::vector<float>& scales,
    const std::vector<memory::desc>& srcs,
    const primitive_attr& attr = default_attr(),
    bool allow_empty = false
    )

Constructs a primitive descriptor for a sum primitive.

This version derives the destination memory descriptor automatically.

Parameters:

aengine

Engine on which to perform the operation.

scales

Vector of scales by which to multiply data in each source memory object.

srcs

Vector of source memory descriptors.

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 sum primitive from a C API primitive descriptor which must have a matching kind.

Parameters:

pd

C API primitive descriptor for sum primitive.

Methods#

memory::desc src_desc(int idx = 0) const

Returns a source memory descriptor.

Parameters:

idx

Source index.

Returns:

Source memory descriptor.

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

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.

primitive_desc_base()

Default constructor. Produces an empty object.

primitive_desc_base()

Constructs a primitive descriptor base object from a clone of a C API primitive descriptor after verifying that it is what the caller expects.

Note

The prim_kind should map to a primitive that does not have different values of propagation kind (e.g. dnnl::binary).

Note

Primitive descriptor base constructed this way does not support next_impl() (will throw).

Parameters:

pd

C API primitive descriptor to clone.

prim_kind

Expected primitive kind.

primitive_desc_base()

Constructs a primitive descriptor base object from a clone of a C API primitive descriptor after verifying that it is what the caller expects.

Note

Primitive descriptor base constructed this way does not support next_impl() (will throw).

Parameters:

pd

C API primitive descriptor to clone.

prim_kind

Expected primitive kind.

aprop_kind

Expected propagation kind.

primitive_desc_base()

Constructs a primitive descriptor base object from a clone of a C API primitive descriptor after verifying that it is what the caller expects.

Note

Primitive descriptor base constructed this way does not support next_impl() (will throw).

Parameters:

pd

C API primitive descriptor to clone.

prim_kind

Expected primitive kind.

prop_kind1

Expected propagation kind (option 1).

prop_kind2

Expected propagation kind (option 2). This value is checked if the check with prop_kind1 fails.