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

Luk*_*van 15 nvidia cuda

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

驱动安装:

# ubuntu-drivers devices
# sudo ubuntu-drivers autoinstall
Run Code Online (Sandbox Code Playgroud)

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

工具包安装:

# apt install nvidia-cuda-toolkit
Run Code Online (Sandbox Code Playgroud)

删除 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
(...)
Run Code Online (Sandbox Code Playgroud)

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

更新:临时纯 ubuntu 存储库相关的解决方案(但最终会得到较旧的驱动程序):在 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
Run Code Online (Sandbox Code Playgroud)

cut*_*ain 5

解决方案

目前(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
Run Code Online (Sandbox Code Playgroud)

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

然后两者nvidia-sminvcc -V有效。

评论

按照这个方法,nvcc -V给出

nvcc:NVIDIA (R) Cuda 编译器驱动程序 版权所有 (c) 2005-2022 NVIDIA Corporation 构建于 Wed_Jun__8_16:49:14_PDT_2022 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 |
+-------------------------------+----------------------+----------------------+
Run Code Online (Sandbox Code Playgroud)

CUDA版本和驱动版本兼容。


小智 0

我遇到了同样的问题,我有 515 驱动程序并且可以安装 nvidia-cuda-toolkit。nvidia的安装后指南提供了帮助:如果您编译并运行deviceQuery脚本(在创建符号链接之后),它会抛出错误system has unsupported display driver / cuda driver combination. 安装 510 驱动程序,重新启动,瞧!然后 Blender 可以与 GPU 一起工作!

文件夹的符号链接:

ln -s /usr/lib/nvidia-cuda-toolkit/ /usr/local/cuda
Run Code Online (Sandbox Code Playgroud)