在 Ubuntu 24.04.2 LTS 服务器上搭建支持 GPU 的 PyTorch 环境,需按顺序完成以下关键步骤:✅ 验证硬件、✅ 安装 NVIDIA 驱动(推荐 nvidia-driver-535 或更高)、✅ 安装 CUDA Toolkit(通过 nvidia-cuda-toolkit 包或官方方式)、✅ 安装 cuDNN(可选但推荐)、✅ 创建 Conda/venv 环境并安装 GPU 版 PyTorch(使用官方 pip 或 conda 渠道)。以下是经过实测、安全、符合 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.so和libcudart.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-smi → nvcc --version → pip 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-535 → sudo 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)
欢迎随时提出 👍
PHPWP博客