视觉入门篇——深度学习环境部署(ubuntu系统安装CUDA)

该文章已生成可运行项目,

提示:相信你肯定已经安装了显卡驱动,让我们来配置CUDA吧


前言

CUDA Toolkit(后面我简称CUDA)是深度学习训练模型的关键,这玩意用C/C++写的,基本躲不开,即使你用pycuda也必须安装CUDA。一个系统中是允许出现多个CUDA版本的,因为它是一个工具包,通过链接去调用,所以只要环境变量设置正确是不会相互影响的。接下来的时候让我们一起拿下它!


一、CUDA是什么?

​CUDA(Compute Unified Device Architecture,统一计算设备架构)​​是 ​​NVIDIA​​ 推出的通用并行计算平台与编程模型,让开发者利用 ​​NVIDIA GPU​​ 的大规模并行能力加速计算密集型任务。它既包含 ​​ISA 指令集与 GPU 并行引擎​​,也提供 ​​API、编译器(nvcc)、运行时库​​ 以及数学库(如 ​​cuBLAS、cuFFT​​),并可通过 ​​CUDA‑X​​ 扩展架构在 ​​PC、云端与超级计算机​​ 上部署,覆盖 ​​AI、数据分析、HPC​​ 等领域
​​CUDA Toolkit​​ 是用于构建、优化与部署 ​​GPU 加速应用​​ 的完整开发环境,面向嵌入式系统、桌面工作站、数据中心、云平台与 HPC 超算​​。它提供 ​​GPU 加速库、编译器(nvcc)、调试与性能分析工具​​ 以及 ​​运行时库​​,支持将计算任务分布到 ​​多 GPU​​ 配置,应用可从单机单卡扩展到云端成千上万张 GPU。其生态包含 ​​cuBLAS、cuFFT、cuSPARSE、cuTENSOR、NPP、cuRAND、nvJPEG/nvJPEG2000、cuSOLVER、cuSPARSELt​​ 等库,并与 ​​Nsight​​ 工具链集成用于性能分析与调试
运行 CUDA 应用需 ​​NVIDIA Driver​​;CUDA Toolkit​​ 提供编译与运行所需的库与工具。每个 CUDA Toolkit 版本对应一个最低驱动版本​​,而驱动通常向后兼容

二、安装步骤

1.选择合适的CUDA

翻译翻译,什么叫合适的CUDA?

CUDA目前最新的版本是CUDA13.0的更新版本,但是我们未必需要使用13.0,这是因为在我们部署pytorch环境的时候,往往会受限于我们的CUDA版本,往往我们使用的代码所用的pytorch版本都不是对应最新的CUDA版本,这个需要与我们实际所使用的pytorch版本对应
其次,我们所能安装的CUDA也与我们安装的驱动版本有关。这时候让我们再次使用nvidia-smi
在这里插入图片描述

以我现在目前的驱动版本为例,可以发现右边有一个CUDA Version,有的小朋友就天真的认为我们的CUDA版本就是13.0.
此处的CUDA版本其实指的是当前驱动所能支持的最大CUDA版本,只要我们安装的CUDA版本是低于这个的,就可以了。

2、下载CUDA

这里我担心大家找不到对应的网站,就贴心的把网址放到这里了CUDA-Toolkit
在这里插入图片描述点击立即下载后发现,跳转的界面是最新的12.4,这咋整?
有人说我就下载12.4不行么,可以~可以~可以~
在这里插入图片描述让他去下载12.4吧,我习惯使用的是11.2、11.6和12.2,我打算下载11.6和12.2给大家做个示范,再给大家一个链接CUDA往期版本这个链接是com结尾。
在这里插入图片描述点开之后你会发现,欸?有了!我这里;下拉选择11.6和12.2
这里我拿12.2为例
在这里插入图片描述这里直接根据我们的系统选择,与驱动安装一样选择run安装方法
在这里插入图片描述
绕了半天弹出来两行命令,是的你没有看错,我们只需要在终端里执行这两行命令即可完成对CUDA的安装

wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
sudo sh cuda_12.2.0_535.54.03_linux.run

wget命令你可以理解为一个网站下载的命令,那么我们就可以根据我们的后缀名去推算出11.6的下载命令而不需要去再去点点点了

wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
sudo sh cuda_11.6.0_510.39.01_linux.run

在这里插入图片描述
下载速度很可观,并不需要做加速处理,因为会自动使用国内的服务器,大小4个多G,大家要多分点空间哦~

3、安装与卸载CUDA

终端输入安装命令,需要等一小会,别以为是卡了,让子弹飞一会

sudo sh cuda_12.2.0_535.54.03_linux.run

经过漫长的等待,终于有反应了
在这里插入图片描述 意思是检测到你的系统已经通过 ​​Ubuntu 的软件包管理器(比如 apt、软件和更新、附加驱动)​​ 安装了 NVIDIA 驱动。强烈建议你先卸载掉这个通过包管理器安装的驱动,然后再继续用这个 .run 文件安装 NVIDIA 驱动。​​
是的,你发现了驱动安装的第四种方法,那就是通过CUDA安装配套的驱动。
那为什么我没有将其写进安装方法里面呢?那是也因为你只能安装对应驱动不能保证能够兼容其他版本,所以干脆安装一个比较新的驱动从而可以向下兼容更多的粗CUDA版本。
使用方向键然后回车这里continue即可
在这里插入图片描述然后进入老生长谈了,你是否同意协议~字母错了都不行哦,眼神好点,输完如果不知道按回车那就回家吧
accept
在这里插入图片描述这里你就会发现这里有一个535版本的驱动,我们回车不选它,然后之间走到install回车等待即可~
在这里插入图片描述当出现这种输出的时候,就代码CUDA12.2已经安装完毕了。
清注意这些输出,它告诉了我们几个关键的信息
1、CUDA12.2安装路径
/usr/local/cuda-12.2/
2、卸载CUDA12.2的方法
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.2/bin
如果有一天你需要卸载CUDA12.2,请运行cuda-uninstaller,命令为

