Developer Guide and Reference

  • 2022.1
  • 04/11/2022
  • Public Content
Contents

struct dnnl::primitive

Overview

Base class for all computational primitives. More…
#include <dnnl.hpp> struct primitive: public dnnl::handle { // enums enum kind; // construction primitive(); primitive(const_dnnl_primitive_desc_t c_pd); primitive( const_dnnl_primitive_desc_t c_pd, const std::vector<uint8_t>& cache_blob ); primitive(const primitive_desc& pd); primitive(const primitive_desc& pd, const std::vector<uint8_t>& cache_blob); // methods const_dnnl_primitive_desc_t get_primitive_desc() const; kind get_kind() const; std::vector<uint8_t> get_cache_blob() const; void execute(const stream& astream, const std::unordered_map<int, memory>& args) const; handle(); handle(const handle<T, traits>&); handle(handle<T, traits>&&); handle(T t, bool weak = false); }; // direct descendants struct augru_backward; struct augru_forward; struct batch_normalization_backward; struct batch_normalization_forward; struct binary; struct concat; struct convolution_backward_data; struct convolution_backward_weights; struct convolution_forward; struct deconvolution_backward_data; struct deconvolution_backward_weights; struct deconvolution_forward; struct eltwise_backward; struct eltwise_forward; struct gru_backward; struct gru_forward; struct inner_product_backward_data; struct inner_product_backward_weights; struct inner_product_forward; struct layer_normalization_backward; struct layer_normalization_forward; struct lbr_augru_backward; struct lbr_augru_forward; struct lbr_gru_backward; struct lbr_gru_forward; struct logsoftmax_backward; struct logsoftmax_forward; struct lrn_backward; struct lrn_forward; struct lstm_backward; struct lstm_forward; struct matmul; struct pooling_backward; struct pooling_forward; struct pooling_v2_backward; struct pooling_v2_forward; struct prelu_backward; struct prelu_forward; struct reduction; struct reorder; struct resampling_backward; struct resampling_forward; struct shuffle_backward; struct shuffle_forward; struct softmax_backward; struct softmax_forward; struct softmax_v2_backward; struct softmax_v2_forward; struct sum; struct vanilla_rnn_backward; struct vanilla_rnn_forward;
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;

Detailed Documentation

Base class for all computational primitives.
Construction
primitive()
Default constructor. Constructs an empty object.
Constructs a primitive from a C API primitive descriptor.
Parameters:
c_pd
C API primitive descriptor.
primitive( const_dnnl_primitive_desc_t c_pd, const std::vector<uint8_t>& cache_blob )
Constructs a primitive from a C API primitive descriptor and a cache blob.
Parameters:
c_pd
C API primitive descriptor.
cache_blob
Cache blob.
primitive(const primitive_desc& pd)
Constructs a primitive from a primitive descriptor.
Parameters:
pd
Primitive descriptor.
primitive(const primitive_desc& pd, const std::vector<uint8_t>& cache_blob)
Constructs a primitive from a primitive descriptor and a cache blob.
Parameters:
pd
Primitive descriptor.
cache_blob
Cache blob.
Methods
const_dnnl_primitive_desc_t get_primitive_desc() const
Returns the C API primitive descriptor of the underlying C API primitive.
Returns:
The underlying C API primitive descriptor.
kind get_kind() const
Returns the kind of the primitive.
Returns:
The primitive kind.
std::vector<uint8_t> get_cache_blob() const
Returns a cache blob for the primitive.
The cache blob can be empty. It’s the user’s responsibility to check whether it’s empty prior to passing it to the primitive constructor.
Returns:
Vector containing the cache blob.
void execute(const stream& astream, const std::unordered_map<int, memory>& args) const
Executes computations specified by the primitive in a specified stream.
Arguments are passed via an arguments map containing <index, memory object> pairs. The index must be one of the
DNNL_ARG_*
values such as
DNNL_ARG_SRC
, and the memory must have a memory descriptor matching the one returned by primitive_desc::query_md (query::exec_arg_md, index) unless using dynamic shapes (see DNNL_RUNTIME_DIM_VAL).
Parameters:
astream
Stream object. The stream must belong to the same engine as the primitive.
args
Arguments map.
handle()
Constructs an empty handle object.
Uninitialized object cannot be used in most library calls and is equivalent to a null pointer. Any attempt to use its methods, or passing it to the other library function, will cause an exception to be thrown.
handle(const handle<T, traits>&)
Copy constructor.
handle(handle<T, traits>&&)
Move constructor.
handle(T t, bool weak = false)
Constructs a handle wrapper object from a C API handle.
Parameters:
t
The C API handle to wrap.
weak
A flag specifying whether to construct a weak wrapper; defaults to
false
.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.