Commit Graph

125 Commits

Author SHA1 Message Date
Brad King
c2dd240f00 Merge topic 'SCS_mp'
069a5c3188 FindLAPACK: SCSL also has LAPACK routines
dbcc5eaa05 FindBLAS: Update SCSL library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6402
2021-07-29 08:41:13 -04:00
Igor S. Gerasimov
dbcc5eaa05 FindBLAS: Update SCSL library 2021-07-28 15:56:34 +03:00
Igor S. Gerasimov
ccb85f8943 FindBLAS: Add possibility to find OMP parallelized version of ESSL 2021-07-27 20:22:30 +03:00
Igor S. Gerasimov
73e452eb98 FindBLAS: IBM ESSL 6.1 does not required BLAS lib 2021-07-27 20:15:10 +03:00
Igor S. Gerasimov
a7f6e5dbf9 FindBLAS: use unset instead of set for empty variables 2021-07-27 10:53:54 -04:00
Igor S. Gerasimov
92edd7376b FindBLAS: Fix regression in finding EML_mt after recent refactoring
Fix a variable referenced missed by commit 76487b04b1
(Find{BLAS,LAPACK}: clean variables, 2021-07-13).
2021-07-27 10:53:25 -04:00
Seth R Johnson
76487b04b1 Find{BLAS,LAPACK}: clean variables 2021-07-14 11:00:20 -04:00
Seth R Johnson
fc54e68c05 Find{BLAS,LAPACK}: improve found message on Cray
With Cray compiler wrappers (implicitly tested on OLCF Spock) the
BLAS and LAPACK libraries are automatically linked as necessary through
the wrapper script and programming environment. With this change, the
configure output is:
```
-- Found BLAS: implicitly linked
<snip>
-- Found LAPACK: implicitly linked
```
rather than
```
-- Found BLAS: 1
<snip>
-- Found LAPACK: LAPACK_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES
```
2021-07-14 10:59:59 -04:00
Brad King
57dcde19da Find{BLAS,LAPACK}: Avoid clobbering results when no vendor is requested
Logic added by commit 4c74c86f40 (FindBLAS/LAPACK: Add support for the
Fujitsu SSL2 library, 2021-01-27, v3.21.0-rc1~402^2~1) accidentally
expressed a boolean condition without proper grouping.  The pattern was
then copied by commit 2c9e623e31 (Find{BLAS,LAPACK}: Add support for the
NVHPC LAPACK library, 2021-05-05, v3.21.0-rc1~192^2).  The resulting
logic incorrectly tries Fujitsu and NVHPC vendors even after results are
found from another vendor, and then erases those.  Fix the grouping.

Fixes: #22403
2021-07-12 11:08:05 -04:00
Brad King
13b40c1ea2 Merge topic 'FindBLAS-LAPACK-docs'
5bf1651452 Find{BLAS,LAPACK}: Revise and extend Intel MKL usage documentation
8585a12bd9 Find{BLAS,LAPACK}: Move enabled language requirement to top of documentation
6a7c055f96 Find{BLAS,LAPACK}: Revise formatting of intro docs
43b581367d Find{BLAS,LAPACK}: Move implementation note from docs to comments
3beac78a13 Find{BLAS,LAPACK}: Revise imported targets documentation layout
6f305cd5fd Find{BLAS,LAPACK}: Factor out vendor documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6218
2021-06-14 09:48:37 -04:00
Brad King
5bf1651452 Find{BLAS,LAPACK}: Revise and extend Intel MKL usage documentation
Fixes: #22295
2021-06-11 08:41:25 -04:00
Brad King
8585a12bd9 Find{BLAS,LAPACK}: Move enabled language requirement to top of documentation 2021-06-11 08:40:37 -04:00
Brad King
6a7c055f96 Find{BLAS,LAPACK}: Revise formatting of intro docs 2021-06-11 08:02:59 -04:00
Brad King
43b581367d Find{BLAS,LAPACK}: Move implementation note from docs to comments 2021-06-11 08:00:22 -04:00
Brad King
3beac78a13 Find{BLAS,LAPACK}: Revise imported targets documentation layout 2021-06-11 07:58:15 -04:00
Brad King
6f305cd5fd Find{BLAS,LAPACK}: Factor out vendor documentation
Move the list of vendors to a dedicated section shared by both modules.
Format it as a definition list.
2021-06-11 07:51:37 -04:00
Peter Knowles
130fa72bb3 Find{BLAS,LAPACK}: Update for Intel oneAPI structure under MKLROOT
Add search paths for the Intel oneAPI MKL directory structure
so that we do not rely on paths in `LD_LIBRARY_PATH`.
2021-06-11 06:55:09 -04:00
Brad King
624110b90d FindBLAS: Revert "Do not statically link against iomp5 ... Intel MKL"
Since commit 20ab504591 (FindBLAS: Do not statically link against iomp5
in the case of Intel MKL, 2021-04-11), we no longer find MKL's BLAS when
using the GNU compiler because FindOpenMP chooses libgomp instead of
libiomp5, and mkl_intel_thread depends on the latter.  Revert the change
for now.  A new approach will be needed to solve the original problem.

