Ubuntu16.04配置cuda9.0和cudnn7.3总结版

本文总结了在Ubuntu16.04上安装CUDA9.0和cuDNN7.3的步骤,包括更换内核到4.4版本、禁用nouveau驱动、安装NVIDIA驱动和CUDA、配置环境变量,以及验证安装成功的全过程。
摘要由CSDN通过智能技术生成

1.更换linux内核

首先查看Ubuntu系统的内核,Ubuntu16.04一般都是4.15的内核,而cuda9.0不支持此版本的内核,因此需要将内核更换为4.4版本。

(1)查看已安装的内核版本

dpkg -l|grep linux-image

(2)查看当前使用的内核,若为4.15,则需更换为4.4:

uname -r

(3)查看可以更换的内核

sudo apt-cache search linux-image

(4)安装新内核

sudo apt-get install linux-image-4.4.0-77-generic linux-image-extra-4.4.0-77-generic 

(5)更新grub引导

sudo update-grub

(6)重启,在grub引导界面进入Ubuntu高级选项,选择4.4内核

(7)安装对应内核版本的headers文件(一定要先装好4.4版本的headers文件再删除多余内核,否则会出现网卡配置等问题)

sudo apt-get install linux-headers-$(uname -r)

(8)删除多余内核

linux-headers-版本号:内核头文件

linux-image-版本号:内核映像文件

linux-image-extra-版本号:内核扩展文件

sudo apt-get purge linux-*4.15*

(9)更新grub引导

sudo update-grub

2.检查CUDA安装环境

(1)GPU是否支持CUDA

lspci | grep -i nvidia

然后去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中。
(2)linux版本是否支持CUDA

uname -m && cat /etc/*release

(3)安装缺少的依赖库

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

3.禁用nouveau驱动

(1)打开/etc/modprobe.d下的blacklist.conf

sudo gedit /etc/modprobe.d/blacklist.conf

(2)在blacklist.conf的末尾添加:

 blacklist nouveau
 options nouveau modeset=0

(3)执行生效并重启(注:这条命令可能不会生效。如果终端运行了一会儿说明已经生效,重启电脑;如果没有生效可以多运行几次)

sudo update-initramfs –u

(4)查看是否已禁用

lsmod | grep nouveau

若无内容输出,则表示禁用成功。
4.安装NVIDIA驱动以及cuda

在安装cuda时会自动安装NVIDIA驱动,但是可能会安装失败所以在这里先安装NVIDIA驱动。下载对应gpu版本的NVIDIA驱动、runfile版本的cuda9.0,分别修改文件名为NVIDIA.run、cuda.run,最好放在home目录下。

(1)安装NVIDIA驱动。重启到登录界面时按Ctrl+Alt+F1进入文字用户界面输入自己的用户名和密码,然后运行

sudo su

输入密码,运行

init 3

然后输入

sh NVIDIA.run

安装完成后输入以下命令,可以查看显卡驱动的详细信息

nvidia-smi

(2)输入reboot重启,到登录界面会发现分辨率恢复正常(也有特殊情况)。按Ctrl+Alt+F1进入文字用户界面,运行,关闭图形化界面

sudo service lightdm stop

(3)安装cuda9.0

sudo sh cuda.run

等待一段时间到协议界面,按Ctrl+c跳过协议,因为已经先安装好了NVIDIA驱动,NVIDIA Accelerate Graphics Driver选no;其他yes或default。

(4)重启图形化界面

sudo service lightdm start

按Ctrl+Alt+F7返回图形化登录界面并登录。

(5) 检查Device Node Verification

ls /dev/nvidia*

a.显示

/dev/nvidia0      /dev/nvidiactl      /dev/nvidia-modeset

或类似信息(/dev/nvidia*),则安装成功。

b.显示

ls: cannot access/dev/nvidia*: No such file or directory

或者 /dev/nvidia0 /dev/nvidiactl ,a中的一个或两个,但没有/dev/nvidia-modeset

则需要添加一个启动脚本

sudo vi /etc/rc.local

首先把文件的第一行 #!/bin/sh -e 中的 -e 去掉(这步很重要,否则它不会加载文本的内容)
然后把下列除了 #!/bin/bash 的内容复制到 exit 0 之前,保存退出。

#!/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的文件

(6) 设置环境变量

sudo gedit /etc/profile

在文件末尾添加以下两行:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\
                                                   ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存文件并重启,因为profile在重启电脑之后才永久生效

reboot

(7) 检查上述的环境变量是否设置成功。

a.验证驱动版本

cat /proc/driver/nvidia/version

b.验证CUDA Toolkit,会输出CUDA的版本信息

nvcc -V 

(8)尝试编译cuda提供samples

a.打开终端输入:

cd /home/xxx/NVIDIA_CUDA-9.0_Samples

其中xxx是自己的用户名
然后输入:

make

系统就会自动进入到编译过程,整个过程大概需要十几到二十分钟,请耐心等待。如果出现错误的话,系统会立即报错停止。第一次运行时可能会报错,提示的错误信息可能会是系统中没有gcc,解决办法就是通过命令重新安装gcc,在终端输入:$ sudo apt-get install gcc 安装完gcc后, 再make就正常了。如果编译成功,最后会显示Finished building CUDA samples。

b.运行编译生成的二进制文件
编译后的二进制文件默认存放在NVIDIA_CUDA-9.0_Samples/bin中,接着输入:

cd /home/lxxx/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release

然后

./deviceQuery  

最后显示Result = PASS代表成功,若失败 Result = FAIL。

c.最后再检查一下系统和CUDA-Capable device的连接情况

./bandwidthTest

最后显示Result = PASS代表成功,若失败 Result = FAIL。
5.安装CuDNN

在文件所在目录解压,xx是自己的cudnn版本号

sudo tar -xzvf cudnn-xx.tgz 

执行

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 /usr/local/cuda/lib64/libcudnn*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值