安装NVIDIA显卡驱动以及CUDA

时间:2021-07-13 17:22:01

安装显卡驱动

狠了狠心,晚上回家搞搞东西,配了台机器,记录下安装的过程吧。

Ubuntu16.04+cuda8.0

经历过装好驱动和ubuntu桌面冲突,无限循环登录界面的bug,以下是亲测好用的教程

环境

系统:Ubuntu16.04 64bit
显卡:Nvidia GFoce GTX 1080 ti
驱动:NVIDIA-Linux-x86_64-384.59.run
软件版本:cuda8.0

问题声明

在ubutnu上配置cuda时需要安装nvidia的驱动,所以在安装了驱动后出现了进入Ubuntu循环登录的问题。

问题解释(大概)

以下属于我的猜测

一般而言我们安装的ubuntu 的显示器并没有接到nvidia的显卡上,而是使用了intel的集显。我们安装驱动其实只是想将我们运算的显卡的驱动更新,结果都给搞了,所以产生了冲突。当然,也可能时opengl产生的冲突。

Nvidia驱动正确安装过程

找到适合的正确的驱动

去nvidia驱动官网下载

卸载掉原有驱动

sudo apt-get remove –purge nvidia*

安装驱动

进入命令行界面

Ctrl-Alt+F1
给驱动run文件赋予执
sudo chmod a+x NVIDIA-Linux-x86_64-375.20.run

注意下面参数

sudo ./NVIDIA-Linux-x86_64-375.20.run –no-x-check –no-nouveau-check –no-opengl-files

–no-x-check安装驱动时关闭X服务
–no-nouveau-check 安装驱动时禁用nouveau
–no-opengl-files 只安装驱动文件,不安装OpenGL文件
重启,并不会出现循环登录的问题

禁忌

安装CUDA时一定使用runfile文件,这样可以进行选择。不再选择安装驱动,以及在弹出xorg.conf时选择NO
不要使用ubuntu设置中附加驱动中驱动
提醒

cuda安装时会将源文件装在/usr/local/cuda-8.0下,然后会创建一个/usr/local/cuda的链接,所以在安装tensorflow设置cuda和cudnn路径以及拷贝cudnn文件到cuda文件夹下时,注意使用真实的路径
在安装了cuda之后再安装nvidia驱动,可能这和网上“流传”的教程有些出入,但是长得帅的人都这样做了,换句话说,这样做的话会避免出现一些奇怪的问题。比如:tf安装好了出现的缺少libcuda.so.1
再结合各个框架官网的安装教程,相信大家会拥有一个好的开发环境了。那么让我们开始好好调教系统吧。

以上。
http://m.blog.csdn.net/u010159842/article/details/54344683

安装cuda
注意这里下载的是cuda8.0的runfile(local)文件。
这里是nvidia给出的官方安装指南(遇到问题时可以查阅)
下载完cuda8.0后,执行如下语句,运行runfile文件:
sudo sh cuda_8.0.27_linux.run
因为驱动之前已经安装,这里就不要选择安装驱动。其余的都直接默认或者选择是即可。
使用:

sudo gedit /etc/profile

打开“profile”文件,在末尾处添加(注意不要有空格,不然会报错):

export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH

重启电脑:

sudo reboot

3、测试cuda的Samples

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

如果显示的是一些关于GPU的信息,则说明安装成功了。
http://blog.csdn.net/u010837794/article/details/63251725

驱动失效后需要重装,按Ctrl+F1 可能会出现nouveau出现一堆巴拉巴拉报错。。。

解决方案:
在待安装驱动的主机上打开一个终端(Ctrl+Alt+T),或者直接切换到终端界面(Ctrl+Alt+F1),进行如下操作

卸载可能存在的旧版本 nvidia 驱动(对没有安装过 nvidia 驱动的主机,这步可以省略,但推荐执行,无害)

  $sudo apt-get remove --purge nvidia*

安装驱动可能需要的依赖(可选)

  $sudo apt-get update

$sudo apt-get install dkms build-essential linux-headers-generic

把 nouveau 驱动加入黑名单

  $sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

在文件 blacklist-nouveau.conf 中加入如下内容:

  blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

禁用 nouveau 内核模块

  $echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

$sudo update-initramfs -u

重启

cuda 版本

cat /usr/local/cuda/version.txt

cudnn 版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

如何安装cudnn

首先说一下网上大多数中文安装cuDNN教程的错误方式,这种方式真的坑人无数。

简单地说网上的大多错误的安装cuDNN的方式都是将下载后的cuDNN压缩包解压。然后再将cudnn的头文件(cuda/include目录下的.h文件)复制到cuda安装路径的include路径下,将cudnn的库文件(cuda/lib64目录下的所有文件)复制到cuda安装路径的lib64路径下。这种方法如果不重置cuDNN相应的符号链接的话是不能成功的安装cuDNN的。

下面我们说一下正确的安装cuDNN方式,其实跟着官方安装说明进行安装就可以了。

从https://developer.nvidia.com/cudnn上下载cudnn相应版本的压缩包(可能需要注册或登录)。

如果这个压缩包不是.tgz格式的,把这个压缩包重命名为.tgz格式。解压当前的.tgz格式的软件包到系统中的任意路径(这个路径很重要,以下将该路径的绝对路径简称为/your/path/to/cudnn),解压后的文件夹名为cuda,文件夹中包含两个文件夹:一个为include,另一个为lib64。
例如:我将这个压缩包解压在了/usr/local目录下,那么该文件的绝对路径为/usr/local/cuda

将解压后的文件中的lib64文件夹关联到环境变量中。这一步很
cd ~

sudo gedit .bashrc
弹出的gedit文档编辑器(.bashrc中)中最后一行 export LD_LIBRARY_PATH=/your/path/to/cudnn/lib64:$LD_LIBRARY_PATH/your/path/to/cudnn/lib64是指.tgz解压后的文件所在路径中的lib64文件夹。
保存更改的文件后,紧 source .bashrc启一下Terminal(终端),该步骤可以成功的配置cuDNN的Lib文件。

配置cuDNN的最后一步就是将解压后的cuDNN文件夹(一般该文件名为cuda)中的include文件夹(/your/path/to/cudnn/include)中的cudnn.h文件拷贝到/usr/local/cuda/include中,由于进入了系统路径,因此执行该操作时需要获取管理员权限。

打开终端,进入/your/path/to/cudnn/include。其中/your/path/to/cudnn/include指的是.tgz解压后的文件所在路径中的include文件夹。例如:

cd cuda/include
sudo cp *.h /usr/local/cuda/include/

这里写代码片

其中这里的cuda/include对于我自己的安装来说就是/your/path/to/cudnn/include。因为我将cudnn的.tgz压缩包解压到了home的当前用户的路径下,解压后的文件夹名为cuda。

之后,再重置cudnn.h文件的读写权限:

 sudo chmod a+r /usr/local/cuda/include/cudnn.h

至此,cuDNN的配置就全部安装完成了。