Ubuntu18.04安装CUDA历程

本文详细记录了在Ubuntu 18.04上安装CUDA 10.1的历程,涉及驱动版本选择、安装步骤、gcc版本对应、环境配置及完整卸载过程,特别强调了驱动与gcc版本的匹配对安装成功的重要性。
部署运行你感兴趣的模型镜像

Ubuntu安装CUDA前言

与Ubuntu的初识准确来说是2020年的11月份,当时安装是为了使用ROS上的一些功能。折腾了一两天,ROS安装上了,后来却因某些原因搁置了ROS的进一步学习。到了年末,学校布置课设,拿到的是一个图像处理的任务。我心想Ubuntu都装好了,就顺便装个Python开发环境,以后就直接用Ubuntu开发好了,跟CUDA的“爱恨情仇”就此展开。

安装背景介绍

CUDA与其他软件的安装不同,对系统环境的要求较高。比如各版本的CUDA需要与驱动严格对应,CUDA与cuDNN也必须对应,在Linux系统中还需要与gcc版本严格对应(这里涉及我血的教训)。关于CUDA与显卡驱动和cuDNN的对应关系,在我之前Windows系统安装CUDA的教程里面有相应的总结,客官请移步

关于我具体安装的版本介绍如下:我的Ubuntu选择的是18.04版本,我的显卡是笔记本端的1050,在Ubuntu 软件和更新-附加驱动中可以看到系统推荐的几个驱动版本,包括390、410、460、470等版本,这里我选择的是460版本的驱动。

基于上述基本情况,我选择的CUDA版本是10.1,cuDNN版本是7603。

驱动版本查看及安装

Ubuntu中安装显卡驱动的方式五花八门,但很多方法风险性较大,一旦安装出错需要一定的调校能力方可使系统恢复正常。这边给出一个我去年安装显卡驱动的帖子,此帖在我当时看来是众多不靠谱教程中还算靠谱的一个。

去年安装的时候因为不熟悉Ubuntu系统嘛,胡乱安装操作一通,英伟达显卡驱动是安装上了的。但后来在安装CUDA的时候出了问题,甚至听信某帖子关闭图形界面,把我的Ubuntu启动界面给搞无了。一直搁置到最近才重新拾起Ubuntu上CUDA安装的问题,根据我现在安装的经验,如下方法在安装驱动的时候是最为有效的。

在Ubuntu的 软件和更新-附加驱动中可以看到本机显卡支持的驱动版本,根据要安装的CUDA版本选择合适的驱动。例如我要安装的是CUDA 10.1,上述列出的390和410版本是无法使用的,我选择的是460版本。在选择完相应的驱动版本后,需要应用更改,大致界面就是下图(采用的是网图,倾删)这样:

在这里插入图片描述
在快结束的时候会让输入一个 secure boot 的密码,这个密码在重启时进入 perform mok management 界面是有大用的,需谨记!!!

重启进入 perform mok management 界面后,选择第二个 enroll mok,然后选择continue,再选择yes,输入之前的 secure boot 密码。

  • 注意:你这时候键盘按下去的话,屏幕上没有显示的,只要确认自己输入无误,回车确定即可。

这里给出我在搞定驱动问题时参考的一篇博客,此博客极其适合刚入门的小白,看了之后绝对清楚!

驱动安装后续问题说明

在2020年的时候,我是安装驱动成功,安装CUDA失败才罢手的。到2021年的现在,我是先解决了CUDA的安装,而后发现命令行输入 nvidia-smi 指令显示不对后又重新深刻地认识了驱动安装的问题。

我输入 nvidia-smi 显示如下:

NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

网上搜索了一下,博客中提到的大致解决方法如下:

sudo apt-get install dkms
sudo dkms install -m nvidia -v xxx.xx

上述shell命令第二行是与各自的驱动版本直接相关的。以我的驱动版本为例,第二行应写作:

sudo dkms install -m nvidia -v 460.84

