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)都依赖它。
安装步骤:
- 下载CUDA:去NVIDIA官网选对应版本。我推荐12.1或12.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加了「涡轮增压」。
安装步骤:
- 下载:去NVIDIA官网注册账号,下载对应CUDA版本的cuDNN。我一般选「cuDNN Library for Linux (x86_64)」。
- 解压并复制:
# 解压
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,这四层必须层层匹配。任何一个版本不对,后面的大模型框架都跑不起来。我建议把版本号记下来,方便以后排查。
嗯,环境准备就这些。看起来步骤多,其实熟练了十分钟搞定。关键是别跳步,每一步都验证通过再往下走。我曾经图快,一口气装完,结果全得重来——那才叫浪费时间。
公众号:蓝海资料掘金营,微信deep3321