1. 安装gpu驱动
-
先查看gpu是否是英伟达的
lspci | grep -i nvidia
-
查看系统架构
uname -m && cat /etc/*release
// x86_64才能安装caffe -
安装nvidia驱动(如果没安装的话)
下载地址:http://www.geforce.cn/drivers
安装:1. 关闭X-Window,很简单:`sudo service lightdm stop`,然后切换到tty1:Ctrl+Alt+F1即可 2. chmod +x NVIDIA*.run 3. sudo ./NVIDIA*.run开始安装,安装过程比较快,根据提示选择即可 4. 安装完毕后,重新启动X-Window:sudo service lightdm start,正常直接就跳到图形界面,如果没有,手动Ctrl+Alt+F7进入图形界面 5. 查看显卡驱动安装情况nvidia-smi,正常显示显存就没问题
-
注意
有可能进入Ctrl+Alt+F1的过程黑屏,修正方式为编辑/etc/default/grub 修改GRUB_CMDLINE_LINUX_DEFAULT的值为nomodeset 更新grub:sudo update-grub 重启
2. 安装cuda
-
查看gpu是否支持cuda(Compute Unified Device Architecture),以及计算容量
浏览网页查看https://developer.nvidia.com/cuda-gpus
-
如果本机gpu支持cuda,就可以安装cuda了
下载地址:https://developer.nvidia.com/cuda-downloads
-
下载相应版本的.run文件,安装
chmod +x *.run sudo ./*.run
这个过程中如果自己已经安装了nvidia驱动,安装过程询问是否需要安装显卡驱动时选择否
3. 安装cudnn
-
安装cuDNN(NVIDIA cuDNN是用于深度神经网络的GPU加速库)
下载地址:https://developer.nvidia.com/rdp/cudnn-download
(需要注册)
安装:// 拷贝cuDNN库文件到cuda目录下 tar -zxvf cudnn-7.0-linux-x64-v4.0-prod.tgz cd cuda sudo cp lib64/* /usr/local/cuda/lib64/ sudo cp include/cudnn.h /usr/local/cuda/include/ // 以下内容只是为了确保安装是否正确,可以选择不运行 //设置环境变量,在/etc/profile中添加CUDA环境变量 sudo gedit /etc/profile //添加 export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH export LIBRARY_PATH=/usr/local/cuda/lib64:$LIBRARY_PATH //进入/usr/local/cuda/samples,执行下面的命令来build samples sudo make all -j4 //全部编译完成后,进入 samples/bin/x86_64/linux/release,运行deviceQuery ./deviceQuery //如果出现显卡信息,则驱动及显卡安装成功
4. 编译Caffe
-
先安装caffe的依赖,这个参考
https://blog.csdn.net/u014451076/article/details/74629403
-
安装Caffe
- 下载caffe git clone git://github.com/BVLC/caffe.git
- 在该目录下拷贝makefile配置文件 cp Makefile.config.example Makefile.config
- makefile.config文件USE_CUDNN := 1 前面的“#”去掉
-
编译
make all make test make runtest
-
注意
-
如果遇到错误
error while loading shared libraries: libcudnn.so.x.x: cannot open shared object file: No such file or directory
之类的问题,解决方法如下:sudo cp /usr/local/cuda/lib64/libcudart.so.x.x /usr/local/lib/libcudart.so.x.x && sudo ldconfig sudo cp /usr/local/cuda/lib64/libcublas.so.x.x /usr/local/lib/libcublas.so.x.x && sudo ldconfig sudo cp /usr/local/cuda/lib64/libcurand.so.x.x /usr/local/lib/libcurand.so.x.x && sudo ldconfig sudo cp /usr/local/cuda/lib64/libcudnn.so.x /usr/local/lib/libcudnn.so.x && sudo ldconfig
如果使用的是cuda10.0和cudnn7,那么命令如下:
sudo cp /usr/local/cuda/lib64/libcudart.so.10.0 /usr/local/lib/libcudart.so.10.0 && sudo ldconfig sudo cp /usr/local/cuda/lib64/libcublas.so.10.0 /usr/local/lib/libcublas.so.10.0 && sudo ldconfig sudo cp /usr/local/cuda/lib64/libcurand.so.10.0 /usr/local/lib/libcurand.so.10.0 && sudo ldconfig sudo cp /usr/local/cuda/lib64/libcudnn.so.7 /usr/local/lib/libcudnn.so.7 && sudo ldconfig
-
如果遇到
Invalid MEX-file '/path/to/caffe/matlab/+caffe/private/caffe_.mexa64': /path/to/MATLAB/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version GLIBCXX_3.4.21 not found (required by /path/to/caffe/matlab/+caffe/private/caffe_.mexa64).
添加环境变量:export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/usr/lib/x86_64-linux-gnu/libfreetype.so.6
-
5. 测试
cd caffe/
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh