如何在Ubuntu 24.04.2 LTS服务器上搭建支持GPU的PyTorch环境?

在 Ubuntu 24.04.2 LTS 服务器上搭建支持 GPU 的 PyTorch 环境,需按顺序完成以下关键步骤:✅ 验证硬件、✅ 安装 NVIDIA 驱动(推荐 nvidia-driver-535 或更高)、✅ 安装 CUDA Toolkit(通过 nvidia-cuda-toolkit 包或官方方式)、✅ 安装 cuDNN(可选但推荐)、✅ 创建 Conda/venv 环境并安装 GPU 版 PyTorch(使用官方 pipconda 渠道)。以下是经过实测、安全、符合 Ubuntu 24.04 LTS 最佳实践的完整指南(以 NVIDIA GPU 为例,如 A100/V100/RTX 4090/3090 等):


✅ 前提检查

# 1. 确认系统版本
lsb_release -a  # 应显示 Ubuntu 24.04.2 LTS

# 2. 检查 GPU 是否被识别
lspci | grep -i nvidia
nvidia-smi  # 若报错“NVIDIA-SMI has failed”,说明驱动未安装 → 需先装驱动

⚠️ 注意:Ubuntu 24.04 默认内核为 6.8.x,需确保 NVIDIA 驱动版本 ≥ 535.104.05(支持 6.8 内核)。旧驱动(如 525)可能编译失败。


🔧 步骤 1:安装 NVIDIA 驱动(推荐 ubuntu-drivers 自动方案)

# 更新系统 & 安装基础依赖
sudo apt update && sudo apt upgrade -y
sudo apt install -y linux-headers-$(uname -r) build-essential dkms

# 自动检测并安装推荐的专有驱动(通常为 535 或 545)
sudo ubuntu-drivers autoinstall

# ✅ 验证安装(重启后运行)
sudo reboot

# 重启后验证:
nvidia-smi  # 应显示 GPU 信息和驱动版本(如 535.104.05+)

💡 提示:若 autoinstall 安装失败(如 Secure Boot 冲突),可手动安装:

sudo apt install -y nvidia-driver-535-server  # 服务器场景更稳定
# 或最新稳定版(截至 2024-07):
sudo apt install -y nvidia-driver-545

📦 步骤 2:安装 CUDA Toolkit(推荐 nvidia-cuda-toolkit 包 —— Ubuntu 官方维护,免冲突)

Ubuntu 24.04 官方仓库已提供 CUDA 12.2(nvidia-cuda-toolkit),无需手动下载 .run 文件,避免与系统包管理器冲突:

# 安装官方 CUDA 工具包(含 nvcc、cudart、cublas 等)
sudo apt install -y nvidia-cuda-toolkit

# 验证 CUDA 编译器
nvcc --version  # 应输出:nvcc: NVIDIA (R) Cuda compiler driver, release 12.2, V12.2.140

# 检查 CUDA 路径(通常为 /usr/lib/nvidia-cuda-toolkit)
ls /usr/lib/nvidia-cuda-toolkit/bin/nvcc

✅ 优势:此方式安装的 CUDA 与系统驱动协同良好,libcuda.solibcudart.so 自动注册到系统路径,PyTorch 可直接调用。

❗ 不要同时安装 NVIDIA 官网 .run 文件版 CUDA!会破坏 apt 包管理,导致升级失败。


🧩 步骤 3:安装 cuDNN(可选但强烈推荐,提升性能)

Ubuntu 24.04 官方源暂未包含 cuDNN(需手动安装),但可通过 NVIDIA 官方 deb 包快速部署:

# 下载 cuDNN v8.9.7 for CUDA 12.2(适配 Ubuntu 22.04+,兼容 24.04)
# 👉 访问 https://developer.nvidia.com/cudnn → 登录 → 下载 "cuDNN v8.9.7 Library for Linux (x86_64) - Debian"
# 假设下载到 ~/Downloads/cudnn-linux-x86_64-8.9.7.29_cuda12.2-archive.tar.xz

# 解压并安装(以 root 权限复制文件)
cd ~/Downloads
tar -xf cudnn-linux-x86_64-8.9.7.29_cuda12.2-archive.tar.xz
sudo cp cudnn-linux-x86_64-8.9.7.29_cuda12.2-archive/include/cudnn*.h /usr/include/
sudo cp cudnn-linux-x86_64-8.9.7.29_cuda12.2-archive/lib/libcudnn* /usr/lib/x86_64-linux-gnu/
sudo chmod a+r /usr/lib/x86_64-linux-gnu/libcudnn*

