Deep Neural Network Library (DNNL)  1.91.0
Performance library for Deep Learning
Build from Source

Download the Source Code

Download DNNL source code or clone the repository.

git clone https://github.com/intel/mkl-dnn.git

Build the Library

Ensure that all software dependencies are in place and have at least the minimal supported version.

The DNNL build system is based on CMake. Use

  • CMAKE_INSTALL_PREFIX to control the library installation location,
  • CMAKE_BUILD_TYPE to select between build type (Release, Debug, RelWithDebInfo).

See Build Options for detailed description of build-time configuration options.

Linux/macOS

  • Generate makefile:
    mkdir -p build && cd build && cmake ..
  • Build the library:
    make -j
  • Build the documentation:
    make doc
  • Install the library, headers, and documentation:
    make install

Windows

  • Generate a Microsoft Visual Studio solution:
    mkdir build && cd build && cmake -G "Visual Studio 15 2017 Win64" ..
    For the solution to use the Intel C++ Compiler, select the corresponding toolchain using the cmake -T switch:
    cmake -G "Visual Studio 15 2017 Win64" -T "Intel C++ Compiler 19.0" ..
  • Build the library:
    cmake --build .
    You can also use the msbuild command-line tool directly (here /p:Configuration selects the build configuration which can be different from the one specified in CMAKE_BUILD_TYPE, and /m enables a parallel build):
    msbuild "DNNL.sln" /p:Configuration=Release /m
  • Build the documentation
    cmake --build . --target DOC
  • Install the library, headers, and documentation:
    cmake --build . --target INSTALL

DPC++ Support

DPC++ runtime requires the oneAPI DPC++ Compiler. You can explicitly specify the path to the DPC++ installation using -DDPCPPROOT CMake option.

C and C++ compilers need to be set to point to oneAPI DPC++ Compilers.

Linux

# Set DPC++ environment variables
# <..>/setvars.sh
# Set C and C++ compilers
export CC=<C compiler>
export CXX=<DPC++ compiler>
mkdir build
cd build
cmake -DDNNL_CPU_RUNTIME=DPCPP -DDNNL_GPU_RUNTIME=DPCPP ..
cmake --build .

Windows

Note
Currently, building on Windows has a few limitations:
  • Only the Clang compiler with GNU-like command-line is supported (clang.exe and clang++.exe).
  • Only the Ninja generator is supported.
  • CMake version must be 3.15 or newer.
:: Set DPC++ environment variables
:: <..>\setvars.bat
:: Set C and C++ compilers (must have GNU-like command-line interface)
set CC=<C compiler>
set CXX=<DPC++ compiler>
mkdir build
cd build
cmake -G Ninja -DDNNL_CPU_RUNTIME=DPCPP -DDNNL_GPU_RUNTIME=DPCPP ..
cmake --build .

Validate the Build

Run unit tests:

ctest