Commit Graph

142 Commits

Author SHA1 Message Date
Cordell Bloor
272fe88ac6 Find{BLAS,LAPACK}: Add AOCL BLIS/libFLAME
The AMD Optimizing CPU Libraries (AOCL) provide forks of BLIS and
libFLAME that are optimized for AMD "Zen" core architectures.

Closes: #23605
2023-05-02 10:56:15 -04:00
Brad King
9d18426c47 Find{BLAS,LAPACK}: Prefer BLA_VENDOR cmake variable over env variable
This is implied by the documentation, but was not implemented properly.

Fixes: #24664
2023-04-03 09:58:58 -04:00
Alex Turbov
435b0c573c Help: Fix some redirects reported with sphinx linkcheck
Mostly it's about replace `http:` with `https:` protocol.
2022-11-07 10:07:36 -05:00
Dr. Thomas Orgis
70f15d202f Modules/Find{BLAS,LAPACK}: allow choice of pkg-config package
The BLA_PREFER_PKGCONFIG switch is not that useful if you are not able
to specify the pkg-config package to use. This adds BLA_PKGCONFIG_BLAS
and BLA_PKGCONFIG_LAPACK to that effect, allowing user choice in
environments that install differing variants of the BLAS libraries
with distinct .pc file names.

This is part of work to get more standardized installations of the
BLAS libs with specific names, likely blas.pc and lapack.pc only
for Netlib reference code, or maybe blas-netlib.pc and lapack-netlib.pc,
in any case distinct from choices like openblas-openmp.pc.
2022-06-17 10:43:38 +02:00
nega
6dab35e25d FindBLAS: Quiet pkg-config errors
Issue: #23314
2022-03-30 16:01:49 -04:00
Brad King
8595851d58 FindBLAS: Find OpenMP dependency quietly
The `find_package(OpenMP)` calls added/updated by:

* commit f7f3d8987a (FindBLAS: Add dependency of OpenBLAS on OpenMP for
                     BLA_STATIC, 2020-11-10, v3.20.0-rc1~492^2)
* commit 9ef82d95d8 (FindBLAS: Fix detection of OpenMP as dependency of
                     BLA_STATIC, 2021-04-07, v3.20.1~3^2)

were missing the `QUIET` option.

Fixes: #23000
2021-12-10 09:51:42 -05:00
makise-homura
e5d9fce03f LCC: Add dedicated support for MCST LCC compiler
Divert LCC compiler as a new one, instead of treating it as GNU.

Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been
passing checks for GNU compilers, so it has been identified as GNU.
Now, with intent of seriously upstreaming its support, it has been
added as a separate LCC compiler, and its version displays not a
supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead
of GNU 7.3.0).

This commit adds its support for detection, and also converts basically
every check like 'is this compiler GNU?' to 'is this compiler GNU or
LCC?'. The only places where this check is untouched, is where it
regards other platforms where LCC is unavailable (primarily non-Linux),
and where it REALLY differs from GNU compiler.

Note: this transition may break software that are already ported to
Elbrus, but hardly relies that LCC will be detected as GNU; still such
software is not known.
2021-10-15 05:05:19 +03:00
Igor S. Gerasimov
635f2c87f5 FindBLAS: Fix EML and ArmPL indentations 2021-10-07 09:35:43 -04:00
Igor S. Gerasimov
816dc1cb19 FindBLAS: Replace set(A val) with string(APPEND) 2021-10-07 09:33:51 -04:00
Igor S. Gerasimov
b8a3cea51f FindBLAS: Stop processing if BLAS library does not have 64-bit integer API 2021-10-05 23:41:36 +09:00
Igor S. Gerasimov
50696efc64 FindBLAS: Search 32/64-bit integer API via BLA_SIZEOF_INTEGER if possible 2021-10-05 23:41:29 +09:00
Igor S. Gerasimov
f8079ec8d0 FindBLAS: Update Fujitsu_SSL2 2021-10-05 23:11:00 +09:00
Igor S. Gerasimov
88969b5167 FindBLAS: Update FlexiBLAS 2021-09-22 15:16:22 -04:00
Igor S. Gerasimov
21250d4dd2 FindBLAS: Update OpenBLAS 2021-09-22 15:16:22 -04:00
Igor S. Gerasimov
84b7e2e15d FindBLAS: Update FLAME 2021-09-22 15:16:22 -04:00
Igor S. Gerasimov
bf048d2ddd FindBLAS: Update Generic BLAS 2021-09-22 15:16:22 -04:00
Igor S. Gerasimov
c4d4f0708b FindBLAS: Move NVHPC from Generic BLAS 2021-09-22 15:16:22 -04:00
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