1.系统要求

2.安装前的要求

3.runfile安装(不支持跨平台)

4.后续安装操作

5.安装cuDNN

6.汇总问题

本文基于Ubuntu 18.04.3 LTS 64位安装CUDA 10.2和对应版本的cuDNN,GPU型号为ZOTAC RTX2080Ti-11GD5。

NVIDIA DEVELOPER ZONE提供的CUDA TOOLKIT DOCUMENTATION,极具参考价值。

1.系统要求
       为了能够使用CUDA,我们需要进行如下配置或下载:

1)支持CUDA的GPU。NVIDIA给出的官方网址,可以用来查询GPU是否支持CUDA;

2)受支持的Linux版本,具有gcc编译器和工具链。由下图可以看到CUDA 10.2支持的本地Linux发行版;

2.安装前的要求
       1)确认系统安装了gcc编译器;

# 查看当前系统的gcc版本
$ gcc --version
# 若没有安装gcc,则执行以下命令
$ apt install gcc
       2)确认系统安装了满足要求的Kernel Header和Development Package;

# 查看系统正在运行的Kernel Header
$ uname -r
# 执行系统更新后,为了确保Kernel Header和正在运行的Kernel相匹配,需要执行以下命令
$ sudo apt-get install linux-headers-$(uname -r)
       3)选择一种安装方法,并下载CUDA工具包(下载链接)

CUDA工具包的安装机制有两种,定制发行包(RPM和Deb包)和独立发行包(runfile包)。独立发行包的优点是支持更多的Linux发行版,而且不需要更新Linux的本机软件包管理系统。定制发行包与Linux的本机软件包管理系统对接。官方给出的建议是尽可能使用定制发行包,但在本次安装中所使用的是独立发行包(runfile包)。

# 下载完成后,需要验证工具包是否完整
$ md5sum cuda_10.2.89_440.33.01_linux.run
       下载页面下方提供了installer Checksums,可以与执行以上命令生成的校验码进行比对,一致则确认文件完整。

4)处理安装冲突的方法(在安装过程中,未做该步骤)

在安装CUDA之前,应将以前安装的与之冲突的CUDA工具包和NVIDIA驱动程序卸载。

CUDA工具包安装兼容表

NVIDIA驱动程序安装兼容表

# 使用下面的命令卸载工具包的runfile安装
$ sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl
# 使用下面的命令卸载驱动程序的runfile安装
$ sudo /usr/bin/nvidia-uninstall
# 或者使用下面的命令卸载RPM/Deb安装
$ sudo apt-get --purge remove <package_name>
3.runfile安装(不支持跨平台)
       1)禁用Nouveau

为了安装显示驱动程序,Nouveau驱动程序必须首先被禁用。每个Linux的发行版有不同的方法禁用Nouveau。

# 若执行以下命令打印内容,则Nouveau驱动程序被加载
$ lsmod | grep nouveau
# Nouveau驱动程序被加载时,执行如下;否则到此为止
# 创建包含以下内容的文件/etc/modprobe.d/blacklist-nouveau.conf
  blacklist nouveau
  options nouveau modeset=0
# 重新生成kernel initramfs
$ sudo update-initramfs -u
       2)设备节点验证

检查设备文件/dev/nvidia*是否存在并且有正确的文件权限(0666)。CUDA驱动程序使用这些设备文件与NVIDIA驱动程序的内核模态部分进行通信。正常情况下,诸如CUDA应用程序或X服务器(如果有的话)等使用NVIDIA驱动程序的应用程序将会自动创建这些文件,除非丢失了与NVIDIA驱动程序绑定在一起的setuid nvidia-modprobe工具。然而,一些系统禁用setuid二进制文件,当这些文件不存在时,可以使用以下启动脚本手动创建它们。

#!/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
       3) 安装CUDA工具包

重启电脑,在登陆界面按组合键Ctrl+Alt+F1(F1~F6亲试都可以,Ctrl+F7可以退出)进入文本模式,登录用户。

# 关闭图形化界面
$ sudo service lightdm stop
# 查看状态,确认是否关闭,关闭成功状态为dead
$ sudo service lightdm status
# 进入下载CUDA runfile文件的路径,安装CUDA工具包
$ sudo sh cuda_10.2.89_440.33.01_linux.run

在该步骤遇到的问题可以跳转到最后的汇总问题中查找链接解决。

4.后续安装操作
       1)设置环境变量

路径变量需要包括/usr/local/cuda-10.2/bin和/usr/local/cuda-10.2/NsightCompute-<tool-version>. <tool-version>(CUDA随附的Nsight Compute版本,例如2019.1)。

