oneAPI Deep Neural Network Library (oneDNN)
Performance library for Deep Learning
1.96.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_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_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_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 const 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_iteratordnnl_primitive_desc_iterator_t
 A primitive descriptor iterator handle.
 
typedef const struct dnnl_primitive_desc_iteratorconst_dnnl_primitive_desc_iterator_t
 A constant primitive descriptor iterator handle.
 
typedef struct dnnl_primitive_descdnnl_primitive_desc_t
 A primitive descriptor handle.
 
typedef const struct dnnl_primitive_descconst_dnnl_primitive_desc_t
 A constant primitive descriptor handle.
 
typedef struct dnnl_primitive_attrdnnl_primitive_attr_t
 A primitive descriptor attributes handle that controls primitive behavior. More...
 
typedef const struct dnnl_primitive_attrconst_dnnl_primitive_attr_t
 A constant primitive descriptor attributes handle.
 
typedef struct dnnl_post_opsdnnl_post_ops_t
 A post operation chain handle.
 
typedef const struct dnnl_post_opsconst_dnnl_post_ops_t
 A constant post operation chain handle.
 
typedef struct dnnl_primitivednnl_primitive_t
 A primitive handle.
 
typedef const struct dnnl_primitiveconst_dnnl_primitive_t
 A constant primitive handle.
 
typedef struct dnnl_streamdnnl_stream_t
 An execution stream handle.
 
typedef const struct dnnl_streamconst_dnnl_stream_t
 A constant execution stream handle.
 
typedef struct dnnl_stream_attr * dnnl_stream_attr_t
 An execution stream attributes handle.
 
typedef const struct dnnl_stream_attr * const_dnnl_stream_attr_t
 A constant execution stream attributes 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...
 

Detailed Description

C API types definitions.