CUDA升级/安装/使用 最新说明记录
显卡驱动、CUDA升级使用手册
最近发现了一台3年前的服务器空着,V100的显卡也不算太差,不如玩一玩大模型。
刚刚开始发现这服务器确实太久没更新使用了,这古早的显卡驱动和cuda,压根没办法跑现在新的大模型。真就是从“头”开始搭环境。
这台服务器是21年的机器,显卡驱动最高可支持的cuda版本是11.2,现在安装的cuda版本是11.2。干脆写个笔记记录一下,提供cuda升级思路,也帮大家更多的从使用角度了解一下cuda。
我这里是Ubuntu环境哦,如果你在操作过程中出现了我未提及的情况,直接评论即可。我会解决并完善这个文档。
一、认识cuda
CUDA(Compute Unified Device Architecture)是由NVIDIA推出的一种并行计算平台和编程模型,旨在利用NVIDIA GPU的并行计算能力。(这种概念就有点无聊,只要知道是什么,能干什么,怎么用就行)
就是你要用nvidia的显卡进行高性能计算,你就用cuda。
首先纠正第一个常见惯性错误:CUDA不是你安装的,而是你的路径指向的。
通常会有人认为它是一个可以【更新】的,update一下11.2就更新到12.0。但事实并非如此。
你可以选择安装12.0但这个时候原来的11.2还存在,并不是“以旧换新”而是“新旧共存”,如果你不需要11.2了可以卸载,达到“去旧留新”的目的。
1、查看当前显卡信息
先看一下显卡基本信息:
nvidia-smi
这里可以看到显卡型号、显存、驱动等相关信息。不要被这里的CUDA Version: 11.8迷惑了。
这里显示的是在当前显卡驱动版本下最大可支持CUDA版本为11.8。(如果你安装的版本<11.8就可以不更新显卡驱动,不过确实有些情况下临近版本也不要更新显卡驱动,比如可能11.9也不用更新,但是这里还是建议大家同步更新。保持版本同步。)
(如果没有上述的信息输出,你可能没有安装驱动,请直接跳转步骤二,可以安装CUDA的同时安装对应的驱动)
2、查看当前CUDA版本
nvcc -V
这里可以明确当前CUDA版本为11.3。
还记得上面提到的吗?CUDA不是你安装的,而是你的路径指向的。/usr/local/cuda一般是一个软链接,指向真正的cuda目录。
ls -l /usr/local
其实同时安装了cuda11.2和11.3,但是CUDA版本取决于哪个CUDA目录在你的默认路径(环境变量)中。也就是我们nvcc -V 查看到的版本。
执行下面命令,输出当前路径:
echo $PATH
- 如果当前路径有:usr/local/cuda、usr/local/cuda-11.2、usr/local/cuda-11.3,按照优先级当前版本为11.3。
- 如果当前路径只有:usr/local/cuda、usr/local/cuda-11.2,哪怕有软路径的指向存在,当前版本也只是11.2。
至此可以一定程度上理解为,升级CUDA就是切换更高的CUDA版本,就是修改默认路径中的CUDA目录。
3、切换CUDA版本
如果你发现自己本地已经安装了需要的版本,只是因为上面的情况未被使用,按照下面的内容切换CUDA版本即可。
如果你没有的话,按照二、安装CUDA后再回来切换版本即可。
(1)临时修改
如果只是特定项目需要特定的CUDA版本,可以使用如下命令临时修改。
export PATH=/usr/local/cuda-xx.x:$PATH
(2)永久修改默认CUDA
vim ~/.bashrc #打开环境变量
按‘i’开启编辑,在末尾插入下面的内容:
export PATH=/usr/local/cuda-12.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64:$LD_LIBRARY_PATH
按‘esc’退出编辑模式,输入:wq保存并退出。
运行如下指令使其生效:
source ~/.bashrc
再次输入nvcc -V查看当前CUDA版本,已经更新为12.0
二、安装CUDA
打开链接选择CUDA版本:CUDA Toolkit Archive | NVIDIA Developer
(我这边按照后续需要选择12.0,大家可以视自身情况选择更高版本。)
按照自己的系统情况选择,补充一个查看Ubuntu版本的命令行:lsb_release -a
选定后下面会给出两行命令(我对应的命令如下),下载并运行。
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux.run
sudo sh cuda_12.0.0_525.60.13_linux.run
按照提示安装即可,这里红色框选的部分【是否安装显卡驱动】需要注意一下。
nvidia-smi命令,查看当前驱动最大可支持的版本为12.0。我需要安装的版本为12.0,无需安装新的驱动。这里不选择(enter即可取消勾选)。
如果你要安装的版本大于当前显卡驱动支持的最大版本,先把当前显卡驱动卸载干净(前往四、卸载显卡驱动)。再回来勾选驱动和CUDA一起安装。(也可以倒过来四、三、二,先单独更新驱动再回来装CUDA)
安装完成如下显示,红色框选部分为官方提示下一步要干啥(就是添加路径)。
至此安装完成了新版CUDA,到一、3、切换CUDA版本即可。
三、安装显卡驱动
确定没有驱动再安装,如果此前有驱动只是版本过低的话请卸载再安装。
nvidia驱动下载:https://www.nvidia.cn/Download/index.aspx?lang=cn
输入你的显卡信息即可:
终端执行如下命令来安装驱动:(换成你自己下载的版本和路径)
sudo ./NVIDIA-Linux-x86_64-525.147.05.run
选择continue
提示是否需要32位兼容,不需要,no
即可
Install NVIDIA's 32-bit compatibility libraries?
DKMS注册内核模块,直接no
不需要
Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later
是否运行Nvidia-xconfig来配置X configuration文件,选择yes
Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA X driver will be used when you restart X? Any pre-existing X configuration file will be backed up.
如果提示这个Error,说明Xserver还没关,重新执行四、卸载显卡驱动中的内容关闭Xserver
执行nvidia-smi
命令能看到显卡相关信息即安装成功。
四、卸载显卡驱动
- 删除可能存在的驱动:
sudo apt-get remove --purge nvidia*
- 禁用原有的开源驱动:(通常没有哈)
sudo vi /etc/modprobe.d/blacklist-nouveau.conf
要是你有的话,如下操作禁用:
添加下面的内容来拉黑驱动;
blacklist nouveau
options nouveau modeset=0
保存后更新一下你的修改:
sudo update-initramfs -u
重启服务器即可完成禁用,成功的话如下命令没有输出:
lsmod | grep nouveau
- 关闭桌面系统:
X Server
,用于在Linux下显示桌面和其他相关可视化环境。安装显卡驱动时必须要将目前的桌面服务关闭才能成功
sudo service lightdm stop
最后可以安装pytorch和tensorflow等机器学习库了。这些库的版本需要查一下和当前CUDA兼容的版本是哪个。链接如下:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)