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_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 Math
-
AOCL, AOCL_mt -
Новая версия 3.27.
Оптимизирующие библиотеки CPU AMD
-
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 бит, единая динамическая библиотека
-
libblastrampoline -
Новая версия 3.30.
Библиотека demuxing BLAS/LAPACK с использованием PLT trampolines
-
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–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.30/module/FindBLAS.html