Issue: #21811
2021-06-10 12:39:00 -04:00
Robert Maynard
2c9e623e31 Find{BLAS,LAPACK}: Add support for the NVHPC LAPACK library 2021-05-05 12:04:32 -04:00
Eisuke Kawashima
20ab504591 FindBLAS: Do not statically link against iomp5 in the case of Intel MKL
fix #21811
2021-04-30 08:38:41 +09:00
Brad King
193714d67d Find{BLAS,LAPACK}: Simplify search for static libraries
Now that `CHECK_{BLAS,LAPACK}_LIBRARIES` are functions, we can set
`CMAKE_FIND_LIBRARY_SUFFIXES` locally without affecting the global
state.  This avoids the need for local state switching that was added in
commit 9ef82d95d8 (FindBLAS: Fix detection of OpenMP as dependency of
BLA_STATIC, 2021-04-07, v3.20.1~3^2), so remove that.
2021-04-21 14:23:17 -04:00
Brad King
2e2db28e2f Find{BLAS,LAPACK}: Simplify check_function_exists state maintenance
Now that `CHECK_{BLAS,LAPACK}_LIBRARIES` are functions, we can set
`CMAKE_REQUIRED_QUIET` locally without affecting the global state.
2021-04-21 14:20:28 -04:00
Brad King
dcd604ee62 Find{BLAS,LAPACK}: Make library variable names more robust 2021-04-14 14:57:03 -04:00
Brad King
98ef6632d9 Find{BLAS,LAPACK}: Generalize recognition of dependencies as link flags 2021-04-14 14:57:03 -04:00
Brad King
a57c4eef76 Find{BLAS,LAPACK}: Convert internal CHECK_*_LIBRARIES to functions 2021-04-14 14:57:03 -04:00
Brad King
a5a6ac7033 Find{BLAS,LAPACK}: Clarify name of internal argument for dependencies 2021-04-14 14:57:03 -04:00
Brad King
d248401d12 Find{BLAS,LAPACK}: Simplify appending to list of libraries 2021-04-14 14:57:03 -04:00
Brad King
116edb5c04 Find{BLAS,LAPACK}: Revert bad refactoring of internal CHECK_*_LIBRARIES
Refactoring in commit 4c74c86f40 (FindBLAS/LAPACK: Add support for the
Fujitsu SSL2 library, 2021-01-27) was done in order to support calling
`find_library` on the dependencies as well as the candidate libraries.
However, it broke a few things:

* Intel MKL's BLAS/LAPACK are no longer found.  We specify their
  dependencies using `-l...` flags, so we should not try to use
  `find_library` for them.

* The dependencies are repeated because we accumulate them in the
  `find_library` search loop and then append them at the end too.

Revert the incorrect part of the refactoring.  Retain the flags part
needed for the Fujitsu vendor.

Fixes: #22056
2021-04-14 14:55:51 -04:00
Brad King
fd873ccaee Merge topic 'FindBLAS-default-OpenMP'
9ef82d95d8 FindBLAS: Fix detection of OpenMP as dependency of BLA_STATIC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5993
2021-04-08 07:45:14 -04:00
Brad King
9ef82d95d8 FindBLAS: Fix detection of OpenMP as dependency of BLA_STATIC
Update the change from commit f7f3d8987a (FindBLAS: Add dependency of
OpenBLAS on OpenMP for BLA_STATIC, 2020-11-10, v3.20.0-rc1~492^2):

* If C is not enabled, find CXX OpenMP libraries instead.

