ubuntu

Ubuntu系统中PyTorch的版本兼容性测试

小樊
39
2025-12-04 22:41:00
栏目: 智能运维

Ubuntu 下 PyTorch 版本兼容性测试

一 目标与适用范围

二 快速检查清单

三 判定规则与常见不兼容场景

四 一键测试脚本与结果解读

#!/usr/bin/env bash
set -e

echo "=== PyTorch 兼容性快速测试 ==="

# 0) 环境信息
echo -e "\n[0] 环境信息"
python3 - <<'PY'
import sys, torch, torchvision, platform, subprocess, re
print("Python:", sys.version)
print("Platform:", platform.platform())
print("torch:", torch.__version__, "torchvision:", torchvision.__version__, "torch cuda:", torch.version.cuda)
print("torch cuda available:", torch.cuda.is_available())
if torch.cuda.is_available():
    print("device count:", torch.cuda.device_count())
    print("device name:", torch.cuda.get_device_name(0))
    print("GPU arch:", torch.cuda.get_device_capability())
PY

# 1) 驱动与 nvcc
echo -e "\n[1] 驱动与 nvcc"
if command -v nvidia-smi >/dev/null 2>&1; then
  nvidia-smi | head -n 4 | tail -n 2
else
  echo "nvidia-smi not found"
fi
if command -v nvcc >/dev/null 2>&1; then
  nvcc --version | head -n 4 | tail -n 1
else
  echo "nvcc not found"
fi

# 2) 最小计算测试
echo -e "\n[2] 最小计算测试"
python3 - <<'PY'
import torch
if torch.cuda.is_available():
    x = torch.randn(2, 2, device='cuda')
    y = x @ x
    z = y.sum()
    print("cuda matmul & sum ok, result:", z.item())
else:
    print("cuda not available")
PY

# 3) 判定提示
echo -e "\n[3] 判定提示"
echo "- 若 'torch.cuda.is_available()' 为 False:"
echo "  1) 可能安装了 CPU 版 PyTorch;2) 驱动未安装/过旧;3) 驱动支持的 CUDA 低于 PyTorch 的 CUDA 运行时。"
echo "- 若报 'SM 算力不支持':请安装包含该 GPU 算力的 PyTorch CUDA 构建或升级 PyTorch 版本。"
echo "- 三者关系要点:"
echo "  nvidia-smi 的 'CUDA Version' >= torch.version.cuda;"
echo "  PyTorch 可自带 CUDA 运行时,和 nvcc 版本可不同;"
echo "  torchvision/torchaudio 版本需与主版本匹配。"

五 复现与修复命令示例

0
看了该问题的人还看了