ubuntu16.04+gtx1080ti+caffe安装记录


 这几天安装cuda出现了很多问题,特意记录并分享给需要的人。拿走不谢-:)

我的环境:GTX1080Ti,Ubuntu16.04,intel集显

遇到的问题:我安装显卡驱动出了问题,第一次安装官网最新版驱动381.xx(记得不清楚了),安装完驱动,安装cuda,caffe没有问题,但是训练mnist网络时出错:cannot
create cublas handle. cublas won’t be available。
查了之后得知是驱动安装不正确。反思是不是驱动版本太高。第二次直接安装cuda8.0 run文件,并安装其自带的驱动(375.26),安装之后驱动能正常工作,但是无法识别GPU型号。第三次直接安装cuda8.0 deb文件,成功了,驱动版本是(375.66),训练mnist网络也没有问题,但是重启黑屏,当时没有找到很好的方法(后来找到了),就又重新安装了。第四次直接用命令行apt-get install安装的375驱动,刚好是375.66,然后安装cuda8.0 run文件,没有安装其自带的驱动,结果成功了,但是也遇到重启黑屏。(最后面更新部分有怎样下载旧版本驱动的说明)

第一部分:安装nvidia驱动,CUDA8.0和cudnn5.1

备注:开机通过BIOS更改初始显卡可以选择集显(IGFX)或独显(PCIE),独显进入ubuntu需要从启动菜单"高级模式"->"Recovery Mode"->”Resume”,多按几次enter就可以进入文本界面(由于没有驱动)。

Step 1:检查是否安装有nvidia第三方驱动nouveau

lsmod |grep nouveau #若有输出,需要禁止该nvidia第三方驱动,若无,忽略该步骤

sudo touch /etc/modprobe.d/blacklist-nouveau.conf
sudo chmod a+w /etc/modprobe.d/blacklist-nouveau.conf

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

#添加几行:

blacklist nouveau

options nouveau modeset=0

sudo update-initramfs -u

reboot#重启

Step 2:安装显卡驱动(以apt-get install形式安装,驱动的安装可能需要多试几次了,其他安装方式请查看官网或谷歌百度)

Ctrl+Alt+F1#进入文本模式(已经是文本模式忽略)

sudo service lightdm stop#关闭图形化环境

sudo apt-get update

sudo apt-get install nvidia-375

sudo nvidia-smi#安装完验证,若列出了GPU的信息列表则表示驱动安装成功

sudo service lightdm start#会自动切换到图像界面

Step 3:安装CUDA8.0(以run文件为例)

sudo bash cuda_8.0.61_375.26_linux.run

#安装过程中,不安装驱动(可能由于版本问题,需要安装cuda驱动,不安装opengl),因为已经安装过了,其他的默认或选择就好,在网上看到说安装cuda之前,需要安装一些依赖,我有安装过,但不知道有没有用,安装cuda最好看看官网的安装指南CUDA Toolkit Documentation,一步一步来,比较保险

#依赖部分 sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

Step 4:环境变量设置

sudo vim ~/.bashrc#打开用户环境变量文件

#将以下两行加入到文件末尾

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

source .bashrc#让环境变量生效

Step 5:测试CUDA的sammples

cd /usr/local/cuda-8.0/samples#也可以是/home/usrname/NVIDIA_CUDA-8.0_Samples

make

cd bin/x86_64/linux/release/

./deviceQuery#最后能看到Result = PASS就算成功

./bandwidthTest#同上,能看到Result = PASS就算成功

Step 6:配置cuDNN5.1

#下载(需要注册)cuDNN5.1之后进行解压,解压后的文件夹为cuda

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/lib* /usr/local/cuda/lib64/
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so

第二部分:配置安装caffe

Step 1:安装caffe,pycaffe依赖

sudo apt-get upgrade

sudo apt-get install -y build-essential cmake git pkg-config

sudo apt-get install python-protobuf

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install –no-install-recommends libboost-all-dev

sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev

