ubuntu16.04 安装 CUDA 10.0最新详细教程(显卡是Tesla V100)

2018年10月底写下这篇,自认为对小白十分的友好,尽量一个坑没有。

实验室这台8万的服务器之前系统有点问题,于是重新装了ubuntu16.04,然后就开始装CUDA了。写这篇记录一下,防止以后踩坑。

※CUDA9.0和9.2同样适用。

1.首先去这里下载符合自己要求的CUDACUDA Toolkit 10.0 Download,然后把这个sh文件的文件名记一下后面用。

安装方式里面,我选择的是第一个runfile

《ubuntu16.04 安装 CUDA 10.0最新详细教程(显卡是Tesla V100)》
《ubuntu16.04 安装 CUDA 10.0最新详细教程(显卡是Tesla V100)》

2.安装之前验证一下电脑是否已经插上了支持CUDA的GPU,用win+alt+t调出终端,然后输入:

lspci | grep -i nvidia

如果显示出你的NVIDIA GPU版本信息应该就没问题。

3.验证系统是否安装了gcc,在终端中输入:

gcc --version  

如果装了结果会显示类似信息:

gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0

如果没有就自行安装。

4.验证系统是否安装了kernel header和 package development

a、查看正在运行的系统内核版本:
在终端中输入:

uname --r 

结果显示类似就可以:4.10.0-40-generic

b、在终端中输入:

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

以安装对应kernel版本的kernel header和package development

结果如果显示:

升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 4 个软件包未被升级。

则表示系统里已经有了,不用重复安装。

5.禁用 nouveau驱动

终端中运行:

lsmod | grep nouveau 

如果有输出则代表nouveau正在加载。需要我们手动禁掉nouveau。

以下是Ubuntu的nouveau禁用方法:
a、我们需要在电脑根目录的/etc/modprobe.d文件夹中创建文件blacklist-nouveau.conf

先用apt-get安装vim编辑器,然后

这需要输入命令:

  sudo vi /etc/modprobe.d/blacklist-nouveau.conf

此时会出现一个窗口 (我们利用vi编辑器的指令来编辑和保存文件)

按键盘上的insert键进入输入模式,然后在文件中输入以下两行内容:

blacklist nouveau
options nouveau modeset=0

然后按ESC键退出编辑模式,在键盘上摁下“ :wq ”这三个键再回车,就保存并退出了。

b、然后在终端输入执行:

sudo update-initramfs -u

之后重启电脑

c、重启后在终端执行:

lsmod | grep nouveau
或者
lspci | grep -i nouveau 

若终端无内容输出了,则禁用成功,若仍有内容输出,请检查上述操作,可以百度一下寻求解决。

注:vi是Linux终端下或控制台下常用的编辑器,要用vi打开一个文件,就输入:

vi /路径/文件名    (例如:终端输入 vi /etc/fstab 就会显示/etc/fstab文件里的内容)

基本操作:

  • 使用键盘上的Page Up和Page Down键可以上下翻页;
  • 按下Insert键,可以见到窗口左下角有“Insert”字样,表示当前为插入编辑状态,这时从键盘输入的内容将插入到光标位置;
  • 再按下Insert键,左下角将有“Replace”字样,表示当前为替换编辑状态,这时从键盘输入的内容将替换光标位置的内容。
  • 编辑完内容后,按下Esc键,并输入“:wq”,然后回车就可以保存退出。
  • 如果不想保存而直接退出,则按下Esc键后,输入“:q!”,然后回车即可。“wq”表示Write和Quit,即保存退出;“q!”表示忽略修改强行退出。

6.重启电脑,进入登录界面的时候,不要登录进入桌面(否则可能会失败,若不小心进入,请重启电脑),直接按Ctrl+Alt+F1进入文本模式(命令行界面),然后登录账户。

登陆后输入:

sudo service lightdm stop 

以此来关闭图形化界面

然后切换到cuda安装文件的路径:例如我的cuda在下载文件夹里所以我要输入:

 cd Downloads 

然后输入(根据cuda版本不同自行修改):

sudo sh cuda_10.0.130_410.48_linux.run

开始安装,按提示一步步操作,按住回车看完声明。按照提示输入相应字符,例如有的需要输入accept,有的需要输入yes。

遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU在工作,需要选择no),其他都选择yes或者默认即可。(如果您的电脑是双显卡且在这一步选择了yes,那么你极有可能安装完CUDA之后,重启图形化界面后遇到登录界面循环问题:输入密码后又跳回密码输入界面。这是因为你的电脑是双显,而且用来显示的那块GPU不是NVIDIA,则OpenGL Libraries就不应该安装,否则你正在使用的那块GPU(非NVIDIA的GPU)的OpenGL Libraries会被覆盖,然后GUI就无法工作了。

安装成功后,会显示installed,否则会显示failed。

7. 重新启动图形化界面,输入 :

sudo service lightdm start 

如果没反应,需要同时按住Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。

如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。

8. 重启电脑,检查Device Node Verification。

执行

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

但没有/dev/nvidia-num,即文件显示不全。

我的解决方法参考了一篇博客,找到文件夹

/usr/local/cuda/samples/1_Utilities/deviceQuery,进去以后有个deviceQuery.cpp, make一下(在文件夹启动终端,输入sudo make),然后

./deviceQuery

这样你再查看

ls -la /dev | grep nvidia

就会发现有三个啦。

8. 设置环境变量

终端中输入:

sudo gedit /etc/profile

在打开的文件末尾,复制添加以下两行:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

(这是64位系统的,32位系统自行百度)

保存文件,并重启。因为source /etc/profile是临时生效,重启电脑才是永久生效。

到这里安装应该就成功了,后面是一些验证的工作,其实一般不用验证。

9.重启电脑,然后检查上述的环境变量是否设置成功

a、 验证驱动版本
敲入:

cat /proc/driver/nvidia/version

结果显示
NVRM version: NVIDIA UNIX x86_64 Kernel Module 420
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)

b、 验证CUDA Toolkit
敲入:

nvcc -V 

会输出CUDA的版本信息。
如果是这样的:
The program ‘nvcc’ is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit

可能是环境配置没有成功,请重复上述步骤8。

10. 尝试编译cuda提供的例子

1)打开终端输入:

cd /home/xxx/NVIDIA_CUDA-10.0_Samples

其中xxx是你自己的用户名,通过命令cd进入NVIDIA_CUDA-10.0_Samples目录。
然后终端输入:

make

系统就会自动进入到编译过程,整个过程大概需要十几到二十分钟,请耐心等待。如果出现错误的话,系统会立即报错停止。

第一次运行时可能会报错,提示的错误信息可能会是系统中没有gcc,

解决办法就是通过命令重新安装gcc就行。安装完gcc后, 再make就正常了。

如果编译成功,最后会显示Finished building CUDA samples,如下图所示。

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

终端输入:

./bandwidthTest

这篇文章所写的全部流程都是本人亲自操作过的,有问题可以留言,能解决就回复你了,解决不了就不回了哈哈。

    原文作者:管斌
    原文地址: https://zhuanlan.zhihu.com/p/47330858
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