服务器开荒日记(CUDA、cuDNN、nvidia-fabricmaneger安装)—–解决nvcc、驱动正常,但GPU无法正常使用问题

131 阅读1分钟

1 安装显卡驱动

1.1 禁用nouveau

 sudo vim /etc/modprobe.d/blacklist-nouveau.conf

在文件中插入以下内容,将nouveau加入黑名单,默认不开启

 blacklist nouveau
 options nouveau modeset=0

输入以下命令使禁用生效然后重启

 sudo update-initramfs -u
 sudo reboot

重启后验证

 lsmod | grep nouveau

如果回车后无反应,则禁用成功

1.2 安装显卡驱动

查询电脑最适合的显卡驱动版本

 ubuntu-drivers devices

image-20250219190939154.png

安装推荐的显卡驱动,后面标recommended

 sudo apt-get update
 sudo apt-get install nvidia-driver-570 #此处数字要对应上面查询到的版本号

安装完成后重启

 sudo reboot

重启后在终端验证

 nvidia-smi

若出现GPU列表,则安装成功

2 安装CUDA

下载CUDA,并按照官方提示安装。

 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

等待一会,会出现安装界面,取消第一个Driver选项里的X,[X]改为[ ],选择Install。

安装完后需要配置环境变量,将以下内容添加到~/.bashrc文件中。

 sudo vim ~/.bashrc

在文件末尾添加如下两行。

 export LD_LIBRARY_PATH=/usr/local/cuda/lib
 export PATH=$PATH:/usr/local/cuda/bin

然后刷新~/.bashrc配置文件,使得配置生效。

 source ~/.bashrc

测试、查询nvcc版本检查是否安装成功

 nvcc -V

3 安装cuDNN

cuDNN下载链接, 下载对应版本的cuDNN

 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
 sudo dpkg -i cuda-keyring_1.1-1_all.deb
 sudo apt-get update
 sudo apt-get -y install cudnn

4 安装Fabric-manager(天坑)

之前装好了显卡驱动、CUDA、cuDNN后,使用Pytorch测试一直显示GPU不可用,报错代码:

 Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 802: system not yet initialized

只能尝试重装驱动和CUDA等,试了无数个版本都未果。丢给DeepSeek、文心一言、豆包等都是得到教科书式的标准答案:"建议检查驱动兼容性"、"尝试清理残留文件",最后天无绝人之路,尝试丢给ChatGPT,答案输出的同时,瞬间看出具体问题所在,激动的心,颤抖的手。。。

image-20250219193707140.png

在使用NVIDIA显卡(V100/A100/A30等)时,需要安装对应的驱动,还要安装与驱动版本对应的 nvidia-fabricmanager 服务,使GPU卡间能够通过NVSwitch互联。

安装nvidia-fabricmanager

 version=570.xxx.xx  #已经安装的驱动版本
 main_version=$(echo $version | awk -F '.' '{print $1}')
 apt-get update
 apt-get -y install nvidia-fabricmanager-${main_version}=${version}-*
 ​

启动服务

 systemctl start nvidia-fabricmanager

查看状态

 systemctl status nvidia-fabricmanager

设置开机自启动

 systemctl enable nvidia-fabricmanager

5 使用Pytorch验证

使用miniconda安装好对应版本的Pytorch,运行下面的程序进行验证。

 import torch
 ​
 # 检查是否有可用的GPU
 if torch.cuda.is_available():
     device_count = torch.cuda.device_count()
     print(f"当前系统中可用的GPU数量为:{device_count}")
 else:
     print("未检测到可用的GPU")
 ​
 # 使用GPU进行计算任务
 x = torch.tensor([1, 2, 3])
 y = torch.tensor([4, 5, 6])
 ​
 if torch.cuda.is_available():
     x = x.cuda()
     y = y.cuda()
     z = x + y
     print(f"在GPU上进行计算:{z}")
 else:
     print("无法使用GPU进行计算")