* Do not use BLA_STATIC's custom CMAKE_FIND_LIBRARY_SUFFIXES for OpenMP.
  It can break projects that already call `find_package(OpenMP)` and
  expect a shared library.  Whether OpenMP is static is orthogonal to
  whether BLAS is static.

Fixes: #22039
Issue: #16221
2021-04-07 11:26:07 -04:00
Chuck Atkins
4c74c86f40 FindBLAS/LAPACK: Add support for the Fujitsu SSL2 library
This also does some additional work to fix issues with
libraries provided only via compiler options and no explicit
library names.

Co-Author: Yuichiro Utsumi <utsumi.yuichiro@jp.fujitsu.com>
2021-03-31 09:15:38 -04:00
William R. Dieter
aedb9add56 FindBLAS: Add support for IntelLLVM
Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
2021-01-28 09:07:01 -05:00
Igor S. Gerasimov
d6df83a690 Find{BLAS,LAPACK}: Add support for Elbrus Math Library
http://mossigplan.acm.org/EML_introduction_engl.pdf
2020-12-09 16:49:41 +03:00
Nikita Nemkin
8fea95319b Help: Add .. versionadded directives to module docs
Issue: #19715
2020-12-02 21:00:30 +05:00
Eisuke Kawashima
f7f3d8987a FindBLAS: Add dependency of OpenBLAS on OpenMP for BLA_STATIC
Fixes: #16221
2020-11-11 09:10:22 -05:00
Mattias Ellert
68349ae214 Find{BLAS,LAPACK}: Add support for FlexiBLAS
http://www.mpi-magdeburg.mpg.de/mpcsc/software/FlexiBLAS/
2020-09-14 21:40:33 +02:00
Jean-Christophe Fillion-Robin
207373802e Fix typos identified using codespell
See https://github.com/codespell-project/codespell#readme

The following command was used:

```
codespell -q6 --skip="\
.git,\
*.json,\
./Copyright.txt,\
./Help/command/foreach.rst,\
./Help/prop_test/REQUIRED_FILES.rst,\
./Help/variable/CTEST_COVERAGE_COMMAND.rst,\
./Modules/CMakeCheckCompilerFlagCommonPatterns.cmake,\
./Modules/CMakeRCInformation.cmake,\
./Modules/Internal/CPack/NSIS.template.in,\
./Modules/FindMatlab.cmake,\
./Modules/MatlabTestsRedirect.cmake,\
./Modules/Platform/Windows-Clang.cmake,\
./Modules/Platform/Windows-Intel-Fortran.cmake,\
./Modules/Platform/Windows-MSVC.cmake,\
./Source/CMakeVersion.cmake,\
./Source/cmConvertMSBuildXMLToJSON.py,\
./Source/cmCreateTestSourceList.cxx,\
./Source/cmGlobalVisualStudio10Generator.cxx,\
./Source/cmExportBuildFileGenerator.cxx,\
./Source/cmExportInstallAndroidMKGenerator.cxx,\
./Source/cmExportInstallFileGenerator.cxx,\
./Source/cmExportSet.cxx,\
./Source/cmExportTryCompileFileGenerator.cxx,\
./Source/cmFindPackageCommand.cxx,\
./Source/cmInstallCommand.cxx,\
./Source/cmGeneratorExpressionLexer.cxx,\
./Source/cmLocalVisualStudio7Generator.cxx,\
./Source/cmOrderDirectories.cxx,\
./Source/cmTarget.cxx,\
./Source/kwsys/*,\
./Source/QtDialog/CMakeSetupDialog.ui,\
./Source/CPack/WiX/cmWIXRichTextFormatWriter.cxx,\
./Source/CTest/cmParseCoberturaCoverage.h,\
./Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in,\
./Tests/RunCMake/CPack/tests/DMG_SLA/English.license.rtf,\
./Tests/RunCMake/CPack/tests/DMG_SLA/German.license.txt,\
./Tests/RunCMake/CPack/tests/DMG_SLA/German.menu.txt,\
./Tests/RunCMake/GoogleTest/xml_output.cpp,\
./Tests/RunCMake/Make/TargetMessages*,\
./Utilities/*,\
" \
-L "\
dependees,\
endwhile,\
fo,\
filetest,\
helpfull,\
nd,\
objext,\
stoll,\
supercedes,\
superceded,\
vas,\
varn,\
"
```
2020-07-22 12:44:47 -04:00
Brad King
8a3a1cf71a Merge topic 'find-blas-lapack-mklroot-win'
196f042b58 FindLAPACK: Handle Windows Intel MKLROOT with backslash
96c19ecd55 FindBLAS: Handle Windows Intel MKLROOT with backslash

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4982
2020-07-08 08:23:31 -04:00
Michael Hirsch
96c19ecd55 FindBLAS: Handle Windows Intel MKLROOT with backslash 2020-07-07 09:55:29 -04:00
Sibi Siddharthan
764696dcd0 FindBLAS use NAMES_PER_DIR
Signed-off-by: Sibi Siddharthan <sibisiddharthan.github@gmail.com>
2020-07-02 00:37:04 +05:30
evatux
56e645a4c3 Find{BLAS,LAPACK}: Add missing thread library for Intel MKL on Win32
The patch also updates the documentation to explicitly state
that Intel10_32 stands for threaded case (linked with Intel OpenMP).
Later, one may need to add Intel10_32_seq to support linking
with the sequential version of Intel MKL.

