nvcc致命错误:不支持的GPU架构“compute_86”

7

我有一张 Nvidia RTX 3090 ti 24GB 显卡,并且使用这些驱动程序。

CUDA Version: 11.4 

Driver Version: 470.74

18.04.1-Ubuntu SMP

Cuda compilation tools, release 9.1, V9.1.85

我查了一下这张卡片的架构,是Ampere,所以需要使用compute_86或sm_86(如果我没记错)版本的库。但是在编译时使用nvcc会返回以下错误信息:
“nvcc fatal : Unsupported gpu architecture 'compute_86'”
我运行了nvcc --help,并发现了一些奇怪的内容。对于gpu-code和gpu-architecture,返回的允许选项为:
"compute_30"、"compute_32"、"compute_35"、"compute_37"、"compute_50"、"compute_52"、"compute_53"、"compute_60"、"compute_61"、"compute_62"、"compute_70"、"compute_72"、"sm_30"、"sm_32"、"sm_35"、"sm_37"、"sm_50"、"sm_52"、"sm_53"、"sm_60"、"sm_61"、"sm_62"、"sm_70"、"sm_72"。
那么我是不是缺少某个驱动程序版本或需要下载某个库才能编译我的GPU呢?

你的nvcc似乎是V9.1版本。也许可以更新到V11.4版本?尝试使用nvcc -V命令来确认一下。你是否已经单独安装了CUDA工具包(包括nvcc)和NVIDIA驱动程序? - ihdv
我正在寻找最新版本,似乎是9.1.85,正如我在问题中所写的那样,所以我不明白为什么会这样,如果我使用apt search,它会返回 nvidia-cuda-toolkit/bionic,now 9.1.85-3ubuntu1 amd64 [installed] NVIDIA CUDA development toolkit 在另一台电脑上,我有 `nvidia-cuda-toolkit/focal 10.1.243-3 amd64 NVIDIA CUDA development toolkitnvidia-cuda-toolkit-gcc/focal 10.1.243-3 amd64 NVIDIA CUDA development toolkit (GCC compatibility)` 如何强制更新到新版本? 在Ubuntu 18.04上是否可能? 谢谢 - golia
1
对我来说,使用apt更新nvidia软件包总是有问题的。最好遵循此网页上的说明: https://developer.nvidia.com/cuda-11-4-2-download-archive。 CUDA工具包有18.04版本。另外,您可能已经将CUDA环境变量设置为旧版本nvcc的路径,请记得在安装新版本后更改它们。 - ihdv
非常感谢,我正在尝试使用您提供的链接进行更新。如果它起作用,我将克隆问题。 - golia
它起作用了,请您将其发布为解决方案好吗? - golia
4个回答

4
在你发布的系统信息中,最后一行是:
Cuda compilation tools, release 9.1, V9.1.85

说明您的NVCC当前为V9.1(可以使用nvcc -V命令确切地知道)。此版本的NVCC太旧,无法支持compute_86。这种情况发生的可能原因是您已将CUDA工具包(包括NVCC)和GPU驱动程序分别安装,并且使用了不同的CUDA版本。您可以按照官方页面上的说明将其更新到V11.4来解决此问题:developer.nvidia.com/cuda-11-4-2-download-archive。根据我的经验,使用apt管理NVIDIA驱动程序和CUDA工具包通常会破坏系统。因此建议使用官方安装程序。请记得重新设置与CUDA相关的环境变量以连接到新版本(如果您之前已设置过它们)。

要获取另一个特定版本的CUDA,您可以只需在Google搜索中输入“cuda toolkit(版本号)下载”,并查找官方的NVIDIA网站结果即可。


我也遇到了同样的问题,我从NVIDIA网站下载了CUDA,但我的nvcc版本从未改变。是否还有其他需要更改或链接到正确版本的地方? - Raymond
3
@Raymond 这三个环境变量需要在~/.bashrc中重置:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.4/lib64export PATH=$PATH:/usr/local/cuda-11.4/binexport CUDA_HOME=/usr/local/cuda-11.4 - ihdv
是的,你说得对。我的问题是通过在.bashrc中添加PATH解决的。我通过阅读NVIDIA官方网站提供的无聊指令的数百万行来找到了这个方法。我希望有人能够在某个地方用粗体突出显示它,这将节省我数天的时间来解决这个问题。 - Raymond

1

你的nvcc版本过旧,不支持compute_86。

由于你已经安装了cuda 11.4,你可以将cuda 11.4 bin文件夹添加到环境变量中,以便使用nvcc 11.4进行编译。

export PATH=/usr/local/cuda-11.4/bin:$PATH

然后编译。

或者

echo "export PATH=/usr/local/cuda-11.4/bin:$PATH" >> ~/.bashrc
source ~/.bashrc

如果你正在使用zsh
echo "export PATH=/usr/local/cuda-11.4/bin:$PATH" >> ~/.zshrc
source ~/.zshrc

唯一一个帮助我的解决方案 - Frankie Drake

0

这是如何轻松安装OpenPose的方法

复制以下脚本并保存为新的文本文件,然后另存为bash文件。例如:将文本文件重命名为install.sh

同时在第二行更改所需的安装位置

export SOFTWARE_INSTALL_DIR=/usr/local/soft

#!/bin/bash

export SOFTWARE_INSTALL_DIR=/usr/local/soft

# Prerequisites Installation
sudo apt update
sudo apt full-upgrade -y
sudo apt autoremove -y
sudo apt install gcc g++ make autoconf git libtool curl unzip python3-pip cmake-qt-gui caffe-cpu libopencv-dev python-dev libgoogle-glog-dev libboost-all-dev libhdf5-dev libatlas-base-dev -y
sudo apt clean
pip3 install -U pip numpy opencv-python

# Directory Configuration
sudo mkdir -p $SOFTWARE_INSTALL_DIR
cd $SOFTWARE_INSTALL_DIR
sudo chown -R $USERNAME:$USERNAME $SOFTWARE_INSTALL_DIR

# Protocol Buffers Installation
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
./configure
make
make check
sudo make install
sudo ldconfig

# OpenPose Installation
cd $SOFTWARE_INSTALL_DIR
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose
cd openpose
git submodule update --init --recursive --remote
sudo mkdir build/
cd build/
sudo cmake-gui ..
make -j`nproc`

# Running Example
# cd $SOFTWARE_INSTALL_DIR/openpose
# ./build/examples/openpose/openpose.bin --video examples/media/video.avi

然后在终端中运行以下命令

sudo bash install.sh

0

使用CUDA 12解决了我的问题。


太好了,我也在使用CUDA 12但是遇到了错误。你能分享一下你是如何解决的吗? - Mohammad Helal Uddin
我正在运行CUDA 12.1,并将@ihdv在上面的答案中提到的行添加到我的bashrc中,这样就解决了问题。(在编辑代码以使用12.1之后) - Chris Hayes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接