【异常错误】RTX 4090 nvcc fatal : Unsupported gpu architecture ‘compute_89‘

文章讲述了在使用CUDA11.0和RTX4090时遇到的nvcc错误,介绍了两种方法解决compute_89架构不支持的问题,包括编辑.bashrc文件设置CUDA环境和升级CUDA版本到12.2。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可能在你执行一些程序的时候(例如安装adan的时候):

FORCE_CUDA=1 python -m pip install git+https://github.com/sail-sg/Adan.git

可能会出现错误

nvcc fatal : Unsupported gpu architecture 'compute_89'

方法一:

vi ~/.bashrc

# 在配置文件中添加如下一行

export TORCH_CUDA_ARCH_LIST="8.0"  # 因为是CUDA11.0,对应的算力为8.0 

source ~/.bashrc

我是用这个方法成功安装的

安装好以后再将bashrc中的那行代码注释掉

【Bug解决】nvcc fatal : Unsupported gpu architecture ‘compute_86‘_nvcc fatal : unsupported gpu architecture 'compute-CSDN博客

方法二: 

原因是conda环境下cuda编译器nvcc不支持compute_89导致安装失败,运行项目的requirement.txt安装环境往往会默认安装低版本的cuda环境。

通过 nvcc --list-gpu-arch 来查看支持的编译器

如果没有compute_89(nvcc --version版本是11.5或者以下),就需要重新安装cuda和nvcc

以ubuntu22.04为例,依次运行一下代码:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin 
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-ubuntu2204-12-2-local_12.2.0-535.54.03-1_amd64.deb 
sudo dpkg -i cuda-repo-ubuntu2204-12-2-local_12.2.0-535.54.03-1_amd64.deb 
sudo cp /var/cuda-repo-ubuntu2204-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/ 
sudo apt-get update 
sudo apt-get -y install cuda

安装完成后,可以查看cuda 12.2版本安装位置

sudo find / -name cuda-12.2

一般在/usr/local/cuda-12.2下

修改.bashrc

vim ~/.bashrc

增加新cuda环境变量

export CUDA_HOME=/usr/local/cuda-12.2 
export PATH=/usr/local/cuda-12.2/bin:$PATH 
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH

更新环境变量

source ~/.bashrc

再次查看nvcc --list-gpu-arch是否有compute_89

如果没有的话,可以用which nvcc查看nvcc目录

which nvcc

如果nvcc目录不是/usr/local/cuda-12.2 ,需要重新配置,先备份下原环境,然后重新配置

sudo mv /usr/bin/nvcc /usr/bin/nvcc.bak 
sudo ln -s /usr/local/cuda-12.2/bin/nvcc /usr/bin/nvcc

这样就可以了。

关于RTX 4090 微调llama2模型时出现nvcc fatal : Unsupported gpu architecture 'compute_89'的解决办法 - 知乎

<think>好的,用户在使用NVIDIA GeForce RTX 4070 Laptop GPU运行llama_model_quantize时遇到了iostream流错误,可能与CUDA兼容性有关。我需要先分析可能的原因。根据用户提供的引用[1]和[2],类似的问题通常是因为PyTorch版本与GPU的CUDA能力不兼容。RTX 4070的CUDA架构是sm_89,而用户可能安装了不支持的PyTorch版本。 首先,用户需要确认当前安装的PyTorch是否支持sm_89。检查PyTorch的CUDA版本,比如cu118可能不支持sm_89,需要升级到cu11.8以上或使用支持更高版本的PyTorch。用户应该访问PyTorch官网,根据他们的安装指南选择正确的版本,例如使用pip安装cu121版本的PyTorch。 其次,iostream错误可能与文件读写有关,比如模型文件路径错误或权限问题。需要验证模型文件的存在和正确性,确保程序有权限访问相关目录。同时,检查代码中的文件操作是否有错误处理,比如是否正确捕获了异常。 然后,更新CUDA驱动和工具包到最新版本,确保与PyTorch版本兼容。使用nvidia-smi查看驱动支持的CUDA版本,并安装对应的工具包。如果驱动过旧,可能需要更新。 另外,查看llama.cpp的文档,确认是否支持sm_89架构,可能需要从源码编译,并在编译时指定合适的CUDA架构参数,如-DCUDA_ARCHS="89"。这可以确保生成的二进制文件兼容RTX 4070。 最后,建议用户在虚拟环境中测试,避免包冲突,并查看详细的错误日志,定位具体问题。如果问题依旧,考虑在GitHub上提交issue,附上错误日志和环境信息,寻求开发者帮助。</think>### 逐步解决方案 #### 1. **验证CUDA兼容性** NVIDIA GeForce RTX 4070 Laptop GPU的CUDA架构为`sm_89`,需确保PyTorch版本兼容该架构。 - **检查当前PyTorch/CUDA版本**: ```bash python -c "import torch; print(torch.__version__); print(torch.version.cuda)" ``` 若输出为`cu118`或更低(如引用[2]),需升级到支持`sm_89`的版本。 - **安装兼容的PyTorch版本**(支持`CUDA 12.1+`): ```bash pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121 ``` #### 2. **修复iostream流错误** `ios_base::failbit`通常由文件操作失败触发: - **检查模型文件路径**: ```python import os model_path = "your_model.bin" if not os.path.exists(model_path): raise FileNotFoundError(f"{model_path} 不存在") ``` - **确认文件权限**: ```bash chmod 644 your_model.bin # 确保可读权限 ``` #### 3. **更新CUDA驱动和工具包** - **升级NVIDIA驱动**(支持CUDA 12.1+): ```bash sudo apt-get install nvidia-driver-535 # 具体版本需根据系统适配 ``` - **安装CUDA Toolkit 12.1**: 从[NVIDIA官网](https://developer.nvidia.com/cuda-toolkit)下载对应版本。 #### 4. **从源码编译llama.cpp** 若量化工具依赖`llama.cpp`: ```bash git clone https://github.com/ggerganov/llama.cpp cd llama.cpp mkdir build && cd build cmake .. -DLLAMA_CUBLAS=ON -DCUDA_ARCHS="89" make -j4 ``` #### 5. **验证GPU可用性** ```python import torch assert torch.cuda.is_available(), "CUDA不可用" print(torch.cuda.get_device_name(0)) # 应输出"NVIDIA GeForce RTX 4070 Laptop GPU" ``` ### 引用说明 - 类似CUDA兼容性问题需对齐PyTorch与GPU架构(如引用[1][2])[^1][^2] - 若问题持续,建议在llama.cpp的GitHub仓库提交Issue并附加完整错误日志 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pengsen Ma

太谢谢了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值