需要说明的一点是,该方法适用的情形大体是之前驱动和CUDA都安装成功了,但由于Ubuntu内核版本的升级,CUDA与驱动直接的依赖关系被破坏了。但我今年在解决了去年遗留的CUDA安装问题后采用这两行命令仍旧无法正常让CUDA和驱动间建立联系,真实情况是除了内核,你的gcc版本决定了驱动程序能否正常工作。

驱动与Ubuntu下gcc版本的对应

之前在搜索驱动和CUDA间无法通信的解决方案时就看到了这篇博文,文章中提到的报错与我大致相似,也是让我去make.log文件中查看具体的错误原因。

Error! Bad return status for module build on kernel: 5.4.0-80-generic (x86_64)
Consult /var/lib/dkms/nvidia/460.84/build/make.log for more information.

起初我没太当回事,忽视了这一条。在我自己搞崩溃找了淘宝卖家也无法解决的第二个星期,我注意到了这条错误,且我真的打开了make.log文件去查看具体的错误原因。文件中所提及的错误与博客中并不一样,报错的一个示例如下:

unrecongnized command line option '-fstack-protector-strong'

稍加搜索,我发现基本也是引流到gcc版本的问题上,而后我通过

gcc -v

看到我的gcc版本是4.8.x,这与主流的7.3.0版本相差甚远。参考这篇博文,将我的gcc默认版本设置成gcc7,至此,重复前文提到的驱动安装步骤即可在驱动和CUDA间建立联系。

CUDA安装

因为我们事先已经定好了要下载CUDA 10.1版本,直接打开CUDA官网,选择之前的版本。一波选择之后,会提示你安装的步骤,根据英伟达官方提供的教程一步步安装应该就能顺利安装上CUDA。

在这里插入图片描述
注意,这边需选择deb格式,本地安装,方便采用命令直接安装。如果网速较慢,也可先下载deb文件包,然后再进行后续的安装步骤。总之,Linux环境下安装东西都需要一个较好的网络环境。

环境的配置

CUDA安装成功的关键一点是需要配置相应的环境。reboot 重启系统后,采用如下命令打开配置文件:

sudo gedit ~/.bashrc

在文件末尾添加如下命令:

export PATH=/usr/local/cuda-10.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

保存之后在命令行窗口使用 nvcc -V 查看能否检测到安装成功

Ubuntu完全卸载CUDA

因为CUDA是去年装了一半嘛,然后又因为网络原因先下了10.0,又下了10.1,两个都安装了,但显示检测不到。大概的原因是版本之间的依赖存在一定的错误,我选择把10.0给卸载,但CUDA在Ubuntu已安装的软件中找不到对应的图标,这边找到一个完全卸载CUDA的方法:ubuntu完全卸载CUDA

补充:sudo apt-get update 出现签名无效或者没有数字签名

因为我是时隔半年才打开的Ubuntu,中间一直没有更新系统的源:

sudo apt-get update

所以在一开始安装驱动、包括CUDA与驱动间重新建立通信的语句全部都是失效的。然后更新系统源就会报如下错误:

W: GPG 错误:http://packages.ros.org/ros/ubuntu bionic InRelease: 下列签名无效: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <info@osrfoundation.org>
E: 仓库 “http://packages.ros.org/ros/ubuntu bionic InRelease” 没有数字签名。

我采用的是中科大的源,然后运行如下语句即可重新拿到秘钥并更新源:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

参考博文:sudo apt-get update 出现签名无效或者没有数字签名

您可能感兴趣的与本文相关的镜像

PyTorch 2.7

PyTorch 2.7

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

