FindBLAS
Поиск библиотеки Basic Linear Algebra Subprograms (BLAS)
Этот модуль находит установленную Fortran библиотеку, которая реализует интерфейс линейной алгебры BLAS BLAS linear-algebra interface.
Должен быть включён хотя бы один из языков C, CXX, или Fortran.
Переменные ввода
Следующие переменные могут быть установлены для влияния на поведение этого модуля:
-
BLA_STATIC -
если
ONиспользовать статическую компоновку -
BLA_VENDOR -
Установите одно из значений Поставщики BLAS/LAPACK для поиска BLAS только у указанного поставщика. Если не установлено, рассматриваются все поставщики.
-
BLA_F95 -
если
ONпытается найти интерфейсы BLAS95 -
BLA_PREFER_PKGCONFIG -
Добавлена в версии 3.11.
если установлено,
pkg-configбудет использоваться для поиска библиотеки BLAS в первую очередь, и если она найдена, будет отдаваться предпочтение
Импортированные целевые объекты
Этот модуль определяет следующие 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
-
Apple, NAS -
BLAS Apple (Accelerate) и NAS Apple (vecLib)
-
Arm, Arm_mp, Arm_ilp64, Arm_ilp64_mp -
Добавлена в версии 3.18.
Библиотеки производительности Arm
-
ATLAS -
Автоматически настраиваемое программное обеспечение для линейной алгебры
-
CXML, DXML -
Расширенная библиотека математических функций Compaq/Digital
-
EML, EML_mt -
Добавлена в версии 3.20.
Библиотека математических функций Elbrus
-
FLAME -
Добавлена в версии 3.11.
Фреймворк BLIS
-
FlexiBLAS -
Добавлена в версии 3.19.
-
Fujitsu_SSL2, Fujitsu_SSL2BLAMP -
Добавлена в версии 3.20.
Последовательные и параллельные библиотеки blas/lapack Fujitsu SSL2
-
Goto -
GotoBLAS
-
IBMESSL -
Библиотека инженерных и научных подпрограмм IBM
-
Intel -
Устаревшие 32-разрядные и 64-разрядные версии Intel MKL
-
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 -
Библиотека программного обеспечения для научных вычислений
-
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–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/module/FindBLAS.html