#install ATLAS by sudo apt-get install libatlas-base-dev or install OpenBLAS by sudo apt-get install libopenblas-dev or MKL for better CPU performance

sudo apt-get install libatlas-base-dev

#Python

sudo apt-get install python-dev

sudo apt-get install -y python-pip

sudo apt-get install python-numpy

sudo apt-get install python-matplotlib

sudo pip install scikit-image

Step 2:配置Makefile.config

sudo cp Makefile.config.example Makefile.config

sudo vim Makefile.config

#根据个人情况修改文件:

USE_CUDNN := 1#若使用cudnn

USE_OPENCV := 1

USE_LEVELDB := 1

USE_LMDB := 1

CUDA_DIR := /usr/local/cuda

PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include

PYTHON_LIB := /usr/lib

WITH_PYTHON_LAYER := 1#若要使用Python来编写layer

#以下两行比较重要,否则会报错

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/hdf5/serial /usr/include/hdf5/serial

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

Step 3:编译caffe

make all

make test

make runtest

make pycaffe#不用python接口可以去掉

(需要设置环境变量后可用

sudo echo export PYTHONPATH=”/path/to/caffe/python” >> ~/.bashrc

source ~/.bashrc)

make distribute#可不用,把所有执行的相关文件放在一个目录下

#如果没有什么问题的话,就应该算成功了

Step 4:验证caffe

#用mnist网络验证

cd /xx/xx/caffe-master#回到Caffe根目录

./data/mnist/get_mnist.sh#下载MNIST数据库并解压缩

./examples/mnist/create_mnist.sh#将其转换成Lmdb数据库格式

./examples/mnist/train_lenet.sh#训练网络,没有问题应该能看到损失与精度数值,至此,恭喜你大功告成!

第三部分:重启循环进入登录界面,重启黑屏解决办法

question 1:重启之后重复进入登录界面解决办法(如果cuda deb安装驱动,没有/proc/driver/nvidia,执行nvidia-xconfig也能解决)

利用启动菜单"高级模式"->"Recovery
Mode"->”Resume”,等系统到登陆界面,按下”Ctrl+Alt+F1”,输入用户名密码登陆后,进行以下操作(可能要执行几次):

sudo nvidia-xconfig

#当成功建立/etc/X11/xorg.conf并备份,则说明成功

question 2:重启之后黑屏(安装nvidia驱动容易出现这个问题),解决办法

sudo vim /etc/default/grub

#将quiet splash”改为”quiet splash nomodeset”

sudo update-grub

reboot

第四部分:参考的教程,在这里表示衷心的感谢

http://blog.csdn.net/xuzhongxiong/article/details/52717285

http://blog.csdn.net/Liekkas_Javey/article/details/53391481

CUDA Toolkit Documentation

—————————第一次更新2017.11.17———————-

驱动的问题:最近发现cuda工作又不正常了,运行pytorch例程,出现RuntimeError: CUDNN_STATUS_INTERNAL_ERROR,然后运行caffe例程,出现syncedmem.hpp:19] Check failed: error == cudaSuccess (30 vs. 0) unknown error,查看了一下驱动版本为最新的384.xx,以前cuda正常工作时的驱动是375.66,然后我尝试重新安装375.66,无奈用命令行安装375版本后,发现显示的版本还是384,并且caffe、pytorch还是原来的错误,官网上又只能下载最新的版本,折腾了好几天,终于找到安装旧版本的方法,由于官网的驱动下载地址每次都只是改了个驱动号而已,因此只需要更改下载链接中驱动的版本号即可,比如官网给的最新驱动384的下载链接为http://us.download.nvidia.com/XFree86/Linux-x86_64/384.xx/NVIDIA-Linux-x86_64-384.xx.run,改为375.66的为http://us.download.nvidia.com/XFree86/Linux-x86_64/375.66/NVIDIA-Linux-x86_64-375.66.run,就可以下载旧版本的驱动。

备注:个人感觉官方下载的驱动比apt-get install安装的驱动好用。

    原文作者:麦克白
    原文地址: https://zhuanlan.zhihu.com/p/27917556
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