使用CUDA 11.x时出现Unknown CUDA arch (8.0)错误求助
问题原因解释
nvidia-smi显示的CUDA版本是驱动支持的最高CUDA版本,nvcc -V显示的是实际安装的CUDA Toolkit版本,两者可以存在差异,但编译CUDA代码时依赖的是Toolkit版本。- CUDA 11.2官方支持的Compute Capability(GPU架构)最高到7.5(Turing架构,比如RTX 20系列),不包含8.0(Ampere架构,比如RTX 30系列)。你的GPU是8.0架构,11.2版本的
nvcc无法识别该架构,因此编译PyTorch CUDA扩展时触发报错。
解决方案
升级CUDA Toolkit(推荐)
安装CUDA 11.3及以上版本(CUDA 11.3开始正式支持Compute Capability 8.0),安装后验证nvcc -V显示版本≥11.3。现有驱动470.182.03兼容CUDA 11.3至11.7版本,无需更换驱动。临时绕过方案(不推荐长期使用)
如果暂时无法升级Toolkit,可手动指定CUDA架构参数跳过检测:- 运行代码前设置环境变量:
export TORCH_CUDA_ARCH_LIST="8.0+PTX" - 或者在扩展编译代码中手动指定编译参数:
from torch.utils.cpp_extension import CUDAExtension, build_ext setup( name='your_extension_name', ext_modules=[CUDAExtension( 'your_extension', ['src/your_code.cpp', 'src/your_code.cu'], extra_compile_args={'nvcc': ['-arch=sm_80']} )], cmdclass={'build_ext': build_ext} )
- 运行代码前设置环境变量:
内容的提问来源于stack exchange,提问作者Vinay Pradhan
相关产品推荐
相关产品推荐

