
PyTorch 安装与验证系列第 2 篇。上一篇 GPU 底座打完本篇装本地 AI 的核心框架 PyTorch。重点解决四个问题去 pytorch.org 选择器怎么选 pip 命令cu124 / cu118 / cpu 三种 wheel 怎么选国内怎么加速装完用哪三步验证真的上卡了。读完你能装出一个torch.cuda.is_available()返回True的环境并避开 32 位 Python、CPU 版装成默认这两类最阴的坑。一、为什么需要它PyTorch 是本地 AI 的事实标准底座跑大模型推理、微调、图像生成Stable Diffusion 全家桶、Whisper 语音识别底层几乎都是它。本篇的验证三步会成为后面 28 篇的公共检查点——以后任何一篇报 GPU 相关的错第一反应都是回到这三步查环境。装 PyTorch 的坑不在命令本身一条 pip 的事而在选版本pytorch.org 的选择器会按操作系统、语言、包管理器和 CUDA 版本四个条件生成一条完整命令四个条件里任何一个选错装出来的东西就和预期不一致。第二层坑在wheel。同一份 PyTorch 会按不同 CUDA 版本编译出不同安装包cu124 版带 CUDA 12.4 运行时cu118 版带 11.8cpu 版干脆不带。选错组合的典型症状是torch.cuda.is_available()返回False或者驱动太老时报CUDA driver version is insufficient for CUDA runtime version。这两个报错的修法方向完全相反本篇后面会拆开讲。第二个高频坑是装成 CPU 版而不自知很多教程里的pip install torch默认拉的是 CPU 版或按本机环境推了 cpu wheel装完 import 成功、跑 CPU 推理也没报错唯独 GPU 一点不上。所以本篇把验证写成和安装同等重要的部分而且验证不止看is_available()还要真把一张量扔到 GPU 上算一遍。第三个坑更隐蔽教程里的命令本身可能过时。PyTorch 的版本组合几个月就迭代一轮一年前文章里的命令照着敲可能拉到已经下架的 cuXXX 变体或者一个和现有驱动不搭的旧版本。这就是本篇第一步坚持去官网选择器生成命令、而不是直接甩一条让你复制的原因——命令本身不值钱能随时生成最新正确命令才值钱。前置条件驱动已装好nvidia-smi能出表记下了驱动版本和 CUDA 支持上限。如果还没装先回《AI-01 CUDA 与 N 卡驱动安装》。本篇全程在虚拟环境里操作不碰全局环境——这条纪律比任何一条安装命令都重要它决定了你以后会不会在明明装过 torch 却找不到这种问题上反复消耗时间。二、环境要求项目要求说明NVIDIA 驱动nvidia-smi能出表建议 550 系及以上驱动约 550 支持 CUDA 12.4、555 支持 12.5、560 支持 12.6以官网兼容性表为准Python3.10 / 3.11 / 3.12保守选 3.11必须 64 位32 位 Python 装不了 GPU 版 PyTorch也装不上 VC 运行库 x64虚拟环境venv 或 conda一个项目一个环境创建与激活命令详见《AI-03 Python 环境与虚拟环境》磁盘建议预留 5 GB 以上torch 本体重加上依赖CUDA 运行时捆绑在里面不小网络能访问 PyPI 或清华镜像wheel 从download.pytorch.org官方源拉国内可用清华源装其余依赖Windows 附加VC 2015-2022 Redistributablex64缺失时报 DLL load failed见故障排查Python 版本这里强调两点。其一必须是 64 位32 位 Python 拿到的只能是不带 GPU 支持的包且 Windows 下 32 位环境装 VC 运行库 x64 也对不上。其二3.11 是当前兼容性最稳的选择3.13 的新生态还有兼容风险不建议拿它当第一环境。三、安装与部署3.1 第一步pytorch.org 选择器选 pip 命令不要手抄任何教程里的安装命令——PyTorch 的 wheel 组合迭代快唯一可靠的命令生成器是官网Get Started页面pytorch.org。进去后按四栏选操作系统Windows 或 LinuxWSL2 里选 Linux别选 Windows语言Python本篇主线选 Conda 的话命令是conda install形式同样以页面生成结果为准包管理器pipCUDA 版本这里对照nvidia-smi右上角的支持上限选如 12.4 就选 12.4上限只有 11.x 就选 11.8。上限够新却选了偏旧的 wheel 也能跑只是放弃了一部分新特性上限不够却硬选新的就是后面故障排查里那条 insufficient 报错。页面生成的命令长这样cu124 为例pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu1243.2 cu124 / cu118 / cpu 三种 wheel 怎么选选择原则一条PyTorch 编译所用的 CUDA 版本 ≤ 驱动支持的 CUDA 版本这是上限原则不是必须相等。cu124CUDA 12.4 运行时nvidia-smi 支持上限 ≥ 12.4 时的默认选择绝大多数 2023 年后的卡 新驱动都落在这个区间cu118CUDA 11.8 运行时驱动上限只有 11.x老驱动、老卡时用它。老架构显卡如 Maxwell、Pascal 这一代对 cu118 的覆盖比更新版本更好太新的 CUDA 编译在老架构上会直接报CUDA error: no kernel image is available for execution on the devicecpu没有 N 卡、或显存/驱动实在没戏时的兜底。cpu 版体积小、装得快验证代码逻辑和跑小模型够用但 GPU 相关功能全部缺失命令pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu怎么选不纠结先nvidia-smi看支持上限再用 pytorch.org 选择器按上限选——选择器给出的就是当前 PyTorch 版本下与你的驱动最匹配的组合以它为准。3.3 国内加速方案两个层面分开处理wheel 本身从官方源download.pytorch.org拉这个源国内直连通常可用但不快慢就换时段。多说一句torch 的 wheel 带捆绑的 CUDA 运行时单个包就有好几 GB别把它指到不熟的第三方镜像——体积大、校验麻烦来路不明的源比“慢”更坑。其余依赖一律走清华源速度快一个量级pip install pkg -i https://pypi.tuna.tsinghua.edu.cn/simple阿里源可作备份-i https://mirrors.aliyun.com/pypi/simple。后续下载模型才是真正的大流量场景届时用 hf-mirror 或 ModelScopeset HF_ENDPOINThttps://hf-mirror.comLinux 下用export HF_ENDPOINThttps://hf-mirror.com或pip install modelscope后走 ModelScope 下载完整方案详见《AI-06 模型下载全攻略》。3.4 执行安装确认虚拟环境已激活python -c import sys; print(sys.executable)打印的路径指向你的 .venv/conda 环境然后跑 3.1 生成的命令。安装过程会显示一个个Collecting/Downloadingtorch 本体加捆绑的 CUDA 运行时加起来好几 GB耐心等。出现Successfully installed torch-2.x.xcu124 ...即成功——注意看版本号里的cu124后缀这是它装成了 GPU 版的第一证据。如果发现装出来的是torch-2.x.x或cpu而没有cuXXX说明安装命令没带对--index-url先卸载再重装别在错误版本上继续搭后面的东西。四、验证三步逐层确认分别回答三个问题框架看不看得到卡、认不认得出卡是什么、真算算得动吗。任何一步单过都不算数——is_available()为True但小张量算不动说明中间某层驱动架构、wheel 组合还有问题只做到前两步就收工是最常见的假成功往往到后面跑模型时才爆出来排查时间翻几倍。第一步确认 GPU 可见框架层探针python -c import torch; print(torch.__version__, torch.cuda.is_available())期望输出2.x.xcu124 True。返回False直接跳六、故障排查第一条。第二步看 PyTorch 自己认到几张卡、什么卡python -c import torch; print(torch.cuda.device_count()); print(torch.cuda.get_device_name(0))期望张数 ≥ 1设备名是你的显卡型号如NVIDIA GeForce RTX 4060。第三步真把一张量扔到 GPU 上算——这步治能 import、is_available 为 True、实际算不动的隐性故障python -c import torch; x torch.randn(1024, 1024, devicecuda); y x x; print(GPU OK, y.sum().item())期望打印GPU OK加一个数字且几秒内返回。报no kernel image是 wheel 与卡架构不匹配报OutOfMemoryError才说明显存层有问题1024×1024 的 float32 矩阵才 4 MB这一步 OOM 基本是别的进程把显存占满了nvidia-smi查占用。三步全过PyTorch 环境即交付。我个人的习惯是把第三步的小张量存成一个check_gpu.py以后每换一个环境先跑它30 秒定位环境层问题。五、进阶技巧多版本共存怎么避免一个项目一个虚拟环境环境名直接带用途llama、diffusion。同一台机器要跑不同 torch 版本时venv 或 condaconda create -n ai python3.11 -y天然隔离互相不污染。千万别在一个全局环境里反复pip install torch2.0.1、torch2.2.0来回折腾——残留的 CUDA 库和PATH污染是 Windows 上Error 126: Unknown error的头号来源。验证 torch 用的 CUDA 版本python -c import torch; print(torch.version.cuda)对照 nvidia-smi 的 CUDA 支持上限前者必须 ≤ 后者。这条命令在排查驱动够不够时是框架层的第二探针。看到版本号是cu126而 nvidia-smi 只给到 12.4问题只是还没爆发跑 GPU 操作时必现——升驱动或降 wheel 二选一别拖。装前先看上限再选 wheelnvidia-smi 只支持到 11.8、而选择器里一堆 12.x不代表卡不行只是驱动老。先升驱动再看上限然后做选择。升驱动是一次性动作降到旧 wheel 跑旧运行时则是一笔长期债。WSL2 用户WSL 里直接按 Linux 流程装不需要在 WSL 内装 NVIDIA 驱动——Windows 侧驱动透传即可装完nvidia-smi在 WSL 内也能跑详见《AI-04 WSL2 部署 AI 开发环境》。显存预算先算账装完框架别急着拉大模型先按参数量 × 每参数字节数估算你的卡装得下什么7B fp16 约 14-15 GBQ4 量化约 4-5 GB再加 10-20% 开销详见《AI-05 显存计算与模型选择》。六、故障排查分层定位网络层 → 驱动层 → 框架层 → 显存层 → 应用层。装 PyTorch 的问题 90% 落在框架层和环境依赖层。层症状 / 报错原文原因解决【框架】torch.cuda.is_available()返回FalsePyTorch 装了 CPU 版默认坑或驱动过老先python -c import torch; print(torch.__version__)看版本号后缀没有cuXXX就是 CPU 版重装对应 cuXXX wheel带--index-url那条后缀正常则升级驱动【框架】CUDA error: no kernel image is available for execution on the devicewheel 的 CUDA 编译高于显卡架构支持新 CUDA 老卡或 wheel 与卡不匹配换与显卡架构匹配的 PyTorch wheel老卡优先试 cu118以 pytorch.org 选择器为准【驱动】CUDA driver version is insufficient for CUDA runtime version驱动低于框架所需 CUDA如 cu126 wheel 550 系驱动升级 NVIDIA 驱动到支持对应 CUDA 的版本约 550→12.4、555→12.5、560→12.6驱动不动就换更低 cuXXX 的 wheel【环境】Windows 下ImportError: DLL load failed while importing ...VC 运行库缺失或 32/64 位不匹配安装 VC 2015-2022 Redistributablex64python -c import struct; print(struct.calcsize(P)*8)确认是 64 位 Python32 位重装 64 位【环境】ModuleNotFoundError: No module named torch激活了错误环境 / 全局与 venv 装串了where pythonWindows/which pythonLinux确认解释器路径重新激活装过 torch 的那个环境【环境】Error 126: Unknown error/ 加载 .dll 失败libcudart.so.12 not found类多版本 CUDA 混装、PATH 污染清理环境变量用 conda/venv 隔离重装dumpbin/ldd看缺的具体是哪个库【网络】pip 拉 wheel 卡住 / 超时直连官方源慢或抖动换网络时段重试其余依赖走清华源-i https://pypi.tuna.tsinghua.edu.cn/simple下载模型用HF_ENDPOINThttps://hf-mirror.com或 ModelScope【显存】torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate ...模型 / 上下文 / 批太大或后台进程占满显存降量化位宽、降max-model-len/ batchnvidia-smi查占用进程并清掉模型能跑多大的预算见《AI-05 显存计算与模型选择》【驱动】Linux 下Could not load libcuda.so.1用户态驱动未装好或容器未透传装/重装 NVIDIA 驱动Docker 加--gpus all30 秒探针顺序where python环境对不对→torch.__version__后缀wheel 对不对→torch.cuda.is_available()框架认不认卡→ 小张量上 GPU真算得动吗→nvidia-smi显存谁占了。从上往下一步一个结论。七、本篇自检清单会用 pytorch.org 选择器生成 pip 命令没手抄过时命令能解释 cu124 / cu118 / cpu 三种 wheel 的适用场景上限原则安装成功torch.__version__带cuXXX后缀验证三步全过is_available()为True、get_device_name(0)报出卡名、小张量上 GPU 返回GPU OK知道 32 位 Python / VC 运行库缺失各自对应的报错长什么样多项目用虚拟环境隔离全局环境不装 torch参考PyTorch 官网 Get Started安装命令生成器https://pytorch.org/get-started/locally/PyTorch 官方文档CUDA 支持说明https://docs.pytorch.org/docs/stable/notes/cuda.html清华 PyPI 镜像https://pypi.tuna.tsinghua.edu.cnHuggingFace 国内镜像https://hf-mirror.com