|
From: | Felix Willenborg |
Subject: | Re: Octave and Intel MKL |
Date: | Sun, 17 Sep 2017 20:33:35 +0200 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
Hey Mike, thanks for your advice. I could compile octave 4.2.1 from source with Intel MKL (Intel Parallel Studio XE 2016 (update3.120)). With this (big) configuration call it was possible: ./configure --disable-readline --without-curl --enable-docs=no --prefix=/cluster/programs/octave/4.2.1-mkl --with-blas='-lmkl_gf_ilp64 -lmkl_gnu_thread -lmkl_core -liomp5' --with-lapack='-lmkl_gf_ilp64 -lmkl_gnu_thread -lmkl_core -liomp5' --with-fftw3='-lmkl_gf_ilp64 -lmkl_gnu_thread -lmkl_core -liomp5 -lm' --with-fftw3f='-lmkl_gf_ilp64 -lmkl_gnu_thread -lmkl_core -liomp5 -lm' LD_LIBRARY_PATH='/cluster/compilers/intel/parallel_studio_xe_2016_update3/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64/:/cluster/compilers/intel/parallel_studio_xe_2016_update3/compilers_and_libraries_2016.3.210/linux/mkl/../compiler/lib/intel64/:$LD_LIBRARY_PATH' CPPFLAGS='-I/cluster/compilers/intel/parallel_studio_xe_2016_update3/compilers_and_libraries_2016.3.210/linux/mkl/include/ -I/cluster/compilers/intel/parallel_studio_xe_2016_update3/compilers_and_libraries_2016.3.210/linux/mkl/include/fftw/' LDFLAGS='-L/cluster/compilers/intel/parallel_studio_xe_2016_update3/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64/ -L/cluster/compilers/intel/parallel_studio_xe_2016_update3/compilers_and_libraries_2016.3.210/linux/mkl/../compiler/lib/intel64/' CC=gcc CXX=gcc F77=gfortran CFLAGS='-O3 -fPIC -DMKL_ILP64 -DM_PI=3.1415926535897932384 -lstdc++' FFLAGS='-O3 -fPIC' F77_INTEGER_8_FLAG='-finteger-4-integer-8'My initial problem was that I had a terminal variable in the LDFLAGS (like -L$MKLROOT/lib/intel64). In Intels manual for compiling octave with Intel MKL [2] they exported the variable for LDFLAGS whereas I locally defined it which was my mistake (dummy). Therefore I defined the whole path in my local definition. After that, I got many errors at the build step CXXLD src/mkoctfilecontaining many many missing definitions of std::string. After doing some research I found out that ann additional -lstdc++ solved that problem but I don't get why. In one of my earlier e-mails here I introduced a pseudo 'MFLOP/S' script [1] in order to roughly measure the efficiency. Compared to another build of mine with OpenBLAS and 64-bit indexing I got MFLOPS: (23.733844 +- 8.549004) (MKL ILP64)I was wondering if that could be or if I build it wrong? I expected MKL to be the fastest of all numerical libraries out there and am surprised that OpenBLAS is much better than all others. You guys got any thought on that? Best wishes, Felix Willenborg [1]: http://lists.gnu.org/archive/html/help-octave/2017-09/msg00084.html [2]: https://software.intel.com/en-us/articles/using-intel-mkl-in-gnu-octave Am 13.09.2017 um 18:55 schrieb Mike
Miller:
On Tue, Sep 12, 2017 at 23:50:16 +0200, Felix Willenborg wrote:I'm trying to compile octave (additionally to ATLAS) with Intel MKL and 64-bit indexing.[…]This is also not working when taking MKL_LP64 libraries and removing --enable64. Somehow he can not find the needed numerical functions. There I get the same messages with the difference that -lblas and -llapack are working (which was expectable).I don't have any particular experience, but I would recommend you start with the simplest configuration, using GCC with 32-bit Fortran integers and the MKL LP64 library. You might also want to test with the Octave development branch, which has reworked a lot of configure and code concerning the C/Fortran interface. I think the following should work ./configure \ --with-blas='-lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -liomp5' \ LDFLAGS='-L/$intel/mkl/lib/intel64 -L/$intel/lib/intel64' \ LD_LIBRARY_PATH='/$intel/mkl/lib/intel64:/$intel/lib/intel64' If that doesn't work, then config.log should help you figure out why. If you do get that working, then try moving on to ILP64. -- Felix Willenborg Arbeitsgruppe Machine Learning Department für Medizinische Physik und Akustik Fakultät für Medizin und Gesundheitswissenschaften Carl von Ossietzky Universität Oldenburg Küpkersweg 74, 26129 Oldenburg Tel: +49 441 798 3945 https://www.uni-oldenburg.de/machine-learning/ |
signature.asc
Description: OpenPGP digital signature
[Prev in Thread] | Current Thread | [Next in Thread] |