<think>嗯,用户想在Ubuntu 18.04安装CUDA 12.8,但看起来CUDA 12.8可能不存在,或者用户可能打错了版本号。首先,我需要确认CUDA的版本。目前最新的稳定版本是CUDA 12.x系列,比如12.2或12.3,但12.8似乎不存在。可能用户是想安装CUDA 10.0或者11.8之类的?或者是笔误? 接下来,我需要检查Ubuntu 18.04CUDA版本的支持情况。根据官方文档,Ubuntu 18.04支持的CUDA版本可能有限,较新的CUDA版本可能需要更新的Linux内核或系统库。例如,CUDA 12.x可能需要更高版本的GCC或内核版本,而Ubuntu 18.04默认的可能不满足这些要求。比如,CUDA 12.0要求GCC 11以上,但Ubuntu 18.04的GCC版本是7.5,这显然不兼容。 另外,用户提供的引用中有提到CUDA 10.0的安装过程,但用户现在想安装的是更高版本,这可能导致依赖问题。需要检查CUDA 12.8的系统要求,如果确实存在的话,或者确认版本号是否正确。 另外,用户之前安装CUDA 10.0时遇到了依赖库缺失的问题,如libGLU.so、libXi.so等,这说明在安装CUDA时需要确保这些依赖库已安装。对于较新的CUDA版本,可能需要更多的依赖项,或者需要手动安装这些库。 还需要考虑NVIDIA驱动的兼容性。CUDA 12.x可能需要特定版本的NVIDIA驱动,而Ubuntu 18.04的默认驱动仓库可能没有这些版本。可能需要添加PPA源或从NVIDIA官网下载驱动。 此外,用户提到安装过程中遇到引导问题,可能与UEFI和Legacy模式有关,所以在安装驱动和CUDA时,可能需要确保系统在正确的引导模式下运行,避免启动问题。 如果用户确实需要CUDA 12.8,但该版本不存在,可能需要建议用户确认版本号,或者考虑升级Ubuntu系统到更高版本(如20.04或22.04)以获得对新CUDA版本的支持。如果用户必须使用Ubuntu 18.04,可能需要寻找兼容的CUDA版本,或者从源码编译,但这可能比较复杂。 总结步骤可能包括:确认CUDA版本是否存在,检查系统依赖,安装合适的NVIDIA驱动,处理可能的依赖库缺失,以及处理引导模式的问题。同时,用户可能需要参考官方文档和社区资源来解决安装过程中的问题。</think>根据提供的引用内容和系统环境要求,Ubuntu 18.04安装CUDA需注意以下关键步骤和限制条件: ### 一、版本兼容性核查 1. **CUDA 12.8不存在**,目前最新版本为CUDA 12.3(截至2023年10月)。若需安装CUDA 10.x系列,需注意: - **Python 3.5**需通过虚拟环境管理 - **GCC版本限制**:CUDA 10.0要求GCC ≤ 8,Ubuntu 18.04默认GCC 7.5符合条件 - **内核兼容性**:需确保Linux内核版本≥4.15(Ubuntu 18.04默认内核为4.15) ### 二、系统准备 1. **图形界面禁用**(避免驱动冲突): ```bash sudo systemctl stop lightdm sudo systemctl disable lightdm ``` 2. **依赖库安装**(解决报错`Missing recommended library`): ```bash sudo apt install libglu1-mesa libxi-dev libxmu-dev libgl1-mesa-glx ``` ### 三、驱动安装 1. **推荐方式**(避免手动安装风险): ```bash sudo ubuntu-drivers autoinstall ``` 完成后通过`nvidia-smi`验证驱动版本是否≥CUDA要求[^2][^4] ### 四、CUDA Toolkit安装 1. **离线安装包选择**(示例为CUDA 10.0): ```bash sudo sh cuda_10.0.130_410.48_linux.run --override ``` - 安装时**取消勾选Driver安装**(避免覆盖已装驱动) - 添加环境变量至`~/.bashrc`: ```bash export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} ``` ### 五、验证安装 1. **编译测试样例**: ```bash cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery sudo make ./deviceQuery ``` 输出应包含`Result = PASS` ### 六、已知问题规避 1. **UEFI引导冲突**:若出现`no bootable devices`,需在BIOS中将启动模式改为`UEFI only`[^5] 2. **TensorFlow版本匹配**:CUDA 10.0对应TensorFlow 1.14需通过`pip install tensorflow-gpu==1.14.0`安装[^3]
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值