关于Windows 11环境下NVIDIA RTX 5090(sm_120)与PyTorch兼容问题的技术咨询
问题背景
我在Windows 11系统上尝试使用PyTorch搭配NVIDIA GeForce RTX 5090(Blackwell架构,CUDA计算能力sm_120)时,频繁遇到兼容性问题:PyTorch能检测到CUDA,但任何GPU操作都会触发内核镜像不可用的错误。
系统与软件环境细节
- 操作系统:Windows 11
- GPU:NVIDIA GeForce RTX 5090
- 显卡驱动版本:581.80
nvidia-smi输出:
NVIDIA-SMI 581.80 Driver Version: 581.80 CUDA Version: 13.0 | 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:01:00.0 On | | | 0% 36C P8 14W / 600W | 1094MiB / 32607MiB |
- Python版本:3.12
- PyTorch版本:
2.7.0.dev20250310+cu124 - PyTorch CUDA检测结果:
CUDA available: True CUDA device count: 1 Device 0: NVIDIA GeForce RTX 5090
- 警告信息:
UserWarning: NVIDIA GeForce RTX 5090 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.
- 执行简单GPU操作时的错误:
运行代码:
x = torch.randn(1000, 1000, device="cuda")
触发错误:
RuntimeError: CUDA error: no kernel image is available for execution on the device
核心疑问
- PyTorch目前是否提供支持sm_120架构的官方Windows二进制包?
- 如果没有官方二进制包,当前可行的解决方案是否只有以下两种?
- 切换到Linux/WSL2环境,安装支持CUDA 12.8+的最新PyTorch nightly版本
- 在Windows上从源码编译PyTorch,编译时指定
set TORCH_CUDA_ARCH_LIST=8.6;9.0;12.0
- 是否有用户成功在Windows 11上搭配RTX 5090使用PyTorch?如果有,能否分享可正常运行的精确配置组合(PyTorch版本、CUDA版本、安装命令)?
- 想了解Blackwell架构GPU在Windows系统上的PyTorch当前支持状态。
解答与现状说明
1. 官方Windows二进制包的sm_120支持状态
截至2025年3月(对应你当前使用的PyTorch nightly版本时间),PyTorch官方尚未发布支持sm_120的Windows预编译二进制包。官方当前的Windows nightly和稳定版二进制包,最高仅支持到sm_90(Hopper架构),这也是你看到警告提示"当前PyTorch安装不支持sm_120"的原因。
2. 可行的解决方案
你列出的两种方案是当前针对Windows+sm_120的主要可行路径,补充细节如下:
方案A:WSL2 + Linux环境(推荐)
Blackwell架构的官方CUDA支持在Linux环境下更成熟,PyTorch的nightly分支已经针对CUDA 12.8+添加了sm_120的支持。你只需要在WSL2中安装对应环境:
- 确保WSL2的Linux发行版(如Ubuntu 22.04/24.04)配置好CUDA 12.8+驱动(可通过NVIDIA的WSL驱动同步Windows端的最新驱动)
- 安装支持cu128的PyTorch nightly版本,安装命令示例:
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128
这个方案的优势是不需要手动编译,能快速获得稳定的sm_120支持,也是目前社区验证最多的方案。
方案B:Windows源码编译PyTorch
如果你坚持在Windows原生环境使用,从源码编译是唯一途径,编译时需要注意:
- 确保你的系统满足PyTorch源码编译的前置依赖(如Visual Studio 2022、CUDA Toolkit 12.4+、cuDNN等)
- 编译前必须设置环境变量指定sm_120支持:
set TORCH_CUDA_ARCH_LIST=8.6;9.0;12.0
- 后续按照PyTorch官方的Windows源码编译流程执行即可。不过这个方案耗时较长,且对编译环境要求较高,适合有一定编译经验的用户。
3. Windows原生环境的成功案例
目前社区中已经有少量用户成功在Windows 11原生环境下运行RTX 5090 + PyTorch,分享的可行配置组合如下:
- PyTorch版本:nightly分支2.7.0.dev20250315+cu128(需手动从源码编译,无官方二进制)
- CUDA版本:CUDA Toolkit 12.8
- 编译关键步骤:
- 安装Visual Studio 2022(勾选"桌面开发C++"工作负载)
- 安装CUDA Toolkit 12.8和对应版本的cuDNN
- 克隆PyTorch源码到本地,切换到nightly分支
- 设置环境变量:
set TORCH_CUDA_ARCH_LIST=8.6;9.0;12.0 set CMAKE_GENERATOR=Visual Studio 17 2022 set DISTUTILS_USE_SDK=1 - 执行编译与安装:
python setup.py install
不过这类案例的稳定性不如WSL2方案,且后续PyTorch版本更新需要重新编译,维护成本较高。
4. Blackwell架构的PyTorch整体支持状态
PyTorch对Blackwell(sm_120)的支持目前处于积极开发阶段:
- Linux环境的nightly分支已全面支持sm_120(需搭配CUDA 12.8+)
- Windows环境的官方二进制支持预计会在后续的稳定版(如PyTorch 2.7正式版)中跟进,但具体时间尚未公布。
总结建议
如果你追求便捷性和稳定性,优先选择WSL2+Linux+PyTorch nightly cu128的组合;如果必须使用Windows原生环境,只能通过源码编译的方式获取sm_120支持,同时可以关注PyTorch官方的发布公告,等待Windows二进制包的更新。




