0
点赞
收藏
分享

微信扫一扫

OpenBLAS线性代数子程序开源库的编译


OpenBLAS Short for Basic Linear Algebra Subprograms, 是一套开源的线性代数算法子程序库的实现版本,包含了矩阵的运算处理函数。很多甚多学习框架例如Tengine支持以它为基础的算子实现,下述在ubuntu14.04平台上的编译过程:

Logo:

                  

OpenBLAS线性代数子程序开源库的编译_git

1.获取源码

    git clone git@github.com:xianyi/OpenBLAS.git

2.进入顶层目录,直接敲入make编译,默认编译host机代码,编译结束后:

     

OpenBLAS线性代数子程序开源库的编译_API_02

3.安装,敲入命令 make install PREFIX=/path/to/install

   例如:

   make install PREFIX=/home/czl/WorkSpace/blas/library

OpenBLAS线性代数子程序开源库的编译_API_03

4.查看安装结果:

      

OpenBLAS线性代数子程序开源库的编译_矩阵运算_04

BLAS的实现有很多版本,OpenBLAS 是其中比较流行的一个,评价一个实现好坏的标准无非是计算效率,单位算力谁结果出来的最快,谁就好。

看了下内部实现,不知道为什么,使用前必须先调用openblas_set_num_threads函数

设置库允许创建的线程数,这种方式对RTOS很不友好。

OpenBLAS线性代数子程序开源库的编译_git_05

写一个测试用例:

OpenBLAS线性代数子程序开源库的编译_API_06

避免麻烦,静态编译:

gcc  main.c -o main -I ./library/include/ -L ./library/lib/ -lopenblas -lpthread -static

执行

OpenBLAS线性代数子程序开源库的编译_API_07

这样,对算子有了一定的了解,无非是一个计算单元,实现了指定计算的加速。

BLAS API,一级BLAS API支持向量-向量运算,二级BLAS支持向量-矩阵运算,三级BLAS支持矩阵-矩阵运算。

结束

举报

相关推荐

0 条评论