ubuntu 16.04 显卡驱动+CUDA+cuDNN安装

ubuntu 16.04 显卡驱动+CUDA+cuDNN安装

##一. ubuntu16.04 安装显卡驱动, CUDA和cuDNN
参考链接
cudnn5+caffe+ubuntu14.04安装配置

Ubuntu16.04 安装NVIDIA英伟达驱动教程 及常见几种报错Error的解决方案

1. 安装显卡驱动

1.1 下载驱动
下载NVIDIA官网的.run文件的驱动文件,利用禁用nouveau的方式进行安装
【http://www.geforce.cn/drivers】下载驱动程序

![image.png-116.9kB][1]
在这里插入图片描述

显卡为:GT 1030 , 对应驱动:NVIDIA-Linux-x86_64-418.56.run
正确步骤的参考链接【https://blog.csdn.net/u010159842/article/details/54344683】

1.2 卸载掉原有nvidia-的驱动
下载好.run文件的驱动后,卸载掉原有nvidia-的驱动

sudo apt-get remove nvidia-* 
sudo apt-get remove nvidia*

说明:如果使用的是apt-get安装可以使用这种方法卸载,如果使用的是runfile,则使用–uninstall命令,当然runfile安
装的时候会卸载掉之前的驱动,所以可以不用手动去卸载。

1.3. 禁用nouveau
打开编辑配置文件:
/etc/modprobe.d/blacklist.conf
在最后一行添加:

blacklist nouveau 

禁用nouveau第三方驱动,之后也不需要改回来
终端执行以下命令更新一下:

sudo update-initramfs -u

禁用X服务
执行:

sudo /etc/init.d/lightdm stop

重启:sudo reboot

1.4 安装驱动
ctrl + alt + F1, 进入命令行界面

给驱动run文件赋予执行权限*

sudo chmod a+x NVIDIA-Linux-x86_64-375.20.run

安装(注意 参数)

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

–no-opengl-files #只安装驱动文件,不安装OpenGL文件。这个参数最重要 –no-x-check #安装驱动时不检查X服务 –no-nouveau-check #安装驱动时不检查nouveau
后面两个参数可不加,但我都加了

注意此过程中的选择:

Accept License; Continue Installation; Yes--Register the Kernel module sources with DKMS; Yes--Install NviDia' 32-bit libraries; Installing DKMS kernel module:-------100% Yes--run the nvidia-xconfig...update...

重启,并不会出现循环登录的问题
执行以下命令

nvidia-smi

显示:
在这里插入图片描述

安装成功

###2. 安装CUDA
参考:
【https://blog.csdn.net/u010480194/article/details/54287335】
【https://blog.csdn.net/u010480194/article/details/54287335】

2.1 下载显卡支持的CUDA版本
查看支持[https://developer.nvidia.com/cuda-gpus]
官网下载链接[https://developer.nvidia.com/cuda-toolkit-archive]
2.2 检查自己的电脑环境是否具备安装CUDA的条件 (此部分安装官方英文指导pdf来就行)
a) 检查自己的GPU是否是CUDA-capable

在终端中输入: $ lspci | grep -i nvidia ,会显示自己的NVIDIA GPU版本信息
去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中
If your graphics card is from NVIDIA and it is listed in http://developer.nvidia.com/ cuda-gpus, your GPU is CUDA-capable.
b) 检查自己的Linux版本是否支持 CUDA(Ubuntu 16.04没问题)

c) 检查自己的系统中是否装了gcc

在终端中输入: $gcc –version可以查看自己的gcc版本信息
gcc 4.8.4
d) 检查是否安装了kernel headerpackage development

在终端中输入: $uname -r 可以查看自己的kernel版本信息 4.15.0-47-generic
在终端中输入:$ sudo apt-get install linux-headers-$(uname -r)
可以安装对应kernel版本的kernel header和package development
一般安装系统时就安装了
如果没有满足要求的话,可以参考cuda的官方文档,里面有详细的针对每个问题的解决方案。

2.3 前面安装驱动已经禁用nouveau了,可以直接安装CUDA
重启电脑,到达登录界面时,ctrl+alt+f1进入工作台,登录账户
在text mode中输入

sudo service lightdm stop 

关闭图形化界面

//切换到cuda安装文件的路径,然后赋予权限
sudo chmod 777 cuda_8.0.61_375.26_linux.run 
//运行安装,不安装opengl就在后面加  --no-opengl-libs
sudo sh cuda_8.0.61_375.26_linux.run --no-opengl-libs 

//在运行以下代码前,一定要先知道当选择选项 Install NVIDIA Accelerated Graphics Driver for
//nvidia*时候选择取消,其他选项选择yes,或则回车,
//并且查看协议时候有快捷键CART + D

提示是否安装显卡驱动,因为第一步已经装过了,所以这里no:

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: no

然后选择安装目录,默认就好(可以直接回车)

Enter Toolkit Location
 [ default is /usr/local/cuda-8.0 ]:

接着是否创建链接,yes创建即可:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: yes

接下来提示是否安装Sample,程序示例,以及保存位置,最好进行安装,一会测试是否安装成功用,保存位置默认即可

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: yes
Enter CUDA Samples Location
[ default is /home/relaybot ]:  //这里我安装在默认的文件夹下面

其实到现在CUDA 8.0已经安装好了,它的提示中有一段:

