Torch is a scientific computing framework with wide support for machine learning algorithms. It is easy to use and efficient, thanks to an easy and fast scripting language, LuaJIT, and an underlying C/CUDA implementation.
This fork is dedicated to improving Torch performance when running on CPU, in particular Intel® Xeon processors (HSW, BDW, Xeon Phi)
###Requirements Be sure you have installed the lastest MKL version: parallel_studio_xe_2017. If you could not get the new MKL release, please goto the branch autoDownloadMKL, run prepare_mkl.sh to get the MKL substitute.
###Building Before install, you should set the MKL path for cmake:
export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:/opt/intel/mkl/include
export CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:/opt/intel/mkl/lib/intel64
Also, you need to source the mklvar.sh file like this:
source /opt/intel/mkl/bin/mklvars.sh intel64
Install this repo, which installs the torch distribution, with a lot of nice goodies.
git clone https://github.com/intel/torch.git ./torch
cd ~/torch; bash install-deps;
./install.sh #use gcc to install torch, or ./install_icc.sh #use icc to install torch
By default Torch will install LuaJIT 2.1. If you want other options, you can use the command:
TORCH_LUA_VERSION=LUA51 ./install.sh
TORCH_LUA_VERSION=LUA52 ./install.sh
To remove all the temporary compilation files you can run:
./clean.sh
You can test that all libraries are installed properly by running:
./test.sh
Tested on Ubuntu 14.04, CentOS 7. BTW, if you need to check whether the newest MKL is linked to torch, you can use this command:
ldd ./install/lib/lua/5.1/libTHNN.so
See if the mkl_rt is linked to the correct mkl library: libmkl_rt.so => /opt/intel/mkl/lib/intel64/libmkl_rt.so This step is especially important when you are using a mkl patch.
###Performance To check the performance on the convnet benchmark, refer to this page
To check the convergency on the imagenet dataset, refer to this page
* Other names and trademarks may be claimed as the property of others.