summaryrefslogtreecommitdiff
path: root/Modules
diff options
context:
space:
mode:
authorCordell Bloor <Cordell.Bloor@amd.com>2022-11-16 17:37:51 -0700
committerBrad King <brad.king@kitware.com>2023-05-02 10:56:15 -0400
commit272fe88ac62356f43316dcd6a3513eef9ae665b9 (patch)
treed82c3ae3d99a751d4ef8bceac02ca0c24d8b5956 /Modules
parent2488d6dbf7481087fa9ee4a0c77c5e3b0a503387 (diff)
downloadcmake-272fe88ac62356f43316dcd6a3513eef9ae665b9.tar.gz
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
Diffstat (limited to 'Modules')
-rw-r--r--Modules/FindBLAS.cmake37
-rw-r--r--Modules/FindLAPACK.cmake23
2 files changed, 60 insertions, 0 deletions
diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
index 19bef9471c..39a1163533 100644
--- a/Modules/FindBLAS.cmake
+++ b/Modules/FindBLAS.cmake
@@ -93,6 +93,11 @@ BLAS/LAPACK Vendors
``ACML``, ``ACML_MP``, ``ACML_GPU``
AMD Core Math Library
+``AOCL``, ``AOCL_mt``
+ .. versionadded:: 3.27
+
+ AMD Optimizing CPU Libraries
+
``Apple``, ``NAS``
Apple BLAS (Accelerate), and Apple NAS (vecLib)
@@ -848,6 +853,38 @@ if(BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
unset(_blas_flame_lib)
endif()
+# AOCL's blis library? (https://developer.amd.com/amd-aocl/)
+if(BLA_VENDOR MATCHES "AOCL" OR BLA_VENDOR STREQUAL "All")
+ set(_blas_aocl_lib "blis")
+
+ if(_blas_sizeof_integer EQUAL 8)
+ set(_blas_aocl_subdir "ILP64")
+ else()
+ set(_blas_aocl_subdir "LP64")
+ endif()
+
+ # Check for multi-threaded support
+ if(BLA_VENDOR MATCHES "_mt")
+ string(APPEND _blas_aocl_lib "-mt")
+ endif()
+
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "${_blas_aocl_lib}"
+ ""
+ ""
+ "${_blas_aocl_subdir}"
+ )
+ endif()
+
+ unset(_blas_aocl_lib)
+ unset(_blas_aocl_subdir)
+endif()
+
# BLAS in the ATLAS library? (http://math-atlas.sourceforge.net/)
if(BLA_VENDOR STREQUAL "ATLAS" OR BLA_VENDOR STREQUAL "All")
if(NOT BLAS_LIBRARIES)
diff --git a/Modules/FindLAPACK.cmake b/Modules/FindLAPACK.cmake
index 17117bd871..4d3ab5a0f3 100644
--- a/Modules/FindLAPACK.cmake
+++ b/Modules/FindLAPACK.cmake
@@ -561,6 +561,29 @@ if(NOT LAPACK_NOT_FOUND_MESSAGE)
endif()
endif()
+ # AOCL? (https://developer.amd.com/amd-aocl/)
+ if(NOT LAPACK_LIBRARIES
+ AND (BLA_VENDOR MATCHES "AOCL" OR BLA_VENDOR STREQUAL "All"))
+ if(_lapack_sizeof_integer EQUAL 8)
+ set(_lapack_aocl_subdir "ILP64")
+ else()
+ set(_lapack_aocl_subdir "LP64")
+ endif()
+
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "flame"
+ "-fopenmp"
+ ""
+ "${_lapack_aocl_subdir}"
+ "${BLAS_LIBRARIES}"
+ )
+ unset(_lapack_aocl_subdir)
+ endif()
+
# LAPACK in SCSL library? (SGI/Cray Scientific Library)
if(NOT LAPACK_LIBRARIES
AND (BLA_VENDOR MATCHES "SCSL" OR BLA_VENDOR STREQUAL "All"))