Ubuntu 18.04安装CUDA(版本10.2)和cuDNN
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相关推荐
- Ubuntu 16.04 安装 CUDA Toolkit 10.0
Ubuntu 16.04 安装 CUDA Toolkit 10.0 NVIDIA 引领人工智能计算 - NVIDIA https://www.nvidia.cn/ CUDA Zone https:// ...
- Ubuntu 18.04 安装最新版本wine(支持微信、企业微信)
目录 1.下载FAudio依赖包 2. 安装libfaudio 3. 安装wine 4.安装exe文件 5. 常见问题 问题1: wine使用微信遇到的输入框焦点问题 问题2:中文乱码问题 其他已知问 ...
- 真实机下 ubuntu 18.04 安装GPU +CUDA+cuDNN 以及其版本选择(亲测非常实用)【转】...
本文转载自:https://blog.csdn.net/u010801439/article/details/80483036 ubuntu 18.04 安装GPU +CUDA+cuDNN : 目前, ...
- Ubuntu 18.04安装NVIDIA(英伟达) RTX2080Ti显卡
Ubuntu 18.04安装NVIDIA(英伟达) RTX2080Ti显卡 在安装显卡之前请先把ubuntu 18.04系统提前安装好. 需要准备的资料: NVIDIA 驱动 下载驱动 驱动的下载地址 ...
- Ubuntu 18.04 安装 NVIDIA 显卡驱动
确认驱动版本: 访问网站https://www.nvidia.com/Download/index.aspx?lang=en-us 根据不同显卡确认驱动版本,目前最新版本是430 PPA源安装驱动: ...
- linux 模拟运行 微信,Ubuntu 18.04 安装微信(Linux通用)
Ubuntu 18.04 安装微信(Linux通用) 发布时间:2018-06-02 10:52, 浏览次数:1468 , 标签: Ubuntu Linux Linux相关的知识:https://ww ...
- [笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程
这篇已经Out了,以[笔记] Ubuntu 18.04安装Docker CE及NVIDIA Container Toolkit流程为准. Docker的好处之一,就是在Container里面可以随意瞎 ...
- Ubuntu 18.04安装NVIDA显卡驱动
Ubuntu 18.04安装NVIDIA显卡驱动方法比较简单. 在Ubuntu系统安装之后,通过运行程序按键(即Window按键)搜索运行Software&Updates程序,在Additio ...
- Ubuntu 18.04 安装微信(deepin)和qq tim(deepin)
Ubuntu 18.04 安装微信(deepin)和qq tim(deepin) ubuntu安装微信一般有四个办法,我4个都尝试了,最后找到一个解决方案. (1)网页版, https://wx.qq ...
最新文章
- 为什么 Java 中“1000==1000”为false,而”100==100“为true?
- linux下使用yum安装新版php7.0
- boost::math::tools::sum_series用法的测试程序
- Kafka 优化参数 unclean.leader.election.enable
- 【vue】---动态路由传值
- 【美团外卖】美食知识图谱的迭代及应用
- WebService高级,可靠消息
- subplot()函数--Matplotlib
- VC Redist Installer 1.6下载
- 转载python3爬虫(2)下载有固定链接的视频
- 这可能是目前最好用的p2p外网访问内网软件(免费内网穿透)
- 建站|全网最系统的色彩搭配指南,教你制作吸睛网站
- Windows下通过远程桌面连接向远程电脑传输文件
- 一种NET软件加壳技术的设计与实现
- 物联网案例(二):物联网系统如何进行实时决策
- 弘辽科技:拼多多高客单价怎么改低价格提升?
- 编译 ORB-SLAM2/3的ROS工程造成(You should double-check your ROS_PACKAGE_PATH...)
- 【智能制造】MES在工业4.0标准下的规范和功能
- tar命令 – 打包和备份的归档工具
- ios应用数据存储方式(偏好设置)
热门文章
- Windows下Socket库的初始化和关闭
- 转png格式_CAD转PNG,你知道怎样转换成高质量清晰的黑白图片吗?
- python内置函数open_Python的内置函数open()的注意事项
- 大学医用计算机答案,医学文献检索试题(含答案)
- 镗孔指令g76格式_钻孔、镗孔、攻丝,11个固定循环详解!
- mysql存储netcdf数据_关于NetCDF与HDF5存储科学数据的观点?
- c++ vector clear()清除容器中所有数据
- python 在Windows 下切换工作目录
- 概率统计笔记:贝叶斯推断 Bayesian Inference
- 机器学习笔记:牛顿方法