Skip to content
forked from oneapi-src/oneDNN

Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN)

License

Notifications You must be signed in to change notification settings

saininav/mkl-dnn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN)

v0.95 beta

Note

The master branch is now used to work on the upcoming Intel MKL-DNN v1.0 release with changes that are incompatible with v0.x. The changes are described in the following RFC.

For a limited time, the team will maintain 0.x branch, backporting fixes and some of the features from the mainline.

Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN) is an open-source performance library for deep-learning applications. The library accelerates deep-learning applications and frameworks on Intel(R) architecture and Intel(R) Processor Graphics Architecture. Intel MKL-DNN contains vectorized and threaded building blocks that you can use to implement deep neural networks (DNN) with C and C++ interfaces.

Note Intel(R) MKL-DNN is distinct from Intel(R) MKL, which is general math performance library.

This release contains performance-critical functions that improve performance of the following deep learning topologies and variations of these:

Application Example topology
Image recognition AlexNet, VGG, GoogleNet, ResNet, MobileNet
Image segmentation FCN, SegNet, MaskRCNN, U-Net
Volumetric segmentation 3D-Unet
Object detection SSD, Faster R-CNN, Yolo
Neural machine translation GNMT
Speech recognition DeepSpeech
Adversarial networks DCGAN, 3DGAN
Reinforcement learning A3C
Text-to-speech WaveNet

Intel MKL-DNN is used in the following software products (please let us know if you are using the library inside your appication so we can add to the list):

License

Intel MKL-DNN is licensed under Apache License Version 2.0. This software includes the following third-party components:

Documentation

  • Developer guide explains programming model, supported functionality, details of primitives implementations and includes annotated examples.
  • API reference provides comprehensive reference of the library API.

Support

Please submit your questions, feature requests, and bug reports on the GitHub issues page.

WARNING The following functionality has preview status and might change without prior notification in future releases.

  • Threading Building Blocks (TBB) support
  • Intel(R) Processor Graphics support

How to Contribute

We welcome community contributions to Intel MKL-DNN. If you have an idea on how to improve the library:

  • Share your proposal via GitHub issues.
  • Ensure that you can build the product and run all the examples with your patch.
  • In the case of a larger feature, create a test.
  • Submit a pull request.

We will review your contribution and, if any additional fixes or modifications are necessary, may provide feedback to guide you. When accepted, your pull request will be merged to the repository.

System Requirements

Intel MKL-DNN supports Intel 64 architecture and compatible architectures. The library is optimized for the systems based on

  • Intel Atom(R) processor with Intel SSE4.1 support
  • 4th, 5th, 6th, 7th, and 8th generation Intel(R) Core(TM) processor
  • Intel(R) Xeon(R) processor E3, E5, and E7 family (formerly Sandy Bridge, Ivy Bridge, Haswell, and Broadwell)
  • Intel(R) Xeon(R) Scalable processors (formerly Skylake and Cascade Lake)
  • Intel(R) Xeon Phi(TM) processors (formerly Knights Landing and Knights Mill)

and compatible processors.

Intel MKL-DNN supports Intel(R) Processor Graphics. The library is optimized for the systems based on

  • Intel(R) Iris(R) Pro Graphics.

The software dependencies are:

  • CMake 2.8.11 or later
  • Doxygen 1.8.5 or later
  • C++ compiler with C++11 standard support
  • Optional dependencies:
    • GNU* OpenMP*, LLVM OpenMP, or Intel OpenMP
    • Threading Building Blocks (TBB) 2017 or later
    • Intel MKL 2017 Update 1 or Intel MKL small libraries

The additional software dependencies for Intel(R) Processor Graphics support:

  • OpenCL* runtime library (OpenCL* version 1.2 or later)
  • OpenCL* driver (with kernel language support for OpenCL* C 2.0 or later) with Intel(R) subgroups extension support

Note Building Intel MKL-DNN with optional dependencies may introduce additional runtime dependencies for the library. For details, refer to the corresponding software system requirements.

The software was validated on RedHat* Enterprise Linux 7 with

  • GNU Compiler Collection 4.8, 5.4, 6.1, 7.2, and 8.1
  • Clang* 3.8.0
  • Intel C/C++ Compiler 17.0, 18.0, and 19.0

on Windows Server* 2012 R2 with

on macOS* 10.13 (High Sierra) with

Intel(R) Processor Graphics support was validated on Ubuntu* 18.04 with

on Windows Server* 2019 with

The implementation uses OpenMP 4.0 SIMD extensions. We recommend using the Intel C++ Compiler for the best performance results.


Legal Information

About

Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 93.9%
  • C 4.8%
  • CMake 1.2%
  • Python 0.1%
  • Shell 0.0%
  • Batchfile 0.0%