在Ubuntu 22.04系统上部署CUDA 11.8和cuDNN 8.x是搭建深度学习开发环境的标准操作。这个组合经过长期验证,能够稳定支持主流深度学习框架(如TensorFlow 2.x/PyTorch 2.0)的GPU加速需求。开始前需要确认几个关键前提:
lspci | grep -i nvidia查看)uname -r查看)重要提示:Ubuntu默认的nouveau驱动会与NVIDIA驱动冲突,安装前需执行:
bash复制sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf" sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf" sudo update-initramfs -u完成后重启系统验证是否生效(
lsmod | grep nouveau应无输出)
CUDA 11.8仍保持对Ubuntu 22.04的官方支持,建议通过NVIDIA官方仓库安装:
bash复制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 update
为避免自动升级到新版CUDA,需要精确指定版本号:
bash复制sudo apt install cuda-toolkit-11-8 cuda-libraries-11-8 cuda-drivers
安装完成后需将CUDA加入环境变量:
bash复制echo 'export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc
执行以下命令验证安装:
bash复制nvcc --version # 应显示11.8版本
nvidia-smi # 右上角应显示CUDA Version: 11.8
/usr/local/cuda-11.8/extras/demo_suite/deviceQuery # 最后应显示Result = PASS
需从NVIDIA开发者网站下载对应版本(建议8.6.0):
bash复制tar -xzvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz
将头文件和库文件复制到CUDA目录:
bash复制sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-11.8/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64
sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn*
检查cuDNN版本是否生效:
bash复制cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
安装支持CUDA 11.8的PyTorch:
bash复制pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
验证GPU是否可用:
python复制import torch
print(torch.cuda.is_available()) # 应返回True
print(torch.backends.cudnn.version()) # 应显示8.x
安装对应版本:
bash复制pip install tensorflow==2.12.0 # 官方编译版支持CUDA 11.8
验证配置:
python复制import tensorflow as tf
print(tf.config.list_physical_devices('GPU')) # 应显示GPU信息
若遇到Failed to initialize NVML: Driver/library version mismatch错误:
bash复制sudo apt --purge remove "*nvidia*"
sudo bash NVIDIA-Linux-*.run --silent --dkms
sudo reboot
多版本CUDA共存时,建议使用update-alternatives管理:
bash复制sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-11.8 100
sudo update-alternatives --config cuda # 交互式选择版本
若libcudnn.so报错,需检查符号链接:
bash复制cd /usr/local/cuda-11.8/lib64
sudo ln -sf libcudnn.so.8 libcudnn.so
sudo ldconfig
启用持久化模式提升GPU响应速度:
bash复制sudo nvidia-smi -pm 1
调整GPU时钟频率(需根据显卡型号调整):
bash复制nvidia-settings -a GPUPowerMizerMode=1
在Docker中使用时,建议直接使用NVIDIA官方镜像:
dockerfile复制FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
监控工具推荐:
nvtopdcgmi