我将3090显卡台式机安装了centos,用于稳定运行本地大语言模型chatGLM。
在Centos系统中安装Nvidia驱动有一定的挑战性,可以说是都是坑。
以下是我在整个过程中的重要心得分享:
一、禁用Nouveau
在CentOS安装NVIDIA驱动之前,我们需要禁用开源图形驱动程序nouveau,防止屏幕闪烁或显示异常。以下是详细步骤:
-
首先,我们需要确认Nouveau是否已经加载:在终端中执行
lsmod | grep nouveau
命令。 -
接下来,使用
sudo nano /etc/modprobe.d/blacklist-nouveau.conf
命令创建一个nouveau禁用的配置文件,然后在文件中添加以下内容:
plaintext
blacklist nouveau
options nouveau modeset=0
保存并退出编辑器。
-
为了使更改生效,使用
sudo dracut --force
命令重新生成initramfs。 -
接着,执行
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
命令更新GRUB配置,然后使用sudo reboot
命令重启系统。 -
重启后,再次在终端中执行
lsmod | grep nouveau
命令,确认nouveau戈禁用。
二、安装GCC和Kernel
在安装NVIDIA驱动之前,需要确保系统中已经安装了GCC编译器和Kernel。使用sudo yum install gcc
和sudo yum install kernel
命令进行安装。在安装NVIDIA驱动时,需要指定Kernel源代码路径,使用./Nvidiadriverversion.sh --kernel-source-path=/usr/src/kernels/Kernelversion
命令进行安装。
三、解决安装中的问题
在安装过程中,可能会遇到以下错误信息:“Unable to determine if Secure Boot is enabled: No such file or directory”。原因可能是Kernel源代码配置不当或GCC版本与目标Kernel版本不匹配。解决办法是使用yum install -y "kernel-devel-uname-r == $(uname -r)"
命令安装kernel-devel。
然后,再次运行安装命令./Nvidiadriverversion.sh --kernel-source-path=/usr/src/kernels/Kernelversion
,这次指定的Kernel源代码路径应该是安装了kernel-devel的目录。
在安装成功后,通过运行nvidia-smi
命令确认CUDA版本,例如,显示的CUDA版本可能为12.2。
如果需要安装特定版本的Pytorch,如2.0.1,我们可以通过官网提供的版本对应表来寻找与CUDA版本对应的Pytorch版本。这里需要注意的是,有些CUDA版本可能没有对应的Pytorch版本。如果没有,我们可以试图安装接近且有对应Pytorch版本的CUDA。
例如,我发现CUDA 12.2并没有对应的Pytorch 2.0.1,于是我尝试安装CUDA 11.8。在安装时,可以使用以下命令:
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.8 -c pytorch -c nvidia
安装完成后,我们还可以继续安装其他需要的Python库,如fastapi, uvcorn, transformer, transformerpiece等。
通过测试,我发现CUDA 12.2环境下可以正常运行安装的CUDA 11.8和Pytorch 2.0.1,看来驱动是向下兼容的。