使用CUDA 11.x运行PyTorch 1.4.0报Unknown CUDA arch (8.6)错误如何解决
报错根因
你遇到的报错和系统全局安装的CUDA版本无关,核心原因是你使用的PyTorch 1.4.0版本发布时间早于CUDA 11和8.6算力架构的发布时间,内置的CUDA适配逻辑不包含对8.6算力的支持,即使系统安装了符合驱动兼容要求的CUDA 11,旧版PyTorch也无法识别新架构的GPU。
ValueError: Unknown CUDA arch (8.6) or GPU not supported
可用解决方案
- 方案一(推荐):升级PyTorch至1.7.0及以上版本,选择匹配CUDA 11的发行版,新版PyTorch内置了对8.6算力架构的原生支持
- 方案二(必须保留PyTorch 1.4.0时使用):运行程序前手动添加环境变量指定兼容模式,执行命令
export TORCH_CUDA_ARCH_LIST="8.6+PTX",该方式为兼容模式运行,可能出现不可预期的运行时异常 - 方案三:无需GPU计算时,直接安装CPU版本的PyTorch 1.4.0即可规避该GPU识别报错
辅助问题解答
CUDA arch (8.6)中的8.6指的是你当前使用的NVIDIA GPU的计算能力(Compute Capability,也叫SM架构版本):
- 第一位数字代表GPU核心架构世代,8代表安培(Ampere)架构
- 第二位数字代表同架构下的硬件迭代版本号
计算能力是NVIDIA对不同世代GPU硬件特性的统一编号,CUDA工具链、深度学习框架会根据该编号生成对应优化的执行代码,版本过低的框架未收录新架构的编号,就会抛出无法识别的报错。
内容的提问来源于stack exchange,提问作者JTB
相关产品推荐
相关产品推荐

