安装mmcv报错: ValueError: Unknown CUDA arch (9.0+PTX) or GPU not supported

部署运行你感兴趣的模型镜像

配环境时,执行:mim install mmcv==2.0.0rc4 昨天还可以安装成功,今天突然安装不上了

报错如图所示,试了很多方法都不行,还好在组会前解决了这个bug

1. 检查当前 CUDA 版本:

echo $TORCH_CUDA_ARCH_LIST

版本包括:5.2 6.0 6.1 7.0 7.5 8.0 8.6 9.0+PTX

2. 设置环境变量

如果发现不支持 9.0+PTX,可以通过设置环境变量来解决。

export TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0 7.5 8.0 8.6+PTX"

您可能感兴趣的与本文相关的镜像

PyTorch 2.7

PyTorch 2.7

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

<think>我们正在处理一个关于在PyCharm中安装mmcv时遇到CUDA架构版本不支持的报错问题。报错信息为"Unknown CUDA arch (8.9) or GPU not supported"。根据引用[1][3]中的经验,我们可以通过设置环境变量`TORCH_CUDA_ARCH_LIST`来指定支持的CUDA算力(即GPU架构版本)。然而,用户提到在命令行中使用`export`命令没有效果,这可能是因为环境变量没有正确传递到安装过程中。 根据引用[1]中的成功方法,他们在安装命令前直接设置了环境变量(使用`sudo TORCH_CUDA_ARCH_LIST="8.0" python setup.py develop`)。因此,我们可以尝试在PyCharm中设置环境变量,或者在安装命令中指定环境变量。 但是,用户是在PyCharm中安装,可能使用的是PyCharm的图形界面安装包(比如通过pip安装),那么我们可以考虑以下两种方法: 方法一:在PyCharm的终端中设置环境变量并安装 1. 打开PyCharm,然后打开终端(Terminal)。 2. 在终端中,设置环境变量(根据你的GPU架构版本,例如8.6): 对于Linux/macOS: `export TORCH_CUDA_ARCH_LIST=8.6` 对于Windows: `set TORCH_CUDA_ARCH_LIST=8.6` 3. 然后运行安装命令,例如:`pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu115/torch1.7.0/index.html`(注意:这里的URL需要根据你的CUDA版本和PyTorch版本调整,如引用[2]所示) 方法二:在PyCharm的运行配置中设置环境变量 如果你是通过PyCharm的运行按钮来运行安装脚本(比如setup.py),那么可以: 1. 打开运行配置(Run/Debug Configurations)。 2. 在环境变量(Environment variables)中添加:`TORCH_CUDA_ARCH_LIST=8.6`(根据你的实际情况修改算力版本) 方法三:如果是在PyCharm中直接使用pip安装(通过图形界面),则可能无法直接设置环境变量。此时,建议在PyCharm的终端(方法一)中操作。 注意:算力版本(如8.6)需要根据你的GPU型号和CUDA版本来确定。例如,RTX 30系列显卡通常需要8.6或更高。你可以通过`nvidia-smi`查看CUDA版本,然后根据NVIDIA官方文档确定你的GPU架构的算力版本。如果报错是8.9,那么说明你的GPU可能是较新的型号(如RTX 40系列,算力8.9),但当前安装mmcv可能还不支持。此时,你可以尝试设置一个较低的算力版本(如8.6)来兼容,或者等待mmcv更新支持。 另外,引用[3]中提到了在.bashrc中设置环境变量并source,但用户之前使用export没有效果,可能是因为环境变量没有在安装过程中生效。如果使用方法一(在同一个终端会话中设置并安装)应该可以解决。 步骤总结: 1. 确定你的GPU算力版本(Compute Capability)。如果不知道,可以到NVIDIA官网查询你的显卡型号对应的算力。例如,RTX 3090是8.6,RTX 4090是8.9。 2. 如果mmcv不支持你的算力(如8.9),则尝试设置一个低一点的算力(如8.6),因为8.6是常见且被广泛支持的。 3. 在PyCharm的终端中设置环境变量(临时)并安装。 示例(针对RTX 4090,算力8.9,我们尝试使用8.6): ``` export TORCH_CUDA_ARCH_LIST=8.6 pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu117/torch1.13.0/index.html # 注意:这里cu117和torch版本需要根据你的环境修改 ``` 如果上述方法不行,还可以尝试在设置环境变量时同时指定多个算力,例如: ``` export TORCH_CUDA_ARCH_LIST="8.6;8.9" ``` 但请注意,如果mmcv的代码不支持8.9,那么指定8.9可能仍然会失败。因此,建议先尝试使用一个已知被支持的算力版本。 最后,如果问题仍然存在,可能需要考虑更新mmcv版本,或者从源码编译mmcv,并在编译时指定支持的算力。 关于引用[2]:它提供了一个安装mmcv-full的URL,这需要根据你的CUDA版本和PyTorch版本来选择。请确保你选择的URL与你的环境匹配。 希望这些方法能够解决你的问题。</think>### 解决 PyCharm 安装 mmcv 时 "Unknown CUDA arch (8.9)" 错误 该错误表明您的 GPU 架构(算力 8.9)不被当前安装mmcv 支持。以下是具体解决方案: #### ✅ 解决方案(通过 PyCharm 终端操作) 1. **确认 GPU 算力** 执行命令查看 GPU 算力(如 RTX 4090/4080 是 8.9): ```bash nvidia-smi --query-gpu=compute_cap --format=csv ``` 2. **设置环境变量** 在 PyCharm 终端执行(根据您的实际算力修改): ```bash # 临时生效(推荐先尝试) export TORCH_CUDA_ARCH_LIST="8.9" # 若 8.9 报错则降级为 8.6 # 永久生效(修改 ~/.bashrc) echo &#39;export TORCH_CUDA_ARCH_LIST="8.9"&#39; >> ~/.bashrc source ~/.bashrc ``` 3. **指定版本安装** 根据您的 CUDA 和 PyTorch 版本选择对应 mmcv(参考[^2]): ```bash # 示例:CUDA 11.5 + PyTorch 1.7.0 pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu115/torch1.7.0/index.html ``` 4. **源码编译安装** 若预编译包不支持,在 PyCharm 终端执行: ```bash git clone https://github.com/open-mmlab/mmcv.git cd mmcv MMCV_WITH_OPS=1 pip install -e . # 编译安装 ``` #### ⚠️ 关键注意事项 1. **算力兼容性** - CUDA 11.x 最高支持算力 8.6(Ampere 架构) - RTX 40 系(算力 8.9)需 CUDA ≥ 12.0 + PyTorch ≥ 2.0 - 若环境不匹配,需降级算力:`export TORCH_CUDA_ARCH_LIST="8.6"` 2. **环境一致性** 确保 PyCharm 使用的终端与系统终端环境一致(检查 `which python` 和 `nvcc --version`) 3. **版本匹配原则** | 组件 | 推荐组合 | |------------|--------------------------| | GPU 算力 | ≤ CUDA 支持的最高算力 | | mmcv-full | 需匹配 PyTorch 和 CUDA 版本 | | CUDA | 需 ≥ GPU 驱动要求版本 | > 💡 **经验提示**:若使用 RTX 40 系显卡,建议升级到 CUDA 12.x + PyTorch 2.x + 最新 mmcv,避免算力不兼容问题[^1][^3]。 #### 验证安装 ```python import torch, mmcv print(torch.cuda.get_arch_list()) # 应包含设置的算力 print(mmcv.__version__) # 输出版本即成功 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值