FindBLAS
Поиск библиотеки Basic Linear Algebra Subprograms (BLAS)
Этот модуль находит установленную библиотеку Fortran, реализующую интерфейс BLAS для линейной алгебры.
Должен быть включен хотя бы один из языков C, CXX, или Fortran.
Переменные ввода
Следующие переменные можно установить, чтобы повлиять на поведение этого модуля:
-
BLA_STATIC -
если
ONиспользовать статическую компоновку -
BLA_VENDOR -
Установите значение на один из поставщиков BLAS/LAPACK, чтобы искать BLAS только у указанного поставщика. Если не установлено, рассматриваются все поставщики.
-
BLA_F95 -
если
ONпытается найти интерфейсы BLAS95 -
BLA_PREFER_PKGCONFIG -
Новая версия 3.11.
если установлено, будет сначала использоваться поиск библиотеки BLAS, и если она найдена, то будет предпочтительна
-
BLA_SIZEOF_INTEGER -
Новая версия 3.22.
Укажите размер целого числа для библиотеки BLAS/LAPACK:
-
4 -
Искать BLAS/LAPACK с 32-битными целочисленными интерфейсами.
-
8 -
Искать BLAS/LAPACK с 64-битными целочисленными интерфейсами.
-
ANY -
Искать любой BLAS/LAPACK. Скорее всего, будет найден BLAS/LAPACK с 32-битными целочисленными интерфейсами.
-
Импортированные цели
Этот модуль определяет следующие IMPORTED цели:
-
BLAS::BLAS -
Новая версия 3.18.
Библиотеки для использования с BLAS, если они найдены.
Переменные результата
Этот модуль определяет следующие переменные:
-
BLAS_FOUND -
найдена библиотека, реализующая интерфейс BLAS
-
BLAS_LINKER_FLAGS -
кешированный список необходимых флагов компоновщика (исключая
-lи-L). -
BLAS_LIBRARIES -
кешированный список библиотек (с полным именем пути) для компоновки с использованием BLAS (может быть пустым, если компилятор неявно подключает BLAS)
-
BLAS95_LIBRARIES -
кешированный список библиотек (с полным именем пути) для компоновки с использованием интерфейса BLAS95
-
BLAS95_FOUND -
найдена библиотека, реализующая интерфейс BLAS95
Поставщики BLAS/LAPACK
-
Generic -
Общая справочная реализация
-
ACML, ACML_MP, ACML_GPU -
Библиотека AMD Core Math Library
-
Apple, NAS -
Apple BLAS (Accelerate) и Apple NAS (vecLib)
-
Arm, Arm_mp, Arm_ilp64, Arm_ilp64_mp -
Новая версия 3.18.
Arm Performance Libraries
-
ATLAS -
Автоматически настроенное программное обеспечение линейной алгебры
-
CXML, DXML -
Библиотека Compaq/Digital Extended Math Library
-
EML, EML_mt -
Новая версия 3.20.
Библиотека Elbrus Math Library
-
FLAME -
Новая версия 3.11.
Фреймворк BLIS
-
FlexiBLAS -
Новая версия 3.19.
-
Fujitsu_SSL2, Fujitsu_SSL2BLAMP, Fujitsu_SSL2SVE, Fujitsu_SSL2BLAMPSVE -
Новая версия 3.20.
Последовательная и параллельная библиотеки blas/lapack Fujitsu SSL2 с инструкциями SVE
-
Goto -
GotoBLAS
IBMESSL, IBMESSL_SMP
Библиотека IBM Engineering and Scientific Subroutine Library
-
Intel -
Устаревшие версии Intel MKL 32-бит и 64-бит
-
Intel10_32 -
Intel MKL v10 32 бита, потоковая обработка
-
Intel10_64lp -
Intel MKL v10+ 64 бита, потоковая обработка, модель lp64
-
Intel10_64lp_seq -
Intel MKL v10+ 64 бита, последовательный код, модель lp64
-
Intel10_64ilp -
Новая версия 3.13.
Intel MKL v10+ 64 бита, потоковая обработка, модель ilp64
-
Intel10_64ilp_seq -
Новая версия 3.13.
Intel MKL v10+ 64 бита, последовательный код, модель ilp64
-
Intel10_64_dyn -
Новая версия 3.17.
Intel MKL v10+ 64 бита, одна динамическая библиотека
-
NVHPC -
Новая версия 3.21.
NVIDIA HPC SDK
-
OpenBLAS -
Новая версия 3.6.
-
PhiPACK -
Портативная высокопроизводительная ANSI C (PHiPAC)
-
SCSL, SCSL_mp -
Библиотека программного обеспечения для научных вычислений
-
SGIMATH -
Библиотека научных математических вычислений SGI
-
SunPerf -
Библиотека производительности Sun
Intel MKL
Для использования реализации Intel MKL для BLAS проект должен включить хотя бы один из языков C или CXX. Установите BLA_VENDOR на вариант Intel MKL либо в командной строке как -DBLA_VENDOR=Intel10_64lp, либо в коде проекта:
set(BLA_VENDOR Intel10_64lp) find_package(BLAS)
Для создания проекта с использованием Intel MKL пользователь должен сначала создать среду Intel MKL:
- Intel oneAPI
-
Запустите полную среду Intel:
. /opt/intel/oneapi/setvars.sh
Или запустите среду компонента MKL:
. /opt/intel/oneapi/mkl/latest/env/vars.sh
- Intel Classic
-
Запустите полную среду Intel:
. /opt/intel/bin/compilervars.sh intel64
Или запустите среду компонента MKL:
. /opt/intel/mkl/bin/mklvars.sh intel64
Вышеперечисленные скрипты среды устанавливают переменную среды MKLROOT в начало установки MKL. Они также добавляют расположение библиотек выполнения в переменную среды загрузчика динамических библиотек вашей платформы (например, LD_LIBRARY_PATH). Это необходимо для запуска программ, скомпонованных с MKL.
Примечание
Начиная с Intel oneAPI 2021.2, загрузка только компонента MKL не делает доступными все его зависимости. В частности, библиотека iomp5 должна быть доступна отдельно или предоставляться при загрузке среды компонента компилятора:
. /opt/intel/oneapi/compiler/latest/env/vars.sh
© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/module/FindBLAS.html