Ubuntu 18.04 上的 CUDA 版本不同。有问题吗?

Ubuntu 18.04 上的 CUDA 版本不同。有问题吗?

我是 CUDA 新手,非常感谢您提供有关 CUDA 安装的帮助/评论。我在我的 Ubuntu 18.04 HP Z420 机器上安装时遇到了很长时间的困难:内核:5.3.0-46-generic、Xeon E5、nVidia Quadro K600 和 nvidia-driver-440。
我无法确定我是按照什么顺序安装的(apt install nvidia-cuda-toolkit 与 apt install cuda),因为不断出现错误,我安装和卸载了几次。我想在上次试用中我安装了 cuda,卸载了它并安装了 nvidia-cuda-toolkit,这似乎有效。最后,我得到了两个不同版本(10.2 和 9.1)的此类输出。
它会起作用吗?外部应用程序将使用哪个版本?任何评论和帮助都将不胜感激!

nvcc --version 
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85

nvidia-smi
Sun Apr 19 19:28:29 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64.00    Driver Version: 440.64.00    CUDA Version: 10.2  
dpkg -l | grep cuda
rc  cuda-cudart-10-2                                            10.2.89-1                                                   amd64        CUDA Runtime native Libraries
rc  cuda-cudart-dev-10-2                                        10.2.89-1                                                   amd64        CUDA Runtime native dev links, headers
rc  cuda-cufft-10-2                                             10.2.89-1                                                   amd64        CUFFT native runtime libraries
rc  cuda-cupti-10-2                                             10.2.89-1                                                   amd64        CUDA profiling tools runtime libs.
rc  cuda-curand-10-2                                            10.2.89-1                                                   amd64        CURAND native runtime libraries
rc  cuda-cusolver-10-2                                          10.2.89-1                                                   amd64        CUDA solver native runtime libraries
rc  cuda-cusparse-10-2                                          10.2.89-1                                                   amd64        CUSPARSE native runtime libraries
rc  cuda-npp-10-2                                               10.2.89-1                                                   amd64        NPP native runtime libraries
rc  cuda-nvcc-10-2                                              10.2.89-1                                                   amd64        CUDA nvcc
rc  cuda-nvgraph-10-2                                           10.2.89-1                                                   amd64        NVGRAPH native runtime libraries
rc  cuda-nvjpeg-10-2                                            10.2.89-1                                                   amd64        NVJPEG native runtime libraries
rc  cuda-nvprof-10-2                                            10.2.89-1                                                   amd64        CUDA Profiler tools
rc  cuda-nvrtc-10-2                                             10.2.89-1                                                   amd64        NVRTC native runtime libraries
rc  cuda-nvtx-10-2                                              10.2.89-1                                                   amd64        NVIDIA Tools Extension
rc  cuda-sanitizer-api-10-2                                     10.2.89-1                                                   amd64        CUDA Sanitizer API
rc  cuda-toolkit-10-2                                           10.2.89-1                                                   amd64        CUDA Toolkit 10.2 meta-package
rc  cuda-visual-tools-10-2                                      10.2.89-1                                                   amd64        CUDA visual tools
ii  libcudart9.1:amd64                                          9.1.85-3ubuntu1                                             amd64        NVIDIA CUDA Runtime Library
ii  nvidia-cuda-dev                                             9.1.85-3ubuntu1                                             amd64        NVIDIA CUDA development files
ii  nvidia-cuda-doc                                             9.1.85-3ubuntu1                                             all          NVIDIA CUDA and OpenCL documentation
ii  nvidia-cuda-gdb                                             9.1.85-3ubuntu1                                             amd64        NVIDIA CUDA Debugger (GDB)
ii  nvidia-cuda-toolkit                                         9.1.85-3ubuntu1                                             amd64        NVIDIA CUDA development toolkit

答案1

信用:以下答案来自堆栈溢出

CUDA 有 2 个主要 API,即运行时 API 和驱动程序 API。两者都有相应的版本(例如 8.0、9.0 等)

GPU 驱动程序安装程序安装了驱动程序 API 的必要支持(例如 Linux 上的 libcuda.so)。

运行时 API 所需的支持(例如 Linux 上的 libcudart.so 以及 nvcc)由 CUDA 工具包安装程序(其中可能还捆绑了 GPU 驱动程序安装程序)安装。

无论如何,(已安装的)驱动程序 API 版本可能并不总是与(已安装的)运行时 API 版本匹配,特别是如果您独立于安装 CUDA(即 CUDA 工具包)安装 GPU 驱动程序。

nvidia-smi 工具由 GPU 驱动程序安装程序安装,并且通常查看 GPU 驱动程序,而不是 CUDA 工具包安装程序安装的任何内容。

最近(在 Linux 上的 410.48 和 410.73 驱动程序版本之间),NVIDIA 的高层决定在 nvidia-smi 的输出中添加驱动程序安装的 CUDA 驱动程序 API 版本的报告。

这与安装的 CUDA 运行时版本没有任何关系。

nvcc 是随 CUDA 工具包一起安装的 CUDA 编译器驱动程序工具,它​​将始终报告其构建时识别的 CUDA 运行时版本。它不知道安装的驱动程序版本,甚至不知道是否安装了 GPU 驱动程序。

因此,根据设计,这两个数字不一定匹配,因为它们反映的是两个不同的东西。

如果你想知道为什么 nvcc -V 显示的 CUDA 版本不是你期望的(例如,它显示的版本不是你认为安装的版本),这可能是因为你没有遵循第 7 步中的强制性说明cuda linux 安装指南

请注意,尽管这个问题主要针对 Linux,但同样的概念也适用于 Windows CUDA 安装。驱动程序有一个与之关联的 CUDA 驱动程序版本(例如,可以使用 nvidia-smi 查询)。CUDA 运行时也有一个与之关联的 CUDA 运行时版本。两者不一定在所有情况下都匹配。

在大多数情况下,如果 nvidia-smi 报告的 CUDA 版本在数值上等于或高于 nvcc -v 报告的版本,则无需担心。这是 CUDA 中定义的兼容性路径(较新的驱动程序/驱动程序 API 支持“较旧”的 CUDA 工具包/运行时 API)。例如,如果 nvidia-smi 报告 CUDA 10.2,而 nvcc -v 报告 CUDA 10.1,则通常无需担心。它应该可以正常工作,并不一定意味着您“实际上安装了 CUDA 10.2,而您原本想安装 CUDA 10.1”

相关内容