You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As I understand from here, it is potentially possible to use Intel Caffe with 3 options:
Full MKL - a big manual download; some set up is required (specifying MKLROOT?).
MKL-ML - a smaller automatic download during Caffe installation.
MKL-DNN - a small automatic download during Caffe installation.
Initially, I tried to build Intel Caffe using GCC-6 and OpenBLAS (BLAS=open). Unfortunately, Caffe got linked against GNU OpenMP (libgomp.so), and the performance was terrible (#1).
Then, I tried to use Intel OpenMP (libiomp.so) from the full MKL (#5) and from the built-in Ubuntu package (#6). However, it became clear from looking at CMakeLists.txt that the build system would only try to link against libiomp.so when BLAS=mkl was specified.
So I updated the lib-caffe-intel-master-cpu and lib-caffe-intel-request-cpu packages to use that option. From the increased download times, I conclude this is equivalent to option 2 above (i.e. MKL-ML).
It would be interesting to be able to build with any BLAS option (i.e. full MKL or MKL-ML or MKL-DNN), if the Intel Caffe code is suitably updated.
The text was updated successfully, but these errors were encountered:
@psyhtest Anton, please allow me to explain the complicated library dependencies so that you can understand better how to provide the best configuration.
IntelCaffe is different from BVLC Caffe in that it links with MKL-DNN library which is the only recommended configuration for best performance. There are other build options to link IntelCaffe with MKLML alone but it is due to historical reasons and not recommended. IntelCaffe would download MKL-DNN library (3) and MKLML library (2) which MKL-DNN relies on. The latter provides the minimal BLAS functionalities that Caffe needs and these functionalities are equivalent to what the full MKL package (1) could provide. MKLML package also includes the Intel OpenMP library that both MKL-DNN and MKLML depend on.
Building with the full MKL could probably work but it is not recommended.
@jgong5 Many thanks for your clarification! It sounds that linking Caffe with MKLML for Intel platforms would be similar to linking Caffe with cuBLAS for NVIDIA platforms (which was indeed due to historical reasons and got dropped quite some time ago). Therefore, since the currently implemented option is both necessary and sufficient, I'm marking this as wontfix.
As I understand from here, it is potentially possible to use Intel Caffe with 3 options:
MKLROOT
?).Initially, I tried to build Intel Caffe using GCC-6 and OpenBLAS (
BLAS=open
). Unfortunately, Caffe got linked against GNU OpenMP (libgomp.so
), and the performance was terrible (#1).Then, I tried to use Intel OpenMP (
libiomp.so
) from the full MKL (#5) and from the built-in Ubuntu package (#6). However, it became clear from looking atCMakeLists.txt
that the build system would only try to link againstlibiomp.so
whenBLAS=mkl
was specified.So I updated the
lib-caffe-intel-master-cpu
andlib-caffe-intel-request-cpu
packages to use that option. From the increased download times, I conclude this is equivalent to option 2 above (i.e. MKL-ML).It would be interesting to be able to build with any BLAS option (i.e. full MKL or MKL-ML or MKL-DNN), if the Intel Caffe code is suitably updated.
The text was updated successfully, but these errors were encountered: