centos7 配置caffe环境
一,显卡驱动安装
在英伟达官网选择适合自己机器的显卡驱动
chmod +x NVIDIA-linux-x86_64-384.98.run
禁用nouveau
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
reboot #重启系统
运行安装文件
./NVIDIA-linux-x86_64-384.98.run
按照步骤操作就没有问题
nvidia-smi #测试是否安装成功
二,安装cuda和cudnn
1,cuda直接运行cuda的安装文件,然后记住在驱动那里选择 no,就可以了。
2,cudnn,解压cudnn的压缩包。进入include
sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件
sudo cp lib* /usr/local/cuda/lib64/
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
设置cuda的环境变量
sudo gedit /etc/profile
# 在打开的文件末尾加入:
export PATH = /usr/local/cuda/bin:$PATH
# 保存之后,创建链接文件:
sudo vim /etc/ld.so.conf.d/cuda.conf
# 按下键盘i进行编辑,输入链接库位置:
# /usr/local/cuda/lib64
#然后按esc,输入:wq保存退出。并在终端输入:
$ sudo ldconfig
三,opencv
编译opencv源码,正常编译即可。可以参考我的上一篇
centos可能是纯命令行操作,不带ui,所以在配置opencv的cmake的时候可以采用ccmake,其他的步骤不变,
在build目录下执行 ccmake ..
四,安装caffe的依赖
#安装依赖
sudo yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel
sudo yum install gflags-devel glog-devel lmdb-devel
#安装线性计算库
sudo yum install atlas-devel
但是这里给出的安装中,会遇到找不到hdf5-devel ,lmdb-devel和leveldb-devel这三种情况。没其他的办法只能通过源码编译安装。
1,编译hdf5
#解压之后,进入根目录
mkdir build
./configure
cd build
make
make check
make install
2,编译lmdb
git clone https://github.com/LMDB/lmdb
cd lmdb/libraries/liblmdb
make && make install
3,编译leveldb
git clone https://github.com/google/leveldb
#进入目录
make
cd out-shared
cp lib* /usr/local/lib
五,编译caffe
1,修改Makefile.config
2,make -j8
遇到的问题:
这里的问题基本上都是环境变量链接的问题
例如:找不到xx.h
在Makefile.config中INCLUDE_DIR的后面加上 xx的include的路径
例如:/bin/ld:cannot find lxxx
步骤:
1,先找到xxx.so的库的实际路径
2,ln -s /PATH/xxx.so /usr/lib/xxx.so
基本上这样的问题都可以解决。
**但是这里还有一个问题:**cannot find -latlas
这里是因为atlas的命名发生了改变,所以无论如何都找不到的,所以必须得改名字
/usr/lib64/atlas 这里是实际路径
sudo ln -sv libsatlas.so.3.10 libcblas.so
sudo ln -sv libsatlas.so.3.10 libatlas.so
如果要编译python接口
sudo yum install the python-devel