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.
если установлено,
pkg-configбудет использоваться для поиска библиотеки 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
-
Apple, NAS -
Apple BLAS (Accelerate) и Apple NAS (vecLib)
-
Arm, Arm_mp, Arm_ilp64, Arm_ilp64_mp -
Новое в версии 3.18.
Библиотеки Arm Performance
-
ATLAS -
Автоматизированная настройка программного обеспечения линейной алгебры
-
CXML, DXML -
Расширенная математическая библиотека Compaq/Digital
-
EML, EML_mt -
Новое в версии 3.20.
Библиотека Elbrus Math
-
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
-
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, 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–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.22/module/FindBLAS.html