Skip to main content
Ctrl+K

oneDNN v3.14 Documentation

About

  • Introduction

Getting Started

  • System Requirements
  • Build from Source
  • Build Options
  • Link to the Library
  • Basic Workflow
  • Examples and Tutorials

Developer Guide

  • Common Concepts
    • Naming Conventions
    • API
    • Data Types
    • Understanding Memory Formats
  • Functional API
    • Programming Model
      • Basic Concepts
      • Inference and Training Aspects
        • Inference
        • Int8 Inference
        • Bfloat16 Training
      • Primitive Attributes
        • Floating-point Math Mode
        • Accumulation Mode
        • Rounding Mode
        • Deterministic Mode
        • Dropout
        • Quantization
        • Post-ops
        • Scratchpad
    • Supported Primitives
      • Convolution
      • Inner Product
      • Matrix Multiplication
      • RNN
      • Batch Normalization
      • Binary
      • Concat
      • Eltwise
      • Group Normalization
      • Layer Normalization
      • Local Response Normalization (LRN)
      • Pooling
      • PReLU
      • Resampling
      • Shuffle
      • Softmax
      • Sum
      • Reorder
      • Reduction
    • Memory Formats
      • Memory Format Propagation
      • Sparse memory formats
      • Grouped Memory Format for Variable-Size Batching
      • Host-Side Scalars Support
    • Caching
      • Primitive Cache
      • Persistent Cache
  • Graph API
    • Programming Model
      • Basic Concepts
      • Low Precision
    • Supported Operations
      • Abs
      • AbsBackward
      • Add
      • AvgPool
      • AvgPoolBackward
      • BatchNormForwardTraining
      • BatchNormInference
      • BatchNormTrainingBackward
      • BiasAdd
      • BiasAddBackward
      • Clamp
      • ClampBackward
      • Concat
      • Convolution
      • ConvolutionBackwardData
      • ConvolutionBackwardWeights
      • ConvTranspose
      • ConvTransposeBackwardData
      • ConvTransposeBackwardWeights
      • Dequantize
      • Divide
      • Dropout
      • DynamicDequantize
      • DynamicQuantize
      • Elu
      • EluBackward
      • End
      • Exp
      • GELU
      • GELUBackward
      • GenIndex
      • GreaterEqual
      • GroupNorm
      • HardSigmoid
      • HardSigmoidBackward
      • HardSwish
      • HardSwishBackward
      • Interpolate
      • InterpolateBackward
      • LayerNorm
      • LayerNormBackward
      • LeakyReLU
      • Log
      • LogSoftmax
      • LogSoftmaxBackward
      • MatMul
      • Maximum
      • MaxPool
      • MaxPoolBackward
      • Minimum
      • Mish
      • MishBackward
      • Multiply
      • Pow
      • PReLU
      • PReLUBackward
      • Quantize
      • Reciprocal
      • ReduceL1
      • ReduceL2
      • ReduceMax
      • ReduceMean
      • ReduceMin
      • ReduceProd
      • ReduceSum
      • ReLU
      • ReLUBackward
      • Reorder
      • RMSNorm
      • Round
      • Select
      • Sigmoid
      • SigmoidBackward
      • SoftMax
      • SoftMaxBackward
      • SoftPlus
      • SoftPlusBackward
      • Sqrt
      • SqrtBackward
      • Square
      • SquaredDifference
      • StaticReshape
      • StaticTranspose
      • Subtract
      • Tanh
      • TanhBackward
      • TypeCast
      • Wildcard
    • Fusion Patterns
      • Gated Multi-Layer Perceptron (Gated-MLP)
      • Grouped Query Attention (GQA)
      • SDPA with Compressed Key and Value
      • Scaled Dot-Product Attention (SDPA)
      • Quantized SDPA
      • MatMul
      • Quantized MatMul
      • Convolution
      • Quantized Convolution
      • ConvTranspose
      • Quantized ConvTranspose
      • Binary
      • Unary
      • Interpolate
      • Reduction
      • Pool
      • Norm
      • SoftMax
    • Scratchpad Management
    • Graph Dump
    • Constant Tensor Cache
  • ukernel API
    • Basic Concepts
    • Batch-Reduce General Matrix Multiplication
    • Data transformation
    • BRGeMM ukernel example
  • Performance Profiling and Inspection
    • Verbose Mode
    • Configuring oneDNN for Benchmarking
    • Benchmarking Performance
    • Profiling oneDNN Performance
    • Inspecting JIT Code
    • Performance Profiling Example
    • CPU Dispatcher Control
    • CPU ISA Hints
    • Verbose Message Catalogue
  • Advanced Topics
    • Nuances of int8 Computations
    • Using Threadpool-based Threading
    • Interoperability with DPC++, OpenCL, and Level Zero
      • OpenCL Interoperability
      • DPC++ Interoperability
      • Level Zero Interoperability
    • Experimental features

