OpenBLAS Short for Basic Linear Algebra Subprograms, 是一套开源的线性代数算法子程序库的实现版本,包含了矩阵的运算处理函数。很多甚多学习框架例如Tengine支持以它为基础的算子实现,下述在ubuntu14.04平台上的编译过程:
Logo:
1.获取源码
git clone git@github.com:xianyi/OpenBLAS.git
2.进入顶层目录,直接敲入make编译,默认编译host机代码,编译结束后:
3.安装,敲入命令 make install PREFIX=/path/to/install
例如:
make install PREFIX=/home/czl/WorkSpace/blas/library
4.查看安装结果:
BLAS的实现有很多版本,OpenBLAS 是其中比较流行的一个,评价一个实现好坏的标准无非是计算效率,单位算力谁结果出来的最快,谁就好。
看了下内部实现,不知道为什么,使用前必须先调用openblas_set_num_threads函数
设置库允许创建的线程数,这种方式对RTOS很不友好。
写一个测试用例:
避免麻烦,静态编译:
gcc main.c -o main -I ./library/include/ -L ./library/lib/ -lopenblas -lpthread -static
执行
这样,对算子有了一定的了解,无非是一个计算单元,实现了指定计算的加速。
BLAS API,一级BLAS API支持向量-向量运算,二级BLAS支持向量-矩阵运算,三级BLAS支持矩阵-矩阵运算。