Please make sure that
-   PATH includes /usr/local/cuda-8.0/bin
-   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root
//添加环境变量和设置
    To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin    
//可以在 /usr/local/cuda-8.0/bin 里运行卸载程序

安装出现的warning
前面第一步已经安装过NVIDIA的驱动,在安装cuda的过程中没有选择安装Drivers选项,所以出现如下警告

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driver
//缺少一些驱动
Logfile is /opt/temp//cuda_install_6583.log
sudo service lightdm start //重新启动图形化界面。

Alt + ctrl +F7 //返回到图形化登录界面,输入密码登录。
//如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。

设置环境变量
终端中输入 $ sudo gedit /etc/profile
末尾添加:
官方上面是直接输入。但是在/etc/profile 上写会更好

 export PATH=/usr/local/cuda-7.5/bin/:$PATH
 export LD_LIBRARY_PATH=/usr/local/cuda7.5/lib64/:$LD_LIBRARY_PATH

然后重新加载环境变量

$ source /etc/profile  

查看一下是否设置成功了

$ env  

检查Device Node Verification。
检查路径~/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files)
如果没有的话,可以参考官方文档里的指导步骤进行添加。
添加过程:
下新建一个文件modprobe,无后缀,文档内容如下:initialFrenet(1)

#!/bin/bash
/sbin/modprobe nvidia
if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
/sbin/modprobe nvidia-uvm
if [ "$?" -eq 0 ]; then
# Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi

然后在终端执行:

//为/dev文件夹下添加nvidia文件initialFrenet(1)
sudo chmod a+x modprode
sudo ./modprode

检查是否安装成功
检查 NVIDIA Driver是否安装成功

~$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  375.82  Wed Jul 19 21:16:49 PDT 2017
GCC version:  gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) 

输出NVIDIA Driver的版本号
输出cuda Toolkit的版本号

~$ nvcc -V
 export PATH=/usr/local/cuda-7.5/bin/:$PATH
 export LD_LIBRARY_PATH=/usr/local/cuda7.5/lib64/:$LD_LIBRARY_PATH

尝试编译cuda提供的例子
切换到例子存放的路径,默认路径是 ~/NVIDIA_CUDA-8.0_Samples

终端输入:$ make

注意:这里的make操作是将Samples文件夹下所有的demo都编译了一遍,所以比较耗时,如果仅仅想测试某个例子,可以进入相应的文件夹去编译即可。
如果出现错误的话,则会立即报错停止,否则会开始进入编译阶段。
注意:如果运行的时候就报错了,错误是缺少一些依赖库,一般情况下也就是这个问题
不过我的电脑没碰到make失败的问题,这时其他博主中描述的。

$ sudo apt-get install freeglut3-dev //安装依赖项
$ sudo apt-get install build-essential
$ sudo apt-get install libx11-dev 
$ sudo apt-get install libxmu-dev 
$ sudo apt-get install libxi-dev
$ sudo apt-get install ibgl1-mesa-glx
$ sudo apt-get install llibglu1-mesa
$ sudo apt-get install libglu1-mesa-dev

make成功:

"/usr/local/cuda-8.0"/bin/nvcc -ccbin g++ -I../../common/inc  -m64    -gencode arch=compute_20,code=compute_20 -o main.o -c main.cpp
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
"/usr/local/cuda-8.0"/bin/nvcc -ccbin g++   -m64      -gencode arch=compute_20,code=compute_20 -o conjugateGradientPrecond main.o  -lcublas -lcusparse
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
mkdir -p ../../bin/x86_64/linux/release
cp conjugateGradientPrecond ../../bin/x86_64/linux/release
make[1]: Leaving directory `/home/relaybot/NVIDIA_CUDA-8.0_Samples/7_CUDALibraries/conjugateGradientPrecond'
Finished building CUDA samples
relaybot@ubuntu:~/NVIDIA_CUDA-8.0_Samples$ 
//切换路径 : 
relaybot@ubuntu:~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release$ ls
alignedTypes   cdpSimplePrint  cuSolverSp_LowlevelQR   interval   nbody                       
shfl_scan      simpleMultiCopy    SobolQRNG
...
//终端输入 :
feng@feng-Vostro-3670:~/software/NVIDIA_CUDA-10.0_Samples$ cd bin/x86_64/linux/release/
feng@feng-Vostro-3670:~/software/NVIDIA_CUDA-10.0_Samples/bin/x86_64/linux/release$ ./deviceQuery
./deviceQuery Starting...

在这里插入图片描述

检查系统和cuda的连接测试

$ ./bandwidthTest 
[CUDA Bandwidth Test] - Starting...
Running on...
   //...

在这里插入图片描述

##3. 安装cuDNN
3.1 下载cuDNN[https://developer.nvidia.com/rdp/cudnn-archive],需要注册用户

在这里插入图片描述
在这里插入图片描述

下载第三个for linux

将cudnn文件夹下面的文件复制到cuda文件夹中:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
#下面是建立软链接关系
relaybot@ubuntu:/usr/local/cuda$ sudo ln -sf lib64/libcudnn.so.5.0.5 lib64/libcudnn.so.5
relaybot@ubuntu:/usr/local/cuda$ sudo ln -sf lib64/libcudnn.so.5 lib64/libcudnn.so
relaybot@ubuntu:/usr/local/cuda$ sudo ldcongig #更新一下
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值