You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已装CUDA9.1+Caffe等环境,执行make all -j8报compute_20不支持错误求助

解决Caffe编译时nvcc报错Unsupported gpu architecture 'compute_20'的问题

首先得明确问题根源:CUDA 9.1已经彻底废弃了对compute_20(Fermi架构GPU)的支持,而Caffe默认配置里依然包含了这个架构的编译选项,所以才会触发这个报错。你之前用cmake -D CMAKE_BUILD_TYPE=RELEASE -D CUDA_GENERATION=Kepler ..没解决,大概率是因为cmake配置里还是残留了compute_20的相关设置,或者你其实是在用原生Makefile编译而非cmake方式。

下面分两种常见的编译场景给出解决方案:

场景1:用原生Makefile编译Caffe(你最初执行make all -j8的方式)

  1. 先进入Caffe根目录,找到Makefile.config文件(如果没有,先复制示例文件:cp Makefile.config.example Makefile.config)
  2. 打开Makefile.config,找到CUDA_ARCH这一段配置,默认会包含compute_20相关的行:
    CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
                 -gencode arch=compute_20,code=sm_21 \
                 -gencode arch=compute_30,code=sm_30 \
                 ...
    
  3. 把开头两行包含compute_20和sm_21的内容删掉,保留适配CUDA 9.1的架构选项。比如根据你的GPU型号调整,如果你是Kepler架构GPU,修改后应该是这样:
    CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \
                 -gencode arch=compute_35,code=sm_35 \
                 -gencode arch=compute_50,code=sm_50 \
                 -gencode arch=compute_52,code=sm_52 \
                 -gencode arch=compute_60,code=sm_60 \
                 -gencode arch=compute_61,code=sm_61 \
                 -gencode arch=compute_61,code=compute_61
    
  4. 保存文件后,先清理之前的编译缓存:make clean
  5. 重新执行编译:make all -j8

场景2:用cmake编译Caffe

如果确实是用cmake方式,之前的CUDA_GENERATION=Kepler参数没生效,你可以直接指定具体的CUDA架构编号来绕过compute_20:

  1. 先清空cmake缓存(进入build目录,删除所有文件:rm -rf *)
  2. 重新执行cmake命令,明确指定支持的CUDA架构二进制和PTX版本,比如针对Kepler架构:
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CUDA_ARCH_BIN="30 35" -D CUDA_ARCH_PTX="35" ..
    
    如果你是其他架构的GPU,对应替换编号即可:
    • Maxwell(GTX 900系列):"50 52"
    • Pascal(GTX 10系列):"60 61"
    • Volta(Tesla V100):"70"
  3. 然后执行make all -j8完成编译

额外提示

你可以通过nvidia-smi命令查看自己的GPU型号,再对应到正确的compute能力编号,避免指定错误的架构选项。

内容的提问来源于stack exchange,提问作者Lawrence_Liu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:56:13