可以zip文件下载,也可以git下载。
OpenBLAS各个版本下载:https://github.com/xianyi/OpenBLAS/releases
git下载:
git clone -b v0.3.14 https://github.com/xianyi/OpenBLAS.git
对我帮助最大的两个博客是【msys2】Child process exited with status 127 和OpenBLAS windows 10 编译
因为之前使用过msys2编译过boost库,那是两年前的事情了,现在要编译OpenBLAS库,发现很多命令都不好用了,最终各种修补都没有解决,最终解决方案是安装最新版msys2.
然后编译OpenBLAS库。
windows开始菜单打开 MSYS2 MSYS命令行
通过命令
pacman -Ss gcc
查询完整的gcc包名
安装MinGW gcc编译器,输入命令
pacman -S mingw-w64-x86_64-gcc
安装fortran编译器,否则不编译LAPACK
pacman -S mingw-w64-x86_64-gcc-fortran
安装 perl
pacman -S --noconfirm perl
安装 MSYS2 的make
pacman -S make
然后,windows开始菜单搜索打开MSYS2 MinGW 64-bit控制面板
查看gcc版本
gcc --version
进入OpenBLAS文件夹输入make指令编译
make完成后,创建一个OpenBLAS文件夹,输入一个安装目录,将编译好的库放在这里面,例如输入指令
make install PREFIX="your-path"
会在这个目录里面创建开发所需要的bin,include,lib文件夹和相应的文件,复制到其他软件要求的目录并添加要求的环境变量即可
参考:Windows使用mingw编译openblas
参考:Windows 10 VS2015 环境下安装使用BLAS线性代数库
参考:Windows下MSYS2中编译OpenBLAS过程记录
参考:OpenBLAS windows 10 编译
参考:【msys2】Child process exited with status 127
我是用的是Ubuntu16编译的,里面已经安装了gcc、gfortran、perl
使用如下命令查看版本号确定有没有安装
gcc --version
gfortran --version
perl --version
没有安装的话安装一下,安装过的直接进行下一步操作。
使用git下载慢的可以直接下载zip包,然后解压。
进入OpenBLAS文件夹。
编译
make
如果知道电脑几个核可以指定编译线程数,比如电脑8核
make -j8
如果不知道电脑几个核,使用下面的命令,自动使用最多的线程数编译
make -j$(nproc)
编译完成后安装,可以自己指定安装位置,比如:
sudo make PREFIX=/usr/local/OpenBLAS install
如果是给caffe使用,需要修改caffe配置文件如下几行:
# open for OpenBlas
BLAS := open
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
BLAS_INCLUDE := /usr/local/OpenBLAS/include
BLAS_LIB := /usr/local/OpenBLAS/lib
3. 添加环境变量
在 /etc/profile 末尾加上 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/OpenBLAS/lib/ 然后 sudo source /etc/profile
注:直接安装在/usr/local 下应该就不需要添加环境变量
4. 编译Caffe
5. 可在环境变量中设置OpenBLAS所使用的CPU线程数
export OPENBLAS_NUM_THREADS=4
参考:Linux下软件安装:Openblas安装
经过测试发现:OpenBLAS0.3.14 比OpenBLAS0.2.14速度翻了一倍,之前需要100ms推理的,现在只需要不到50ms.