# 添加路径到PATH变量
$ export PATH=/usr/local/cuda-10.2/bin:/usr/local/cuda-10.2/NsightCompute-2019.1${PATH:+:${PATH}}
# 此外,使用runfile安装时,64位系统上的LD_LIBRARY_PATH变量需要包含/usr/local/cuda-10.2/lib64
$ export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64\
                         ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
       2)重启图形化界面

# 执行下面命令,重启图形化界面
$ sudo service lightdm start
# 查看图形化界面是否启动
$ sudo service lightdm status
       按组合键Ctrl+Alt+F7返回到图形化登录界面,输入账户密码。如果登录成功,就表示不会遇到循环登录的问题,说明CUDA安装成功。循环登录的情况并未遇到,可以查看文末的参考链接,里面有所提及。

3)安装持久化守护程序(官方推荐)

在Linux上,NVIDIA提供了用户空间守护程序,支持跨CUDA作业运行的驱动程序状态的持久化。与持久化模式相比,守护程序方法提供了一种更优雅和鲁棒的解决方法。

# 以root用户启动NVIDIA Persistence Daemon
$ /usr/bin/nvidia-persistenced --verbose
       4)确认安装成功

在继续之前,重要的是确认CUDA工具包能够找到并且正确地与支持CUDA的硬件通信。为此,需要编译并运行其中一些示例程序。注意:确认在runfile安装机制中正确设置了PATH和LD_LIBRARY_PATH变量。

# 通过执行以下命令来确定驱动程序的版本,该命令在独显中不起作用
$ cat /proc/driver/nvidia/version
 
       汇编示例。如果不加make后的参数,可能会遇到错误。

# 进入~/NVIDIA_CUDA-10.2_Samples目录,使用下面命令进行汇编
$ make -k
       编译完成后,运行二进制文件。在~/NVIDIA_CUDA-10.2_Samples目录下找到并运行deviceQuery文件,如果CUDA软件安装和配置正确的话,deviceQuery的输出应该如下所示。

$ cd ~/NVIDIA_CUDA-10.2_Samples/bin/x86_64/linux/release
$ ./deviceQuery

真正的输出取决于系统。第一行显示检测到设备,第二行显示设备型号,最后一行显示测试通过。如果设备支持CUDA且CUDA驱动程序已经安装,但是deviceQuery文件报告现在没有支持CUDA的设备,那就可能是/dev/nvidia*文件丢失或者权限问题,还有可能是未关闭SELinux。

5.安装cuDNN
       下载cuDNN(除deb安装外,还有压缩包的下载链接,前者需要注册登录),然后按照NVIDIA官方提供的安装文档进行安装。进入下载目录,执行以下命令。

# 安装runtime库
$ sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.2_amd64.deb
# 安装developer库
$ sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.2_amd64.deb
# 安装代码示例和《cuDNN库用户指南》
$ sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.2_amd64.deb
       验证cuDNN在Linux上是否安装成功。为了验证cuDNN已经安装并正确运行,需要编译位于/usr/src/cudnn_samples_v7目录下的mnistCUDNN样例。

# 将cuDNN示例复制到可写路径
$ cp -r /usr/src/cudnn_samples_v7/ $HOME
# 进入到可写路径
$ cd  $HOME/cudnn_samples_v7/mnistCUDNN
# 编译mnistCUDNN示例
$ make clean && make
# 运行mnistCUDNN示例
$ ./mnistCUDNN
       如果已经正确安装cuDNN,示例将运行在Linux系统上。这时,你将会看到Test passed!的提示。

6.汇总问题
       1)安装过程中出现gcc++的问题,可以参考该链接。

2)在安装完成后,强迫症患者会升级和更新软件包,相关命令可参考该链接(慎用,可能问题是NVIDIA驱动失效,需重装)。

3)安装NVIDIA驱动程序的过程中出现内核版本不一致的问题,并无影响,参看该链接。在这里需要多说一句,BIOS中的安全启动项需要在安装前检查是否被禁用,很多参考中(例如)针对不同问题都提出禁用的建议。

4)除NVIDIA提供的官方文档外,还参考了以下文章,感谢博主和知友。

① Ubuntu 16.04 上安装 CUDA 9.0 详细教程

② Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)

③ Ubuntu 18.04安装CUDA和cuDNN

④ 环境乃一生之敌 01 nvidia驱动+cuda安装帮助

⑤ CUDA及NVIDIA驱动安装总结(只安装NVIDIA驱动)

5)NVIDIA显卡驱动的安装问题,可以参考该链接(提到独显和集显切换)和该链接。

6)CUDA driver version is insufficient for CUDA runtime version,在重新安装NVIDIA驱动程序后解决了该问题(NVIDIA驱动程序的下载链接)。

