gpt4 book ai didi

cmake - CMake FindBLAS 可以找到 OpenBLAS 吗?

转载 作者:行者123 更新时间:2023-12-04 18:08:32 24 4
gpt4 key购买 nike

为了演示,我使用 3 行 CMakeLists.txt:

cmake_minimum_required(VERSION 2.8)
find_package( BLAS REQUIRED )
message( STATUS BLAS found: ${BLAS_LIBRARIES} )

我有 cblas、ATLAS 和 OpenBLAS,包括安装在 Debian Linux 系统上的开发包,以及 CMake 2.8.9。当我打电话
cmake . -DBLA_VENDOR=ATLAS -DCMAKE_PREFIX_PATH=/usr/lib/atlas-base

ATLAS 库很好地出现:
-- The C compiler identification is GNU 4.7.2
-- The CXX compiler identification is GNU 4.7.2
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for dgemm_
-- Looking for dgemm_ - found
-- A library with BLAS API found.
-- BLASfound:/usr/lib/atlas-base/libf77blas.so/usr/lib/atlas-base/libatlas.so
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp

同样,只要
cmake .

会找到 /usr/lib/libblas.so为了我。 (我不会忘记在第二次调用之前删除缓存文件。)

当我查看 /usr/share/cmake-2.8/Modules/FindBLAS.cmake ,我读为 BLA_VENDOR 的允许值:
##  Goto,ATLAS PhiPACK,CXML,DXML,SunPerf,SCSL,SGIMATH,IBMESSL,Intel10_32 (intel mkl v10 32 bit),Intel10_64lp (intel mkl v10 64 bit,lp thread model, lp64 model),
## Intel10_64lp_seq (intel mkl v10 64 bit,sequential code, lp64 model),
## Intel( older versions of mkl 32 and 64 bit), ACML,ACML_MP,ACML_GPU,Apple, NAS, Generic

也就是说,未列出 OpenBLAS。还有一些随机试验,比如
cmake . -DBLA_VENDOR=open -DCMAKE_PREFIX_PATH=/usr/lib/openblas-base

也不行。我是否必须编写自己的 FindBLAS 才能使用 CMake 链接到 OpenBLAS?

最佳答案

CMake 支持使用 FindBLAS 查找 OpenBLAS自 CMake 3.6.0 , 如 this commit终于进入了发行版。

注意:OpenBLAS 也可以用来替代 LAPACK,为此你应该使用 FindLAPACK命令,从 3.6.0 开始也可用。

The "FindBLAS" and "FindLAPACK" modules learned to support OpenBLAS.



(见: https://blog.kitware.com/cmake-3-6-0-rc3-is-now-ready/)

关于cmake - CMake FindBLAS 可以找到 OpenBLAS 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20328991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com