Ubuntu 22.04 无法安装 nvidia-utils-515 和 nvidia-cuda-toolkit

Ubuntu 22.04 无法安装 nvidia-utils-515 和 nvidia-cuda-toolkit

在 Ubuntu 22.04 LTS/桌面版本上从 Ubuntu 存储库安装 cuda 驱动程序和 cuda-toolkit 时,我遇到了严重的软件包冲突问题。我可以选择 nvidia-utils 或 nvidia-cuda-toolkit。但我需要 nvcc 和 nvidia-smi。

驱动程序安装:

# ubuntu-drivers devices
# sudo ubuntu-drivers autoinstall

为我提供推荐的 nvidia-driver-515 包以及 nvidia-utils-515(和 nvidia-smi)。

工具包安装:

# apt install nvidia-cuda-toolkit

删除 nvidia-utils-515 包!

没有办法解决这个问题,因为在 nvidia-utils-515 上进一步重新安装尝试会删除 toolikt 包!

# apt install nvidia-utils-515
(...)
The following packages will be REMOVED:
  libcuinj64-11.5 libnvidia-compute-495 libnvidia-compute-510 libnvidia-ml-dev nsight-systems nsight-systems-target nvidia-cuda-dev nvidia-cuda-toolkit nvidia-profiler
  nvidia-visual-profiler
The following NEW packages will be installed:
  libnvidia-compute-515 nvidia-utils-515
(...)

如何在不使用 nvidia 存储库的情况下使用 smi 和 nvcc 完成 cuda 安装?

更新:临时纯 ubuntu repo 依赖解决方案(但最终会使用较旧的驱动程序):在 ubuntu 存储库中的工具包更新之前(nvidia-cuda-toolkit 依赖于 libnvidia-compute-510),可以降级到 nvidia-driver-510。这与 nvidia-cuda-toolkit 不冲突。此外,由于工具包将文件分布在许多其他目录中,因此可以创建假的 cud 目录。当前的临时解决方案如下所示:

ubuntu-drivers devices
apt install nvidia-driver-510
update-initramfs -u
reboot
apt install nvidia-cuda-toolkit
mkdir /usr/local/cuda
cd /usr/local/cuda
ln -s /usr/lib/nvidia-cuda-toolkit/bin bin
ln -s /usr/include include
ln -s /usr/lib/x86_64-linux-gnu lib64
ln -s /usr/share share

答案1

解决方案

目前(2022年9月8日)您可以在NVIDIA网站上下载CUDA工具包(根据您的Ubuntu版本,也可以切换到其他系统):

https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_local

而不必单独下载驱动程序和工具包apt

程序

  1. 为此,您需要首先删除现有驱动程序(510 或 515)和/或工具包(可能已从 安装apt),具体取决于您遇到的问题。请注意,nvidia-utils-yourversion不应删除;

  2. 按照上面链接中的说明进行操作(最后一步重启时请严格按照说明进行操作,否则nvidia-smi工具无法正常工作);

  3. 最后,对我来说,必须手动为 CUDA 工具包创建一个符号链接,

    sudo ln -s /usr/local/cuda-11.7/bin/* /usr/bin

(注:这里我安装的是11.7版本,目录中的版本名要根据你安装的版本进行修改)

然后nvidia-smi和都nvcc -V起作用。

评论

按照此方法,nvcc -V可得

nvcc:NVIDIA (R) Cuda 编译器驱动程序版权所有 (c) 2005-2022 NVIDIA Corporation 于 2022 年 6 月 8 日星期三 16:49:14_PDT 构建 Cuda 编译工具,版本 11.7,V11.7.99 构建 cuda_11.7.r11.7/compiler.31442593_0

nvidia-smi给出

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.65.01    Driver Version: 515.65.01    CUDA Version: 11.7     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   43C    P3    N/A /  N/A |      5MiB /  6144MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

CUDA版本和驱动程序版本兼容。

答案2

我遇到了同样的问题,我有 515 驱动程序,可以安装 nvidia-cuda-toolkit。安装后指南来自英伟达有帮助:如果你编译并运行设备查询脚本(创建符号链接后),它会抛出错误system has unsupported display driver / cuda driver combination. 安装 510 驱动程序,重新启动,然后就好了!然后 Blender 就可以使用 GPU 了!

文件夹的符号链接:

ln -s /usr/lib/nvidia-cuda-toolkit/ /usr/local/cuda

答案3

@Lukas the Silvan 和 @yongxi 的解决方案适用于部分系统,但并非所有系统。因此,我添加了一个更通用的解决方案来解释该方法:

这是一个通用的解决方案独立的来自 cuda 版本。

  1. 目标是设置名为 的 cuda 库的正确路径libcudart.so.<version number>

  2. 我们通过以下方式找到这条路径sudo find / -name 'libcudart.so.<version number>'

  3. 我们必须添加包含配置文件脚本的文件夹(而不是文件)的路径libcudart.so.<version number>,例如.bashrc

    export LD_LIBRARY_PATH=<path to libcudart.so file>:$LD_LIBRARY_PATH

关键在于系统之间差异很大。

答案4

我在 Ubuntu Server 22.04 / Dell R730 / Tesla P100 上解决了这个问题:

首先,我从更高版本的驱动程序和 CUDA 安装开始: https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_local

下面是我用来安装上述下载页面提供的代码:

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.1/local_installers/cuda-repo-ubuntu2204-12-2-local_12.2.1-535.86.10-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-2-local_12.2.1-535.86.10-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt update
sudo apt -y install cuda

cuda 已安装并显示在:cd /usr/local/cuda但是nvcc --version显示:

Command 'nvcc' not found, but can be installed with:

修复这个问题:

看起来 cuda 不在 $PATH 中,使用以下命令检查echo $PATH

/home/cem/anaconda3/bin:/home/cem/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

我们将编辑 $PATH

nano ~/.bashrc

将此复制到最后。

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

保存并退出(Ctrl+ o, Enter, Ctrl+ x

更新源。

source ~/.bashrc

检查它是否有效。

which nvcc
/usr/local/cuda/bin/nvcc

nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Jul_11_02:20:44_PDT_2023
Cuda compilation tools, release 12.2, V12.2.128
Build cuda_12.2.r12.2/compiler.33053471_0

是的,它起作用了,但是仍然:

import torch
print(torch.__version__)
print(torch.cuda.is_available())

2.0.1
False

卸载 torch-vision 并重新安装。

pip uninstall torch torchvision torchaudio
pip install torch torchvision torchaudio -f https://download.pytorch.org/whl/cu122/torch_stable.html

重新启动机器。

sudo reboot now

检查是否已安装。

print("Torch version:",torch.__version__)
print("CUDA version used by PyTorch:", torch.version.cuda)
print("CUDA available:", torch.cuda.is_available())
print("Number of CUDA devices:", torch.cuda.device_count())
print("Current CUDA device:", torch.cuda.current_device())

Torch version: 2.0.1+cu117
CUDA version used by PyTorch: 11.7
CUDA available: True
Number of CUDA devices: 1
Current CUDA device: 0

哒哒!

nvidia-smi cuda 版本与 nvcc --version 不匹配 ????

nvidia-smi显示 nvidia 驱动可以支持的 CUDA 最高版本。

相关内容