API Reference

  • C++ API
    • Primitives
      • Common
        • enum dnnl::normalization_flags
        • enum dnnl::query
        • struct dnnl::primitive
        • struct dnnl::primitive_desc
        • struct dnnl::primitive_desc_base
      • Attributes
        • enum dnnl::algorithm
        • enum dnnl::prop_kind
        • enum dnnl::quantization_mode
        • enum dnnl::rounding_mode
        • enum dnnl::scratchpad_mode
        • struct dnnl::post_ops
        • struct dnnl::primitive_attr
      • RNN
        • enum dnnl::rnn_direction
        • enum dnnl::rnn_flags
        • struct dnnl::augru_backward
        • struct dnnl::augru_forward
        • struct dnnl::gru_backward
        • struct dnnl::gru_forward
        • struct dnnl::lbr_augru_backward
        • struct dnnl::lbr_augru_forward
        • struct dnnl::lbr_gru_backward
        • struct dnnl::lbr_gru_forward
        • struct dnnl::lstm_backward
        • struct dnnl::lstm_forward
        • struct dnnl::rnn_primitive_desc_base
        • struct dnnl::vanilla_rnn_backward
        • struct dnnl::vanilla_rnn_forward
      • Reorder
        • struct dnnl::reorder
      • Concat
        • struct dnnl::concat
      • Sum
        • struct dnnl::sum
      • Convolution
        • struct dnnl::convolution_backward_data
        • struct dnnl::convolution_backward_weights
        • struct dnnl::convolution_forward
      • Deconvolution
        • struct dnnl::deconvolution_backward_data
        • struct dnnl::deconvolution_backward_weights
        • struct dnnl::deconvolution_forward
      • LRN
        • struct dnnl::lrn_backward
        • struct dnnl::lrn_forward
      • Eltwise
        • struct dnnl::eltwise_backward
        • struct dnnl::eltwise_forward
      • Softmax
        • struct dnnl::softmax_backward
        • struct dnnl::softmax_forward
      • Batch Normalization
        • struct dnnl::batch_normalization_backward
        • struct dnnl::batch_normalization_forward
      • Group Normalization
        • struct dnnl::group_normalization_backward
        • struct dnnl::group_normalization_forward
      • Layer Normalization
        • struct dnnl::layer_normalization_backward
        • struct dnnl::layer_normalization_forward
      • Inner Product
        • struct dnnl::inner_product_backward_data
        • struct dnnl::inner_product_backward_weights
        • struct dnnl::inner_product_forward
      • Shuffle
        • struct dnnl::shuffle_backward
        • struct dnnl::shuffle_forward
      • Binary
        • struct dnnl::binary
      • Matrix Multiplication
        • struct dnnl::matmul
      • Resampling
        • struct dnnl::resampling_backward
        • struct dnnl::resampling_forward
      • Pooling
        • struct dnnl::pooling_backward
        • struct dnnl::pooling_forward
      • PReLU
        • struct dnnl::prelu_backward
        • struct dnnl::prelu_forward
      • Reduction
        • struct dnnl::reduction
    • Memory
      • struct dnnl::memory
        • enum dnnl::memory::data_type
        • enum dnnl::memory::format_kind
        • enum dnnl::memory::format_tag
        • enum dnnl::memory::sparse_encoding
        • struct dnnl::memory::desc
    • Service
      • enum dnnl::cpu_isa
      • enum dnnl::cpu_isa_hints
      • enum dnnl::status
    • Profiling
      • enum dnnl::profiling_data_kind
    • Primitive Cache
    • BLAS functions
    • Common API
      • Utilities
        • struct dnnl::error
        • template struct dnnl::handle
        • template struct dnnl::handle_traits
      • Engine
        • struct dnnl::engine
      • Stream
        • struct dnnl::stream
      • Floating-point Math Mode
        • enum dnnl::fpmath_mode
      • Accumulation Mode
        • enum dnnl::accumulation_mode
    • Graph API
      • Allocator
        • class dnnl::graph::allocator
      • Engine
      • Logical Tensor
        • enum dnnl_graph_layout_type_t
        • enum dnnl_graph_tensor_property_t
        • struct dnnl_graph_logical_tensor_t
        • class dnnl::graph::logical_tensor
      • Tensor
        • class dnnl::graph::tensor
      • Op
        • enum dnnl_graph_op_attr_t
        • enum dnnl_graph_op_kind_t
        • class dnnl::graph::op
      • Partition
        • enum dnnl_graph_partition_policy_t
        • class dnnl::graph::partition
      • Compiled Partition
        • struct dnnl_graph_inplace_pair_t
        • class dnnl::graph::compiled_partition
      • Graph
        • class dnnl::graph::graph
      • Compiled Partition Cache
      • Constant Tensor Cache
      • Dump Mode
        • enum dnnl_graph_dump_mode_t
        • enum dnnl::graph::graph_dump_mode
      • Utilities
      • Status
        • enum dnnl::graph::status
      • Runtime interoperability API
        • OpenCL interoperability API
        • SYCL interoperability API
      • namespace dnnl::graph
    • Runtime interoperability API
      • OpenCL interoperability API
        • namespace dnnl::ocl_interop
      • SYCL interoperability API
        • namespace dnnl::sycl_interop
      • Threadpool interoperability API
        • namespace dnnl::threadpool_interop
      • Level Zero interoperability API
        • namespace dnnl::ze_interop
    • Ukernels
      • ukernel utils
        • enum dnnl::ukernel::pack_type
        • struct dnnl::ukernel::attr_params
      • BRGeMM ukernel
        • struct dnnl::ukernel::brgemm
      • Transform ukernel
        • struct dnnl::ukernel::transform
      • namespace dnnl::ukernel
  • C API
    • Primitives
      • Common
        • enum dnnl_alg_kind_t
        • enum dnnl_normalization_flags_t
        • enum dnnl_primitive_kind_t
        • enum dnnl_prop_kind_t
        • enum dnnl_query_t
        • struct dnnl_exec_arg_t
        • struct dnnl_primitive
        • struct dnnl_primitive_desc
      • Attributes
        • enum dnnl_quantization_mode_t
        • enum dnnl_rounding_mode_t
        • enum dnnl_scratchpad_mode_t
        • struct dnnl_post_ops
        • struct dnnl_primitive_attr
      • Reorder
      • Concat
      • Sum
      • Binary
      • Convolution
      • Deconvolution
      • Shuffle
      • Eltwise
      • Softmax
      • Pooling
      • PReLU
      • LRN
      • Batch Normalization
      • Group Normalization
      • Layer Normalization
      • Inner Product
      • RNN
        • enum dnnl_rnn_direction_t
        • enum dnnl_rnn_flags_t
      • Matrix Multiplication
      • Resampling
      • Reduction
    • Primitive Cache
    • Profiling
    • BLAS functions
    • Common API
      • Engine
        • enum dnnl_engine_kind_t
        • struct dnnl_engine
      • Stream
        • enum dnnl_stream_flags_t
        • struct dnnl_stream
      • Floating-point Math Mode
        • enum dnnl_fpmath_mode_t
      • Service
        • enum dnnl_cpu_isa_hints_t
        • enum dnnl_cpu_isa_t
        • struct dnnl_version_t
      • Utilities
        • enum dnnl_status_t
      • Data types
        • enum dnnl_data_type_t
      • Accumulation Mode
        • enum dnnl_accumulation_mode_t
      • Memory
        • enum dnnl_format_kind_t
        • enum dnnl_format_tag_t
        • enum dnnl_profiling_data_kind_t
        • enum dnnl_sparse_encoding_t
        • struct dnnl_memory
        • struct dnnl_memory_desc
    • Runtime interoperability API
      • OpenCL interoperability API
        • enum dnnl_ocl_interop_memory_kind_t
      • SYCL interoperability API
        • enum dnnl_sycl_interop_memory_kind_t
      • Threadpool interoperability API
      • Level Zero interoperability API
    • Ukernels
      • BRGeMM ukernel
        • struct dnnl_brgemm
      • Transform ukernel
        • struct dnnl_transform
      • enum dnnl_pack_type_t
      • struct dnnl_ukernel_attr_params
  • Repository
  • Open issue
  • .rst

