CBLAS编译和使用
(2014-02-28 15:21:11)
标签:
fedorablascblasit |
分类: Linux |
最近学习要计算矩阵相乘用到了BLAS这个库(http://www.netlib.org/blas/), BLAS (Basic
Linear Algebra Subprograms)
是Fortran语言实现的,也有C语言的版本。我不懂Fortran,自然要使用CBLAS。
编译CBLAS的时候需要用到BLAS,所以从网站上要把他们都下载下来,当然顺便下载一下c
interface文档。
1.下面在Fedora20上面进行编译,要有编译器gcc和gfortran。
gcc是系统自带的,gfortran需要安装,使用下面这个命令:yum install gcc-fortran
-y。
2.有了编译器,下面先开始编译BLAS:
解压缩下载到的blas.tgz,然后进入BLAS文件夹,可以根据系统情况修改make.inc和Makefile。
为了gcc编译时使用方便,这里可以把BLASLIB一项改一下名字,输出为libblas.a。
然后执行make。一切顺利。
3.编译CBLAS。
解压缩下载到的cblas.tgz,进入CBLAS文件夹,这里需要修改Makefile.LINUX。
主要是BLLIB和CBLIB这两项:BLLIB是需要指向我们上一步生成的libblas.a,我把它拷贝到lib文件夹下面,并指定为..lib/libblas.a。CBLIB是生成的CBLAS库的路径和文件名,这里我指定为../lib/libcblas.a。根据系统情况设置好了以后,把Makefile.in删掉,然后建个软连接:ln
-s Makefile.LINUX Makefile.in。就可以使用make all开始编译了。
要注意命令行的输出,如果有错误的话,需要搞清楚怎么回事,然后重新编译。以下几个命令会用到:
make clean 清除工程
4.编译全部成功之后(注意testing也得成功),我们要用到的就是三个文件:
include文件夹下面的cblas.h
lib文件夹下面的libblas.a,还有libcblas.a
5.好了,随便找个文件夹吧,为了测试方便,可以把上面三个文件拷贝过来。
我们要计算的是下面两个矩阵的乘积:
[ 0.11 0.12 0.13 ] [ 1011 1012 ] [ 367.76 368.12 ] [ 0.21 0.22 0.23 ] [ 1021 1022 ] = [ 674.06 674.72 ] [ 1031 1032 ]
新建个demo.c的文件,内容可以如下:
由于新浪糟糕的排版,建议大家从下面的网址复制:
http://www.gnu.org/software/gsl/manual/html_node/GSL-CBLAS-Examples.html
注意:包含头文件的时候直接写#include
"cblas.h"就行了。
6.既然文件准备好了,那就开始编译吧。
使用gcc命令如下:
gcc demo.c -L. -lblas -lcblas -I. -o demo
如果没有错误的话,大功告成!
7.最后一步,执行编译好的程序:./demo
后一篇:CLAPACK编译和使用