Fixes: #20857
2020-06-23 09:16:14 -07:00
evatux
d880d2805f FindBLAS: Extend search directories for MKL
Even though Intel MKL typically puts the libraries under
`$MKLROOT/lib/$arch_$os` some installations may still use
`$MKLROOT/lib/$arch/` path. Ideally, `$arch` should be a
symlink to `$arch_$os`, but sometimes the opposite happens
(for instance, see Intel MKL distribution in Arch Linux [1]),
and sometimes only `$arch` directory alone is present.

This patch extends the search list with `$MKLROOT/lib/$arch` with
lower priority than `$MKLROOT/lib/$arch_$os`, as the latter is the
official path to Intel MKL libraries.

It is also worth mentioning that Intel MKL Link Line Adviser [2]
recommends using `$MKLROOT/lib/$arch` directory in a link line:
```
 -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_lp64
 -lmkl_sequential -lmkl_core -lpthread -lm -ldl
```

[1] https://www.archlinux.org/packages/community/x86_64/intel-mkl/files/

[2] https://software.intel.com/content/www/us/en/develop/articles/intel-mkl-link-line-advisor.html
2020-06-16 10:33:11 -07:00
Robert Maynard
85a9813a76 BLAS: Provide the BLAS::BLAS import target 2020-04-23 13:59:33 -04:00
Olly Perks
14ffa6e90e Find{BLAS,LAPACK}: Add support for ArmPL targets
Add support for the Arm Performance Libraries (ArmPL) which provide an
implementation of BLAS, LAPACK and FFTW for use on Arm Linux systems:

    https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/arm-performance-libraries
2020-04-09 11:55:04 -04:00
Mario Emmenlauer
807a129f3c Find{BLAS,LAPACK}: Include parent of points directory in search
This is required if MKLROOT points to the subdirectory .../mkl/ instead of
the root of an Intel MKL library installation. Only in this case the MKL
will be searched starting from the parent directory, to detect relevant
dependencies in parallel subdirectories, like 'compiler' and 'tbb'.
2020-01-31 11:36:07 +01:00
Mario Emmenlauer
fe86dc43fe Find{BLAS,LAPACK}: Fixed an incorrect use of a macro argument 2020-01-31 11:32:46 +01:00
Mario Emmenlauer
4d7c69208e Find{BLAS,LAPACK}: Search always in dynamic linker paths
Previously the search in the dynamic linker paths 'LIB', 'LD_LIBRARY_PATH'
and 'DYLD_LIBRARY_PATH' was dependent on the value of the environment
variable 'MKLROOT'. If MKLROOT was given, the dynamic linker paths where
not searched. This seems slightly counter-intuitive.
This PR changes the behavior so that MKLROOT is searched first, but if
unsuccesful, the dynamic linker paths are tried as well.
2020-01-28 10:27:22 +01:00
Mario Emmenlauer
fde5fcbc71 Find{BLAS,LAPACK}: Avoid repeated setting of prefered library suffixes 2020-01-28 10:27:22 +01:00
Mario Emmenlauer
fd1d4b823f Find{BLAS,LAPACK}: Fixed incorrect static library suffix for Apple 2020-01-28 10:27:22 +01:00
Mario Emmenlauer
c60c847510 Find{BLAS,LAPACK}: Added support for MKL single dynamic library 2020-01-28 10:27:22 +01:00