RTX 3070运行PyTorch提示CUDA sm_86不兼容问题求解
根因说明
sm_86是RTX 3070对应的安培架构CUDA计算能力,PyTorch 1.9.0官方预编译包仅支持最高sm_70架构,系统层面升级CUDA版本不会修改PyTorch内置的CUDA架构支持列表,因此问题无法通过升级系统CUDA解决。
解决方案
- 方案1:升级PyTorch版本(优先选择)
直接升级到PyTorch 1.12.0及以上版本,对应本地已安装的CUDA11.4选择CUDA11.x版本的官方预编译包安装即可,原生支持sm_86架构,无需修改其他配置。 - 方案2:保留PyTorch 1.9.0版本的适配方案
若因项目依赖必须使用1.9.0版本,可选择以下任意一种方式:- 从源码编译PyTorch 1.9.0,编译前添加环境变量
TORCH_CUDA_ARCH_LIST=8.6,编译完成的版本即可原生支持sm_86架构 - 运行训练脚本前临时添加环境变量:Linux/macOS执行
export TORCH_CUDA_ARCH_LIST=8.6+PTX,Windows系统执行set TORCH_CUDA_ARCH_LIST=8.6+PTX。该方案会触发即时编译,首次运行耗时更长,部分算子存在性能损失,仅适合临时测试场景。
- 从源码编译PyTorch 1.9.0,编译前添加环境变量
验证方式
配置完成后执行以下命令验证:python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_capability())"
输出True (8, 6)即为配置成功。
内容的提问来源于stack exchange,提问作者mikdavidson
相关产品推荐
相关产品推荐

