Armadillo + Blas Lapack/ +openblas

Armadillo是一个数学计算库,可以使用不同的数学库计算。

首先在http://arma.sourceforge.net/download.html下载Armadillo,4.400版本以上要用VS2012编译了。

下载完后,去http://arma.sourceforge.net/download.html#windows下其他的库,example文件夹里自带着有64位的BlAS & LAPACK(就是下面的)库.

然后按照Readme.txt的指示,删除config.hpp里的两个注释开启其他计算库加速..

根据网上的测试表明,openblas效率比较高,MIL也很好,但后者是商业库,收费的。

使用64 bit BLAS & LAPACK 3.2的方法

1.首先选择编译平台,x64

2.添加包含目录,/include

3.添加引用目录,就是有blas_win64_MT.lib的文件夹,examples/lib_win64

4.在项目选项-连接器-输入-附加依赖项中加入3文件夹中的lib

5.把3文件夹里的dll放到项目目录下.

5.编译即可运行.

使用OpenBLAS的方法

其中binary package新版只有.a文件,没有.lib文件。旧版有.lib文件。

OpenBLAS参考

作者的文章(英文),[重要]作者详细介绍了每一步的操作:https://github.com/xianyi/OpenBLAS/wiki/How-to-use-OpenBLAS-in-Microsoft-Visual-Studio

这篇是作者的问答http://my.oschina.net/u/274748/blog/101897

还有这篇问答http://my.oschina.net/u/274748/blog/158728

用0.2.8版本x86的lib和dll就行,名字是OpenBLAS-v0.2.8-x86-Win.zip。

效率对比:

求1000×1000矩阵逆的耗时,Release版

64位BLAS&Lapack OpenBLAS
8200+ms 250ms

效率还是很快的。

时间: 2024-08-28 14:47:43

Armadillo + Blas Lapack/ +openblas的相关文章

BLAS, LAPACK, OpenBLAS, MKL, CBLAS等概念

API规范: BLAS和LAPACK BLAS和LAPACK是两种接口规范, 用于矩阵基本运算. BLAS的功能分三个Level, LAPACK的功能更丰富, 主要用于扩展BLAS中第三个Level的函数. 规范实现 基于BLAS规范的矩阵库包括开源的ATLAS, OpenBLAS等, 商业的Intel MKL, Nvidia cuBLAS等. Netlib用Fotran语言实现了BLAS和LAPACK规范, 其代码库的名字也叫BLAS和LAPACK, 要注意区分. 封装 CBLAS和CLAPC

线代实现:blas, lapack, cblas, clapack, armadillo, openblas, mkl关系

关于blas的介绍介绍见:http://www.cnblogs.com/dzyBK/p/4983953.html blas:提供向量和矩阵的基本运算,用fortran编写. lapack:提供向量和矩阵的高级运算,用fortran编写,内部以blas为基础库. cblas:提供c接口的blas库,源码通过f2c转换为C语言.f2c官网:http://www.netlib.org/f2c/ clapack:提供c接口的lapack库,源码通过f2c转换为C语言.f2c官网:http://www.n

C语言中复数运算及调用blas,lapack中复数函数进行科学计算

C语言中常用的数据类型主要int, float ,double ,char 等,但在科学运算中复数扮演着重要角色.这里讲下C语言中的复数运算以及如何调用blas,lapack库中的复数函数来进行科学计算. 1.C语言中的复数运算. C语言中若要用的复数,需要包含头文件complex.h,下面看看一些基本的例子 #include <stdio.h> #include"complex.h" int main() { complex a, b, c, d, f; a = 1 +

Eigen使用 BLAS/LAPACK 作为 backend

https://eigen.tuxfamily.org/dox/TopicUsingBlasLapack.html Eigen 3.3之后的版本可以调用BLAS和LAPACK作为backend, 使用方法也很简单: 在引用Eigen库之前, 先加入以下宏定义: #define EIGEN_USE_BLAS 之后在编译的时候, 链接上相应的库即可, g++ demo.cpp -lblas 原文地址:https://www.cnblogs.com/yaos/p/12122260.html

[转]BLAS简介

BLAS(Basic Linear Algebra Subprograms)是一组线性代数计算中通用的基本运算操作函数集合[1]?.BLAS Technical (BLAST) Forum负责规范BLAS函数接口,?并在网站[1]公布一个由Fortran语言编写的BLAS库.这个Fortran版BLAS库通常被称为BLAS参考库(the reference implementation). BLAS参考库使用的算法能高效地给出正确的结果,但仍有许多优化潜力.要想获得更高的计算效率,可以使用优化的

linux python 安装 nose lapack atlas numpy scipy

linux python 安装 nose lapack atlas numpy scipy --http://lib.csdn.net/article/python/1262 作者:maple1149 The first step of machine larning . 环境配置: OS:ubuntu 10.04 Python :Python 2.6.5 1.安装nose 这个安装还比较顺利,基本没报错... 下载nose: https://nose.readthedocs.org/en/la

【Python笔记】如何编译不依赖lapack和atlas库的NumPy包

NumPy是科学计算方面的一个Python库,在数据挖掘或机器学习或科学统计等领域经常被用到,官网在这里. 在实际业务中,为发挥NumPy的高性能,在编译NumPy时会依赖一些经过特别优化的第三方科学计算库.对于初次接触NumPy的新手来说,从源码编译安装依赖外部库的NumPy通常不是一个简单的任务. 事实上,NumPy这个Python包本身不需依赖任何第三方库就能完成编译和安装使用,只不过其计算性能会受到影响. 本篇笔记记录的是如何在不依赖外部库的情况下来编译使用NumPy,这样做为了理清Nu

scikit-learn:7. Computational Performance(计算效能&lt;延迟和吞吐量&gt;)

参考:http://scikit-learn.org/stable/modules/computational_performance.html 对于有些应用,estimators的计算效能(主要指预测新样本时的延迟和吞吐量)非常关键,我们也考虑训练的效能,但由于训练可以offline,所以我们更关注预测时的效能问题. 预测延迟(Prediction latency):预测一个新样本花费的时间(the elapsed time necessary to make a prediction). 预

Desktop Ubuntu 14.04LTS/16.04科学计算环境配置

Desktop Ubuntu 14.04LTS/16.04科学计算环境配置 计算机硬件配置 cpu i5 6代 内存容量 8G gpu GTX960 显存容量 2G(建议显存在4G以上,否则一些稍具规模的神经网络无法训练,会提示显存容量不足) 配置顺序 安装包 重要依赖 安装ubuntu            14.04   安装显卡驱动         nvidia-367   安装cuda tool kit        8.0   安装cuDNN             v5 安装版本取决