FindBLAS¶
Find Basic Linear Algebra Subprograms (BLAS) library
This module finds an installed Fortran library that implements the BLAS linear-algebra interface (see http://www.netlib.org/blas/).
The approach follows that taken for the autoconf macro file,
acx_blas.m4 (distributed at
http://ac-archive.sourceforge.net/ac-archive/acx_blas.html).
Input Variables¶
The following variables may be set to influence this module's behavior:
- BLA_STATIC
- if - ONuse static linkage
- BLA_VENDOR
- If set, checks only the specified vendor, if not set checks all the possibilities. List of vendors valid in this module: - Goto
- FlexiBLAS
- OpenBLAS
- FLAME
- ATLAS PhiPACK
- CXML
- DXML
- SunPerf
- SCSL
- SGIMATH
- IBMESSL
- Intel10_32(intel mkl v10 32 bit, threaded code)
- Intel10_64lp(intel mkl v10+ 64 bit, threaded code, lp64 model)
- Intel10_64lp_seq(intel mkl v10+ 64 bit, sequential code, lp64 model)
- Intel10_64ilp(intel mkl v10+ 64 bit, threaded code, ilp64 model)
- Intel10_64ilp_seq(intel mkl v10+ 64 bit, sequential code, ilp64 model)
- Intel10_64_dyn(intel mkl v10+ 64 bit, single dynamic library)
- Intel(obsolete versions of mkl 32 and 64 bit)
- ACML
- ACML_MP
- ACML_GPU
- Apple
- NAS
- Arm
- Arm_mp
- Arm_ilp64
- Arm_ilp64_mp
- EML
- EML_mt
- Generic
 - New in version 3.6: - OpenBLASsupport.- New in version 3.11: - FLAMEsupport.- New in version 3.13: Added ILP64 MKL variants ( - Intel10_64ilp,- Intel10_64ilp_seq).- New in version 3.17: Added single dynamic library MKL variant ( - Intel10_64_dyn).- New in version 3.18: Arm Performance Libraries support ( - Arm,- Arm_mp,- Arm_ilp64,- Arm_ilp64_mp).- New in version 3.19: - FlexiBLASsupport.- New in version 3.20: Elbrus Math Library support ( - EML,- EML_mt).
- BLA_F95
- if - ONtries to find the BLAS95 interfaces
- BLA_PREFER_PKGCONFIG
- New in version 3.11. - if set - pkg-configwill be used to search for a BLAS library first and if one is found that is preferred
Imported targets¶
New in version 3.18.
This module defines the following IMPORTED target:
- BLAS::BLAS
- The libraries to use for BLAS, if found. 
Result Variables¶
This module defines the following variables:
- BLAS_FOUND
- library implementing the BLAS interface is found 
- BLAS_LINKER_FLAGS
- uncached list of required linker flags (excluding - -land- -L).
- BLAS_LIBRARIES
- uncached list of libraries (using full path name) to link against to use BLAS (may be empty if compiler implicitly links BLAS) 
- BLAS95_LIBRARIES
- uncached list of libraries (using full path name) to link against to use BLAS95 interface 
- BLAS95_FOUND
- library implementing the BLAS95 interface is found 
Note
C, CXX or Fortran must be enabled to detect a BLAS library. C or CXX must be enabled to use Intel Math Kernel Library (MKL).
For example, to use Intel MKL libraries and/or Intel compiler:
set(BLA_VENDOR Intel10_64lp)
find_package(BLAS)
Hints¶
- MKLROOT
- New in version 3.15. - Set this environment variable to a directory that contains an MKL installation, or add the directory to the dynamic library loader environment variable for your platform ( - LIB,- DYLD_LIBRARY_PATHor- LD_LIBRARY_PATH).
