CentOS7系统 MXNet(GPU版本)安装

目录

系统配置说明

安装lapack

0.下载解压lapack

1.编译blas

2.编译cblas

3.编译lapack以及lapcake

安装Openblas

安装opencv3

0.安装依赖

1.下载并解压opencv3.3.1.zip

2.  编译源文件和安装

3. 配置环境变量 

4. 测试

安装Mxnet

1.下载Mxnet包

2. 修改配置文件

3. 编译源码

4. 绑定Python

5. 测试


系统配置说明

操作系统

CentOS7

 

GPU

2

 NVIDIA Tesla P100

Python

2.7.5

 

CUDA

9.2.148

 

CUDNN

7.2.1

 

GPU驱动

396.44

 

 

宁可信其有

yum install -y opencv opencv-devel atlas-devel
yum install gcc gcc-c++ 
yum install cmake
yum -y install epel-release
yum install python-pip
pip install --upgrade pip
yum install gcc-gfortran

安装lapack

0.下载解压lapack

下载lapack源码,其中包括BLAS源码,以及BLAS的C语言接口CBLAS

将lapack源码压缩包解压,并进入解压后目

 cp make.inc.example make.inc

1.编译blas

cd BLAS/SRC

gfortran -c -O3 *.f  # 编译所有的 .f 文件,生成 .o文件

ar rv libblas.a *.o  # 链接所有的 .o文件,生成.a 文件

sudo cp libblas.a /usr/local/lib  #将库文件复制到系统库目录

sudo cp libblas.a /usr/lib

2.编译cblas

cd .. && cd ../CBLAS

cp ../BLAS/SRC/libblas.a ./testing/  # 将上一步编译成功的 libblas.a复制到 CBLAS目录下的testing子目录

make  # 编译所有的目录

cp ../libcblas.a /usr/local/lib  #将库文件复制到系统库目录下

cp ../libcblas.a /usr/lib

3.编译lapack以及lapcake

cd ..

vim Makefile

# 旧版本

lib: lapacklib tmglib

#lib: blaslib variants lapacklib tmglib

# 新版本,使用

#lib: lapacklib tmglib

lib: blaslib variants lapacklib tmglib

make

cd LAPACKE

make

cp include/*.h /usr/local/include

cd ..

cp *.a /usr/local/lib

cp *.a /usr/lib

如果出现:make[1]: *** [znep.out] Error 139

ulimit -s unlimited

安装Openblas

下载源码

make
make install
cp /opt/OpenBLAS/lib/libopenblas.* /usr/lib
cp /opt/OpenBLAS/lib/libopenblas.* /usr/lib64

安装opencv3

0.安装依赖

sudo yum groupinstall "Development Tools" –y
sudo yum install gcc cmake gtk2-devel numpy pkgconfig –y

1.下载并解压opencv3.3.1.zip

下载文件,文件下载地址:

GitHub:https://github.com/opencv/opencv/archive/3.3.1.zip

百度网盘:https://pan.baidu.com/s/1cpXbt0

解压opencv3.3.1.zip文件到当前文件夹:

cd opt/src
unzip opencv3.3.1.zip

2.  编译源文件和安装

进入解压后的opencv-3.3.1文件夹,新建一个build文件夹,进入build,编译安装。

cd opt/src/opencv-3.3.1
mkdir build
cd build
sudo cmake -D CMAKE_BUILD_TYPE=DEBUG -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make
sudo make install

 

注意:由于直接cmake可能会下载ippicv失败(外网拦截),可以进行以下相关操作:

  1. 下载ippicv_2017u3_lnx_intel64_general_20170822.tgz (对应opencv3.3.1版本,看报错信息),同理,若安装opencv3.4则将ippicv_2017u3_lnx_intel64_general_20180518.tgz拷至相应文件夹;

Ippicv文件下载地址:GitHubhttps://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20170822

百度网盘:https://pan.baidu.com/s/1o8ywdZW

2. 进入optl/src/opencv3.3.1文件夹创建一个.cache文件夹,并拷贝相应的文件:

cd opt/src/opencv-3.3.1
ipp_file=ippicv_2017u3_lnx_intel64_general_20170822.tgz &&
ipp_hash=$(md5sum usr/local/src/$ipp_file | cut -d" " -f1) &&
ipp_dir=.cache/ippicv &&
mkdir -p ${ipp_dir} &&
cp opt/src/$ipp_file $ipp_dir/$ipp_hash-$ipp_file

 这样就可以使CMake脚本使用自己下载好的文件,而不是在运行过程中去下载;然后重新运行编译命令和安装命令。

3. 配置环境变量 

添加环境路径可以参考:https://blog.csdn.net/toints/article/details/43736319?tdsourcetag=s_pctim_aiomsg

注意opencv.pc文件的位置,在/lib或/lib64文件夹下,若在lib64文件夹下,可以cp 到lib文件夹,之后把路径添加到系统文件中(避免每次执行程序前配置)。

vim /etc/profile 
#将export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/写入 /etc/profile
source /etc/profile

4. 测试

/*vim test.cpp*/
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include <opencv2/imgproc/imgproc.hpp>  
int main(int argc,char *argv[])  
{  
cv::Mat image;  
image=cv::imread("1.png");    
cv::namedWindow("1.png");  
cv::imshow("1.png",image);  
cv::waitKey();  
return 0;  
}  

编译执行:

g++ -g test.cpp `pkg-config --cflags --libs opencv`
./a.out

 未报错则安装成功!

如出现:

./a.out: error while loading shared libraries: libopencv_cudabgsegm.so.3.3: cannot open shared object file: No such file or director

 解决:

运行find / -name libopencv_cudabgsegm.so.3.3 查找文件,找到

/usr/local/lib/libopencv_cudabgsegm.so.3.3

 

修改vim /etc/ld.so.conf,添加/usr/local/lib

运行ldconfig

重新运行./a.out

安装Mxnet

1.下载Mxnet包

git clone --recursive   https://github.com/dmlc/mxnet
cd mxnet
cp   make/config.mk   ./

2. 修改配置文件

USE_CUDA = 1
USE_CUDA_PATH = /usr/local/cuda
USE_CUDNN = 1
USE_BLAS = openblas

3. 编译源码

1、make -j4

4. 绑定Python

cd python
sudo pip install –update pip
sudo pip install -e .

注意:在运行pip install -e .时会要求更新一些包,可以使用pip install –upgrad xx 命令,若出现无法uninstall 旧包情况,可以使用pip install --ignore-installed xxx 命令。

5. 测试

$python
>>> import mxnet as mx
>>> a = mx.nd.ones((2, 3), mx.gpu())
>>> b = a * 2 + 1
>>> b.asnumpy()
array([[ 3.,  3., 3.],
     [ 3., 3., 3.]], dtype=float32)

完成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值