openblas centos编译(centos7)
这篇文章给大家聊聊关于openblas centos编译,以及centos7对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
如何在linux系统下安装深度学习的caffe框架
Caffe需要预先安装一些依赖项,首先是CUDA驱动。不论是CentOS还是Ubuntu都预装了开源的nouveau显卡驱动(SUSE没有这种问题),如果不禁用,则CUDA驱动不能正确安装。以Ubuntu为例,介绍一下这里的处理方法,当然也有其他处理方法。
#sudovi/etc/modprobe.d/blacklist.conf
#增加一行:blacklistnouveau
sudoapt-get--purgeremovexserver-xorg-video-nouveau#把官方驱动彻底卸载:
sudoapt-get--purgeremovenvidia-*#清除之前安装的任何NVIDIA驱动
sudoservicelightdmstop#进命令行,关闭Xserver
sudokillallXorg
然后下载并安装NVIDIA CUDA驱动包,接着安装安装BLAS、OpenCV、Boost这三个库。BLAS数学库可以是ATLAS, MKL,或 OpenBLAS,OpenCV要求2.4以上版本,Boost要求1.55版本以上。可选安装Python MATLAB Caffe库,还有numpy,pandas之类的Python类库。安装MATLAB,以确保mex在path路径中,这些就够你折腾一个星期了,完事以后就可以编译安装了:
cpMakefile.config.exampleMakefile.config
#AdjustMakefile.config(forexample,ifusingAnacondaPython,orifcuDNNisdesired)
makeall
maketest
makeruntest
哦对了,Caffe显卡要求:Titan Xs, K80s, GTX 980s, K40s, K20s, Titans, and GTX 770s
mkldnn/onednn/openblas
需要将 MKL_LIB_PATH="intel_2020.3.279/lib/intel64:intel_2020.3.279/mkl/lib/intel64"加入到LD_LIBRARY_PATH中。
example目录 intel_2020.3.279/mkl/examples/cblas/source/cblas_sgemmx.c这是mkl自带的example,还有cblas_gemm_s8u8s32x.c代表signed int8,unsigned int8,signed int32,对应传入的A、B、C矩阵数据类型,表示INT8量化加速接口。
编译命令:
make libintel64 function=cblas_gemm_s8u8s32 compiler=gnu
make libintel64 function=cblas_sgemm compiler=gnu
可以指定编译器为gnu还是intel的,也可以指定是并行多线程parallel还是单线程
先从git clone,然后需要指定make install的安装目录:
编译程序时使用命令 g++-g-o sgemm-std=c++11-I${DNNLROOT}/include-L${DNNLROOT}/lib64 cpu_sgemm_and_matmul.cpp-ldnnl
其中$DNNLROOT是make install的目录,否则会报 dnnl_config.h.in以及 libdnnl.so找不到的错误。
其中 oneDNN/examples/tutorials/matmul/cpu_sgemm_and_matmul.cpp是测试矩阵乘接口的文件,但是要放到examples目录下,因为需要引入example_utils.hpp头文件。
在onednn中,gemm有三种实现方案,gemm,static gemm和dynamic gemm。这些在mkl是没有的。
旧版mkl-dnn的gemm使用的是mkl的gemm,mkl对于小矩阵的计算,速度并不快。旧版mkl-dnn主要是做cnn和lstm的优化
onednn中,有两个选择,1继续使用mkl的gemm,2使用新的gemm。
默认安装到/opt/OpenBLAS/lib,否则需要将其加到LD_LIBRARY_PATH。
编译命令: g++-g-o sgemm compare_sgemm_shgemm.c-I/opt/OpenBLAS/include-L/opt/OpenBLAS/lib/-lopenblas
centos7.6 cat/proc/cpuinfo| grep name| cut-f2-d:| uniq-c
ubuntu18.04 grep"model name"/proc/cpuinfo|awk-F':''{print$NF}'
IDC服务器:Intel(R) Xeon(R) CPU E5-2680 v4@ 2.40GHz
MIT服务器:Intel(R) Core(TM) i7-7800X CPU@ 3.50GHz