diff --git a/build/Makefile.am b/build/Makefile.am index cbfcd574ce12fce5a71b66fdd9f46ca7a5636f2d..d9b8fa1e997303ba95954eb1f7187c214edbd2a3 100644 --- a/build/Makefile.am +++ b/build/Makefile.am @@ -1,4 +1,4 @@ -LDADD=libnptm/libnptm.la -L/usr/lib64 ${USER_LDFLAGS} ${HDF5_LDFLAGS} ${LAPACKLDFLAGS} ${BLASLDFLAGS} ${MAGMALDFLAGS} +LDADD=libnptm/libnptm.la -L/usr/lib64 ${USER_LDFLAGS} ${HDF5_LDFLAGS} ${LAPACKLDFLAGS} ${BLASLDFLAGS} ${CUBLASLDFLAGS} ${MAGMALDFLAGS} lib_LTLIBRARIES=libnptm/libnptm.la libnptm_libnptm_la_SOURCES=../src/libnptm/algebraic.cpp ../src/libnptm/clu_subs.cpp ../src/libnptm/Commons.cpp ../src/libnptm/Configuration.cpp ../src/libnptm/file_io.cpp ../src/libnptm/inclu_subs.cpp ../src/libnptm/lapack_calls.cpp ../src/libnptm/logging.cpp ../src/libnptm/magma_calls.cpp ../src/libnptm/cublas_calls.cpp ../src/libnptm/Parsers.cpp ../src/libnptm/sph_subs.cpp ../src/libnptm/utils.cpp ../src/libnptm/tfrfme.cpp ../src/libnptm/TransitionMatrix.cpp ../src/libnptm/tra_subs.cpp if BUILDFORTRAN diff --git a/build/Makefile.in b/build/Makefile.in index bdddb965366c8a04c4b81e0a1b71f99a84029dfb..077a305569f613095c2b0f2ad174191c4adf6aa0 100644 --- a/build/Makefile.in +++ b/build/Makefile.in @@ -162,9 +162,10 @@ am_libnptm_libnptm_la_OBJECTS = ../src/libnptm/algebraic.lo \ ../src/libnptm/Configuration.lo ../src/libnptm/file_io.lo \ ../src/libnptm/inclu_subs.lo ../src/libnptm/lapack_calls.lo \ ../src/libnptm/logging.lo ../src/libnptm/magma_calls.lo \ - ../src/libnptm/Parsers.lo ../src/libnptm/sph_subs.lo \ - ../src/libnptm/utils.lo ../src/libnptm/tfrfme.lo \ - ../src/libnptm/TransitionMatrix.lo ../src/libnptm/tra_subs.lo + ../src/libnptm/cublas_calls.lo ../src/libnptm/Parsers.lo \ + ../src/libnptm/sph_subs.lo ../src/libnptm/utils.lo \ + ../src/libnptm/tfrfme.lo ../src/libnptm/TransitionMatrix.lo \ + ../src/libnptm/tra_subs.lo libnptm_libnptm_la_OBJECTS = $(am_libnptm_libnptm_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -178,7 +179,8 @@ cluster_clu_LDADD = $(LDADD) am__DEPENDENCIES_1 = cluster_clu_DEPENDENCIES = libnptm/libnptm.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am__cluster_edfb_clu_SOURCES_DIST = ../src/cluster/edfb_clu.f @BUILDFORTRAN_TRUE@am__objects_2 = ../src/cluster/edfb_clu.$(OBJEXT) @BUILDFORTRAN_TRUE@am_cluster_edfb_clu_OBJECTS = $(am__objects_2) @@ -187,7 +189,7 @@ cluster_edfb_clu_LDADD = $(LDADD) cluster_edfb_clu_DEPENDENCIES = libnptm/libnptm.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__cluster_np_cluster_SOURCES_DIST = ../src/cluster/np_cluster.cpp \ ../src/cluster/cluster.cpp @BUILDFORTRAN_FALSE@am_cluster_np_cluster_OBJECTS = \ @@ -201,7 +203,7 @@ cluster_np_cluster_LDADD = $(LDADD) cluster_np_cluster_DEPENDENCIES = libnptm/libnptm.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__inclusion_edfb_inclu_SOURCES_DIST = ../src/inclusion/edfb_inclu.f @BUILDFORTRAN_TRUE@am__objects_3 = \ @BUILDFORTRAN_TRUE@ ../src/inclusion/edfb_inclu.$(OBJEXT) @@ -211,7 +213,7 @@ inclusion_edfb_inclu_LDADD = $(LDADD) inclusion_edfb_inclu_DEPENDENCIES = libnptm/libnptm.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__inclusion_inclu_SOURCES_DIST = ../src/inclusion/inclu.f @BUILDFORTRAN_TRUE@am__objects_4 = ../src/inclusion/inclu.$(OBJEXT) @BUILDFORTRAN_TRUE@am_inclusion_inclu_OBJECTS = $(am__objects_4) @@ -220,7 +222,7 @@ inclusion_inclu_LDADD = $(LDADD) inclusion_inclu_DEPENDENCIES = libnptm/libnptm.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__inclusion_np_inclusion_SOURCES_DIST = \ ../src/inclusion/np_inclusion.cpp \ ../src/inclusion/inclusion.cpp @@ -235,7 +237,7 @@ inclusion_np_inclusion_LDADD = $(LDADD) inclusion_np_inclusion_DEPENDENCIES = libnptm/libnptm.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__sphere_edfb_sph_SOURCES_DIST = ../src/sphere/edfb_sph.f @BUILDFORTRAN_TRUE@am__objects_5 = ../src/sphere/edfb_sph.$(OBJEXT) @BUILDFORTRAN_TRUE@am_sphere_edfb_sph_OBJECTS = $(am__objects_5) @@ -244,7 +246,7 @@ sphere_edfb_sph_LDADD = $(LDADD) sphere_edfb_sph_DEPENDENCIES = libnptm/libnptm.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__sphere_np_sphere_SOURCES_DIST = ../src/sphere/np_sphere.cpp \ ../src/sphere/sphere.cpp @BUILDFORTRAN_FALSE@am_sphere_np_sphere_OBJECTS = \ @@ -258,7 +260,7 @@ sphere_np_sphere_LDADD = $(LDADD) sphere_np_sphere_DEPENDENCIES = libnptm/libnptm.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__sphere_sph_SOURCES_DIST = ../src/sphere/sph.f @BUILDFORTRAN_TRUE@am__objects_6 = ../src/sphere/sph.$(OBJEXT) @BUILDFORTRAN_TRUE@am_sphere_sph_OBJECTS = $(am__objects_6) @@ -266,7 +268,8 @@ sphere_sph_OBJECTS = $(am_sphere_sph_OBJECTS) sphere_sph_LDADD = $(LDADD) sphere_sph_DEPENDENCIES = libnptm/libnptm.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am__testing_test_ParticleDescriptor_SOURCES_DIST = \ ../src/testing/test_ParticleDescriptor.cpp @BUILDFORTRAN_FALSE@am_testing_test_ParticleDescriptor_OBJECTS = ../src/testing/test_ParticleDescriptor.$(OBJEXT) @@ -277,7 +280,7 @@ testing_test_ParticleDescriptor_LDADD = $(LDADD) testing_test_ParticleDescriptor_DEPENDENCIES = libnptm/libnptm.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__testing_test_TEDF_SOURCES_DIST = ../src/testing/test_TEDF.cpp @BUILDFORTRAN_FALSE@am_testing_test_TEDF_OBJECTS = \ @BUILDFORTRAN_FALSE@ ../src/testing/test_TEDF.$(OBJEXT) @@ -288,7 +291,7 @@ testing_test_TEDF_LDADD = $(LDADD) testing_test_TEDF_DEPENDENCIES = libnptm/libnptm.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__testing_test_TTMS_SOURCES_DIST = ../src/testing/test_TTMS.cpp @BUILDFORTRAN_FALSE@am_testing_test_TTMS_OBJECTS = \ @BUILDFORTRAN_FALSE@ ../src/testing/test_TTMS.$(OBJEXT) @@ -299,7 +302,7 @@ testing_test_TTMS_LDADD = $(LDADD) testing_test_TTMS_DEPENDENCIES = libnptm/libnptm.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__trapping_frfme_SOURCES_DIST = ../src/trapping/frfme.f @BUILDFORTRAN_TRUE@am__objects_7 = ../src/trapping/frfme.$(OBJEXT) @BUILDFORTRAN_TRUE@am_trapping_frfme_OBJECTS = $(am__objects_7) @@ -307,7 +310,8 @@ trapping_frfme_OBJECTS = $(am_trapping_frfme_OBJECTS) trapping_frfme_LDADD = $(LDADD) trapping_frfme_DEPENDENCIES = libnptm/libnptm.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am__trapping_lffft_SOURCES_DIST = ../src/trapping/lffft.f @BUILDFORTRAN_TRUE@am__objects_8 = ../src/trapping/lffft.$(OBJEXT) @BUILDFORTRAN_TRUE@am_trapping_lffft_OBJECTS = $(am__objects_8) @@ -315,7 +319,8 @@ trapping_lffft_OBJECTS = $(am_trapping_lffft_OBJECTS) trapping_lffft_LDADD = $(LDADD) trapping_lffft_DEPENDENCIES = libnptm/libnptm.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am__trapping_np_trapping_SOURCES_DIST = \ ../src/trapping/np_trapping.cpp ../src/trapping/cfrfme.cpp \ ../src/trapping/clffft.cpp @@ -332,7 +337,7 @@ trapping_np_trapping_LDADD = $(LDADD) trapping_np_trapping_DEPENDENCIES = libnptm/libnptm.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -358,6 +363,7 @@ am__depfiles_remade = ../src/cluster/$(DEPDIR)/cluster.Po \ ../src/libnptm/$(DEPDIR)/TransitionMatrix.Plo \ ../src/libnptm/$(DEPDIR)/algebraic.Plo \ ../src/libnptm/$(DEPDIR)/clu_subs.Plo \ + ../src/libnptm/$(DEPDIR)/cublas_calls.Plo \ ../src/libnptm/$(DEPDIR)/file_io.Plo \ ../src/libnptm/$(DEPDIR)/inclu_subs.Plo \ ../src/libnptm/$(DEPDIR)/lapack_calls.Plo \ @@ -522,6 +528,8 @@ CLANGFLAGS = @CLANGFLAGS@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ +CUBLASFLAGS = @CUBLASFLAGS@ +CUBLASLDFLAGS = @CUBLASLDFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -650,9 +658,9 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -LDADD = libnptm/libnptm.la -L/usr/lib64 ${USER_LDFLAGS} ${HDF5_LDFLAGS} ${LAPACKLDFLAGS} ${BLASLDFLAGS} ${MAGMALDFLAGS} +LDADD = libnptm/libnptm.la -L/usr/lib64 ${USER_LDFLAGS} ${HDF5_LDFLAGS} ${LAPACKLDFLAGS} ${BLASLDFLAGS} ${CUBLASLDFLAGS} ${MAGMALDFLAGS} lib_LTLIBRARIES = libnptm/libnptm.la -libnptm_libnptm_la_SOURCES = ../src/libnptm/algebraic.cpp ../src/libnptm/clu_subs.cpp ../src/libnptm/Commons.cpp ../src/libnptm/Configuration.cpp ../src/libnptm/file_io.cpp ../src/libnptm/inclu_subs.cpp ../src/libnptm/lapack_calls.cpp ../src/libnptm/logging.cpp ../src/libnptm/magma_calls.cpp ../src/libnptm/Parsers.cpp ../src/libnptm/sph_subs.cpp ../src/libnptm/utils.cpp ../src/libnptm/tfrfme.cpp ../src/libnptm/TransitionMatrix.cpp ../src/libnptm/tra_subs.cpp +libnptm_libnptm_la_SOURCES = ../src/libnptm/algebraic.cpp ../src/libnptm/clu_subs.cpp ../src/libnptm/Commons.cpp ../src/libnptm/Configuration.cpp ../src/libnptm/file_io.cpp ../src/libnptm/inclu_subs.cpp ../src/libnptm/lapack_calls.cpp ../src/libnptm/logging.cpp ../src/libnptm/magma_calls.cpp ../src/libnptm/cublas_calls.cpp ../src/libnptm/Parsers.cpp ../src/libnptm/sph_subs.cpp ../src/libnptm/utils.cpp ../src/libnptm/tfrfme.cpp ../src/libnptm/TransitionMatrix.cpp ../src/libnptm/tra_subs.cpp @BUILDFORTRAN_FALSE@PROGS = cluster/np_cluster inclusion/np_inclusion sphere/np_sphere trapping/np_trapping testing/test_ParticleDescriptor testing/test_TEDF testing/test_TTMS @BUILDFORTRAN_TRUE@PROGS = cluster/edfb_clu cluster/clu cluster/np_cluster inclusion/edfb_inclu inclusion/inclu inclusion/np_inclusion sphere/edfb_sph sphere/sph sphere/np_sphere trapping/frfme trapping/lffft trapping/np_trapping testing/test_ParticleDescriptor testing/test_TEDF testing/test_TTMS @BUILDFORTRAN_TRUE@EDFBCLUSOURCES = ../src/cluster/edfb_clu.f @@ -830,6 +838,8 @@ clean-libLTLIBRARIES: ../src/libnptm/$(DEPDIR)/$(am__dirstamp) ../src/libnptm/magma_calls.lo: ../src/libnptm/$(am__dirstamp) \ ../src/libnptm/$(DEPDIR)/$(am__dirstamp) +../src/libnptm/cublas_calls.lo: ../src/libnptm/$(am__dirstamp) \ + ../src/libnptm/$(DEPDIR)/$(am__dirstamp) ../src/libnptm/Parsers.lo: ../src/libnptm/$(am__dirstamp) \ ../src/libnptm/$(DEPDIR)/$(am__dirstamp) ../src/libnptm/sph_subs.lo: ../src/libnptm/$(am__dirstamp) \ @@ -1022,6 +1032,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/TransitionMatrix.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/algebraic.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/clu_subs.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/cublas_calls.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/file_io.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/inclu_subs.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../src/libnptm/$(DEPDIR)/lapack_calls.Plo@am__quote@ # am--include-marker @@ -1399,6 +1410,7 @@ distclean: distclean-am -rm -f ../src/libnptm/$(DEPDIR)/TransitionMatrix.Plo -rm -f ../src/libnptm/$(DEPDIR)/algebraic.Plo -rm -f ../src/libnptm/$(DEPDIR)/clu_subs.Plo + -rm -f ../src/libnptm/$(DEPDIR)/cublas_calls.Plo -rm -f ../src/libnptm/$(DEPDIR)/file_io.Plo -rm -f ../src/libnptm/$(DEPDIR)/inclu_subs.Plo -rm -f ../src/libnptm/$(DEPDIR)/lapack_calls.Plo @@ -1473,6 +1485,7 @@ maintainer-clean: maintainer-clean-am -rm -f ../src/libnptm/$(DEPDIR)/TransitionMatrix.Plo -rm -f ../src/libnptm/$(DEPDIR)/algebraic.Plo -rm -f ../src/libnptm/$(DEPDIR)/clu_subs.Plo + -rm -f ../src/libnptm/$(DEPDIR)/cublas_calls.Plo -rm -f ../src/libnptm/$(DEPDIR)/file_io.Plo -rm -f ../src/libnptm/$(DEPDIR)/inclu_subs.Plo -rm -f ../src/libnptm/$(DEPDIR)/lapack_calls.Plo diff --git a/build/build_aux/config.guess b/build/build_aux/config.guess index cdfc4392047ce3843a7a98f5451bbe97cb8200ea..7f76b6228f73d674f58cfcc3523f99e253ee5515 100755 --- a/build/build_aux/config.guess +++ b/build/build_aux/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2023 Free Software Foundation, Inc. +# Copyright 1992-2022 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2023-08-22' +timestamp='2022-01-09' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -47,7 +47,7 @@ me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] -Output the configuration name of the system '$me' is run on. +Output the configuration name of the system \`$me' is run on. Options: -h, --help print this help, then exit @@ -60,13 +60,13 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2023 Free Software Foundation, Inc. +Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" -Try '$me --help' for more information." +Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do @@ -102,8 +102,8 @@ GUESS= # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. -# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still -# use 'HOST_CC' if defined, but it is deprecated. +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. @@ -155,9 +155,6 @@ Linux|GNU|GNU/*) set_cc_for_build cat <<-EOF > "$dummy.c" - #if defined(__ANDROID__) - LIBC=android - #else #include #if defined(__UCLIBC__) LIBC=uclibc @@ -172,7 +169,6 @@ Linux|GNU|GNU/*) LIBC=musl #endif #endif - #endif EOF cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` eval "$cc_set_libc" @@ -463,7 +459,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in UNAME_RELEASE=`uname -v` ;; esac - # Japanese Language versions have a version number like '4.1.3-JL'. + # Japanese Language versions have a version number like `4.1.3-JL'. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` GUESS=sparc-sun-sunos$SUN_REL ;; @@ -908,7 +904,7 @@ EOF fi ;; *:FreeBSD:*:*) - UNAME_PROCESSOR=`uname -p` + UNAME_PROCESSOR=`/usr/bin/uname -p` case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; @@ -970,37 +966,11 @@ EOF GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC ;; - x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) - GUESS="$UNAME_MACHINE-pc-managarm-mlibc" - ;; - *:[Mm]anagarm:*:*) - GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" - ;; *:Minix:*:*) GUESS=$UNAME_MACHINE-unknown-minix ;; aarch64:Linux:*:*) - set_cc_for_build - CPU=$UNAME_MACHINE - LIBCABI=$LIBC - if test "$CC_FOR_BUILD" != no_compiler_found; then - ABI=64 - sed 's/^ //' << EOF > "$dummy.c" - #ifdef __ARM_EABI__ - #ifdef __ARM_PCS_VFP - ABI=eabihf - #else - ABI=eabi - #endif - #endif -EOF - cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` - eval "$cc_set_abi" - case $ABI in - eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;; - esac - fi - GUESS=$CPU-unknown-linux-$LIBCABI + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be @@ -1066,16 +1036,7 @@ EOF k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; - kvx:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - kvx:cos:*:*) - GUESS=$UNAME_MACHINE-unknown-cos - ;; - kvx:mbr:*:*) - GUESS=$UNAME_MACHINE-unknown-mbr - ;; - loongarch32:Linux:*:* | loongarch64:Linux:*:*) + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m32r*:Linux:*:*) @@ -1190,27 +1151,16 @@ EOF ;; x86_64:Linux:*:*) set_cc_for_build - CPU=$UNAME_MACHINE LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then - ABI=64 - sed 's/^ //' << EOF > "$dummy.c" - #ifdef __i386__ - ABI=x86 - #else - #ifdef __ILP32__ - ABI=x32 - #endif - #endif -EOF - cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` - eval "$cc_set_abi" - case $ABI in - x86) CPU=i686 ;; - x32) LIBCABI=${LIBC}x32 ;; - esac + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI=${LIBC}x32 + fi fi - GUESS=$CPU-pc-linux-$LIBCABI + GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI ;; xtensa*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC @@ -1230,7 +1180,7 @@ EOF GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION ;; i*86:OS/2:*:*) - # If we were able to find 'uname', then EMX Unix compatibility + # If we were able to find `uname', then EMX Unix compatibility # is probably installed. GUESS=$UNAME_MACHINE-pc-os2-emx ;; @@ -1371,7 +1321,7 @@ EOF GUESS=ns32k-sni-sysv fi ;; - PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says GUESS=i586-unisys-sysv4 ;; @@ -1417,11 +1367,8 @@ EOF BePC:Haiku:*:*) # Haiku running on Intel PC compatible. GUESS=i586-pc-haiku ;; - ppc:Haiku:*:*) # Haiku running on Apple PowerPC - GUESS=powerpc-apple-haiku - ;; - *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) - GUESS=$UNAME_MACHINE-unknown-haiku + x86_64:Haiku:*:*) + GUESS=x86_64-unknown-haiku ;; SX-4:SUPER-UX:*:*) GUESS=sx4-nec-superux$UNAME_RELEASE diff --git a/build/build_aux/config.sub b/build/build_aux/config.sub index defe52c0c874baa521e591c2b520f15de8a5f024..dba16e84c77c7d25871d80c24deff717faf4c094 100755 --- a/build/build_aux/config.sub +++ b/build/build_aux/config.sub @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2023 Free Software Foundation, Inc. +# Copyright 1992-2022 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2023-09-19' +timestamp='2022-01-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -76,13 +76,13 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2023 Free Software Foundation, Inc. +Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" -Try '$me --help' for more information." +Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do @@ -130,7 +130,7 @@ IFS=$saved_IFS # Separate into logical components for further validation case $1 in *-*-*-*-*) - echo "Invalid configuration '$1': more than four components" >&2 + echo Invalid configuration \`"$1"\': more than four components >&2 exit 1 ;; *-*-*-*) @@ -145,8 +145,7 @@ case $1 in nto-qnx* | linux-* | uclinux-uclibc* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ - | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \ - | windows-* ) + | storm-chaos* | os2-emx* | rtmk-nova*) basic_machine=$field1 basic_os=$maybe_os ;; @@ -944,7 +943,7 @@ $basic_machine EOF IFS=$saved_IFS ;; - # We use 'pc' rather than 'unknown' + # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) @@ -1076,7 +1075,7 @@ case $cpu-$vendor in pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) cpu=i586 ;; - pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*) + pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) cpu=i686 ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) @@ -1181,7 +1180,7 @@ case $cpu-$vendor in case $cpu in 1750a | 580 \ | a29k \ - | aarch64 | aarch64_be | aarch64c | arm64ec \ + | aarch64 | aarch64_be \ | abacus \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ @@ -1200,23 +1199,45 @@ case $cpu-$vendor in | d10v | d30v | dlx | dsp16xx \ | e2k | elxsi | epiphany \ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ - | javascript \ | h8300 | h8500 \ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i*86 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ - | kvx \ | le32 | le64 \ | lm32 \ - | loongarch32 | loongarch64 \ + | loongarch32 | loongarch64 | loongarchx32 \ | m32c | m32r | m32rle \ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ | m88110 | m88k | maxq | mb | mcore | mep | metag \ | microblaze | microblazeel \ - | mips* \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r3 | mipsisa32r3el \ + | mipsisa32r5 | mipsisa32r5el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r3 | mipsisa64r3el \ + | mipsisa64r5 | mipsisa64r5el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ | mmix \ | mn10200 | mn10300 \ | moxie \ @@ -1264,7 +1285,7 @@ case $cpu-$vendor in ;; *) - echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 exit 1 ;; esac @@ -1285,12 +1306,11 @@ esac # Decode manufacturer-specific aliases for certain operating systems. -if test x"$basic_os" != x +if test x$basic_os != x then # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just # set os. -obj= case $basic_os in gnu/linux*) kernel=linux @@ -1321,10 +1341,6 @@ EOF kernel=linux os=`echo "$basic_os" | sed -e 's|linux|gnu|'` ;; - managarm*) - kernel=managarm - os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` - ;; *) kernel= os=$basic_os @@ -1490,16 +1506,10 @@ case $os in os=eabi ;; *) - os= - obj=elf + os=elf ;; esac ;; - aout* | coff* | elf* | pe*) - # These are machine code file formats, not OSes - obj=$os - os= - ;; *) # No normalization, but not necessarily accepted, that comes below. ;; @@ -1518,15 +1528,12 @@ else # system, and we'll never get to this point. kernel= -obj= case $cpu-$vendor in score-*) - os= - obj=elf + os=elf ;; spu-*) - os= - obj=elf + os=elf ;; *-acorn) os=riscix1.2 @@ -1536,35 +1543,28 @@ case $cpu-$vendor in os=gnu ;; arm*-semi) - os= - obj=aout + os=aout ;; c4x-* | tic4x-*) - os= - obj=coff + os=coff ;; c8051-*) - os= - obj=elf + os=elf ;; clipper-intergraph) os=clix ;; hexagon-*) - os= - obj=elf + os=elf ;; tic54x-*) - os= - obj=coff + os=coff ;; tic55x-*) - os= - obj=coff + os=coff ;; tic6x-*) - os= - obj=coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) @@ -1586,24 +1586,19 @@ case $cpu-$vendor in os=sunos3 ;; m68*-cisco) - os= - obj=aout + os=aout ;; mep-*) - os= - obj=elf + os=elf ;; mips*-cisco) - os= - obj=elf + os=elf ;; mips*-*) - os= - obj=elf + os=elf ;; or32-*) - os= - obj=coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=sysv3 @@ -1612,8 +1607,7 @@ case $cpu-$vendor in os=sunos4.1.1 ;; pru-*) - os= - obj=elf + os=elf ;; *-be) os=beos @@ -1694,12 +1688,10 @@ case $cpu-$vendor in os=uxpv ;; *-rom68k) - os= - obj=coff + os=coff ;; *-*bug) - os= - obj=coff + os=coff ;; *-apple) os=macos @@ -1717,8 +1709,7 @@ esac fi -# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ). - +# Now, validate our (potentially fixed-up) OS. case $os in # Sometimes we do "kernel-libc", so those need to count as OSes. musl* | newlib* | relibc* | uclibc*) @@ -1729,9 +1720,6 @@ case $os in # VxWorks passes extra cpu info in the 4th filed. simlinux | simwindows | spe) ;; - # See `case $cpu-$os` validation below - ghcjs) - ;; # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number. @@ -1740,7 +1728,7 @@ case $os in | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ | hiux* | abug | nacl* | netware* | windows* \ - | os9* | macos* | osx* | ios* | tvos* | watchos* \ + | os9* | macos* | osx* | ios* \ | mpw* | magic* | mmixware* | mon960* | lnews* \ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ | aos* | aros* | cloudabi* | sortix* | twizzler* \ @@ -1749,11 +1737,11 @@ case $os in | mirbsd* | netbsd* | dicos* | openedition* | ose* \ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ - | bosx* | nextstep* | cxux* | oabi* \ - | ptx* | ecoff* | winnt* | domain* | vsta* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ | udi* | lites* | ieee* | go32* | aux* | hcos* \ | chorusrdb* | cegcc* | glidix* | serenity* \ - | cygwin* | msys* | moss* | proelf* | rtems* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ | midipix* | mingw32* | mingw64* | mint* \ | uxpv* | beos* | mpeix* | udk* | moxiebox* \ | interix* | uwin* | mks* | rhapsody* | darwin* \ @@ -1766,7 +1754,7 @@ case $os in | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ - | fiwix* | mlibc* | cos* | mbr* ) + | fiwix* ) ;; # This one is extra strict with allowed versions sco3.2v2 | sco3.2v[4-9]* | sco5v6*) @@ -1774,99 +1762,41 @@ case $os in ;; none) ;; - kernel* | msvc* ) - # Restricted further below - ;; - '') - if test x"$obj" = x - then - echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2 - fi - ;; - *) - echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 - exit 1 - ;; -esac - -case $obj in - aout* | coff* | elf* | pe*) - ;; - '') - # empty is fine - ;; *) - echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 - exit 1 - ;; -esac - -# Here we handle the constraint that a (synthetic) cpu and os are -# valid only in combination with each other and nowhere else. -case $cpu-$os in - # The "javascript-unknown-ghcjs" triple is used by GHC; we - # accept it here in order to tolerate that, but reject any - # variations. - javascript-ghcjs) - ;; - javascript-* | *-ghcjs) - echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 exit 1 ;; esac # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. -case $kernel-$os-$obj in - linux-gnu*- | linux-dietlibc*- | linux-android*- | linux-newlib*- \ - | linux-musl*- | linux-relibc*- | linux-uclibc*- | linux-mlibc*- ) - ;; - uclinux-uclibc*- ) +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) ;; - managarm-mlibc*- | managarm-kernel*- ) + uclinux-uclibc* ) ;; - windows*-msvc*-) - ;; - -dietlibc*- | -newlib*- | -musl*- | -relibc*- | -uclibc*- | -mlibc*- ) + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) # These are just libc implementations, not actual OSes, and thus # require a kernel. - echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 - exit 1 - ;; - -kernel*- ) - echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 - exit 1 - ;; - *-kernel*- ) - echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 exit 1 ;; - *-msvc*- ) - echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 - exit 1 + kfreebsd*-gnu* | kopensolaris*-gnu*) ;; - kfreebsd*-gnu*- | kopensolaris*-gnu*-) + vxworks-simlinux | vxworks-simwindows | vxworks-spe) ;; - vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) - ;; - nto-qnx*-) - ;; - os2-emx-) + nto-qnx*) ;; - *-eabi*- | *-gnueabi*-) + os2-emx) ;; - none--*) - # None (no kernel, i.e. freestanding / bare metal), - # can be paired with an machine code file format + *-eabi* | *-gnueabi*) ;; - -*-) + -*) # Blank kernel with real OS is always fine. ;; - --*) - # Blank kernel and OS with real machine code file format is always fine. - ;; - *-*-*) - echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 exit 1 ;; esac @@ -1949,7 +1879,7 @@ case $vendor in ;; esac -echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: diff --git a/build/build_aux/install-sh b/build/build_aux/install-sh index 7c56c9c015103600a06f59ab1183eb3966a513ab..ec298b53740270ce82b326c4c2deaa5dcdec4596 100755 --- a/build/build_aux/install-sh +++ b/build/build_aux/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2023-11-23.18; # UTC +scriptversion=2020-11-14.01; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -124,9 +124,9 @@ it's up to you to specify -f if you want it. If -S is not specified, no backups are attempted. -Report bugs to . -GNU Automake home page: . -General help using GNU software: ." +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ +" while test $# -ne 0; do case $1 in diff --git a/build/build_aux/ltmain.sh b/build/build_aux/ltmain.sh index 977e5237bb01a985aed489ff49b3d1d885cf75d5..4fdde9a05ebdb2d232252f41f233b4986659fffb 100755 --- a/build/build_aux/ltmain.sh +++ b/build/build_aux/ltmain.sh @@ -31,7 +31,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.7 Debian-2.4.7-7build1" +VERSION="2.4.7 Debian-2.4.7-8" package_revision=2.4.7 @@ -2296,7 +2296,7 @@ include the following information: compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.7-7build1 + version: $progname $scriptversion Debian-2.4.7-8 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` diff --git a/build/configure b/build/configure index 01948c1499aee91dca8f67ddf879b7ee2e71820e..f05c7ac0e0daa47d6ace6a1174948bf892d1a7fc 100755 --- a/build/configure +++ b/build/configure @@ -661,6 +661,8 @@ USER_INCLUDE NVTXFLAGS MAGMALDFLAGS MAGMAFLAGS +CUBLASLDFLAGS +CUBLASFLAGS REFINEFLAGS BLASFLAGS BLASLDFLAGS @@ -825,6 +827,7 @@ enable_openmp enable_optimize with_lapack enable_refinement +with_cublas with_magma enable_nvtx with_include @@ -1508,6 +1511,7 @@ Optional Packages: --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-lapack use LAPACK [default=auto] + --with-cublas use CUBLAS [default=auto] --with-magma[=MAGMA_DIR] use MAGMA [default=auto] --with-include additional include folders [default=none] @@ -25443,6 +25447,175 @@ fi +# Check whether --with-cublas was given. +if test ${with_cublas+y} +then : + withval=$with_cublas; + if test "x$withval" = "xno"; then + CUBLASFLAGS="" + + CUBLASLDFLAGS="" + + else + + pkg-config --version > /dev/null + use_pkg_config=$? + if test "x${CUDAFLAGS}${CUDALDFLAGS}" = "x"; then + if test "x$use_pkg_config" = "x0"; then + # pkg-config is available + declare -a pkg_array=$(pkg-config --list-all | grep cublas) + for i in "${pkg_array[@]}"; do echo "$i" | cut --delimiter=" " -f1; done | grep cublas > /dev/null + result=$? + if test "x$result" = "x0"; then + # CUBLAS detected + cuda_pkg=$(for i in "${pkg_array[@]}"; do echo "$i" | cut --delimiter=" " -f1; done | grep cublas) + CUDAFLAGS=$(pkg-config --cflags ${cuda_pkg}) + CUDALDFLAGS=$(pkg-config --libs ${cuda_pkg}) + fi # end of CUBLAS runtime decision tree + declare -a pkg_array=$(pkg-config --list-all | grep cudart) + for i in "${pkg_array[@]}"; do echo "$i" | cut --delimiter=" " -f1; done | grep cudart > /dev/null + result=$? + if test "x$result" = "x0"; then + # CUDA runtime detected + cuda_pkg=$(for i in "${pkg_array[@]}"; do echo "$i" | cut --delimiter=" " -f1; done | grep cudart) + CUDAFLAGS=$(pkg-config --cflags ${cuda_pkg}) + CUDALDFLAGS=$(pkg-config --libs ${cuda_pkg}) + fi # end of CUDA runtime decision tree + echo $CUDALDFLAGS | grep cublas > /dev/null + cudart_check=$? + if test "x${cudart_check}" != "x0"; then + CUDALDFLAGS="$CUDALDFLAGS -lcublas" + fi + echo $CUDALDFLAGS | grep cudart > /dev/null + cudart_check=$? + if test "x${cudart_check}" != "x0"; then + CUDALDFLAGS="$CUDALDFLAGS -lcudart" + fi + else + # pkg-config is not available + if test -f /usr/local/cuda/include/cuda.h; then + CUDAFLAGS="-I/usr/local/cuda/include" + CUDALDFLAGS="-L/usr/local/cuda/lib64 -lcublas -lcudart" + elif test -f /usr/include/cuda.h; then + CUDAFLAGS="-I/usr/include" + CUDALDFLAGS="-lcublas -lcudart" + elif test "x$CUDA_HOME" != "x"; then + CUDAFLAGS="-I${CUDA_HOME}/include" + CUDALDFLAGS="-L${CUDA_HOME}/lib64 -lcublas -lcudart" + fi + fi # end of pkg-config decision tree + fi # end of CUDAFLAGS user override protection + if test "x$CUDAFLAGS" != "x"; then + # somehow CUDAFLAGS was defined + export CUDAFLAGS + export CUBLASFLAGS="-DUSE_CUBLAS ${CUDAFLAGS}" + fi + if test "x$CUDALDFLAGS" != "x"; then + # somehow CUDALDFLAGS was defined + export CUDALDFLAGS + export CUBLASLDFLAGS="${CUDALDFLAGS}" + fi + + + if test "x$CUBLASLDFLAGS" != "x" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: CUBLAS detected." >&5 +printf "%s\n" "$as_me: CUBLAS detected." >&6;} +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: CUBLAS not found." >&5 +printf "%s\n" "$as_me: CUBLAS not found." >&6;} + ;; +esac +fi + CUBLASFLAGS=${CUBLASFLAGS} + + CUBLASLDFLAGS=${CUBLASLDFLAGS} + + fi + +else case e in #( + e) + + pkg-config --version > /dev/null + use_pkg_config=$? + if test "x${CUDAFLAGS}${CUDALDFLAGS}" = "x"; then + if test "x$use_pkg_config" = "x0"; then + # pkg-config is available + declare -a pkg_array=$(pkg-config --list-all | grep cublas) + for i in "${pkg_array[@]}"; do echo "$i" | cut --delimiter=" " -f1; done | grep cublas > /dev/null + result=$? + if test "x$result" = "x0"; then + # CUBLAS detected + cuda_pkg=$(for i in "${pkg_array[@]}"; do echo "$i" | cut --delimiter=" " -f1; done | grep cublas) + CUDAFLAGS=$(pkg-config --cflags ${cuda_pkg}) + CUDALDFLAGS=$(pkg-config --libs ${cuda_pkg}) + fi # end of CUBLAS runtime decision tree + declare -a pkg_array=$(pkg-config --list-all | grep cudart) + for i in "${pkg_array[@]}"; do echo "$i" | cut --delimiter=" " -f1; done | grep cudart > /dev/null + result=$? + if test "x$result" = "x0"; then + # CUDA runtime detected + cuda_pkg=$(for i in "${pkg_array[@]}"; do echo "$i" | cut --delimiter=" " -f1; done | grep cudart) + CUDAFLAGS=$(pkg-config --cflags ${cuda_pkg}) + CUDALDFLAGS=$(pkg-config --libs ${cuda_pkg}) + fi # end of CUDA runtime decision tree + echo $CUDALDFLAGS | grep cublas > /dev/null + cudart_check=$? + if test "x${cudart_check}" != "x0"; then + CUDALDFLAGS="$CUDALDFLAGS -lcublas" + fi + echo $CUDALDFLAGS | grep cudart > /dev/null + cudart_check=$? + if test "x${cudart_check}" != "x0"; then + CUDALDFLAGS="$CUDALDFLAGS -lcudart" + fi + else + # pkg-config is not available + if test -f /usr/local/cuda/include/cuda.h; then + CUDAFLAGS="-I/usr/local/cuda/include" + CUDALDFLAGS="-L/usr/local/cuda/lib64 -lcublas -lcudart" + elif test -f /usr/include/cuda.h; then + CUDAFLAGS="-I/usr/include" + CUDALDFLAGS="-lcublas -lcudart" + elif test "x$CUDA_HOME" != "x"; then + CUDAFLAGS="-I${CUDA_HOME}/include" + CUDALDFLAGS="-L${CUDA_HOME}/lib64 -lcublas -lcudart" + fi + fi # end of pkg-config decision tree + fi # end of CUDAFLAGS user override protection + if test "x$CUDAFLAGS" != "x"; then + # somehow CUDAFLAGS was defined + export CUDAFLAGS + export CUBLASFLAGS="-DUSE_CUBLAS ${CUDAFLAGS}" + fi + if test "x$CUDALDFLAGS" != "x"; then + # somehow CUDALDFLAGS was defined + export CUDALDFLAGS + export CUBLASLDFLAGS="${CUDALDFLAGS}" + fi + + + if test "x$CUBLASLDFLAGS" != "x" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: CUBLAS detected. Activating by default (use --without-cublas to disable)." >&5 +printf "%s\n" "$as_me: CUBLAS detected. Activating by default (use --without-cublas to disable)." >&6;} +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: CUBLAS not found." >&5 +printf "%s\n" "$as_me: CUBLAS not found." >&6;} + ;; +esac +fi + CUBLASFLAGS=${CUBLASFLAGS} + + CUBLASLDFLAGS=${CUBLASLDFLAGS} + + + ;; +esac +fi + + + # Check whether --with-magma was given. if test ${with_magma+y} then : @@ -25733,8 +25906,8 @@ else case e in #( ;; esac fi -CXXFLAGS="$CLANGFLAGS $OPTFLAGS -ggdb $DEBUGFLAGS $OFFLOADFLAGS $USER_INCLUDE -I$HDF5_INCLUDE $OMPFLAGS $MPIFLAGS $LAPACKFLAGS $MAGMAFLAGS $NVTXFLAGS $REFINEFLAGS" -SUBDIRS="cluster libnptm sphere testing trapping" +CXXFLAGS="$CLANGFLAGS $OPTFLAGS -ggdb $DEBUGFLAGS $OFFLOADFLAGS $USER_INCLUDE -I$HDF5_INCLUDE $OMPFLAGS $MPIFLAGS $LAPACKFLAGS $CUBLASFLAGS $MAGMAFLAGS $NVTXFLAGS $REFINEFLAGS" +SUBDIRS="cluster inclusion libnptm sphere testing trapping" # Generate the output cat >confcache <<\_ACEOF diff --git a/build/configure.ac b/build/configure.ac index 834a3e2de11e7f68247e52bdf3da3c776cd38d6a..6b6a85c276c3b16711726039c4a7c1342f90a54f 100644 --- a/build/configure.ac +++ b/build/configure.ac @@ -213,12 +213,12 @@ m4_define( fi fi # end of pkg-config decision tree fi # end of CUDAFLAGS user override protection - if test "x$CUDAFLAGS" != "x" then + if test "x$CUDAFLAGS" != "x"; then # somehow CUDAFLAGS was defined export CUDAFLAGS export CUBLASFLAGS="-DUSE_CUBLAS ${CUDAFLAGS}" fi - if test "x$CUDALDFLAGS" != "x" then + if test "x$CUDALDFLAGS" != "x"; then # somehow CUDALDFLAGS was defined export CUDALDFLAGS export CUBLASLDFLAGS="${CUDALDFLAGS}" @@ -657,6 +657,36 @@ AC_ARG_ENABLE( ] ) +AC_ARG_WITH( + [cublas], + [AS_HELP_STRING([--with-cublas], [use CUBLAS @<:@default=auto@:>@])], + [ + if test "x$withval" = "xno"; then + AC_SUBST([CUBLASFLAGS], [""]) + AC_SUBST([CUBLASLDFLAGS], [""]) + else + M4_DETECT_CUBLAS + AS_IF( + [test "x$CUBLASLDFLAGS" != "x"], + [AC_MSG_NOTICE([CUBLAS detected.])], + [AC_MSG_NOTICE([CUBLAS not found.])] + ) + AC_SUBST([CUBLASFLAGS], [${CUBLASFLAGS}]) + AC_SUBST([CUBLASLDFLAGS], [${CUBLASLDFLAGS}]) + fi + ], + [ + M4_DETECT_CUBLAS + AS_IF( + [test "x$CUBLASLDFLAGS" != "x"], + [AC_MSG_NOTICE([CUBLAS detected. Activating by default (use --without-cublas to disable).])], + [AC_MSG_NOTICE([CUBLAS not found.])] + ) + AC_SUBST([CUBLASFLAGS], [${CUBLASFLAGS}]) + AC_SUBST([CUBLASLDFLAGS], [${CUBLASLDFLAGS}]) + ] +) + AC_ARG_WITH( [magma], [AS_HELP_STRING([--with-magma[[=MAGMA_DIR]]], [use MAGMA @<:@default=auto@:>@])], @@ -751,8 +781,8 @@ AS_IF( [AC_SUBST([OMPFLAGS], [""])], [AC_SUBST([OMPFLAGS], [$OMPFLAGS])] ) -CXXFLAGS="$CLANGFLAGS $OPTFLAGS -ggdb $DEBUGFLAGS $OFFLOADFLAGS $USER_INCLUDE -I$HDF5_INCLUDE $OMPFLAGS $MPIFLAGS $LAPACKFLAGS $MAGMAFLAGS $NVTXFLAGS $REFINEFLAGS" -SUBDIRS="cluster libnptm sphere testing trapping" +CXXFLAGS="$CLANGFLAGS $OPTFLAGS -ggdb $DEBUGFLAGS $OFFLOADFLAGS $USER_INCLUDE -I$HDF5_INCLUDE $OMPFLAGS $MPIFLAGS $LAPACKFLAGS $CUBLASFLAGS $MAGMAFLAGS $NVTXFLAGS $REFINEFLAGS" +SUBDIRS="cluster inclusion libnptm sphere testing trapping" # Generate the output AC_OUTPUT diff --git a/src/cluster/cluster.cpp b/src/cluster/cluster.cpp index d73971b4b02754457b692a00d92ddbf1c0e0d922..5ecea15e379d97190de6d9975cfa5e1a33e6a73a 100644 --- a/src/cluster/cluster.cpp +++ b/src/cluster/cluster.cpp @@ -38,20 +38,17 @@ #ifdef USE_NVTX #include #endif -<<<<<<< HEAD -#define USE_CUBLAS 1 +//#define USE_CUBLAS 1 #ifdef USE_CUBLAS #include #endif -#ifdef USE_MAGMA -#include -#endif +//#ifdef USE_MAGMA +//#include +//#endif // define by hand for a first test //#define USE_REFINEMENT 1 -======= ->>>>>>> master #ifndef INCLUDE_TYPES_H_ #include "../include/types.h" @@ -158,12 +155,7 @@ void cluster(const string& config_file, const string& data_file, const string& o delete logger; return; } -<<<<<<< HEAD - // end MAGMA initialisation -#endif -======= #endif // end MAGMA initialisation ->>>>>>> master //=========================== // the following only happens on MPI process 0 diff --git a/src/libnptm/algebraic.cpp b/src/libnptm/algebraic.cpp index 4e47c7dc6199559116151979321706a425f38ab6..516c20c309d4d1f28c41b268b178a04bbabe34f0 100644 --- a/src/libnptm/algebraic.cpp +++ b/src/libnptm/algebraic.cpp @@ -39,7 +39,7 @@ #endif // define by hand for a first test -#define USE_CUBLAS 1 +//#define USE_CUBLAS 1 #ifdef USE_CUBLAS // define by hand for a first test //#define USE_REFINEMENT 1 diff --git a/src/libnptm/cublas_calls.cpp b/src/libnptm/cublas_calls.cpp index ad1919616196a32a5344dc8b8060dd27019c1c7c..754ee46ba1bad6b9fbd88086f1f7976bd7f8156a 100644 --- a/src/libnptm/cublas_calls.cpp +++ b/src/libnptm/cublas_calls.cpp @@ -22,7 +22,7 @@ #include "../include/types.h" #endif -#define USE_CUBLAS 1 +//#define USE_CUBLAS 1 #ifdef USE_CUBLAS #ifndef INCLUDE_CUBLAS_CALLS_H_