Re: [Rd] Problem building R with Intel MKL v10 BLAS
Michael Braun MIT.EDU> writes: > > NO > > Hi. I'm not sure if this is an R-help or R-devel problem, so I'm > starting here in the hope that someone can help (and willing to go to > the other list if it's more appropriate). I think I am following all of > the instructions in the various manuals, but clearly I am missing something. > > I have an Intel EM64T Dell with 2 dual-core Xeon processors running Red > Hat EL5. I would like to build R 2.6.1 with lots of debugging and > profiling options, and link it to the processor-specific Intel MKL blas. > The problem is that after I compile R, and do R CMD config BLAS_LIBS, > the response is > -L/usr/local/lib64/R/lib -lRblas. > > This tells me that R is not linked to the Intel BLAS at all. > > My config.site file for R is: > > #! /bin/sh > > R_PAPERSIZE=letter > CFLAGS="-g -O2 -p -pg" > CPPFLAGS="-I/opt/intel/mkl/10.0.1.014/include -I/usr/include > -I/usr/local/include" > LIBnn=lib64 > BLAS_LIBS="-L/opt/intel/mkl/10.0.1.014/lib/em64t -Wl,--start-group > -lmkl_gf_lp64.so -lmkl_gnu_thread.so -lmkl_core.so -l -l -l -Wl, > --end-group -lguide -lpthread -lm" > > I have set the CONFIG_SITE environment variable to the location of the > config.site.file. > I am doing everything as superuser. > > The command I am using for configure is > > ./configure --disable-R-profiling --with-blas=no > > following the instructions in the R-admin file regarding enabling > C-level profiling and linking to the external BLAS libraries referenced > in the config.site file. > > The BLAS_LIBS files are different than in the R-admin manual because of > changes in the Intel MKL for version 10. These libraries, in this > order, were taken from the Intel MKL for Linux User's Guide, chapter 5. > > So, still no luck linking to the optimized BLAS. I'd appreciate any > suggestions. > > Thanks, > > Michael > --- I now recall a similar problem with my install of MKL V10. Here is the info: I got the 10.X, layered library version of MKL 10.X working on R-2.6.1a. I set the full path information for the R configuration blas and lapack option: --with-blas="-L/.../intel/mkl/10.0.011/lib/em64t -lRblas -lmkl_sequential -lmkl_lapack -lmkl_core -lpthread" --with-lapack="-L/.../intel/mkl/10.0.011/lib/em64t -lRlapack -lmkl_sequential -lmkl_lapack -lmkl_core -lpthread" In this case, libRblas.so and libRlapack.so are both linked to libmkl_gf_lp64.so in the em64t directory. There must be some internal error in the R configuration and make processing, because it would not pick up the primary path specification for the mkl libraries location. Instead, I was able to define: ***critical step to get around a possible R bug*** sh-3.00$ export LD_RUN_PATH=/.../intel/mkl/10.0.011/lib/em64t After that, I was able to perform the R configure with no errors. Then the make also worked with no errors. The BLAS_LIBS and LAPACK_LIBS variables were properly defined, and the path to the MKL libraries was properly defined in ldpaths: sh-3.00$ /.../R-2.6.1a/bin/R CMD config BLAS_LIBS -L/.../intel/mkl/10.0.011/lib/em64t -lRblas -lmkl_sequential -lmkl_lapack -lmkl_core -lpthread sh-3.00$ /.../R-2.6.1a/bin/R CMD config LAPACK_LIBS -L/.../R-2.6.1a/intel/mkl/10.0.011/lib/em64t -lRlapack -lmkl_sequential -lmkl_lapack -lmkl_core -lpthread sh-3.00$ power02(43)% more ldpaths ... ${R_LD_LIBRARY_PATH=${R_HOME}/lib:/s/gcc-4.2.1/lib64: /.../intel/mkl/10.0.011/lib/em64t:/usr/X11R6/lib64: /.../tcl-8.4.2/i386_rh72/lib:/.../XFree86-4.2.1/i386_rh72/lib} (... are the various local paths to the objects of interest) Hope that helps (maybe more than my other post) MJR __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] Problem building R with Intel MKL v10 BLAS
Ei-ji Nakama ki.rim.or.jp> writes: > > Hi. > > 2008/1/25, Michael Braun mit.edu>: > > NO > > > > Hi. I'm not sure if this is an R-help or R-devel problem, so I'm > > starting here in the hope that someone can help (and willing to go to > > the other list if it's more appropriate). I think I am following all of > > the instructions in the various manuals, but clearly I am missing something. > > > > I have an Intel EM64T Dell with 2 dual-core Xeon processors running Red > > Hat EL5. I would like to build R 2.6.1 with lots of debugging and > > profiling options, and link it to the processor-specific Intel MKL blas. > > The problem is that after I compile R, and do R CMD config BLAS_LIBS, > > the response is > > -L/usr/local/lib64/R/lib -lRblas. > > > > This tells me that R is not linked to the Intel BLAS at all. > > > > My config.site file for R is: > > > > #! /bin/sh > > > > R_PAPERSIZE=letter > > CFLAGS="-g -O2 -p -pg" > > CPPFLAGS="-I/opt/intel/mkl/10.0.1.014/include -I/usr/include > > -I/usr/local/include" > > LIBnn=lib64 > > BLAS_LIBS="-L/opt/intel/mkl/10.0.1.014/lib/em64t -Wl,--start-group > > -lmkl_gf_lp64.so -lmkl_gnu_thread.so -lmkl_core.so -l -l -l -Wl, > > --end-group -lguide -lpthread -lm" > > I have an AMD 64x2 Debian(etch) > $ gcc-4.2 -v > Using built-in specs. > Target: x86_64-linux-gnu > Configured with: ../gcc-4.2.2/configure -v > --enable-languages=c,c++,fortran,objc,obj-c++,treelang > --prefix=/usr/local/gcc-4.2.2 --enable-shared --disable-multilib > --with-system-zlib --without-included-gettext --enable-threads=posix > --enable-nls --program-suffix=-4.2 --enable-__cxa_atexit > --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr > --enable-checking=release x86_64-linux-gnu > Thread model: posix > gcc version 4.2.2 > > MKL_LIB_PATH=/opt/intel/mkl/10.0.1.014/lib/em64t > MKL=" -L${MKL_LIB_PATH} \ > -Wl,--start-group \ > ${MKL_LIB_PATH}/libmkl_gf_lp64.a\ > ${MKL_LIB_PATH}/libmkl_gnu_thread.a \ > ${MKL_LIB_PATH}/libmkl_core.a \ > -Wl,--end-group \ > -liomp5 -lguide -lpthread -lgomp" > > ./configure CC=gcc-4.2\ > CXX=g++-4.2\ > F77=gfortran-4.2\ > FC=gfortran-4.2\ > --with-lapack="$MKL" --with-blas="$MKL" > > mkl_core seemed to want to cause libiomp5. dgemm gave a funny result > in matrix of 1000x1000 if I did not link with real libiomp5. > --- According to Intel, the V10 MKL is modular and therefore requires that all the needed modules be on the library path in the correct order. This differs from V9 in that the single BLAS and LAPACK libraries could be directly substituted (linked from) libRblas.so and libRlapack.so. To build, I needed to add the paths into the config.sh and make sure all the tests worked during R build. These are the config.sh entries. I think the result is similar to what is noted above, though I use the intel thread rather than the gnu thread. I tried both, and don't recall that it made a difference: --with-blas="-L/.../intel/mkl/10.0.1.014/lib/em64t -lRblas -lmkl_intel_thread -lguide -lmkl_lapack -lmkl_core -lpthread" \ --with-lapack="-L/.../intel/mkl/10.0.1.014/lib/em64t -lRlapack -lmkl_intel_thread -lguide -lmkl_lapack -lmkl_core -lpthread" \ where ... is the absolute path to your Intel MKL installation. Hope that helps... MJR __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel