安装DCNv2报错:ValueError: Unknown CUDA arch (8.9) or GPU not supported

在代码相关地方修改代码:

if 'arch' in flag:
    return []

# Note: keep combined names ("arch1+arch2") above single names, otherwise
# string replacement may not do the right thing
named_arches = collections.OrderedDict([
    ('Kepler+Tesla', '3.7'),
    ('Kepler', '3.5+PTX'),
    ('Maxwell+Tegra', '5.3'),
    ('Maxwell', '5.0;5.2+PTX'),
    ('Pascal', '6.0;6.1+PTX'),
    ('Volta', '7.0+PTX'),
    ('Turing', '7.5+PTX'),
    ('Ampere', '8.0;8.6+PTX'),  # Added support for Ampere architectures
    ('Ada', '8.9'),
])

supported_arches = ['3.5', '3.7', '5.0', '5.2', '5.3', '6.0', '6.1', '6.2',
                    '7.0', '7.2', '7.5', '8.0', '8.6', '8,9']
valid_arch_strings = supported_arches + [s + "+PTX" for s in supported_arches]
  • 在代码中定义了一系列被支持的CUDA架构,但“8.9”并不在valid_arch_strings中。因此,当代码尝试对“8.9”进行验证时,会引发ValueError
  • 错误发生时,常常表明用户请求的未被支持的架构。因为在架构识别逻辑中,如果输入的架构不在valid_arch_strings列表中,就会抛出错误。
  • 如果你的GPU支持CUDA架构,请将TORCH_CUDA_ARCH_LIST环境变量设置为受支持的架构(例如:“8.0”或“8.6”)。
  • 如果8.9是不必要的,可以通过环境变量或代码中适当修正。
  • 如果确实需要支持8.9架构,可以在代码中将其添加到supported_archesvalid_arch_strings相应列表中。

又报错:error: command ':/usr/local/cuda-12.2/bin/nvcc' failed: No such file or directory: ':/usr/local/cuda-12.2/bin/nvcc'

解决步骤:

检查CUDA_HOME环境变量设置: 确保环境变量 CUDA_HOME 正确设置。你可以在命令行中使用以下命令检查当前环境变量设置:

echo $CUDA_HOME

如果输出内容是 :/usr/local/cuda-12.2,那表示 CUDA_HOME 设置不正确。

正确的设置应该去掉冒号,类似这样:

export CUDA_HOME=/usr/local/cuda-12.2

更新PATH环境变量: 为了确保系统能够找到 nvcc,可以将CUDA的bin目录添加到 PATH 环境变量中:

export PATH=$CUDA_HOME/bin:$PATH

修改构建脚本确保路径正确: 如果你的构建脚本中手动设置了CUDA路径,确保没有多余的字符,具体如下:

nvcc = os.path.join(CUDA_HOME, 'bin', 'nvcc')  # 确保这里路径是正确的

重新加载配置: 如果在终端中设置了环境变量,确保在同一终端会话中运行,或者在你的 ~/.bashrc 或 ~/.bash_profile 文件中追加上述 export 命令,然后执行以下命令重新加载配置:

source ~/.bashrc

确认nvcc存在: 运行以下命令确认 nvcc 是否存在:

ls -l /usr/local/cuda-12.2/bin/nvcc

重启终端或系统: 如果以上步骤均未解决问题,可以尝试重启终端或系统,有时会因为环境变量未刷新而导致问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值