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
This commit is contained in:
Olly Perks 2020-03-19 05:36:07 -05:00 committed by Brad King
parent 9532929216
commit 14ffa6e90e
2 changed files with 68 additions and 0 deletions

View File

@ -48,6 +48,10 @@ The following variables may be set to influence this module's behavior:
* ``ACML_GPU``
* ``Apple``
* ``NAS``
* ``Arm``
* ``Arm_mp``
* ``Arm_ilp64``
* ``Arm_ilp64_mp``
* ``Generic``
``BLA_F95``
@ -550,6 +554,36 @@ if(BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
endif()
endif()
# ArmPL blas library? (https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/arm-performance-libraries)
if(BLA_VENDOR MATCHES "Arm" OR BLA_VENDOR STREQUAL "All")
# Check for 64bit Integer support
if(BLA_VENDOR MATCHES "_ilp64")
set(BLAS_armpl_LIB "armpl_ilp64")
else()
set(BLAS_armpl_LIB "armpl_lp64")
endif()
# Check for OpenMP support, VIA BLA_VENDOR of Arm_mp or Arm_ipl64_mp
if(BLA_VENDOR MATCHES "_mp")
set(BLAS_armpl_LIB "${BLAS_armpl_LIB}_mp")
endif()
if(NOT BLAS_LIBRARIES)
check_blas_libraries(
BLAS_LIBRARIES
BLAS
sgemm
""
"${BLAS_armpl_LIB}"
""
""
""
)
endif()
endif()
# FLAME's blis library? (https://github.com/flame/blis)
if(BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
if(NOT BLAS_LIBRARIES)

View File

@ -38,6 +38,10 @@ The following variables may be set to influence this module's behavior:
* ``ACML``
* ``Apple``
* ``NAS``
* ``Arm``
* ``Arm_mp``
* ``Arm_ilp64``
* ``Arm_ilp64_mp``
* ``Generic``
``BLA_F95``
@ -359,6 +363,36 @@ if(BLAS_FOUND)
endif()
endif()
# ArmPL? (https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/arm-performance-libraries)
if(BLA_VENDOR MATCHES "Arm" OR BLA_VENDOR STREQUAL "All")
# Check for 64bit Integer support
if(BLA_VENDOR MATCHES "_ilp64")
set(LAPACK_armpl_LIB "armpl_ilp64")
else()
set(LAPACK_armpl_LIB "armpl_lp64")
endif()
# Check for OpenMP support, VIA BLA_VENDOR of Arm_mp or Arm_ipl64_mp
if(BLA_VENDOR MATCHES "_mp")
set(LAPACK_armpl_LIB "${LAPACK_armpl_LIB}_mp")
endif()
if(NOT LAPACK_LIBRARIES)
check_lapack_libraries(
LAPACK_LIBRARIES
LAPACK
cheev
""
"${LAPACK_armpl_LIB}"
""
""
""
"${BLAS_LIBRARIES}"
)
endif()
endif()
# FLAME's blis library? (https://github.com/flame/blis)
if(BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
if(NOT LAPACK_LIBRARIES)