Commit 065e5150 authored by Andreas Marek's avatar Andreas Marek

Merge branch 'master' into ELPA_GPU

parents ff3301ab c0ce2f09
...@@ -370,3 +370,15 @@ single-precision-mpi-ftimings-redirect-real-avx_block6-jobs: ...@@ -370,3 +370,15 @@ single-precision-mpi-ftimings-redirect-real-avx_block6-jobs:
- make -j 8 - make -j 8
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH - export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16' - make check TEST_FLAGS='1500 50 16'
set-kernel-via-environment-variable-job:
script:
- export LANG=C
- module load impi intel gcc mkl autotools
- ./autogen.sh
- ./configure CFLAGS="-O3 -mavx" CXXFLAGS="-O3 -mavx" FCFLAGS="-O3 -mavx" SCALAPACK_LDFLAGS="-L/afs/@cell/common/soft/intel/ics2015/15.0/mkl/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread -lm -Wl,-rpath,$MKL_HOME/lib/intel64" SCALAPACK_FCFLAGS="-L/afs/@cell/common/soft/intel/ics2015/15.0/mkl/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread -lm -I$MKLROOT/include/intel64/lp64" --enable-openmp
- make -j 8
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- export REAL_ELPA_KERNEL=REAL_ELPA_KERNEL_GENERIC
- export COMPLEX_ELPA_KERNEL=COMPLEX_ELPA_KERNEL_GENERIC
- make check TEST_FLAGS='1500 50 16'
This diff is collapsed.
...@@ -881,9 +881,9 @@ if test x"${install_real_bgq}" = x"yes" ; then ...@@ -881,9 +881,9 @@ if test x"${install_real_bgq}" = x"yes" ; then
fi fi
if test x"${use_specific_complex_kernel}" = x"no" ; then if test x"${use_specific_complex_kernel}" = x"no" ; then
AC_DEFINE([WITH_NO_SPECIFIC_COMPLEX_KERNEL],[1],[do not use only one specific complex kernel (set at compile time)]) AC_DEFINE([WITH_NO_SPECIFIC_COMPLEX_KERNEL],[1],[do not use only one specific complex kernel (set at compile time)])
else else
AC_DEFINE([WITH_ONE_SPECIFIC_COMPLEX_KERNEL],[1],[use only one specific complex kernel (set at compile time)]) AC_DEFINE([WITH_ONE_SPECIFIC_COMPLEX_KERNEL],[1],[use only one specific complex kernel (set at compile time)])
fi fi
if test x"${use_specific_real_kernel}" = x"no" ; then if test x"${use_specific_real_kernel}" = x"no" ; then
......
...@@ -86,6 +86,30 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_REAL_KERNEL],[ ...@@ -86,6 +86,30 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_REAL_KERNEL],[
fi fi
fi fi
if test x"${install_real_sse_block2}" = x"yes" ; then
if test x"${can_compile_sse_intrinsics}" = x"no" ; then
AC_MSG_ERROR([$2 kernel was set, but cannot be compiled!])
else
want_sse=yes
fi
fi
if test x"${install_real_sse_block4}" = x"yes" ; then
if test x"${can_compile_sse_intrinsics}" = x"no" ; then
AC_MSG_ERROR([$2 kernel was set, but cannot be compiled!])
else
want_sse=yes
fi
fi
if test x"${install_real_sse_block6}" = x"yes" ; then
if test x"${can_compile_sse_inrinsics}" = x"no" ; then
AC_MSG_ERROR([$2 kernel was set, but cannot be compiled!])
else
want_sse=yes
fi
fi
if test x"${install_real_avx_block2}" = x"yes" ; then if test x"${install_real_avx_block2}" = x"yes" ; then
if test x"${can_compile_avx}" = x"no" ; then if test x"${can_compile_avx}" = x"no" ; then
AC_MSG_ERROR([$2 kernel was set, but cannot be compiled!]) AC_MSG_ERROR([$2 kernel was set, but cannot be compiled!])
...@@ -111,10 +135,10 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_REAL_KERNEL],[ ...@@ -111,10 +135,10 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_REAL_KERNEL],[
fi fi
AC_MSG_NOTICE([$1 will be the only compiled kernel for real case]) AC_MSG_NOTICE([$1 will be the only compiled kernel for real case])
if test x"${want_gpu}" = x"yes" ; then # if test x"${want_gpu}" = x"yes" ; then
AC_MSG_WARN([At the moment this disables GPU support!]) # AC_MSG_WARN([At the moment this disables GPU support!])
AC_MSG_WARN([IF GPU support is wanted do NOT specify a specific real kernel]) # AC_MSG_WARN([IF GPU support is wanted do NOT specify a specific real kernel])
fi # fi
else else
AC_MSG_FAILURE([$1 failed; A specific kernel for real case has already been defined before!]) AC_MSG_FAILURE([$1 failed; A specific kernel for real case has already been defined before!])
fi fi
...@@ -145,7 +169,7 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_COMPLEX_KERNEL],[ ...@@ -145,7 +169,7 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_COMPLEX_KERNEL],[
want_avx=no want_avx=no
want_avx2=no want_avx2=no
install_gpu=no # install_gpu=no
use_specific_complex_kernel=yes use_specific_complex_kernel=yes
dnl now set the specific kernel dnl now set the specific kernel
$3=yes $3=yes
...@@ -161,6 +185,8 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_COMPLEX_KERNEL],[ ...@@ -161,6 +185,8 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_COMPLEX_KERNEL],[
if test x"${install_complex_sse_assembly}" = x"yes" ; then if test x"${install_complex_sse_assembly}" = x"yes" ; then
if test x"${can_compile_sse_assembly}" = x"no" ; then if test x"${can_compile_sse_assembly}" = x"no" ; then
AC_MSG_ERROR([$2 kernel was set, but cannot be compiled!]) AC_MSG_ERROR([$2 kernel was set, but cannot be compiled!])
else
want_sse=yes
fi fi
fi fi
......
...@@ -81,7 +81,6 @@ module ELPA2_utilities ...@@ -81,7 +81,6 @@ module ELPA2_utilities
REAL_ELPA_KERNEL_AVX2_BLOCK4, REAL_ELPA_KERNEL_AVX2_BLOCK6, & REAL_ELPA_KERNEL_AVX2_BLOCK4, REAL_ELPA_KERNEL_AVX2_BLOCK6, &
REAL_ELPA_KERNEL_GPU, DEFAULT_REAL_ELPA_KERNEL REAL_ELPA_KERNEL_GPU, DEFAULT_REAL_ELPA_KERNEL
public :: COMPLEX_ELPA_KERNEL_GENERIC, COMPLEX_ELPA_KERNEL_GENERIC_SIMPLE, & public :: COMPLEX_ELPA_KERNEL_GENERIC, COMPLEX_ELPA_KERNEL_GENERIC_SIMPLE, &
COMPLEX_ELPA_KERNEL_BGP, COMPLEX_ELPA_KERNEL_BGQ, & COMPLEX_ELPA_KERNEL_BGP, COMPLEX_ELPA_KERNEL_BGQ, &
COMPLEX_ELPA_KERNEL_SSE, COMPLEX_ELPA_KERNEL_SSE_BLOCK1, & COMPLEX_ELPA_KERNEL_SSE, COMPLEX_ELPA_KERNEL_SSE_BLOCK1, &
......
...@@ -333,7 +333,6 @@ module compute_hh_trafo_complex ...@@ -333,7 +333,6 @@ module compute_hh_trafo_complex
#endif /* WITH_NO_SPECIFIC_COMPLEX_KERNEL */ #endif /* WITH_NO_SPECIFIC_COMPLEX_KERNEL */
#if defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL) || (defined(WITH_ONE_SPECIFIC_COMPLEX_KERNEL) && !defined(WITH_COMPLEX_AVX_BLOCK2_KERNEL) && !defined(WITH_COMPLEX_AVX2_BLOCK2_KERNEL)) #if defined(WITH_NO_SPECIFIC_COMPLEX_KERNEL) || (defined(WITH_ONE_SPECIFIC_COMPLEX_KERNEL) && !defined(WITH_COMPLEX_AVX_BLOCK2_KERNEL) && !defined(WITH_COMPLEX_AVX2_BLOCK2_KERNEL))
ttt = mpi_wtime() ttt = mpi_wtime()
do j = ncols, 1, -1 do j = ncols, 1, -1
#ifdef WITH_OPENMP #ifdef WITH_OPENMP
......
...@@ -121,6 +121,6 @@ module elpa_mpi_stubs ...@@ -121,6 +121,6 @@ module elpa_mpi_stubs
new_comm = mpi_communicator new_comm = mpi_communicator
mpierr = 0 mpierr = 0
return return
end subroutine end subroutine mpi_comm_split
end module end module
...@@ -168,7 +168,7 @@ ...@@ -168,7 +168,7 @@
#ifdef WITH_REAL_GENERIC_SIMPLE_KERNEL #ifdef WITH_REAL_GENERIC_SIMPLE_KERNEL
print *,"GENERIC SIMPLE kernel for real matrices" print *,"GENERIC SIMPLE kernel for real matrices"
#endif #endif
#ifdef WITH_REAL_SSE_KERNEL #ifdef WITH_REAL_SSE_ASSEMBLY_KERNEL
print *,"SSE ASSEMBLER kernel for real matrices" print *,"SSE ASSEMBLER kernel for real matrices"
#endif #endif
#ifdef WITH_REAL_BGP_KERNEL #ifdef WITH_REAL_BGP_KERNEL
...@@ -213,7 +213,7 @@ ...@@ -213,7 +213,7 @@
#ifdef WITH_COMPLEX_GENERIC_SIMPLE_KERNEL #ifdef WITH_COMPLEX_GENERIC_SIMPLE_KERNEL
print *,"GENERIC SIMPLE kernel for complex matrices" print *,"GENERIC SIMPLE kernel for complex matrices"
#endif #endif
#ifdef WITH_COMPLEX_SSE_KERNEL #ifdef WITH_COMPLEX_SSE_ASSEMBLY_KERNEL
print *,"SSE ASSEMBLER kernel for complex matrices" print *,"SSE ASSEMBLER kernel for complex matrices"
#endif #endif
......
...@@ -349,8 +349,6 @@ program test_complex2_choose_kernel_with_api_double_precision ...@@ -349,8 +349,6 @@ program test_complex2_choose_kernel_with_api_double_precision
COMPLEX_ELPA_KERNEL_SSE) COMPLEX_ELPA_KERNEL_SSE)
#endif #endif
#ifdef WITH_ONE_SPECIFIC_COMPLEX_KERNEL
#ifdef WITH_COMPLEX_SSE_BLOCK2_KERNEL #ifdef WITH_COMPLEX_SSE_BLOCK2_KERNEL
COMPLEX_ELPA_KERNEL_SSE_BLOCK2) COMPLEX_ELPA_KERNEL_SSE_BLOCK2)
#else #else
...@@ -367,33 +365,12 @@ program test_complex2_choose_kernel_with_api_double_precision ...@@ -367,33 +365,12 @@ program test_complex2_choose_kernel_with_api_double_precision
#endif #endif
#endif #endif
#else /* WITH_ONE_SPECIFIC_COMPLEX_KERNEL */
#ifdef WITH_COMPLEX_SSE_BLOCK1_KERNEL
COMPLEX_ELPA_KERNEL_SSE_BLOCK1)
#endif
#ifdef WITH_COMPLEX_SSE_BLOCK2_KERNEL
COMPLEX_ELPA_KERNEL_SSE_BLOCK2)
#endif
#ifdef WITH_COMPLEX_AVX_BLOCK1_KERNEL
COMPLEX_ELPA_KERNEL_AVX_BLOCK1)
#endif
#ifdef WITH_COMPLEX_AVX_BLOCK2_KERNEL
COMPLEX_ELPA_KERNEL_AVX_BLOCK2)
#endif
#endif /* WITH_ONE_SPECIFIC_COMPLEX_KERNEL */
#ifdef WITH_GPU_VERSION #ifdef WITH_GPU_VERSION
COMPLEX_ELPA_KERNEL_GPU) COMPLEX_ELPA_KERNEL_GPU)
#endif #endif
#endif /* WITH_ONE_SPECIFIC_COMPLEX_KERNEL */ #endif /* WITH_ONE_SPECIFIC_COMPLEX_KERNEL */
if (.not.(successELPA)) then if (.not.(successELPA)) then
write(error_unit,*) "solve_evp_complex_2stage produced an error! Aborting..." write(error_unit,*) "solve_evp_complex_2stage produced an error! Aborting..."
#ifdef WITH_MPI #ifdef WITH_MPI
......
...@@ -394,7 +394,6 @@ program test_real2_choose_kernel_with_api_double_precision ...@@ -394,7 +394,6 @@ program test_real2_choose_kernel_with_api_double_precision
REAL_ELPA_KERNEL_AVX_BLOCK6) REAL_ELPA_KERNEL_AVX_BLOCK6)
#endif #endif
#endif /* WITH_ONE_SPECIFIC_REAL_KERNEL */ #endif /* WITH_ONE_SPECIFIC_REAL_KERNEL */
#ifdef WITH_REAL_BGP_KERNEL #ifdef WITH_REAL_BGP_KERNEL
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment