Performance library for Deep Learning
2.3.0
dnnl_types.h File Reference

C API types definitions. More...

Go to the source code of this file.

## Classes

struct  dnnl_blocking_desc_t
Generic description of blocked data layout for most memory formats. More...

struct  dnnl_wino_desc_t
Description of tensor of weights for winograd 2x3 convolution. More...

struct  dnnl_rnn_packed_desc_t
Description of tensor of packed weights for rnn. More...

struct  dnnl_memory_extra_desc_t
Description of extra information stored in memory. More...

struct  dnnl_memory_desc_t
Memory descriptor. More...

struct  dnnl_convolution_desc_t
A descriptor of a convolution operation. More...

struct  dnnl_shuffle_desc_t
A descriptor of a shuffle operation. More...

struct  dnnl_eltwise_desc_t
A descriptor of a element-wise operation. More...

struct  dnnl_softmax_desc_t
A descriptor of a Softmax operation. More...

struct  dnnl_pooling_desc_t
A descriptor of a pooling operation. More...

struct  dnnl_pooling_v2_desc_t
A descriptor of a pooling operation. More...

struct  dnnl_lrn_desc_t
A descriptor of a Local Response Normalization (LRN) operation. More...

struct  dnnl_batch_normalization_desc_t
A descriptor of a Batch Normalization operation. More...

struct  dnnl_layer_normalization_desc_t
A descriptor of a Layer Normalization operation. More...

struct  dnnl_inner_product_desc_t
A descriptor of an inner product operation. More...

struct  dnnl_rnn_desc_t
A descriptor for an RNN operation. More...

struct  dnnl_binary_desc_t
A descriptor of a binary operation. More...

struct  dnnl_matmul_desc_t
A descriptor of a matrix multiplication operation. More...

struct  dnnl_resampling_desc_t
A descriptor of resampling operation. More...

struct  dnnl_reduction_desc_t
A descriptor of reduction operation. More...

struct  dnnl_exec_arg_t
A structure that contains an index and a memory object, and is used to pass arguments to dnnl_primitive_execute(). More...

struct  dnnl_version_t
Structure containing version information as per Semantic Versioning More...

## Macros

#define DNNL_MAX_NDIMS   12
Maximum number of dimensions a tensor can have. More...

#define DNNL_RUNTIME_DIM_VAL   INT64_MIN
A wildcard value for dimensions that are unknown at a primitive creation time. More...

#define DNNL_RUNTIME_SIZE_VAL   ((size_t)DNNL_RUNTIME_DIM_VAL)
A size_t counterpart of the DNNL_RUNTIME_DIM_VAL. More...

#define DNNL_RUNTIME_F32_VAL   (DNNL_RUNTIME_F32_VAL_REP.f)
A wildcard value for floating point values that are unknown at a primitive creation time. More...

#define DNNL_RUNTIME_S32_VAL   DNNL_RUNTIME_S32_VAL_REP
A wildcard value for int32_t values that are unknown at a primitive creation time. More...

#define DNNL_RNN_MAX_N_PARTS   4
Maximum number of parts of RNN weights tensor that require separate computation. More...

#define DNNL_MEMORY_NONE   (NULL)
Special pointer value that indicates that a memory object should not have an underlying buffer. More...

#define DNNL_MEMORY_ALLOCATE   ((void *)(size_t)-1)
Special pointer value that indicates that the library needs to allocate an underlying buffer for a memory object. More...

#define DNNL_ARG_SRC_0   1
Source argument #0.

#define DNNL_ARG_SRC   DNNL_ARG_SRC_0
A special mnemonic for source argument for primitives that have a single source. More...

#define DNNL_ARG_SRC_LAYER   DNNL_ARG_SRC_0
A special mnemonic for RNN input vector. More...

#define DNNL_ARG_FROM   DNNL_ARG_SRC_0
A special mnemonic for reorder source argument. More...

#define DNNL_ARG_SRC_1   2
Source argument #1.

#define DNNL_ARG_SRC_ITER   DNNL_ARG_SRC_1
A special mnemonic for RNN input recurrent hidden state vector. More...

#define DNNL_ARG_SRC_2   3
Source argument #2.

#define DNNL_ARG_SRC_ITER_C   DNNL_ARG_SRC_2
A special mnemonic for RNN input recurrent cell state vector. More...

#define DNNL_ARG_DST_0   17
Destination argument #0.

