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
-
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 -
Устаревшие версии 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.24/module/FindBLAS.html