Win7 64Bit + VS2012 + openBLAS0.2.18
2016-07-20 11:40
344 查看
为了方便神经网络模型的高效运行,需要独立实现一套基于forward框架,因此需要用到openBLAS矩阵计算库。
配置环境:Win7 64Bit + VS2012 + openBLAS0.2.18
(1)下载MSYS2
到这里去下载对应版本http://msys2.github.io/,
如果无法下载,那就百度吧,到处都是。
(2) 在安装目录下找到 msys2_shell.cmd 双击运行。
(3) 同步软件包数据库
如下图:
(4)升级核心包
然后关闭shell,运行安装目录下的autorebase.bat。最后再次启动shell。
(5) 升级其他包
(6) 安装gcc
首先查看可用的安装包:
依次执行
中间出现无法安装或者安装失败,请关闭并重启shell再试。
(7) 安装make
下载地址为:https://github.com/xianyi/OpenBLAS
(2)make 编译
在MSYS2的shell中,cd到openBLAS的解压目录,并make。这个要花挺长时间的。
make过程会自动的探测当前机器和编译环境,设置合适的选项。
如果自动探测不够用,可以考虑下面几个常用选项,具体请参考Makefile.rule文件:
编译32位或者64位, make BINARY=32 或者 make BINARY=64 (如果不设置,会自动探测)
设置目标CPU,比如目标CPU为sandybridge或者nehalem,make TARGET=SANDYBRIDGE 或者 make TARGET=NEHALEM (如果不设置,会自动探测)
在x86/x86_64架构上,程序库包含多个CPU的汇编优化代码,make DYNAMIC_ARCH=1
不包含CBLAS接口,make NO_CBLAS=1
不包含LAPACK, make NO_LAPACK=1
包含LAPACK,但是不包含LAPACKE接口,make NO_LAPACKE=1
编译单线程库, make USE_THREAD=0 (如果不设置为0,会自动探测是否多核处理器,默认使用pthread并行)
编译OpenMP多线程库,make USE_OPENMP=1
设置最大线程数量为n,make NUM_THREADS=n
禁用CPU亲和性,make NO_AFFINITY=1
(3) 整理输出结果
一般我们需要的就3个文件:
(2)设置附加包含目录,即cblas所在路径
(3)添加附加依赖项libopenblas.dll.a,并设置附加依赖目录
配置环境:Win7 64Bit + VS2012 + openBLAS0.2.18
安装MSYS2
官方推荐MinGW + MSYS,这个组合很难搞定,尤其是下载经常被墙。(1)下载MSYS2
到这里去下载对应版本http://msys2.github.io/,
如果无法下载,那就百度吧,到处都是。
(2) 在安装目录下找到 msys2_shell.cmd 双击运行。
(3) 同步软件包数据库
pacman -Sy
如下图:
(4)升级核心包
pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl
然后关闭shell,运行安装目录下的autorebase.bat。最后再次启动shell。
(5) 升级其他包
pacman -Su
(6) 安装gcc
首先查看可用的安装包:
pacman -Sl | grep gcc
依次执行
pacman -S mingw-w64-i686-gcc pacman -S mingw-64-x86_64-gcc pacman -S msys gcc
中间出现无法安装或者安装失败,请关闭并重启shell再试。
(7) 安装make
pacman -S make
编译openBLAS
(1)下载openBLAS下载地址为:https://github.com/xianyi/OpenBLAS
(2)make 编译
在MSYS2的shell中,cd到openBLAS的解压目录,并make。这个要花挺长时间的。
make过程会自动的探测当前机器和编译环境,设置合适的选项。
如果自动探测不够用,可以考虑下面几个常用选项,具体请参考Makefile.rule文件:
编译32位或者64位, make BINARY=32 或者 make BINARY=64 (如果不设置,会自动探测)
设置目标CPU,比如目标CPU为sandybridge或者nehalem,make TARGET=SANDYBRIDGE 或者 make TARGET=NEHALEM (如果不设置,会自动探测)
在x86/x86_64架构上,程序库包含多个CPU的汇编优化代码,make DYNAMIC_ARCH=1
不包含CBLAS接口,make NO_CBLAS=1
不包含LAPACK, make NO_LAPACK=1
包含LAPACK,但是不包含LAPACKE接口,make NO_LAPACKE=1
编译单线程库, make USE_THREAD=0 (如果不设置为0,会自动探测是否多核处理器,默认使用pthread并行)
编译OpenMP多线程库,make USE_OPENMP=1
设置最大线程数量为n,make NUM_THREADS=n
禁用CPU亲和性,make NO_AFFINITY=1
(3) 整理输出结果
一般我们需要的就3个文件:
头文件: cblas.h 静态链接库:libopenblas.dll.a 动态链接库:libopenblas.dll
VS2012调用openBLAS
(1) 引用头文件cblas.h(2)设置附加包含目录,即cblas所在路径
(3)添加附加依赖项libopenblas.dll.a,并设置附加依赖目录
相关文章推荐
- opengl + linux 安装体会
- Gerrit+(nginx/Apache) 的git CodeReview平台
- MySQL Connector for C++ linux (ubuntu ) 安装
- 运维培训连接
- php安装ssh2扩展的方法【Linux平台】
- 隐藏你的 Linux 的命令行历史
- 小记——linux目录
- Eclipse中启动Tomcat出现错误A docBase E:/Tomcat/webapps/lovemu inside the host appBase has been specified
- Array.Add () and += in PowerShell
- centos7的syslog知识点
- [Funkunux] Linux_2.6.22.6的Makefile分析
- Linux下查看文件和文件夹大小 du df
- tomcat-connector的微调: 超时相关的参数
- open_files_limit
- top 内存字段解析
- IIS优化网站性能(转)
- Ubuntu 14.04版本下用源码方式安装GNU Radio
- Bean属性复制:Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier
- #167 – Implementing a Dependency Property That Is A Collection(实现一个Collection类型的依赖属性)
- NGINX 结合 lua 动态修改upstream