#define DNNL_ARG_DST   DNNL_ARG_DST_0
A special mnemonic for destination argument for primitives that have a single destination. More...

#define DNNL_ARG_TO   DNNL_ARG_DST_0
A special mnemonic for reorder destination argument. More...

#define DNNL_ARG_DST_LAYER   DNNL_ARG_DST_0
A special mnemonic for RNN output vector. An alias for DNNL_ARG_DST_0.

#define DNNL_ARG_DST_1   18
Destination argument #1.

#define DNNL_ARG_DST_ITER   DNNL_ARG_DST_1
A special mnemonic for RNN input recurrent hidden state vector. More...

#define DNNL_ARG_DST_2   19
Destination argument #2.

#define DNNL_ARG_DST_ITER_C   DNNL_ARG_DST_2
A special mnemonic for LSTM output recurrent cell state vector. More...

#define DNNL_ARG_WEIGHTS_0   33
Weights argument #0.

#define DNNL_ARG_WEIGHTS   DNNL_ARG_WEIGHTS_0
A special mnemonic for primitives that have a single weights argument. More...

#define DNNL_ARG_SCALE_SHIFT   DNNL_ARG_WEIGHTS_0
A special mnemonic for scale and shift argument of normalization primitives. More...

#define DNNL_ARG_WEIGHTS_LAYER   DNNL_ARG_WEIGHTS_0
A special mnemonic for RNN weights applied to the layer input. More...

#define DNNL_ARG_WEIGHTS_1   34
Weights argument #1.

#define DNNL_ARG_WEIGHTS_ITER   DNNL_ARG_WEIGHTS_1
A special mnemonic for RNN weights applied to the recurrent input. More...

#define DNNL_ARG_WEIGHTS_2   35
Weights argument #2.

#define DNNL_ARG_WEIGHTS_PEEPHOLE   DNNL_ARG_WEIGHTS_2
A special mnemonic for RNN weights applied to the peephole weights. More...

#define DNNL_ARG_WEIGHTS_3   36
Weights argument #3.

#define DNNL_ARG_WEIGHTS_PROJECTION   DNNL_ARG_WEIGHTS_3
A special mnemonic for RNN weights applied to the projection weights. More...

#define DNNL_ARG_BIAS   41
Bias tensor argument.

#define DNNL_ARG_MEAN   49
Mean values tensor argument.

#define DNNL_ARG_VARIANCE   50
Variance values tensor argument.

#define DNNL_ARG_SCALE   51
A special mnemonic for scale argument of normalization primitives.

#define DNNL_ARG_SHIFT   52
A special mnemonic for shift argument of normalization primitives.

#define DNNL_ARG_WORKSPACE   64
Workspace tensor argument. More...

#define DNNL_ARG_SCRATCHPAD   80
Scratchpad (temporary storage) tensor argument.

#define DNNL_ARG_DIFF_SRC_0   129
Gradient (diff) of the source argument #0.

#define DNNL_ARG_DIFF_SRC   DNNL_ARG_DIFF_SRC_0
A special mnemonic for primitives that have a single diff source argument. More...

#define DNNL_ARG_DIFF_SRC_LAYER   DNNL_ARG_DIFF_SRC_0
A special mnemonic for gradient (diff) of RNN input vector. More...

#define DNNL_ARG_DIFF_SRC_1   130
Gradient (diff) of the source argument #1.

#define DNNL_ARG_DIFF_SRC_ITER   DNNL_ARG_DIFF_SRC_1
A special mnemonic for gradient (diff) of RNN input recurrent hidden state vector. More...

#define DNNL_ARG_DIFF_SRC_2   131
Gradient (diff) of the source argument #2.

#define DNNL_ARG_DIFF_SRC_ITER_C   DNNL_ARG_DIFF_SRC_2
A special mnemonic for gradient (diff) of RNN input recurrent cell state vector. More...

#define DNNL_ARG_DIFF_DST_0   145
Gradient (diff) of the destination argument #0.

#define DNNL_ARG_DIFF_DST   DNNL_ARG_DIFF_DST_0
A special mnemonic for primitives that have a single diff destination argument. More...

#define DNNL_ARG_DIFF_DST_LAYER   DNNL_ARG_DIFF_DST_0
A special mnemonic for gradient (diff) of RNN output vector. More...

