torch安装指导更新版

发布时间:2026/7/18 20:34:51
torch安装指导更新版 关于torch安装的补充说明大家可能会遇到这样的情况以我下载的torch121为例——我知道这样的版本很老了CUDA 可用: TrueC:\……\……\anaconda3\envs\……\lib\site-packages\torch\cuda_init_.py:215: UserWarning:NVIDIA GeForce RTX 5060 Laptop GPU with CUDA capability sm_120 is not compatible with the current PyTorch installation.The current PyTorch install supports CUDA capabilities sm_50 sm_60 sm_61 sm_70 sm_75 sm_80 sm_86 sm_90.If you want to use the NVIDIA GeForce RTX 5060 Laptop GPU GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/warnings.warn (显卡: NVIDIA GeForce RTX 5060 Laptop GPU以这样的GPU为例中间那一串警告很烦、自己训练时明明觉得自己的GPU非常先进如5060、5090结果python就是【不认账】首先我们先明确一个问题为什么会出现这样的报错究其原因就在中间那一长串看似又臭又长的警告中。文中明确提出你目前下载的torch的预编译顶多支持到sm_90而5060的GPU的预编译到了sm_120显然旧版本的torch无法跟上你自己的GPU根本原因GPU“方言”与PyTorch“翻译器”的版本错配要理解这个问题我们可以用一个非常形象的比喻你的新 GPU如 RTX 5060就像是一个说最新“方言”SM 120的“工人”。你安装的旧版本 PyTorch如 torch 1.12就像是一个只懂旧“方言”最高到 SM 90的“翻译官”或“工头”。当“工头”PyTorch试图给“工人”GPU下达指令时发现“工人”说的“方言”自己完全听不懂于是只能报错“对不起我无法指挥这个工人。”深入拆解这个比喻GPU的“方言”CUDA计算能力Compute Capability每一代 NVIDIA GPU 都有一个内部代号叫做CUDA计算能力简称SMStreaming Multiprocessor架构版本比如sm_50,sm_80,sm_90,sm_120。这个版本号代表了GPU硬件的核心功能和指令集。新一代GPU如RTX 40/50系列会支持新的、更高效或更强大的指令新方言同时兼容大部分旧指令。你的 RTX 5060 支持sm_120这是一个比较新的“方言”。PyTorch的“翻译能力”预编译的二进制包PyTorch 官方为了方便大家安装会提前把核心代码尤其是需要调用GPU的部分针对特定的CUDA计算能力进行编译和优化打包成我们下载的whl或通过pip安装的包。一个PyTorch版本比如torch1.12.1cu113在发布时会锁定它支持的最高CUDA计算能力。这个版本发布时sm_120的GPU可能还没上市呢你安装的旧版本PyTorch其预编译包最高只支持到sm_90。它根本不认识sm_120这个“方言”所以无法生成能让你的RTX 5060正确执行的机器指令。为什么不能“自动兼容”你可能会想新GPU不是应该向下兼容旧指令吗PyTorch用旧指令不就行了理论上可以但效率极低且官方不提供这种“兼容模式”的预编译包。原因如下性能损失巨大如果让支持sm_120的GPU去跑sm_90的通用指令就像让一个博士生去做小学生的算术题无法发挥其新硬件的加速特性如新的Tensor Core、更高的显存带宽利用率训练速度可能比用CPU还慢。稳定性与测试PyTorch团队需要对每一个支持的CUDA计算能力进行充分的测试和优化。为旧版本添加对新硬件的“降级兼容”支持是一个额外的、复杂且可能引入不稳定性的工作官方通常不会为已停止维护的旧版本做这件事。安装包体积如果要兼容所有硬件安装包需要包含从sm_50到sm_120的所有优化代码体积会变得非常庞大。问题的核心链条你拥有新硬件购买了搭载新架构如Ada Lovelace, Blackwell的GPU其CUDA计算能力很高sm_120。你安装了旧软件通过pip install torch1.12等方式安装了一个在新GPU发布前就已经编译好的PyTorch版本。版本检查失败PyTorch在启动时会检测GPU的计算能力。当发现GPU的能力sm_120超出了自己预编译包所支持的最高能力sm_90时就会抛出你看到的那条“不兼容”警告并拒绝使用GPU。解决方案是什么道理讲清楚了解决起来就很简单让“翻译官”PyTorch的版本跟上“工人”GPU的“方言”版本。也就是安装一个与你GPU的CUDA计算能力相匹配的、足够新的PyTorch版本。具体步骤查看你的GPU计算能力去NVIDIA官网查表或使用nvidia-smi命令结合官网信息确认。例如RTX 5060 是sm_120。访问PyTorch官网打开 https://pytorch.org/get-started/locally/。选择匹配的配置在官网的安装命令生成器中选择PyTorch Version 选择最新的稳定版如Stable (2.5.1)。新版本必然包含对新GPU架构的支持。Your OS 你的操作系统Windows/Linux/Mac。Package 建议Pip。Language 你的语言Python。Compute Platform 选择与你的GPU驱动对应的CUDA 版本如CUDA 12.4。这一步是保证PyTorch能用你系统上的CUDA驱动。只要CUDA版本够新其配套的PyTorch预编译包就一定会支持新的计算能力如sm_120。运行生成的安装命令复制官网生成的pip命令到你的环境中执行覆盖安装新版本的PyTorch。安装完成后再次运行你的Python程序那个烦人的警告就会消失PyTorch就能正确识别并全力驱动你的新GPU了。这里我提供给大家1种安装指令在pycharm的Terminal里运行——如果自己有虚拟环境记得先激活自己的虚拟环境、用自己虚拟环境里的python供大家参考本人亲测有效兼容RTX5060版的pipinstalltorch torchvision --index-url https://download.pytorch.org/whl/cu129安装成功之后记得在Terminal里检验是否真的安装成功python-cimport torch; print(CUDA可用:, torch.cuda.is_available()); print(显卡:, torch.cuda.get_device_name(0))总结旧版本PyTorch不兼容新GPU根本原因不是你的GPU坏了或PyTorch有Bug而是一个“时间差”问题旧版本的软件在发布时无法预知和适配未来才上市的新硬件架构。解决之道就是保持软件PyTorch的更新让它跟上你硬件GPU的步伐。而不是自己委曲求全去降格torch/GPU。因为你值得更迅捷高效的编程环境