From f5bc78263e15f07fc1fed15d970d7ecf9e84f7cc Mon Sep 17 00:00:00 2001 From: J M Dieterich Date: Wed, 15 Nov 2017 12:00:41 -0500 Subject: Find{BLAS,LAPACK}: Add support for FLAME blis and libflame FLAME (github.com/flame) provides a variety of numerical libraries. `blis` and `libflame` can be setup to expose BLAS/LAPACK interfaces. Fixes: #17470 --- Help/release/dev/blas-lapack-flame.rst | 5 +++++ Modules/FindBLAS.cmake | 15 +++++++++++++++ Modules/FindLAPACK.cmake | 15 +++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 Help/release/dev/blas-lapack-flame.rst diff --git a/Help/release/dev/blas-lapack-flame.rst b/Help/release/dev/blas-lapack-flame.rst new file mode 100644 index 0000000..fdc3a69 --- /dev/null +++ b/Help/release/dev/blas-lapack-flame.rst @@ -0,0 +1,5 @@ +blas-lapack-flame +----------------- + +* The :module:`FindBLAS` and :module:`FindLAPACK` modules learned to support + `FLAME `__ ``blis`` and ``libflame``. diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake index 2684617..bb8b308 100644 --- a/Modules/FindBLAS.cmake +++ b/Modules/FindBLAS.cmake @@ -36,6 +36,7 @@ # # * Goto # * OpenBLAS +# * FLAME # * ATLAS PhiPACK # * CXML # * DXML @@ -190,6 +191,20 @@ if (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All") endif() endif () +if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All") + if(NOT BLAS_LIBRARIES) + # FLAME's blis library (https://github.com/flame/blis) + check_fortran_libraries( + BLAS_LIBRARIES + BLAS + sgemm + "" + "blis" + "" + ) + endif() +endif () + if (BLA_VENDOR STREQUAL "ATLAS" OR BLA_VENDOR STREQUAL "All") if(NOT BLAS_LIBRARIES) # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/) diff --git a/Modules/FindLAPACK.cmake b/Modules/FindLAPACK.cmake index a451e6c..a3c87f8 100644 --- a/Modules/FindLAPACK.cmake +++ b/Modules/FindLAPACK.cmake @@ -37,6 +37,7 @@ # # * Intel(mkl) # * OpenBLAS +# * FLAME # * ACML # * Apple # * NAS @@ -201,6 +202,20 @@ if (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All") endif() endif () +if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All") + if(NOT LAPACK_LIBRARIES) + check_lapack_libraries( + LAPACK_LIBRARIES + LAPACK + cheev + "" + "flame" + "${BLAS_LIBRARIES}" + "" + ) + endif() +endif () + #acml lapack if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All") if (BLAS_LIBRARIES MATCHES ".+acml.+") -- cgit v0.12