1 安装显卡驱动

1.1 禁用nouveau

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

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

1
2
blacklist nouveau
options nouveau modeset=0

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

1
2
sudo update-initramfs -u
sudo reboot

重启后验证

1
lsmod | grep nouveau

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

1.2 安装显卡驱动

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

1
ubuntu-drivers devices

image-20250219190939154

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

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

安装完成后重启

1
sudo reboot

重启后在终端验证

1
nvidia-smi

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

2 安装CUDA

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

1
2
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文件中。

1
sudo vim ~/.bashrc

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

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

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

1
source ~/.bashrc

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

1
nvcc -V

3 安装cuDNN

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

1
2
3
4
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不可用,报错代码:

1
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

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

安装nvidia-fabricmanager

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

启动服务

1
systemctl start nvidia-fabricmanager

查看状态

1
systemctl status nvidia-fabricmanager

设置开机自启动

1
systemctl enable nvidia-fabricmanager

5 使用Pytorch验证

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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进行计算")