#define DNNL_ARG_DIFF_DST_1   146
Gradient (diff) of the destination argument #1.

#define DNNL_ARG_DIFF_DST_ITER   DNNL_ARG_DIFF_DST_1
A special mnemonic for gradient (diff) of RNN input recurrent hidden state vector. More...

#define DNNL_ARG_DIFF_DST_2   147
Gradient (diff) of the destination argument #2.

#define DNNL_ARG_DIFF_DST_ITER_C   DNNL_ARG_DIFF_DST_2
A special mnemonic for gradient (diff) of RNN input recurrent cell state vector. More...

#define DNNL_ARG_DIFF_WEIGHTS_0   161
Gradient (diff) of the weights argument #0.

#define DNNL_ARG_DIFF_WEIGHTS   DNNL_ARG_DIFF_WEIGHTS_0
A special mnemonic for primitives that have a single diff weights argument. More...

#define DNNL_ARG_DIFF_SCALE_SHIFT   DNNL_ARG_DIFF_WEIGHTS_0
A special mnemonic for diff of scale and shift argument of normalization primitives. More...

#define DNNL_ARG_DIFF_WEIGHTS_LAYER   DNNL_ARG_DIFF_WEIGHTS_0
A special mnemonic for diff of RNN weights applied to the layer input. More...

#define DNNL_ARG_DIFF_WEIGHTS_1   162
Gradient (diff) of the weights argument #1.

#define DNNL_ARG_DIFF_WEIGHTS_ITER   DNNL_ARG_DIFF_WEIGHTS_1
A special mnemonic for diff of RNN weights applied to the recurrent input. More...

#define DNNL_ARG_DIFF_WEIGHTS_2   163
Gradient (diff) of the weights argument #2.

#define DNNL_ARG_DIFF_WEIGHTS_PEEPHOLE   DNNL_ARG_DIFF_WEIGHTS_2
A special mnemonic for diff of RNN weights applied to the peephole weights. More...

#define DNNL_ARG_DIFF_WEIGHTS_3   164
Gradient (diff) of the weights argument #3.

#define DNNL_ARG_DIFF_WEIGHTS_PROJECTION   DNNL_ARG_DIFF_WEIGHTS_3
A special mnemonic for diff of RNN weights applied to the projection weights. More...

#define DNNL_ARG_DIFF_BIAS   169
Gradient (diff) of the bias tensor argument.

#define DNNL_ARG_DIFF_SCALE   255
A special mnemonic for scale argument of normalization primitives.

#define DNNL_ARG_DIFF_SHIFT   256
A special mnemonic for shift argument of normalization primitives.

#define DNNL_ARG_ATTR_OUTPUT_SCALES   513
Output scaling factors provided at execution time.

#define DNNL_ARG_MULTIPLE_SRC   1024
Starting index for source arguments for primitives that take a variable number of source arguments. More...

#define DNNL_ARG_MULTIPLE_DST   2048
Starting index for destination arguments for primitives that produce a variable number of destination arguments. More...

#define DNNL_ARG_ATTR_ZERO_POINTS   4096
Zero points provided at execution time.

#define DNNL_ARG_ATTR_POST_OP_DW   8192
Arguments for fused depthwise convolution. More...

#define DNNL_ARG_ATTR_MULTIPLE_POST_OP_BASE   16384
Starting point for a binary post operation.

#define DNNL_ARG_ATTR_MULTIPLE_POST_OP(idx)   (DNNL_ARG_ATTR_MULTIPLE_POST_OP_BASE * ((idx) + 1))
Arguments for a binary post operation. More...

#define DNNL_ARG_ATTR_INPUT_SCALES   1048576
Input scaling factors provided at execution time.

#define DNNL_RUNTIME_NONE   0u
No runtime (disabled)

#define DNNL_RUNTIME_SEQ   1u
Sequential runtime (CPU only)

#define DNNL_RUNTIME_OMP   2u
OpenMP runtime (CPU only)

#define DNNL_RUNTIME_TBB   4u
TBB runtime (CPU only)

#define DNNL_RUNTIME_THREADPOOL   8u
Threadpool runtime (CPU only)

#define DNNL_RUNTIME_OCL   256u
OpenCL runtime.

#define DNNL_RUNTIME_SYCL   512u
SYCL runtime.

#define DNNL_RUNTIME_DPCPP   DNNL_RUNTIME_SYCL
DPC++ runtime.

