From e18b4aa130e1fe3b6584d826e0d155dedf4d852e Mon Sep 17 00:00:00 2001 From: Andreas Marek Date: Thu, 21 Apr 2016 15:26:32 +0200 Subject: [PATCH] Update m4 macro for kernel detection --- m4/ax_elpa_specific_kernels.m4 | 82 +++++++++++++++++++++++++++------- 1 file changed, 65 insertions(+), 17 deletions(-) diff --git a/m4/ax_elpa_specific_kernels.m4 b/m4/ax_elpa_specific_kernels.m4 index 556de258..19834275 100644 --- a/m4/ax_elpa_specific_kernels.m4 +++ b/m4/ax_elpa_specific_kernels.m4 @@ -16,26 +16,55 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_REAL_KERNEL],[ dnl make sure that all the other kernels are unset install_real_generic=no install_real_generic_simple=no - install_real_sse=no + install_real_sse_assembly=no install_real_bgp=no install_real_bgq=no + install_real_sse_block2=no + install_real_sse_block4=no + install_real_sse_block6=no install_real_avx_block2=no install_real_avx_block4=no install_real_avx_block6=no + want_sse=no want_avx=no - install_gpu=no + want_avx2=no +# install_gpu=no use_specific_real_kernel=yes dnl now set the specific kernel $3=yes dnl in case of SSE or AVX make sure that we can compile the choosen kernel - if test x"${install_real_sse}" = x"yes" ; then - if test x"${can_compile_sse}" = x"no" ; then + if test x"${install_real_sse_assembly}" = x"yes" ; then + if test x"${can_compile_sse_assembly}" = x"no" ; then AC_MSG_ERROR([$2 kernel was set, but cannot be compiled!]) 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"${can_compile_avx}" = x"no" ; then AC_MSG_ERROR([$2 kernel was set, but cannot be compiled!]) @@ -61,11 +90,11 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_REAL_KERNEL],[ fi AC_MSG_NOTICE([$1 will be the only compiled kernel for real case]) - if test x"${want_gpu}" = x"yes" ; then - 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]) - fi - else +# if test x"${want_gpu}" = x"yes" ; then +# 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]) +# fi +# else AC_MSG_FAILURE([$1 failed; A specific kernel for real case has already been defined before!]) fi fi @@ -84,25 +113,44 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_COMPLEX_KERNEL],[ dnl make sure that all the other kernels are unset install_complex_generic=no install_complex_generic_simple=no - install_complex_sse=no + install_complex_sse_assembly=no install_complex_bgp=no install_complex_bgq=no + install_complex_sse_block1=no + install_complex_sse_block2=no install_complex_avx_block1=no install_complex_avx_block2=no + want_sse=no want_avx=no + want_avx2=no - install_gpu=no +# install_gpu=no use_specific_complex_kernel=yes dnl now set the specific kernel $3=yes dnl in case of SSE or AVX make sure that we can compile the choosen kernel - if test x"${install_complex_sse}" = x"yes" ; then - if test x"${can_compile_sse}" = x"no" ; then + if test x"${install_complex_sse_assembly}" = x"yes" ; then + if test x"${can_compile_sse_assembly}" = x"no" ; then AC_MSG_ERROR([$2 kernel was set, but cannot be compiled!]) fi fi + if test x"${install_complex_sse_block1}" = 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_complex_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_complex_avx_block1}" = x"yes" ; then if test x"${can_compile_avx}" = x"no" ; then AC_MSG_ERROR([$2 kernel was set, but cannot be compiled!]) @@ -120,10 +168,10 @@ AC_DEFUN([DEFINE_OPTION_SPECIFIC_COMPLEX_KERNEL],[ fi AC_MSG_NOTICE([$1 will be the only compiled kernel for real case]) - if test x"${want_gpu}" = x"yes" ; then - AC_MSG_WARN([At the moment this disables GPU support!]) - AC_MSG_WARN([IF GPU support is wanted do NOT specify a specific complex kernel]) - fi +# if test x"${want_gpu}" = x"yes" ; then +# AC_MSG_WARN([At the moment this disables GPU support!]) +# AC_MSG_WARN([IF GPU support is wanted do NOT specify a specific complex kernel]) +# fi else AC_MSG_FAILURE([$1 failed; A specific kernel for real case has already been defined before!]) fi -- GitLab