Windows下在GSL(GNU Scientific Library)中使用OpenBLAS库

本文详细介绍了如何在Windows上利用Visual Studio 2010下载、编译OpenBLAS库,并将其与GSL(GNU Scientific Library)结合。首先,下载并编译OpenBLAS,然后下载GSL源码及VS2012工程文件,将OpenBLAS库链接到GSL工程中。最后,通过一系列测试代码验证GSL库与OpenBLAS的正确集成。
摘要由CSDN通过智能技术生成
GNU Scientific Library是一个用于科学计算的开源库,拥有丰富的数学及矩阵计算函数,但是其自带的矩阵计算库BLAS效率明显没有ATLAS、OpenBLAS等优化后的计算库高,本文主要介绍如何在GSL中链接OpenBLAS库。

1. 下载并编译OpenBLAS库

OpenBLAS库最早是老外开发的GotoBLAS库,使用了大量的内联汇编来匹配不同计算平台的硬件差异,在Goto放弃更新GotoBLAS库后,中科院软件所的一帮人负责起了更新,并改名OpenBLAS,网址: https://github.com/xianyi/OpenBLAS
编译OpenBLAS非常简单,只需要安装好mingw32或者mingw64,配合msys搭建好类unix的编译环境,然后cd到OpenBLAS的源码根目录下:

make BINARY=64 USE_OPENMP=1 USE_THREAD=1

成功后:

make install PREFIX="path to install"

注意在目前最新的0.28版中,USE_OPENMP=1在WIN64平台上貌似有错误,lapack_tesing无法通过

cd lapack-netlib
make lapack_testing

2. 下载并编译GSL库

a. 下载GSL源码

地址:http://www.gnu.org/software/gsl/


b. 下载VS2012版GSL工程

地址:http://brgladman.org/oldsite/computing/gnu_scientific_library.php

解压GSL源码文件,并将VS2012版工程文件解压到GSL源码的根目录下

本文中使用的是VS2010,只需把VS2012工程中的

<PlatformToolset>v110</PlatformToolset>
全部替换为

<PlatformToolset>v100</PlatformToolset>
即可。


c. 用OpenBLAS库编译GSL库

打开build.vc11目录下的gsl.dll.sln,首先编译gslhdrs,这个是VS2012版工程作者写的给GSL添加导出函数的软件包。

然后将步骤1中编译好的libopenblas.lib和libopenblas.dll放入dll/x64/release目录中,并将gsl库的链接依赖从cblas.lib改为libopenblas.lib

编译后得到的gsl.lib和gsl.dll即为所需的GSL库


3. 测试

a. 测试代码1

#include <stdio.h>  
#include <gsl/gsl_cblas.h>

#pragma comment (lib, "libopenblas.lib")
//#pragma comment (lib, "gsl.lib")
     
typedef struct { float real; float imag; } CBLAS_TEST_COMPLEX;  
      
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值