说明:NVIDIA驱动版本需要与CUDA版本对应,具体参考下图。
md5sum cuda_10.1.243_418.87.00_linux.run
(因安装NVIDIA驱动时已经禁用),在终端运行:
$ lsmod | grep nouveau
登录账户
sudo service lightdm stop
sudo sh cuda_10.1.243_418.87.00_linux.run --no-opengl-libs
!!!重点:要么在此处加上 --no-opengl-libs 选项,要么在后面通过交互式界面进行手动选择。建议在这里加上!!!
!!!注意:若不小心安装了 OpenGL,则后面会遇到循环登陆的问题,原因就是 NVIDIA 显卡的 OpenGL 库覆盖了当前 Intel 显卡的库。解决办法是再登入到文本命令行模式,用以下命令先卸载 CUDA 和 NVIDIA 驱动,再按正确的步骤重新安装 NVIDIA 驱动和 CUDA:
sudo /usr/local/cuda-10.1/bin/cuda-uninstaller
sudo /usr/bin/nvidia-uninstall
(NVIDIA 驱动安装可参考上一篇博客)
输入以下命令:
$ ls /dev/nvidia*
可能出现a、b两种结果,请对号入座。
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
即a中的一个或两个,但没有/dev/nvidia-num,表示文件显示不全,则进行如下操作:
sudo vim /etc/rc.local
#!/bin/sh -e
把-e去掉(这步很重要,否则它不会加载这文本的内容)。
/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
$ ls /dev/nvidia*
若显示以下三个文件,则说明安装成功;若没有,检查写入的内容是否正确,并重启后再次查看:
/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm
在终端中输入:
$ sudo gedit /etc/profile
在打开的文件末尾,添加以下两行(64位系统为lib64,32位系统为lib):
export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存文件,并重启。因为source /etc/profile是临时生效,重启电脑才是永久生效。
$ cat /proc/driver/nvidia/version
nvcc -V
打开终端,输入:
$ cd /home/xxx/NVIDIA_CUDA-10.1_Samples
$ make
系统就会自动进入到编译过程,整个过程大概需要十几到二十分钟,请耐心等待。(第一次运行时可能会报错,提示的错误信息可能会是系统中没有gcc,解决办法就是通过命令重新安装gcc就行,在终端输入:$ sudo apt-get install gcc 安装完gcc后, 再make就正常了。)
如果编译成功,最后会显示Finished building CUDA samples,如下图所示:
运行编译生成的二进制文件。编译后的二进制文件默认存放在NVIDIA_CUDA-10.1_Samples/bin中,接着在终端中输入:
$ cd /home/xxx/NVIDIA_CUDA-10.1_Samples/bin/x86_64/linux/release #其中xxx是你自己的用户名
$ ./deviceQuery
结果如下图所示,看到 Result = PASS 代表 CUDA 安装且配置成功,若失败 Result = FAIL:
最后再检查一下系统和 CUDA-Capable device 的连接情况。在终端输入:
$ ./bandwidthTest
官网:https://developer.nvidia.com/rdp/cudnn-archive
这里选择 Installing From A Tar File 的方式进行安装,因此点击 cuDNN Library for Linux 进行下载。
可以看到cuda文件夹:
$ tar -xvf cudnn-10.1-linux-x64-v7.6.3.30.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*
在终端输入:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2