前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安装 nvidia 显卡驱动及故障排查

安装 nvidia 显卡驱动及故障排查

原创
作者头像
叶子Tenney
修改2024-11-01 18:31:11
880
修改2024-11-01 18:31:11
举报
文章被收录于专栏:叶子的数据科技专栏

引言

在一台旧一点的服务器 (CentOS 8.5.2111) 上安装 NVIDIA 显卡驱动及 CUDA 工具包。

如果是 ubuntu 系统,用apt安装,基本上把yum换成apt即可。

过程

一定注意,一定要先查看 PyTorch 和 cuda 的对应关系,避免重装。

PyTorch 和 cuda 的对应关系在PyTorch 官网查看。

而 cuda 和 nvidia-driver 的版本对应关系在CUDA 12.6 Update 2 Release Notes查看。

安装顺序:显卡驱动 → CUDA → CUDA Toolkit → cuDNN → Pytorch

以这台服务器的显卡型号为 Tesla V100 PCIe 32GB 为例,PyTorch 可以和 cuda 12.4 对应,所以安装 cuda 12.4.1, 对应的 nvidia-driver 是 550.54.15。

检查显卡型号

打开终端并运行以下命令,查看显卡型号:

代码语言:bash
复制
lspci | grep -i nvidia

若显卡支持 CUDA 加速,可以看到 NVIDIA 显卡的型号(如 NVIDIA GeForce GTX 1080)。

安装 NVIDIA 驱动

准备环境:

代码语言:bash
复制
sudo yum -y install kernel-devel
sudo yum -y install epel-release
sudo yum -y install gcc

在 CentOS 上,如果找不到 nvidia-driver-latest-dkms,可以尝试以下步骤来手动安装 NVIDIA 驱动和 CUDA。

手动下载并安装 NVIDIA 驱动

前往 NVIDIA 官方网站

NVIDIA 驱动下载

选择你的显卡型号和操作系统,然后下载对应的驱动程序。

安装 NVIDIA 驱动

  • 下载驱动后,将安装包下载到某个目录,然后通过终端进入该目录。
  • 为驱动程序添加执行权限并运行安装程序:

这时候有两种选择,一种是下载可执行文件 (run), 一种是下载打包好的程序 (deb, rpm), 这里先实验了程序,重启后无效,所以选择下载可执行文件:

前面说过,以这台服务器的显卡型号为 Tesla V100 PCIe 32GB 为例,对应的 nvidia-driver 是 550.54.15。

代码语言:bash
复制
wget https://us.download.nvidia.com/tesla/550.54.15/NVIDIA-Linux-x86_64-550.54.15.run
sudo chmod +x NVIDIA-Linux-x86_64-*.run
sudo ./NVIDIA-Linux-x86_64-*.run

交互界面选择默认即可。

程序方法:

代码语言:bash
复制
wget https://us.download.nvidia.com/tesla/550.127.05/nvidia-driver-local-repo-rhel8-550.127.05-1.0-1.x86_64.rpm
sudo chmod +x ./nvidia-driver-local-repo-rhel8-*.rpm
sudo yum install ./nvidia-driver-local-repo-rhel8-*.rpm

但是事实上提示安装成功了,但是重启后无效,所以还是选择下载可执行文件。

按照提示完成安装,确保在安装时禁用 nouveau 驱动(如有提示),然后重启系统。

代码语言:bash
复制
sudo reboot

验证安装

重启后,运行以下命令验证驱动是否成功安装:

代码语言:bash
复制
nvidia-smi

若显示 NVIDIA 驱动信息,即表明安装成功。

安装 CUDA

添加 CUDA 存储库

代码语言:bash
复制
sudo yum-config-manager --add-repo=https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo

安装 CUDA 工具包

nvidia-smi显示的信息中,右上角有对应的 CUDA 版本,以 CUDA 12.4 为例,运行以下命令:

手动安装:

首先在CUDA Toolkit Archive | NVIDIA Developer找到对应的版本,然后下载。