Link to the Library

Contents

  • Header Files
  • Libraries
    • Linux
    • macOS
    • Windows
  • Linking to oneDNN
    • Linux/macOS
      • Support for macOS hardened runtime
    • Windows

Link to the Library#

oneDNN includes several header files providing C and C++ APIs for the functionality and one or several libraries depending on how oneDNN was built.

Header Files#

File

Description

include/oneapi/dnnl/dnnl.h

C header

include/oneapi/dnnl/dnnl.hpp

C++ header

include/oneapi/dnnl/dnnl_types.h

Auxiliary C header

include/oneapi/dnnl/dnnl_config.h

Auxiliary C header

include/oneapi/dnnl/dnnl_version.h

C header with version information

include/oneapi/dnnl/dnnl_graph.h

C header for graph API

include/oneapi/dnnl/dnnl_graph.hpp

C++ header for graph API

include/oneapi/dnnl/dnnl_graph_types.h

Auxiliary C header for graph API

include/oneapi/dnnl/dnnl_ukernel.h

C header for ukernel API

include/oneapi/dnnl/dnnl_ukernel.hpp

C++ header for ukernel API

include/oneapi/dnnl/dnnl_ukernel_types.h

Auxiliary C header for ukernel API

Libraries#

Linux#

File

Description

lib/libdnnl.so