#define DNNL_JIT_PROFILE_NONE   0u
Disable profiling completely.

#define DNNL_JIT_PROFILE_VTUNE   1u
Enable VTune Amplifier integration.

#define DNNL_JIT_PROFILE_LINUX_PERFMAP   2u
Enable Linux perf integration via perfmap files.

#define DNNL_JIT_PROFILE_LINUX_JITDUMP   4u
Enable Linux perf integration via jitdump files.

#define DNNL_JIT_PROFILE_LINUX_JITDUMP_USE_TSC   8u
Instruct Linux perf integration via jitdump files to use TSC. More...

#define DNNL_JIT_PROFILE_LINUX_PERF   (DNNL_JIT_PROFILE_LINUX_JITDUMP | DNNL_JIT_PROFILE_LINUX_PERFMAP)
Enable Linux perf integration (both jitdump and perfmap)

## Typedefs

typedef int64_t dnnl_dim_t
A type to describe tensor dimension.

typedef dnnl_dim_t dnnl_dims_t [DNNL_MAX_NDIMS]
A type to describe tensor dimensions.

typedef struct dnnl_memorydnnl_memory_t
A memory handle.

typedef struct dnnl_memoryconst_dnnl_memory_t
A constant memory handle.

typedef void * dnnl_op_desc_t
A pointer to any of the operation descriptors.

typedef const void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).

typedef dnnl_convolution_desc_t dnnl_deconvolution_desc_t
A descriptor of a deconvolution operation.

typedef dnnl_softmax_desc_t dnnl_logsoftmax_desc_t
A descriptor of a LogSoftmax operation. More...

typedef struct dnnl_enginednnl_engine_t
An engine handle.

typedef struct
dnnl_primitive_desc_iterator
dnnl_primitive_desc_iterator_t
A primitive descriptor iterator handle.

typedef struct
dnnl_primitive_desc_iterator
const_dnnl_primitive_desc_iterator_t
A constant primitive descriptor iterator handle.

typedef struct
dnnl_primitive_desc
dnnl_primitive_desc_t
A primitive descriptor handle.

typedef struct
dnnl_primitive_desc
const_dnnl_primitive_desc_t
A constant primitive descriptor handle.

typedef struct
dnnl_primitive_attr
dnnl_primitive_attr_t
A primitive descriptor attributes handle that controls primitive behavior. More...

typedef struct
dnnl_primitive_attr
const_dnnl_primitive_attr_t
A constant primitive descriptor attributes handle.

typedef struct dnnl_post_opsdnnl_post_ops_t
A post operation chain handle.

typedef struct dnnl_post_opsconst_dnnl_post_ops_t
A constant post operation chain handle.

typedef struct dnnl_primitivednnl_primitive_t
A primitive handle.

typedef struct dnnl_primitiveconst_dnnl_primitive_t
A constant primitive handle.

typedef struct dnnl_streamdnnl_stream_t
An execution stream handle.

typedef struct dnnl_streamconst_dnnl_stream_t
A constant execution stream handle.

## Enumerations

enum  dnnl_status_t
Status values returned by the library functions. More...

enum  dnnl_data_type_t
Data type specification. More...

enum  dnnl_format_kind_t
Memory format kind. More...

enum  dnnl_format_tag_t
Memory format tag specification. More...

enum  dnnl_prop_kind_t
Kinds of propagation. More...

enum  dnnl_primitive_kind_t
Kinds of primitives. More...

enum  dnnl_alg_kind_t
Kinds of algorithms. More...

enum  dnnl_normalization_flags_t
Flags for normalization primitives. More...

enum  dnnl_wino_memory_format_t
Winograd-specific formats. More...

enum  dnnl_memory_extra_flags_t
Flags for memory special features. More...

enum  dnnl_rnn_flags_t
Flags for RNN cell. More...

enum  dnnl_rnn_direction_t
A direction of RNN primitive execution. More...

enum  dnnl_engine_kind_t
Kinds of engines. More...

enum  dnnl_scratchpad_mode_t
Scratchpad mode. More...

enum  dnnl_query_t
Primitive descriptor query specification. More...

enum  dnnl_stream_flags_t
Stream flags. More...

enum  dnnl_cpu_isa_t
CPU instruction set flags. More...

enum  dnnl_cpu_isa_hints_t
CPU ISA hints flags. More...

## Detailed Description

C API types definitions.