在 Ubuntu 上加速 PyTorch 训练,可以从硬件、软件环境、代码层面三个方向入手。下面给你一套实用清单(从最重要到进阶)。
nvidia-smi
确认:
安装匹配驱动:
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall
PyTorch 官方推荐方式(最稳):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
验证:
import torch
print(torch.cuda.is_available())
print(torch.version.cuda)
.to('cuda')device = 'cuda' if torch.cuda.is_available() else 'cpu'
model = model.to(device)
inputs = inputs.to(device)
DataParallel 或 DistributedDataParallelmodel = torch.nn.DataParallel(model)
torchrun --nproc_per_node=2 train.py
model = torch.nn.parallel.DistributedDataParallel(model)
torch.backends.cudnn.benchmark = True
torch.backends.cudnn.enabled = True
torch.compile(PyTorch 2.x)model = torch.compile(model)
在 Ubuntu + GPU 上通常能加速 10–30%
from torch.cuda.amp import autocast, GradScaler
scaler = GradScaler()
with autocast():
output = model(x)
loss = criterion(output, y)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
DataLoader 优化DataLoader(
dataset,
batch_size=64,
num_workers=8,
pin_memory=True,
prefetch_factor=4
)
opencv / PIL + cacheconda create -n torch python=3.10
conda activate torch
sudo apt update
sudo apt install linux-generic
torch.utils.benchmarktorch.cuda.is_available() == Truecudnn.benchmark = Truetorch.compilenum_workers > 0如果你愿意,可以告诉我:
我可以给你针对性的配置示例。