Ubuntu16.04+Nvidia_390.77+cuda9.1安装

Ubuntu16.04+Nvidia_390.77+cuda9.1安装

0. 准备:

a. 到这里下载最新cuda.run版本,或这里选择cuda历史版本。

下载完后,用MD5 检验,如果序号不对,需要重新下载。

$ md5sum cuda_9.1.85_linux.run
5639ffeb939ee58a81554d06bd084e15  cuda_9.1.85_linux.run

b. 在这里下载Nvidia驱动程序

c. 注意:cuda版本必须和显卡驱动版本匹配,下表是参考的官方文档。

CUDA Toolkit Linux x86_64 Driver Version Windows x86_64 Driver Version
CUDA 7.0 (7.0.28) ⩾ \geqslant 346.46 ⩾ \geqslant 347.62
CUDA 7.5 (7.5.16) ⩾ \geqslant 352.31 ⩾ \geqslant 353.66
CUDA 8.0 (8.0.44) ⩾ \geqslant 367.48 ⩾ \geqslant 369.30
CUDA 8.0 (8.0.61 GA2) ⩾ \geqslant 375.26 ⩾ \geqslant 376.51
CUDA 9.0 (9.0.76) ⩾ \geqslant 384.81 ⩾ \geqslant 385.54
CUDA 9.1 (9.1.85) ⩾ \geqslant 390.46 ⩾ \geqslant 391.29
CUDA 9.2 (9.2.88) ⩾ \geqslant 396.26 ⩾ \geqslant 397.44
CUDA 9.2 (9.2.148 Update 1) ⩾ \geqslant 396.37 ⩾ \geqslant 398.26
CUDA 10.0.130 ⩾ \geqslant 410.48 ⩾ \geqslant 411.31
CUDA 10.1.105 ⩾ \geqslant 418.39 ⩾ \geqslant 418.96

1. 如果之前安装失败了

官方安装教程

a. deb安装失败的

$ sudo apt-get --purge remove nvidia*

b. run 安装失败的

$ sudo /usr/local/cuda-9.1/bin/uninstall_cuda_9.1.pl
$ sudo /usr/bin/nvidia-uninstall

c. 然后重启

$ sudo reboot

d. 在 a 或 b 后,若仍安装有问题,请键入

$ sudo apt-get autoremove --purge nvidia-*   #把nvidia驱动清干净
$ sudo reboot                                #重启

2.RUNFILE 安装

2.1 禁用nouveau

a. 键入如下命令

$ lsmod | grep nouveau

b. 如果有内容输出,则需禁掉nouveau

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

c. 在最后添加,保存(ctrl+s)后关闭:

blacklist nouveau
options nouveau modeset=0

d. 然后更新:

$ sudo update-initramfs –u

e. 这时候必须重启,否则运行 lsmod | grep nouveau 依然会输出nouveau信息。

$ sudo reboot

f. 开机后,输入Ctrl + Alt + T打开Terminal执行

$ lsmod | grep nouveau

2.2 安装NVIDIA显卡驱动

a. 先按Ctrl + Alt + F1 进入文本模式

$ sudo service lightdm stop 

b. 用cd 命令进入存放显卡驱动的目录下,然后安装驱动程序

$ sudo chmod a+x NVIDIA-Linux-x86_64-390.77
$ sudo ./NVIDIA-Linux-x86_64-390.77 -no-opengl-files

c. 重新启动图形环境然后重启系统

$ sudo service lightdm start 
$ sudo reboot

d. 系统重启后键入查看显卡驱动版本信息

$ nvidia-smi

2.3 安装必要的库

直接安装cuda可能会出现“Missing recommended library: libGLU.so,libX11.so,libXi.so,libXmu.so”的错误。

提前安装如下库可避免出错重装

键入如下命令

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

2.3 安装CUDA

a. 先按Ctrl + Alt + F1 进入文本模式

$ sudo service lightdm stop 

b. 使用cd命令进入安装文件所在的目录,我放在Documents下

$ cd ~/Documents 

c. 执行

$ sudo sh cuda_9.1.85_linux.run

