Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN)  1.0.4
Performance library for Deep Learning
Functions
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)
 Creates a primitive descriptor iterator for given op_desc, attr, engine, and optionally a hint primitive descriptor from forward propagation (required for backward propagation). More...
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_iterator_next (mkldnn_primitive_desc_iterator_t iterator)
 Iterates over primitive descriptors. More...
 
mkldnn_primitive_desc_t MKLDNN_API mkldnn_primitive_desc_iterator_fetch (const_mkldnn_primitive_desc_iterator_t iterator)
 Fetches the current primitive descriptor. More...
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_iterator_destroy (mkldnn_primitive_desc_iterator_t iterator)
 Deletes a primitive descriptor iterator.
 
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. More...
 
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_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. More...
 
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_query (const_mkldnn_primitive_desc_t primitive_desc, mkldnn_query_t what, int index, void *result)
 Queries primitive descriptor. More...
 
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. More...
 
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. More...
 
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_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. More...
 
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. More...
 
mkldnn_status_t MKLDNN_API mkldnn_primitive_destroy (mkldnn_primitive_t primitive)
 Deletes a primitive.
 

Detailed Description

Function Documentation

◆ mkldnn_primitive_desc_iterator_create()

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_primitive_desc_iterator_next()

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_primitive_desc_iterator_fetch()

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_primitive_desc_create()

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.

Examples:
cpu_cnn_inference_f32.c, cpu_cnn_training_f32.c, and gpu_getting_started.c.

◆ mkldnn_primitive_desc_get_attr()

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_primitive_desc_query()

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

◆ mkldnn_primitive_desc_query_md()

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.

Examples:
cpu_cnn_inference_f32.c, and cpu_cnn_training_f32.c.

◆ mkldnn_primitive_desc_query_s32()

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_primitive_execute()

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.

Examples:
cpu_cnn_inference_f32.c, cpu_cnn_training_f32.c, and gpu_getting_started.c.

◆ mkldnn_primitive_get_primitive_desc()

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.