oneDNN dynamic library

lib/libdnnl.a

oneDNN static library (if built with DNNL_LIBRARY_TYPE=STATIC )

macOS#

File

Description

lib/libdnnl.dylib

oneDNN dynamic library

lib/libdnnl.a

oneDNN static library (if built with DNNL_LIBRARY_TYPE=STATIC )

Windows#

File

Description

bindnnl.dll

oneDNN dynamic library

libdnnl.lib

oneDNN import or full static library (the latter if built with DNNL_LIBRARY_TYPE=STATIC )

Linking to oneDNN#

The examples below assume that oneDNN is installed in the directory defined in the DNNLROOT environment variable.

Linux/macOS#

g++ -I${DNNLROOT}/include -L${DNNLROOT}/lib getting_started.cpp -ldnnl
clang++ -I${DNNLROOT}/include -L${DNNLROOT}/lib getting_started.cpp -ldnnl
icpx -I${DNNLROOT}/include -L${DNNLROOT}/lib getting_started.cpp -ldnnl

Warning

Applications linked dynamically will resolve the dependencies at runtime. Make sure that the dependencies are available in the standard locations defined by the operating system, in the locations listed in the LD_LIBRARY_PATH (Linux) or DYLD_LIBRARY_PATH (macOS) environment variable or the rpath mechanism.

Support for macOS hardened runtime#

oneDNN requires the com.apple.security.cs.allow-jit entitlement when it is integrated with an application that uses the macOS hardened runtime. This requirement comes from the fact that oneDNN generates code on the fly and then executes it.

It can be enabled in Xcode or passed to codesign like this:

codesign -s "Your identity" --options runtime --entitlements Entitlements.plist [other options...] /path/to/libdnnl.dylib

Example Entitlements.plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.cs.allow-jit</key><true/>
</dict>
</plist>

Windows#

The examples below assume that oneDNN is installed in the directory defined in the DNNLROOT environment variable.

icx /EHa /I"%DNNLROOT%\include" getting_started.cpp "%DNNLROOT%\lib\dnnl.lib"
cl /EHa /I"%DNNLROOT%\include" getting_started.cpp "%DNNLROOT%\lib\dnnl.lib"

Note

You may also add paths to oneDNN headers and libraries to LIB and INCLUDE environment variables instead of specifying these in the build command.

Refer to the Microsoft Visual Studio documentation on linking the application using MSVS solutions.

Warning

Applications linked dynamically will resolve the dependencies at runtime. Make sure that the dependencies are available in the standard locations defined by the operating system or in the locations listed in the PATH environment variable.

previous

Build Options

next

oneDNN API Basic Workflow Tutorial

Contents
  • Header Files
  • Libraries
    • Linux
    • macOS
    • Windows
  • Linking to oneDNN
    • Linux/macOS
      • Support for macOS hardened runtime
    • Windows

© Copyright 2016-2026 Intel Corporation.

oneDNN is licensed under Apache License Version 2.0. Refer to the LICENSE file for the full license text and copyright notice.
Legal Information