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 |
官方安装教程
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 #重启
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
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
直接安装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
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或回车
$ 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安装完毕。
执行
$ 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!
$ cat /proc/driver/nvidia/version
$ 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
cd
进NVIDIA_CUDA-9.1_Samples/1_Utilities/deviceQuery 目录 执行
$ sudo make
等编译完成后再执行
./deviceQuery
显示出电脑各种信息,再最后一行显示出Result = PASS则表示成功。
参考
庞贝船长-Ubuntu 14.04安装CUDA-8.0
cuda:Missing recommended library: libGLU.so,libX11.so,libXi.so,libXmu.so
Ubuntu 16.04 上安装 CUDA 9.0 详细教程