目录
系统配置说明
操作系统 | 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失败(外网拦截),可以进行以下相关操作:
- 下载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)
完成!