FindBLAS
Поиск библиотеки Basic Linear Algebra Subprograms (BLAS)
Этот модуль находит установленную библиотеку Fortran, реализующую интерфейс линейной алгебры BLAS интерфейс линейной алгебры 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_PKGCONFIG_BLAS -
Добавлена в версии 3.25.
Если установлено, метод
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
-
Apple, NAS -
Apple BLAS (Accelerate) и Apple NAS (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, 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
Для использования реализации BLAS Intel MKL, проект должен включить хотя бы один из языков 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.25/module/FindBLAS.html