mxnet
Functions
Common primitive operations
Collaboration diagram for Common primitive operations:

Functions

mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_iterator_create (mkldnn_primitive_desc_iterator_t *iterator, const_mkldnn_op_desc_t op_desc, const_mkldnn_primitive_attr_t attr, mkldnn_engine_t engine, const_mkldnn_primitive_desc_t hint_forward_primitive_desc)
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_iterator_next (mkldnn_primitive_desc_iterator_t iterator)
 
mkldnn_primitive_desc_t MKLDNN_API mkldnn_primitive_desc_iterator_fetch (const_mkldnn_primitive_desc_iterator_t iterator)
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_iterator_destroy (mkldnn_primitive_desc_iterator_t iterator)
 Deletes a primitive descriptor iterator. More...
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_create (mkldnn_primitive_desc_t *primitive_desc, const_mkldnn_op_desc_t op_desc, const_mkldnn_primitive_attr_t attr, mkldnn_engine_t engine, const_mkldnn_primitive_desc_t hint_forward_primitive_desc)
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_clone (mkldnn_primitive_desc_t *primitive_desc, const_mkldnn_primitive_desc_t existing_primitive_desc)
 Makes a copy of a primitive_desc. More...
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_get_attr (const_mkldnn_primitive_desc_t primitive_desc, const_mkldnn_primitive_attr_t *attr)
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_destroy (mkldnn_primitive_desc_t primitive_desc)
 Deletes a primitive_desc. More...
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_query (const_mkldnn_primitive_desc_t primitive_desc, mkldnn_query_t what, int index, void *result)
 
const mkldnn_memory_desc_t MKLDNN_API * mkldnn_primitive_desc_query_md (const_mkldnn_primitive_desc_t primitive_desc, mkldnn_query_t what, int index)
 
int MKLDNN_API mkldnn_primitive_desc_query_s32 (const_mkldnn_primitive_desc_t primitive_desc, mkldnn_query_t what, int index)
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_create (mkldnn_primitive_t *primitive, const_mkldnn_primitive_desc_t primitive_desc)
 Creates a primitive using a primitive_desc descriptor. More...
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_execute (const_mkldnn_primitive_t primitive, mkldnn_stream_t stream, int nargs, const mkldnn_exec_arg_t *args)
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_get_primitive_desc (const_mkldnn_primitive_t primitive, const_mkldnn_primitive_desc_t *primitive_desc)
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_destroy (mkldnn_primitive_t primitive)
 Deletes a primitive. More...
 

Detailed Description

Function Documentation

mkldnn_status_t MKLDNN_API mkldnn_primitive_create ( mkldnn_primitive_t primitive,
const_mkldnn_primitive_desc_t  primitive_desc 
)

Creates a primitive using a primitive_desc descriptor.

mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_clone ( mkldnn_primitive_desc_t primitive_desc,
const_mkldnn_primitive_desc_t  existing_primitive_desc 
)

Makes a copy of a primitive_desc.

mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_create ( mkldnn_primitive_desc_t primitive_desc,
const_mkldnn_op_desc_t  op_desc,
const_mkldnn_primitive_attr_t  attr,
mkldnn_engine_t  engine,
const_mkldnn_primitive_desc_t  hint_forward_primitive_desc 
)

Creates a primitive_desc using op_desc, attr, engine, and optionally a hint primitive descriptor from forward propagation. The call is equivalent to creating a primitive descriptor iterator, immediately fetching a primitive descriptor, and then destroying the iterator.

mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_destroy ( mkldnn_primitive_desc_t  primitive_desc)

Deletes a primitive_desc.

mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_get_attr ( const_mkldnn_primitive_desc_t  primitive_desc,
const_mkldnn_primitive_attr_t attr 
)

Returns a constant reference to the attribute of a primitive_desc.

Warning
The user should not destroy the obtained attr.
The lifetime of an attr is the same as that of a primitive_desc, so it is illegal to use the attr once primitive_desc has been destroyed.
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_iterator_create ( mkldnn_primitive_desc_iterator_t iterator,
const_mkldnn_op_desc_t  op_desc,
const_mkldnn_primitive_attr_t  attr,
mkldnn_engine_t  engine,
const_mkldnn_primitive_desc_t  hint_forward_primitive_desc 
)

Creates a primitive descriptor iterator for given op_desc, attr, engine, and optionally a hint primitive descriptor from forward propagation (required for backward propagation). Pass NULL for forward propagation.

mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_iterator_destroy ( mkldnn_primitive_desc_iterator_t  iterator)

Deletes a primitive descriptor iterator.

mkldnn_primitive_desc_t MKLDNN_API mkldnn_primitive_desc_iterator_fetch ( const_mkldnn_primitive_desc_iterator_t  iterator)

Fetches the current primitive descriptor.

Note
The user should delete the fetched primitive descriptor using mkldnn_primitive_desc_destroy() once it is no longer needed.
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_iterator_next ( mkldnn_primitive_desc_iterator_t  iterator)

Iterates over primitive descriptors. Returns mkldnn_iterator_ends if no more primitive descriptors are available.

mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_query ( const_mkldnn_primitive_desc_t  primitive_desc,
mkldnn_query_t  what,
int  index,
void *  result 
)

Queries primitive descriptor

One of the most typical use cases is to query a primitive descriptor created with source, weights, and destination formats equal to mkldnn_format_tag_any about the corresponding memory descriptors (what equals mkldnn_query_src_md, mkldnn_query_weights_md, and mkldnn_query_dst_md respectively) to be able to prepare memory and create reorders if required.

Another quite typical use case is to query an operation primitive descriptor for a workspace (what equals mkldnn_query_workspace_md). The returned status mkldnn_not_required indicates that a workspace is not required.

Note
When querying a memory descriptor for a scratchpad, a workspace, or an optional parameter, the query will return a zero_md if the parameter is not needed.

A few other possibilities:

See also
mkldnn_query_t for more options
const mkldnn_memory_desc_t MKLDNN_API* mkldnn_primitive_desc_query_md ( const_mkldnn_primitive_desc_t  primitive_desc,
mkldnn_query_t  what,
int  index 
)

Queries primitive descriptor for memory descriptor

Returns
NULL in case of any error.

This is just a specialized version of mkldnn_primitive_desc_query used for convenience.

int MKLDNN_API mkldnn_primitive_desc_query_s32 ( const_mkldnn_primitive_desc_t  primitive_desc,
mkldnn_query_t  what,
int  index 
)

Queries primitive descriptor for signed 32bit int

Returns
0 in case of any error (in particular if the queried entity is not of type int32_t). Note that 0 might also be the actual returned value.

This is just a specialized version of mkldnn_primitive_desc_query used for convenience.

mkldnn_status_t MKLDNN_API mkldnn_primitive_destroy ( mkldnn_primitive_t  primitive)

Deletes a primitive.

mkldnn_status_t MKLDNN_API mkldnn_primitive_execute ( const_mkldnn_primitive_t  primitive,
mkldnn_stream_t  stream,
int  nargs,
const mkldnn_exec_arg_t args 
)

Executes a primitive using a stream, and nargs arguments args.

mkldnn_status_t MKLDNN_API mkldnn_primitive_get_primitive_desc ( const_mkldnn_primitive_t  primitive,
const_mkldnn_primitive_desc_t primitive_desc 
)

Retrieves a reference to the primitive_desc descriptor of given primitive.

Warning
The returned object must not be destroyed by the user. The const qualifier of the returned object prevents such attempts.