如何在Ubuntu 20.10上安装CUDA 11并验证安装是否成功

似乎有几种在Ubuntu 20.10上安装CUDA的选项:它已经与20.10预装了,还有各种安装程序在官方NVIDIA页面等等。
问题:在Ubuntu 20.10上安装CUDA 11.X的推荐方法是什么,我如何验证安装是否成功?
2个回答

安装NVIDIA驱动程序
这可能是一个可选的步骤,但最好先删除可能已安装的NVIDIA驱动程序:
sudo apt-get purge *nvidia*
sudo apt autoremove

接下来,让我们安装最新的驱动程序:
sudo apt install nvidia-driver-455

在这之后,我们需要重新启动电脑来完成驱动程序的安装。 接下来,我们可以验证驱动是否成功安装:
nvidia-smi

这应该包含以下或类似内容:

NVIDIA-SMI 455.28 驱动版本:455.28

安装CUDA Toolkit

接下来,我们可以安装CUDA Toolkit:

sudo apt install nvidia-cuda-toolkit


我们还需要设置CUDA_PATH。添加这个。
export CUDA_PATH=/usr

在你的.bashrc文件的末尾添加,并运行。
source ~/.bashrc

现在你的CUDA安装应该已经完成了,而且
nvidia-smi

应该表明您已安装CUDA 11.1。
测试CUDA工具包的安装/配置
验证CUDA是否正确安装的最佳方法之一是使用官方的“CUDA示例”。Ubuntu不将它们作为“nvidia-cuda-toolkit”的一部分打包,但我们可以直接从NVIDIA的github页面下载它们。
wget https://github.com/NVIDIA/cuda-samples/archive/v11.1.tar.gz
tar xvf v11.1.tar.gz 
cd cuda-samples-11.1

无论出于什么原因,NVIDIA没有选择包含现代构建系统(例如cmake),而是使用了一个简单的旧Makefile。如果仅运行“make”不能正常工作,请仔细阅读错误消息,并查看是否未安装某些必需的依赖项。
为了帮助构建过程,建议指定GPU的计算架构。
1.您可以通过运行“nvidia-smi”来找到您的GPU。我的是Quadro RTX 3000。 2.接下来,谷歌搜索您的GPU以找出相应的计算架构。对于Quadro RTX 3000,它是“图灵”,版本7.5。 3.在运行make时指定架构版本,例如:
make SMS="75"

如果编译成功,你可以尝试其中一个示例。例如:
./bin/x86_64/linux/release/immaTensorCoreGemm 

你应该看到以下或类似的输出:
M: 4096 (16 x 256)
N: 4096 (16 x 256)
K: 4096 (16 x 256)
Preparing data for GPU...
Required shared memory size: 64 Kb
Computing... using high performance kernel compute_gemm_imma 
Time: 6.030176 ms
TOPS: 22.79

这一切都很棒,但是第一个命令(sudo apt purge *nvidia*)会失败。请改用apt-get命令。 - N0rbert
谢谢,已经纠正。 - B0rk4
2你可能想要引用"*nvidia*",这样在你当前工作目录中带有"nvidia"名称的文件不会干扰命令。 - ubfan1
在进行make SMS="61"时出现libcuda未安装的错误。 - Sephethus
2这将安装一个低于其余安装版本的nvcc。这并非没有问题,例如https://github.com/NVIDIA/cuda-samples/issues/57,在此问题中,旧版nvcc无法编译新版(v11.2)的代码。 - Giorgos Sfikas
我遇到了与@GiorgosSfikas相同的问题 - 看起来cuda v11.0在ubuntu 20.10的存储库中,所以我只需下载匹配的示例代码即可使其正常工作。人们还应该检查nvcc -V以获取适当的版本。 - Neal Fultz
你想要怎样检查架构版本?我的GPU是GeForce GTX 980,采用Maxwell架构,但我好像找不到版本号来执行make SMS="XX"命令。 - plr
7sudo apt install nvidia-cuda-toolkit 在Ubuntu 20.04上安装了Cuda 10.1,而不是Cuda 11。 - rob

由于迄今为止我找到的所有解释都不令人满意,所以这里是我提出的安装最新的NVIDIA驱动程序(465)和CUDA 11.3 的步骤。

首先,您必须卸载所有与CUDA和NVIDIA相关的驱动程序和软件包。

sudo apt-get purge nvidia-*
sudo apt-get purge cuda*
sudo apt autoremove

那么

reboot

然后(如果尚未完成),按照此处描述的步骤禁用nouveau: https://askubuntu.com/a/951892/634048,然后再次重新启动
下载CUDA并安装。
wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run
sudo sh cuda_11.3.1_465.19.01_linux.run

按照在CUDA Toolkit Installation Guide for Linux中找到的安装后指南进行操作。这涉及更新路径和环境变量。
export PATH=/usr/local/cuda-11.3/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64\
                 ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

重要提示:如果您需要32位支持,有一些应用程序只能使用32位驱动程序运行(例如Steam)。

选择退出安装NVIDIA驱动程序以进行CUDA安装,并从此处安装驱动程序: https://www.nvidia.com/download/driverResults.aspx/171980/en-us 还要检查驱动程序是否与您的型号兼容!(通常情况下应该是兼容的)

sudo sh 'NVIDIA-Linux-x86_64-465.19.01.run' 

并且在被问及时选择支持32位的选项
完成
我没有测试其他版本,只测试了20.04的版本,但应该适用于18.04至21.04的版本。

2感谢您的反馈,它运行得很好!不过11.4版本已经发布了,所以最好从您的帖子中删除特定版本的建议。此外,除了runfile之外,还有一些其他的安装方法,可以在这里找到:https://developer.nvidia.com/cuda-downloads。另外,将导出变量添加到~/.bashrc文件中可以防止在重新启动后丢失它们。 - fiction
截至2021年8月,根据我的个人经验,版本470在Ubuntu上工作不稳定,因此我认为推荐使用465版本是合适的。以下是一个链接,提供了所有版本的安装说明,以防有人需要降级:https://developer.nvidia.com/cuda-toolkit-archive - Benjamin Bray
太棒了,谢谢伙计!这对我有用,但是卸载现有的Nvidia显示驱动程序后,我的第二个显示器停止显示信号。我不得不执行额外的步骤:确保安装了nvidia-prime(sudo apt install nvidia-prime) 切换到nvidia(sudo prime-select nvidia) 删除杂项黑名单文件(sudo rm /lib/modprobe.d/blacklist-nvidia.conf /etc/modprobe.d/blacklist-nvidia.conf) 更新initrd(sudo update-initramfs -u) 重新启动背景:笔记本电脑配备了集成的AMD和独立的Nvidia显卡,将Nvidia直接连接到外部显示器。 - Charles Schleich
我在安装cuda 11.3时遇到了问题,结果发现这是我的内核5.13.0-40-generic的过时版本。我不得不将内核降级为5.8.18。您可以在此处找到内核和cuda的兼容性信息:https://docs.nvidia.com/cuda/archive/11.3.1/cuda-installation-guide-linux/index.html的系统要求部分。 - user_3pij
最后,别忘了删除最新的内核。 - user_3pij