OpenBlas编译方法

OpenBlas是一个优化的Blas库,基于GotoBlas21.13 BSD版,安装步骤如下:

Windows下安装:

1. 在SourgeForge下载最新的OpenBlas库:http://sourceforge.net/projects/openblas/files/

2.  解压下载的源码到工作目录,比如:E:\VMwareSharedFolder\OpenBLAS

3. 根据OpenBlas在GitHub上的说明“Howto use OpenBLAS in Microsoft Visual Studio”,下载MinGW,启动mysys shell,检查gcc的版本,如果低于4.7,那么进行升级,否则直接编译即可,命令如下:

gcc –v                                  ::查看gcc的版本号

mingw-get removegcc           ::卸载gcc

mingw-get updategcc            ::更新gcc

mingw-getupgrade gcc          ::升级gcc

4. 确保gcc版本高于4.7后,在Mysys shell中进入OpenBlas目录,输入make即可开始编译,OpenBlas会自动检测编译器和CPU:

 

5. 编译完成后,在OpenBlas目录下,会出现libopenblas.a和libopenblas.dll两个文件,安装一下命令将编译好的OpenBlas库安装到系统中去:

make PREFIX=/c/warmerda/OpenBLAS install

6.      安装完毕后,在C:\warmerda\OpenBLAS目录下会出现include和lib两个目录,include中包含库的头文件,lib目录里是libopenblas.a和libopenblas.dll两个文件,其中libopenblas.a是MinGW的lib库文件,libopenblas.dll是Windows的动态库文件,目前我们只有动态库,没有lib文件,因此需要进一步处理,生成windows的lib文件才可以使用。下一篇文件中,我将会讲解如何从一个dll文件生成lib文件,见 由动态库文件dll生成lib库文件

### 使用 MinGW 编译 OpenBLAS 的步骤 #### 准备工作 确保已正确安装 MinGW 及其管理器。推荐通过 MinGW 安装管理器下载并安装最新版本的 MinGW,这有助于避免因不同版本间的不兼容而导致的问题[^1]。 #### 安装必要的编译工具链 启动 MinGW Installation Manager 并选择 Basic Setup 下的基础组件进行安装。这些基础组件对于后续成功编译 OpenBLAS 至关重要,因为它们提供了所需的 GCC 和 Fortran 编译环境。 #### 获取 OpenBLAS 源码 前往 [OpenBLAS GitHub](https://github.com/xianyi/OpenBLAS) 页面克隆仓库或下载压缩包至本地计算机。 ```bash git clone https://github.com/xianyi/OpenBLAS.git ``` #### 配置编译参数 进入解压后的源文件夹内创建一个新的批处理脚本 `build_openblas.bat` 或者直接打开命令提示符窗口执行以下指令: ```batchfile set PATH=C:\MinGW\bin;%PATH% cd path_to_OpenBLAS_folder make NO_AFFINITY=1 USE_OPENMP=0 NUM_THREADS=64 DYNAMIC_ARCH=1 INTERFACE64=0 CC="gcc" FC="gfortran" ``` 这里设置了一些常用的选项: - `NO_AFFINITY`: 关闭CPU亲和力控制; - `USE_OPENMP`: 不启用OpenMP支持; - `NUM_THREADS`: 设置线程数上限为64; - `DYNAMIC_ARCH`: 启用动态架构模式以适应多种处理器类型; - `INTERFACE64`: 禁用64位接口(可根据需求调整); - `CC`, `FC`: 明确指定C编译器和Fortran编译器分别为GCC和GFORTRAN[^3]。 #### 执行编译过程 运行上述配置好的批处理文件或将相应命令输入到CMD中触发 Make 工具完成整个构建流程。等待一段时间直到终端显示 "Build completed OK!" 即表示编译顺利完成。 #### 测试与验证 编译完成后可以在当前目录找到生成的目标文件如 `.dll` 动态链接库以及静态库`.a` 。可以通过编写简单的测试程序来检验新编译出来的 OpenBLAS 是否正常运作。 ```c #include <stdio.h> #include <cblas.h> int main(){ double A[] = {1.,2.,3.,4.}; cblas_dgemm(CblasRowMajor,CblasNoTrans,CblasNoTrans,2,2,2,1,A,2,A,2,0,NULL,2); printf("If no error message appears before this line, the test is successful.\n"); } ``` 编译此 C 文件并与刚制作完毕的 OpenBLAS 库连接起来尝试运行看能否得到预期的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深蓝静音

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值