Ubuntu 18.04安装CUDA(版本10.2)和cuDNN相关推荐

  1. Ubuntu 16.04 安装 CUDA Toolkit 10.0

    Ubuntu 16.04 安装 CUDA Toolkit 10.0 NVIDIA 引领人工智能计算 - NVIDIA https://www.nvidia.cn/ CUDA Zone https:// ...

  2. Ubuntu 18.04 安装最新版本wine(支持微信、企业微信)

    目录 1.下载FAudio依赖包 2. 安装libfaudio 3. 安装wine 4.安装exe文件 5. 常见问题 问题1: wine使用微信遇到的输入框焦点问题 问题2:中文乱码问题 其他已知问 ...

  3. 真实机下 ubuntu 18.04 安装GPU +CUDA+cuDNN 以及其版本选择(亲测非常实用)【转】...

    本文转载自:https://blog.csdn.net/u010801439/article/details/80483036 ubuntu 18.04 安装GPU +CUDA+cuDNN : 目前, ...

  4. Ubuntu 18.04安装NVIDIA(英伟达) RTX2080Ti显卡

    Ubuntu 18.04安装NVIDIA(英伟达) RTX2080Ti显卡 在安装显卡之前请先把ubuntu 18.04系统提前安装好. 需要准备的资料: NVIDIA 驱动 下载驱动 驱动的下载地址 ...

  5. Ubuntu 18.04 安装 NVIDIA 显卡驱动

    确认驱动版本: 访问网站https://www.nvidia.com/Download/index.aspx?lang=en-us 根据不同显卡确认驱动版本,目前最新版本是430 PPA源安装驱动: ...

  6. linux 模拟运行 微信,Ubuntu 18.04 安装微信(Linux通用)

    Ubuntu 18.04 安装微信(Linux通用) 发布时间:2018-06-02 10:52, 浏览次数:1468 , 标签: Ubuntu Linux Linux相关的知识:https://ww ...

  7. [笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程

    这篇已经Out了,以[笔记] Ubuntu 18.04安装Docker CE及NVIDIA Container Toolkit流程为准. Docker的好处之一,就是在Container里面可以随意瞎 ...

  8. Ubuntu 18.04安装NVIDA显卡驱动

    Ubuntu 18.04安装NVIDIA显卡驱动方法比较简单. 在Ubuntu系统安装之后,通过运行程序按键(即Window按键)搜索运行Software&Updates程序,在Additio ...

  9. Ubuntu 18.04 安装微信(deepin)和qq tim(deepin)

    Ubuntu 18.04 安装微信(deepin)和qq tim(deepin) ubuntu安装微信一般有四个办法,我4个都尝试了,最后找到一个解决方案. (1)网页版, https://wx.qq ...

最新文章

  1. 为什么 Java 中“1000==1000”为false,而”100==100“为true?
  2. linux下使用yum安装新版php7.0
  3. boost::math::tools::sum_series用法的测试程序
  4. Kafka 优化参数 unclean.leader.election.enable
  5. 【vue】---动态路由传值
  6. 【美团外卖】美食知识图谱的迭代及应用
  7. WebService高级,可靠消息
  8. subplot()函数--Matplotlib
  9. VC Redist Installer 1.6下载
  10. 转载python3爬虫(2)下载有固定链接的视频
  11. 这可能是目前最好用的p2p外网访问内网软件(免费内网穿透)
  12. 建站|全网最系统的色彩搭配指南,教你制作吸睛网站
  13. Windows下通过远程桌面连接向远程电脑传输文件
  14. 一种NET软件加壳技术的设计与实现
  15. 物联网案例(二):物联网系统如何进行实时决策
  16. 弘辽科技:拼多多高客单价怎么改低价格提升?
  17. 编译 ORB-SLAM2/3的ROS工程造成(You should double-check your ROS_PACKAGE_PATH...)
  18. 【智能制造】MES在工业4.0标准下的规范和功能
  19. tar命令 – 打包和备份的归档工具
  20. ios应用数据存储方式(偏好设置)

热门文章

  1. Windows下Socket库的初始化和关闭
  2. 转png格式_CAD转PNG,你知道怎样转换成高质量清晰的黑白图片吗?
  3. python内置函数open_Python的内置函数open()的注意事项
  4. 大学医用计算机答案,医学文献检索试题(含答案)
  5. 镗孔指令g76格式_钻孔、镗孔、攻丝,11个固定循环详解!
  6. mysql存储netcdf数据_关于NetCDF与HDF5存储科学数据的观点?
  7. c++ vector clear()清除容器中所有数据
  8. python 在Windows 下切换工作目录
  9. 概率统计笔记:贝叶斯推断 Bayesian Inference
  10. 机器学习笔记:牛顿方法