注意:接下来会看到很长的一段文字,可以用Enter键逐步跳过,也可按Ctrl+F快速到最后

如果遇到是否安装显卡驱动 ,选择no,

如果遇到是否安装openGL ,选择no,其他的可以一路accept, yes或回车

2.4 配置环境变量

$ sudo gedit /etc/profile 

在最后两端加入:

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

保存退出

执行让文件立即生效。

$ source /etc/profile

至此cuda 9.1安装完毕。

3. Device Node 验证

执行

$ ls /dev/nvidia*

可能出现a, b, c, d四种种结果,请对号入座。前方高能!

#####a. 若结果显示

/dev/nvidia0  /dev/nvidiactl  /dev/nvidia-uvm

或显示出类似的信息,应该有三个(包含一个类似**/dev/nvidia-nvm**的),则安装成功

#####b. 如果运气有点背,结果是这样

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

或是这样的,只出现

/dev/nvidia0  /dev/nvidiactl

中的一个或两个,但没有**/dev/nvidia-num**

莫方,也许还有希望(我在安装时就是这种情况。。。)按照官方的做法:

把下面的.sh文件随便命个名(我命名为Nka.sh)

#!/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

然后执行

$ sudo chmod +x Nka.sh
$ sudo ./Nka.sh
$ ls /dev/nvidia*
/dev/nvidia0  /dev/nvidiactl  /dev/nvidia-uvm

1, 这种做不太友好,当下次重启电脑时,你使用ls /dev/nvidia*指令时,你依然看不到那三个nvidia的文件了。所以你又得手动执行
sudo ./Nka.sh指令了,是不是很烦!其实上面的.sh文件是startup scipt,也就是启动脚本。顾名思义,就是在系统启动时,自动加载的。哈,这么棒的功能就是我们想要的。
2, 添加启动脚本的方法大致有两种,我就此介绍一种最傻瓜化的方法。
执行

$ sudo gedit /etc/rc.local

如果你是第一次打开这个文件,它应该是空的(除了一行又一行的#注释项外)。这文件的第一行是

#!/bin/sh -e

-e去掉(这步很重要,否则它不会加载这文本的内容) 然后把Nka.sh的内容除了#!/bin/bash外复制到其中,(before exit 0 )保存退出。 下次重启时,你应该能直接看到/dev目录下的三个nvidia的文件

$ ls /dev/nvidia*
/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm

#####c. 如果人品实在不好结果是这样的

modprobe: ERROR: could not insert 'nvidia_uvm': Operation not permitted

少年,我救不了你了。但是winney大神可以。

当出现这种情况时,可能是驱动打起架来了。
执行

$ sudo apt-get autoremove --purge nvidia-* #把nvidia驱动清个干干净净
$ sudo reboot                              #一定记得重启,不然你会后悔的!

然后

$ sudo ./Nka.sh
$ ls /dev/nvidia*

这时,应该可以见到

/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm

#####d. 未知,建议网上另寻方案,或重装.run

Gook Luck!

4. 验证安装

a. 验证驱动版本
$ cat /proc/driver/nvidia/version
b. 验证CUDA Toolkit
$ nvcc -V

!Note: 如果是这样的:

The program 'nvcc' is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit

莫方,确认下/etc/profile的配置环境是否正确

即使什么都没改,可能忘了这一步,或是之前执行了,但过了有段时间,且又还没重启电脑。因为source /etc/profile是临时生效,重启电脑才是永久生效

执行

$ source /etc/profile

再执行(应该就有显示了)

$ nvcc -V

5. 验证编译

cd 进NVIDIA_CUDA-9.1_Samples/1_Utilities/deviceQuery 目录 执行

$ sudo make

等编译完成后再执行

./deviceQuery 

显示出电脑各种信息,再最后一行显示出Result = PASS则表示成功。

参考

  1. 庞贝船长-Ubuntu 14.04安装CUDA-8.0

  2. cuda:Missing recommended library: libGLU.so,libX11.so,libXi.so,libXmu.so

  3. Ubuntu 16.04 上安装 CUDA 9.0 详细教程

你可能感兴趣的:(Ubuntu16.04+Nvidia_390.77+cuda9.1安装)