Explorar o código

autodetect mkl

Samuel Thibault %!s(int64=9) %!d(string=hai) anos
pai
achega
d4e98734d2
Modificáronse 2 ficheiros con 27 adicións e 7 borrados
  1. 26 6
      configure.ac
  2. 1 1
      examples/Makefile.am

+ 26 - 6
configure.ac

@@ -2330,21 +2330,41 @@ fi
 
 
 if test x$blas_lib = xmaybe -o x$blas_lib = xmkl; then
 if test x$blas_lib = xmaybe -o x$blas_lib = xmkl; then
     # Should we use MKL ?
     # Should we use MKL ?
+    if test -n "$MKLROOT"
+    then
+        CPPFLAGS="${CPPFLAGS} -I$MKLROOT/include"
+	case $host_vendor in
+	    *1om) mkl_plat=mic ;;
+	    *)    mkl_plat=intel64 ;;
+	esac
+	SAVED_LIBS=$LIBS
+	MKL_LIBS="-L$MKLROOT/lib/$mkl_plat -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lm -lpthread -ldl"
+	LIBS="$LIBS $MKL_LIBS"
+	AC_LINK_IFELSE(
+		[AC_LANG_PROGRAM([[
+			#include <mkl.h>
+		]], [[ ]])],
+		[ blas_lib=mkl ],
+		[ MKL_LIBS="" ],
+	)
+	LIBS=$SAVED_LIBS
+    fi
     AC_ARG_WITH(mkl-cflags, [AS_HELP_STRING([--with-mkl-cflags], [specify MKL compilation flags])],
     AC_ARG_WITH(mkl-cflags, [AS_HELP_STRING([--with-mkl-cflags], [specify MKL compilation flags])],
 	[
 	[
-	    CPPFLAGS="${CPPFLAGS} $withval"
-	    blas_lib=mkl
-	    ])
+        CPPFLAGS="${CPPFLAGS} $withval"
+	blas_lib=mkl
+	])
 
 
     AC_ARG_WITH(mkl-ldflags, [AS_HELP_STRING([--with-mkl-ldflags], [specify MKL linking flags])],
     AC_ARG_WITH(mkl-ldflags, [AS_HELP_STRING([--with-mkl-ldflags], [specify MKL linking flags])],
 	[
 	[
-	    LDFLAGS="${LDFLAGS} $withval"
-	    blas_lib=mkl
-	    ])
+	MKL_LIBS="$withval"
+	blas_lib=mkl
+	])
     if test x$blas_lib = xmkl; then
     if test x$blas_lib = xmkl; then
 	AC_DEFINE(STARPU_MKL, [1], [use MKL library])
 	AC_DEFINE(STARPU_MKL, [1], [use MKL library])
     fi
     fi
 fi
 fi
+AC_SUBST(MKL_LIBS)
 
 
 if test x$blas_lib = xmaybe; then
 if test x$blas_lib = xmaybe; then
     #perhaps it is possible to use some BLAS lib from the system
     #perhaps it is possible to use some BLAS lib from the system

+ 1 - 1
examples/Makefile.am

@@ -19,7 +19,7 @@
 
 
 AM_CFLAGS = $(MAGMA_CFLAGS) $(HWLOC_CFLAGS) -Wall $(STARPU_CUDA_CPPFLAGS) $(STARPU_OPENCL_CPPFLAGS) $(GLOBAL_AM_CFLAGS) -Wno-unused
 AM_CFLAGS = $(MAGMA_CFLAGS) $(HWLOC_CFLAGS) -Wall $(STARPU_CUDA_CPPFLAGS) $(STARPU_OPENCL_CPPFLAGS) $(GLOBAL_AM_CFLAGS) -Wno-unused
 AM_CXXFLAGS = $(MAGMA_CFLAGS) $(HWLOC_CFLAGS) -Wall $(STARPU_CUDA_CPPFLAGS) $(STARPU_OPENCL_CPPFLAGS)
 AM_CXXFLAGS = $(MAGMA_CFLAGS) $(HWLOC_CFLAGS) -Wall $(STARPU_CUDA_CPPFLAGS) $(STARPU_OPENCL_CPPFLAGS)
-LIBS = $(top_builddir)/src/@LIBSTARPU_LINK@ $(MAGMA_LIBS) $(HWLOC_LIBS) @LIBS@
+LIBS = $(top_builddir)/src/@LIBSTARPU_LINK@ $(MAGMA_LIBS) $(MKL_LIBS) $(HWLOC_LIBS) @LIBS@
 AM_CPPFLAGS = -I$(top_srcdir)/include/ -I$(top_srcdir)/examples/ -I$(top_builddir)/include
 AM_CPPFLAGS = -I$(top_srcdir)/include/ -I$(top_srcdir)/examples/ -I$(top_builddir)/include
 AM_LDFLAGS = @STARPU_EXPORT_DYNAMIC@ $(STARPU_OPENCL_LDFLAGS) $(STARPU_CUDA_LDFLAGS) $(STARPU_COI_LDFLAGS) $(STARPU_SCIF_LDFLAGS)
 AM_LDFLAGS = @STARPU_EXPORT_DYNAMIC@ $(STARPU_OPENCL_LDFLAGS) $(STARPU_CUDA_LDFLAGS) $(STARPU_COI_LDFLAGS) $(STARPU_SCIF_LDFLAGS)