3、操作系统与环境准备:Ubuntu Server 22.04安装、NVIDIA驱动安装、CUDA Toolkit与cuDNN配置

做本地大模型部署,第一步就是搭好地基。我见过太多人模型跑不起来,最后发现是环境没配好。说白了,操作系统和驱动就是大模型的「跑道」,跑道不平,飞机怎么起飞?

这一章,我们从头捋一遍。从装系统到配好CUDA,每一步我都会把坑指出来。嗯,都是我自己踩过的。

3.1 Ubuntu Server 22.04 安装要点

为什么选22.04?因为稳定。我试过20.04,有些新库不支持;试过24.04,又太新,兼容性有风险。22.04是LTS版本,支持到2027年,够用。

安装时注意几点:

  • 磁盘分区:建议至少留100GB给系统,剩下的全给数据。我习惯把 /home 单独分一个大区,方便以后重装系统不丢模型文件。
  • 网络配置:安装时选静态IP,别用DHCP。你想想看,服务器IP天天变,SSH连起来多麻烦。
  • SSH服务:安装过程中勾选「Install OpenSSH server」,这是标配。我刚开始忘了勾,装完还得插显示器去配,太蠢了。
  • 系统更新:装完后先跑一遍 sudo apt update && sudo apt upgrade -y。别偷懒,这一步能避免很多依赖问题。
我的习惯:装完系统第一件事,关掉防火墙。不是不重视安全,而是调试阶段防火墙会挡掉很多端口,等模型跑通了再慢慢加固。

3.2 NVIDIA 驱动安装

驱动装不好,显卡就是摆设。我遇到过最离谱的一次,装完驱动重启,直接黑屏。后来发现是驱动版本和内核不匹配。

推荐用官方仓库安装,干净利落:

# 先查显卡型号
lspci | grep -i nvidia

# 添加官方驱动PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

# 查看推荐驱动版本
ubuntu-drivers devices

# 安装推荐版本(一般是nvidia-driver-535或545)
sudo apt install nvidia-driver-535

# 重启
sudo reboot

# 验证
nvidia-smi

看到类似下面的输出,就说明驱动装好了:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.86.05    Driver Version: 535.86.05    CUDA Version: 12.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA A100 80GB     Off  | 00000000:00:04.0 Off |                    0 |
|                               |                      |                  Off |
+-------------------------------+----------------------+----------------------+
避坑指南:我曾经手贱装了最新版驱动,结果内核升级后驱动挂了。建议锁定内核版本,或者用 apt-mark hold nvidia-driver-535 固定驱动版本。

3.3 CUDA Toolkit 配置

驱动装好了,CUDA Toolkit 就是给显卡编程的「语言」。大模型框架(比如PyTorch、TensorFlow)都依赖它。

安装步骤:

  1. 下载CUDA:去NVIDIA官网选对应版本。我推荐12.1或12.2,兼容性最好。
  2. 安装:用runfile方式,别用deb。runfile可以自定义安装路径,方便管理。
# 下载(以12.2为例)
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run

# 安装
sudo sh cuda_12.2.0_535.54.03_linux.run

# 安装时注意:
# - 取消勾选Driver(驱动已装)
# - 选择Toolkit和Samples
# - 安装路径默认即可

装完后配置环境变量:

# 编辑 ~/.bashrc
echo 'export PATH=/usr/local/cuda-12.2/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

# 验证
nvcc --version

看到版本号就对了。如果报错,八成是路径没配好,检查一下 /usr/local/cuda 软链接是否存在。

3.4 cuDNN 配置

cuDNN 是NVIDIA的深度学习加速库。没有它,模型训练和推理会慢很多。说白了,cuDNN就是给CUDA加了「涡轮增压」。

安装步骤:

  1. 下载:去NVIDIA官网注册账号,下载对应CUDA版本的cuDNN。我一般选「cuDNN Library for Linux (x86_64)」。
  2. 解压并复制
# 解压
tar -xzvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz

# 复制到CUDA目录
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64

# 设置权限
sudo chmod a+r /usr/local/cuda/include/cudnn*.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

# 验证
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

看到版本号输出,就说明cuDNN装好了。

我的经验:cuDNN版本一定要和CUDA严格匹配。我曾经图省事,随便下了个最新版,结果PyTorch编译报错,查了两天才发现是版本不匹配。血的教训。

3.5 环境验证与常见问题

全部装完后,跑一个简单的测试:

# 测试CUDA
nvidia-smi
nvcc --version

# 测试cuDNN(用samples)
cp -r /usr/local/cuda/samples ~/
cd ~/samples/1_Utilities/deviceQuery
make
./deviceQuery

如果看到 Result = PASS,恭喜你,环境配好了。

常见问题汇总:

问题 原因 解决方法
nvidia-smi 报错 驱动未安装或内核不匹配 重新安装驱动,锁定内核版本
nvcc 找不到 环境变量未配置 检查 PATH 和 LD_LIBRARY_PATH
cuDNN 版本不匹配 下载了错误的cuDNN版本 去官网核对CUDA版本对应的cuDNN
编译报错 缺少依赖库 安装 build-essential、gcc、g++

核心要点:操作系统、驱动、CUDA、cuDNN,这四层必须层层匹配。任何一个版本不对,后面的大模型框架都跑不起来。我建议把版本号记下来,方便以后排查。

嗯,环境准备就这些。看起来步骤多,其实熟练了十分钟搞定。关键是别跳步,每一步都验证通过再往下走。我曾经图快,一口气装完,结果全得重来——那才叫浪费时间。

环境准备知识体系 Ubuntu Server 22.04 NVIDIA 驱动 CUDA Toolkit cuDNN 基础层 硬件驱动层 计算框架层 加速库层 层层依赖 版本必须匹配

公众号:蓝海资料掘金营,微信deep3321