在 Ubuntu 上加速 PyTorch,通常可以从硬件加速、软件配置、代码优化三个层面来做。下面按实用程度给你一套清单。
nvidia-smi
能看到 GPU 信息说明驱动已装好。
不要用 pip 默认 CPU 版。
# 例如 CUDA 11.8
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
验证:
import torch
print(torch.cuda.is_available()) # True
device = torch.device("cuda")
model.to(device)
x = x.to(device)
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall
sudo apt install cpufrequtils
sudo cpufreq-set -g performance
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
torch.backends.cudnn.benchmark = True
torch.backends.cudnn.enabled = True
from torch.cuda.amp import autocast, GradScaler
scaler = GradScaler()
with autocast():
output = model(x)
loss = loss_fn(output, y)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
torch.utils.data.DataLoader(
dataset,
batch_size=64,
num_workers=8, # CPU 核心数
pin_memory=True,
prefetch_factor=4
)
model = torch.nn.DataParallel(model)
torchrun --nproc_per_node=2 train.py
model = torch.compile(model)
inplace=True(谨慎)FlashAttention)如果是无 GPU:
torch.set_num_threads(N)如果你能告诉我:
我可以给你针对性的加速方案。