This is an automated email from the ASF dual-hosted git repository. marcoabreu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git
The following commit(s) were added to refs/heads/master by this push: new 2567c90 Add Windows MKLDNN Building Instruction (#10613) 2567c90 is described below commit 2567c90941f2943f22bb93e6f7db563a4e7c7cc5 Author: XinyuChen <xinyu1.c...@intel.com> AuthorDate: Fri May 18 20:59:50 2018 +0800 Add Windows MKLDNN Building Instruction (#10613) * add windows mkldnn instruction * update readme * typo full mkl to mkldnn * update blas * update mxnet url * update mkl build * intel mkl liscence * retrigger --- MKL_README.md | 96 ++++++++++++++++++++++++++++++++++--------- docs/install/windows_setup.md | 4 +- 2 files changed, 79 insertions(+), 21 deletions(-) diff --git a/MKL_README.md b/MKL_README.md index 5374adb..a5c63b0 100644 --- a/MKL_README.md +++ b/MKL_README.md @@ -1,19 +1,77 @@ -# Full MKL Installation - -## Build/Install MXNet with a full MKL installation: -Installing and enabling the full MKL installation enables MKL support for all operators under the linalg namespace. - - 1. Download and install the latest full MKL version following instructions on the [intel website.](https://software.intel.com/en-us/articles/intel-mkl-111-install-guide) - - 2. Set USE_BLAS=mkl in make/config.mk - - 1.1 Set ADD_LDFLAGS=-L<path/to/mkl/lib/folder> (ex. ADD_LDFLAGS=-L/opt/intel/compilers_and_libraries_2018.0.128/linux/mkl/lib) - - 1.1 Set ADD_CFLAGS=-I<path/to/mkl/include/folder> (ex. ADD_CFLAGS=-L/opt/intel/compilers_and_libraries_2018.0.128/linux/mkl/include) - - 3. Run 'make -j ${nproc}' - - 4. Navigate into the python directory - - 5. Run 'sudo python setup.py install' - +## Build/Install MXNet with a full MKL installation: + +To make it convenient for customers, Intel introduced a new license called [IntelĀ® Simplified license](https://software.intel.com/en-us/license/intel-simplified-software-license) that allows to redistribute not only dynamic libraries but also headers, examples and static libraries. + +Installing and enabling the full MKL installation enables MKL support for all operators under the linalg namespace. + + 1. Download and install the latest full MKL version following instructions on the [intel website.](https://software.intel.com/en-us/mkl) + + 2. Run 'make -j ${nproc} USE_BLAS=mkl' + + 3. Navigate into the python directory + + 4. Run 'sudo python setup.py install' + + +## Build/Install MXNet with MKLDNN on Windows: + +To build and install MXNet yourself, you need the following dependencies. Install the required dependencies: + +1. If [Microsoft Visual Studio 2015](https://www.visualstudio.com/vs/older-downloads/) is not already installed, download and install it. You can download and install the free community edition. +2. Download and Install [CMake](https://cmake.org/) if it is not already installed. +3. Download and install [OpenCV](http://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.0.0/opencv-3.0.0.exe/download). +4. Unzip the OpenCV package. +5. Set the environment variable ```OpenCV_DIR``` to point to the ```OpenCV build directory``` (```C:\opencv\build\x64\vc14``` for example). Also, you need to add the OpenCV bin directory (```C:\opencv\build\x64\vc14\bin``` for example) to the ``PATH`` variable. +6. If you have Intel Math Kernel Library (MKL) installed, set ```MKL_ROOT``` to point to ```MKL``` directory that contains the ```include``` and ```lib```. If you want to use MKL blas, you should set ```-DUSE_BLAS=mkl``` when cmake. Typically, you can find the directory in +```C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018\windows\mkl```. +7. If you don't have the Intel Math Kernel Library (MKL) installed, download and install [OpenBLAS](http://sourceforge.net/projects/openblas/files/v0.2.14/). Note that you should also download ```mingw64.dll.zip`` along with openBLAS and add them to PATH. +8. Set the environment variable ```OpenBLAS_HOME``` to point to the ```OpenBLAS``` directory that contains the ```include``` and ```lib``` directories. Typically, you can find the directory in ```C:\Program files (x86)\OpenBLAS\```. + +After you have installed all of the required dependencies, build the MXNet source code: + +1. Download the MXNet source code from [GitHub](https://github.com/apache/incubator-mxnet). Don't forget to pull the submodules: +``` + git clone https://github.com/apache/incubator-mxnet.git --recursive +``` + +2. Copy file `3rdparty/mkldnn/config_template.vcxproj` to incubator-mxnet root. + +3. Start a Visual Studio command prompt. + +4. Use [CMake](https://cmake.org/) to create a Visual Studio solution in ```./build``` or some other directory. Make sure to specify the architecture in the +[CMake](https://cmake.org/) command: +``` + mkdir build + cd build + cmake -G "Visual Studio 14 Win64" .. -DUSE_CUDA=0 -DUSE_CUDNN=0 -DUSE_NVRTC=0 -DUSE_OPENCV=1 -DUSE_OPENMP=1 -DUSE_PROFILER=1 -DUSE_BLAS=open -DUSE_LAPACK=1 -DUSE_DIST_KVSTORE=0 -DCUDA_ARCH_NAME=All -DUSE_MKLDNN=1 -DCMAKE_BUILD_TYPE=Release +``` + +5. In Visual Studio, open the solution file,```.sln```, and compile it. +These commands produce a library called ```libmxnet.dll``` in the ```./build/Release/``` or ```./build/Debug``` folder. +Also ```libmkldnn.dll``` with be in the ```./build/3rdparty/mkldnn/src/Release/``` + +6. Make sure that all the dll files used above(such as `libmkldnn.dll`, `libmklml.dll`, `libiomp5.dll`, `libopenblas.dll`, etc) are added to the system PATH. For convinence, you can put all of them to ```\windows\system32```. Or you will come across `Not Found Dependencies` when loading mxnet. + +## Install MXNet for Python + +1. Install ```Python``` using windows installer available [here](https://www.python.org/downloads/release/python-2712/). +2. Install ```Numpy``` using windows installer available [here](http://scipy.org/install.html). +3. Next, we install Python package interface for MXNet. You can find the Python interface package for [MXNet on GitHub](https://github.com/dmlc/mxnet/tree/master/python/mxnet). + +```CMD + cd python + python setup.py install +``` +Done! We have installed MXNet with Python interface. Run below commands to verify our installation is successful. +```CMD + # Open Python terminal + python + + # You should be able to import mxnet library without any issues. + >>> import mxnet as mx; + >>> a = mx.nd.ones((2, 3)); + >>> print ((a*2).asnumpy()); + [[ 2. 2. 2.] + [ 2. 2. 2.]] +``` +We actually did a small tensor computation using MXNet! You are all set with MKLDNN MXNet on your Windows machine. diff --git a/docs/install/windows_setup.md b/docs/install/windows_setup.md index 09a39e2..07027ad 100755 --- a/docs/install/windows_setup.md +++ b/docs/install/windows_setup.md @@ -34,9 +34,9 @@ To build and install MXNet yourself, you need the following dependencies. Instal After you have installed all of the required dependencies, build the MXNet source code: -1. Download the MXNet source code from [GitHub](https://github.com/dmlc/mxnet). Don't forget to pull the submodules: +1. Download the MXNet source code from [GitHub](https://github.com/apache/incubator-mxnet). Don't forget to pull the submodules: ``` - git clone https://github.com/apache/incubator-mxnet.git ~/mxnet --recursive + git clone https://github.com/apache/incubator-mxnet.git --recursive ``` 2. Start a Visual Studio command prompt. 3. Use [CMake](https://cmake.org/) to create a Visual Studio solution in ```./build``` or some other directory. Make sure to specify the architecture in the -- To stop receiving notification emails like this one, please contact marcoab...@apache.org.