sudo /usr/local/cuda-12.2/bin/cuda-uninstaller

在这里插入图片描述
选择所有然后Done即可删除CUDA12.2

3、CUDA环境变量的设置方法

安装完CUDA后,这时候有人就要问了,学长学长,有没有nvidia-smi一样验证CUDA的命令呢?
有的兄弟,验证CUDA的命令为nvcc -V
在这里插入图片描述
啊?学长误我!!!
欸~别急,与windows系统不同的是,ubuntu系统安装某一软件后,需要设置启动它的环境变量,命令失败,说明系统不认识nvcc命令,不在它的数据库里,这时候就需要设置我们的环境变量或者说软链接。
终端输入以下命令

gedit ~/.bashrc

.bashrc文件处于主目录中,通过会被隐藏,修改里面的内容可以不需要使用管理员权限,那如何使用管理员权限呢?用多少次命令了,前面加sudo呗
那么问题来了,如何设置环境变量呢?其实在安装CUDA后的输出就有提示了
在这里插入图片描述这里要求我们将以下命令添加到/etc/ld.so.conf里,不管我习惯放到.bashrc中

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

export你可以认为是一种声明,告诉系统你数据库里多了这些路径,下次有命令也可以从这些文件中去搜索
在这里插入图片描述
保存并退出后你以为就结束了?非也,需要更新环境变量内容,更新命令如下

source ~/.bashrc

注意:环境变量不止一种,但是每次修改都需要重新更新,否则不会立马生效,你要是修改完后重启那当我没说

更新完环境变量后,再次验证
在这里插入图片描述
输出CUDA版本12.2,至此CUDA12.2完全安装完毕

三、CUDA多版本共存问题

文章开始我说过我要安装cuda11.6和12.2,但是如何同时让两个版本存在并且不互相干扰呢?
首先你应该要能够在文件夹中找到CUDA的藏身之处。
打开文件夹,点击其他位置
在这里插入图片描述
这里可以看到我们所用内存大小和剩余空间,可以看到仅仅安装了驱动和CUDA以及一些更新我们就用了四十多G的内存,因此要学习视觉的同学一定要多分点空间哦~
什么?你问我分了多少?
我给正式的双系统分了300G,并且仍然在增加中,如何不重装系统并且增加空间的方法,这个后续再说
在这里插入图片描述点击计算机,此时我们会进入/目录,相信大家应该对linux的存储系统有些了解了,这里就不过多赘述了相信你们都会。
刚才提示了我们cuda的安装路径为/usr/local/cuda-12.2/
我们现在所处的位置就是/
在这里插入图片描述
对应找到usr文件夹并在里面找到local文件夹就可以看到cuda了,可以看到我已经安装了CUDA11.6和CUDA12.2
在这里插入图片描述有人会疑惑,为什么还有一个cuda?
这玩意你可以理解为快捷方式,文件夹上有个箭头跟windows系统一样代表着一种链接。如果你只安装了一个cuda,那么cuda文件夹和你安装的对应版本的文件夹里面的内容是等效的。
如果你也安装了第二个cuda版本,相信你在安装的过程中肯定遇到过是否update链接的问题,这里的意思就是是否将cuda文件夹里面的快捷方式换成你当前安装的cuda版本,是否更新全看你个人的意愿。

说了这么多,现在回到我们的多版本共存问题

那么我们是否可以在ubuntu系统上同时使用两种cuda呢?
答案是理论可以,实际不一定,但是我们可以保证在不交叉的情况下前后使用。
之前我们说过,我们使用.bashrc进行环境变量的设置,那么我们完全可以设置两种不同的环境变量,在没有用到对应cuda的时候进行注释,用到再解开
在这里插入图片描述如图,我已经将cuda12.2注释了,那么此时当我更新完.bashrc时,将会输出cuda11.6的版本信息
在这里插入图片描述此时我就可以使用CUDA11.6的所有功能。

那么cuda版本共存的好处是什么呢?

其实只是为了节省时间,当我们后期做的项目足够多时,肯定不可能一个cuda版本适配所有环境,提前保留可能使用的cuda版本是为了节约时间。此外,当你使用的是你们实验室的服务器时,多人操作同一台设备时这种共存就大大减少了环境崩溃的问题(前提是大家都清楚如何操作),因为总有人觉得自己很厉害,弄一些莫名其妙的操作把环境搞坏。


总结

OK,今天更新的还挺多的,除了安装和卸载Cuda还有一些注意事项以及版本共存问题,那么CUDNN的安装与部署就往后拖一拖咯~如果遇到没有涉及到的问题,欢迎评论区留言,这次真的下班咯

本文章已经生成可运行项目
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值