# 刷新动态库缓存
sudo ldconfig

✅ 验证:cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR → 应输出 8


🐍 步骤 4:创建 Python 环境并安装 PyTorch(GPU 版)

✅ 推荐方式:使用 conda(自动管理 CUDA/cuDNN 依赖,最省心)

# 1. 安装 Miniconda(轻量、无 Anaconda 冗余包)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3
source $HOME/miniconda3/etc/profile.d/conda.sh
conda init bash && source ~/.bashrc

# 2. 创建环境(Python 3.10/3.11/3.12 均支持)
conda create -n torch-gpu python=3.11 -y
conda activate torch-gpu

# 3. 安装 PyTorch + torchvision + torchaudio(CUDA 12.1 兼容 12.2,官方推荐)
# 👉 查看最新命令:https://pytorch.org/get-started/locally/
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

✅ 验证 PyTorch GPU 支持:

python -c "
import torch
print('PyTorch version:', torch.__version__)
print('CUDA available:', torch.cuda.is_available())
print('CUDA version:', torch.version.cuda)
print('GPU count:', torch.cuda.device_count())
print('Current GPU:', torch.cuda.get_device_name(0))
x = torch.randn(3, 3).cuda()
print('GPU tensor OK:', x.device)
"

✅ 输出应类似:

PyTorch version: 2.3.1+cu121
CUDA available: True
CUDA version: 12.1
GPU count: 1
Current GPU: NVIDIA A100-SXM4-40GB
GPU tensor OK: cuda:0

替代方式:使用 pip + 系统 Python(不推荐新手,但可行)

# 使用系统 Python 3.12(Ubuntu 24.04 默认)
sudo apt install -y python3.12-venv python3.12-dev
python3.12 -m venv ~/venv-torch-gpu
source ~/venv-torch-gpu/bin/activate

# 安装(同上,cu121 whl 兼容 CUDA 12.2 运行时)
pip install --upgrade pip
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

🛠️ 附加工具(可选但实用)

# 安装 nvidia-ml-py(用于监控)
pip install nvidia-ml-py

# 在 Python 中查看详细 GPU 状态
python -c "import pynvml; pynvml.nvmlInit(); h=pynvml.nvmlDeviceGetHandleByIndex(0); print(pynvml.nvmlDeviceGetName(h))"

🚫 常见问题排查

现象 原因 解决
torch.cuda.is_available() == False 驱动未加载 / CUDA 路径错误 / PyTorch CPU 版误装 nvidia-sminvcc --versionpip show torch 确认含 cu121
ImportError: libcudnn.so.8: cannot open shared object file cuDNN 未正确安装或 ldconfig 未刷新 sudo ldconfig + 检查 /usr/lib/x86_64-linux-gnu/libcudnn*
nvidia-smi: command not found 驱动未安装或未重启 sudo apt install nvidia-driver-535sudo reboot
ERROR: Could not find a version that satisfies the requirement torch... pip 源慢或网络问题 pip install ... --index-url https://download.pytorch.org/whl/cu121 -i https://pypi.tuna.tsinghua.edu.cn/simple

✅ 最终验证脚本(一键运行)

# 保存为 verify_torch_gpu.py 并执行
import torch
print("✅ PyTorch Version:", torch.__version__)
print("✅ CUDA Available:", torch.cuda.is_available())
if torch.cuda.is_available():
    print("✅ CUDA Version:", torch.version.cuda)
    print("✅ Devices:", [torch.cuda.get_device_name(i) for i in range(torch.cuda.device_count())])
    x = torch.ones(1).cuda()
    print("✅ GPU Tensor OK:", x.item())
else:
    print("❌ CUDA NOT AVAILABLE — check driver/CUDA/PyTorch install!")

如需支持 ROCm(AMD GPU)Intel GPU(oneAPI),请告知,我可提供对应方案。

需要我为你生成:

  • ✅ 自动化安装脚本(.sh
  • ✅ Dockerfile(带 GPU 支持的 PyTorch 基础镜像)
  • ✅ Jupyter + GPU 环境配置
  • ✅ 多 GPU 分布式训练配置(torch.distributed

欢迎随时提出 👍