代码语言:bash
复制
sudo yum install -y libXi-devel libXmu-devel libXt-devel libXext-devel libX11-devel gcc-c++

wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run
sudo sh cuda_12.4.1_550.54.15_linux.run
# sudo TMPDIR=/dev/sda1/home/tmp sh cuda_12.4.1_550.54.15_linux.run

如果提示下面的错误,可以通过设置 TMPDIR 环境变量,将临时文件存储在空间充足的目录中,例如 /home/tmp

代码语言:bash
复制
Extraction failed.
Ensure there is enough space in /tmp and that the installation package is not corrupt
Signal caught, cleaning up

如果有另一个分区空间足够大,可以将 /tmp 挂载到那个分区。例如,如果 /home 有足够空间,可以创建一个临时目录并挂载:

创建新的临时目录:

代码语言:bash
复制
sudo mkdir /dev/sda1/home/tmp

将 /tmp 挂载到新的目录,并重新运行安装程序:

代码语言:bash
复制
sudo mount --bind /dev/sda1/home/tmp /tmp

运行安装完成后,再恢复原有设置:

代码语言:bash
复制
sudo umount /tmp

自动安装 (依旧可以跑但是实际跑不完):

代码语言:bash
复制
sudo yum install cuda-12-4 -y

配置环境变量

将 CUDA 的路径添加到环境变量中:

代码语言:bash
复制
ls /usr/local/cuda-*
echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

验证 CUDA 安装

运行以下命令检查 CUDA 安装是否成功:

代码语言:bash
复制
nvcc -V

正确显示 CUDA 版本信息说明安装成功。

结论

不得不说,折腾了很久,在网络文章和官方文档的帮助下,终于成功了。今天的吃一堑就到此为止吧...

篇外

这里特别说明一点,我也不知道为什么反正阿里云的镜像是不能用的,但是清华镜像可以用,所以特别说明如何切换清华镜像。

比如阿里的镜像源是http://mirrors.aliyun.com/,清华镜像源是https://mirrors.tuna.tsinghua.edu.cn/,只需要把http://mirrors.aliyun.com/换成https://mirrors.tuna.tsinghua.edu.cn/即可,按官网的命令是使用sed

既是说,把/etc/yum.repos.d/目录下的CentOS-Base.repo文件中的http://mirror.centos.org都替换成清华镜像源,而我这里已经用了阿里源,所以我应该是把http://mirrors.aliyun.com替换成https://mirrors.tuna.tsinghua.edu.cn

代码语言:bash
复制
sed -e "s|^mirrorlist=|#mirrorlist=|g" \
    -e "s|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/8.5.2111|g" \
    -e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/8.5.2111|g" \
    -i.bak \
    /etc/yum.repos.d/CentOS-*.repo

然后更新缓存:

代码语言:bash
复制
sudo yum makecache
sudo yum install epel-release

如果不小心已经弄坏了原有的原始仓库文件,可以从阿里云镜像的下载地址下载:

repo:

https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

epel:

https://mirrors.aliyun.com/repo/epel-archive-8.repo

引用

  1. 240107-RHEL8+RHEL9 配置安装:NVIDIA 驱动(15 步)+CUDA(4 步)+CUDNN(5 步)+GPU 压力测试_rhel9 安装 n 卡驱动-CSDN 博客
  2. Download The Official NVIDIA Drivers | NVIDIA
  3. CUDA 12.6 Update 2 Release Notes
  4. CUDA Toolkit Archive | NVIDIA Developer
  5. CentOS8 修改国内镜像源 - 吕金林 - 博客园
  6. centos-vault | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
  7. epel | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 过程
    • 检查显卡型号
      • 安装 NVIDIA 驱动
        • 手动下载并安装 NVIDIA 驱动
      • 安装 CUDA
      • 结论
      • 篇外
      • 引用
      相关产品与服务
      GPU 云服务器
      GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档