BLAS(Basic Linear Algebra Subprograms 基础线性代数程序集)是一个应用程序接口(API)标准,用以规范发布基础线性代数操作的数值库(如矢量或矩阵乘法)。该程序集最初发布于1979年,并用于建立更大的数值程序包(如LAPACK)。在高性能计算领域,BLAS被广泛使用。例如,LINPACK的运算成绩则很大程度上取决于BLAS中子程序DGEMM的表现。为提高性能,各?硬件厂商则针对其?品对BLAS接口实现进行高度优化。
当前版本0.2.5 (2012年11月26日发布),相比原始的GotoBLAS2 1.13 BSD版本,主要的改进如下:
优化Intel Sandy Bridge 64位上的BLAS 3级性能,与Intel MKL相当,部分情况略优。Intel Core i5-2500K 的单线程DGEMM性能测试如图所示
支持龙芯3A CPU的自动检测,完成了龙芯3A CPU上的BLAS 3级的4种精度的全部函数优化。进一步改进了双精度函数的并行效率。优化龙芯3A上 GEMV函数的性能
增加了对龙芯3B的支持 ,BLAS 3级的部分优化(实验阶段)
LAPACK升级为3.4.2版本。支持LAPACKE,一个LAPACK的C语言接口
支持Clang编译器
修正与MS Visual Studio的兼容性问题
修正很多bug,比如:x86, Mac OSX, Windows等,修正FreeBSD,NetBSD编译错误,支持GNU Hurd
目前正在进行Intel Sandy Bridge的32位,其他BLAS1和2函数的优化工作
项目主页:http://xianyi.github.com/OpenBLAS/
下载地址:http://github.com/xianyi/OpenBLAS/zipball/v0.2.5
来自:开源中国社区

