Giter VIP home page Giter VIP logo

mkl-dnn's Introduction

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

Apache License Version 2.0 v0.7 beta

Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN) is an open source performance library for Deep Learning (DL) applications intended for acceleration of DL frameworks on Intel(R) architecture. Intel(R) MKL-DNN includes highly vectorized and threaded building blocks for implementation of convolutional neural networks (CNN) with C and C++ interfaces. We created this project to enable the DL community to innovate on Intel(R) processors.

Intel MKL-DNN includes functionality similar to Intel(R) Math Kernel Library (Intel(R) MKL) 2017, but is not API compatible. We are investigating how to unify the APIs in future Intel MKL releases.

This release is a technical preview with functionality necessary to accelerate bleeding edge image recognition topologies, including Cifar*, AlexNet*, VGG*, GoogleNet* and ResNet*. As with any technical preview, APIs may change in future updates.

License

Intel MKL-DNN is licensed under Apache License Version 2.0.

Documentation

The latest Intel MKL-DNN documentation is at GitHub pages.

Support

Please report issues and suggestions via GitHub issues or start a topic on Intel MKL forum.

How to Contribute

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

  • Share your proposal via GitHub issues.

  • Ensure 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 into our internal and GitHub repositories.

System Requirements

Intel MKL-DNN supports Intel(R) 64 architecture processors and is optimized for

  • Intel(R) Xeon(R) processor E5-xxxx v3 (codename Haswell)
  • Intel(R) Xeon(R) processor E5-xxxx v4 (codename Broadwell)
  • Intel(R) Xeon Phi(TM) processor 72xx (codename Knights Landing)

Processors without Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) are supported and will run reference code.

The software dependencies are:

  • Cmake 2.8.0 or later
  • Doxygen 1.8.5 or later
  • C++ compiler with C++11 standard support

The software was validated on RedHat* Enterprise Linux 7 with

The implementation uses OpenMP* 4.0 SIMD extensions. We recommend using Intel(R) compiler for the best performance results.

Installation

Download Intel MKL-DNN source code or clone the repository to your system

	git clone https://github.com/01org/mkl-dnn.git

Satisfy all hardware and software dependencies and ensure that the versions are correct before installing. Intel MKL-DNN uses the optimized matrix-matrix multiplication (GEMM) function from Intel MKL. The dynamic library with this functionality is included win the repository. Before building the project, download the library using the script provided:

	cd scripts && ./prepare_mkl.sh && cd ..

or download manually and unpack it to the external directory in the repository root.

Intel MKL-DNN uses a CMake-based build system

	mkdir -p build && cd build && cmake .. && make

Intel MKL-DNN includes unit tests implemented using the googletest framework. To validate your build, run:

	make test

Documentation is provided inline and can be generated in HTML format with Doxygen:

	make doc

Documentation will reside in build/reference/html folder.

Finally,

	make install

will place the header files, libraries and documentation in /usr/local. To change the installation path, use the option -DCMAKE_INSTALL_PREFIX=<prefix> when invoking CMake.

mkl-dnn's People

Contributors

akharito avatar ankalinin avatar cdgarland avatar drizshko avatar espetrov avatar hfp avatar igorsafo avatar jbobba avatar mistler avatar nshustrov avatar shelleygoel avatar skazakov1 avatar sknepper avatar tprimak avatar vpirogov avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.