gpt4 book ai didi

cuda - nvcc 和 NVIDIA-smi 显示的不同 CUDA 版本

转载 作者:行者123 更新时间:2023-12-01 16:05:57 27 4
gpt4 key购买 nike

我对运行 which nvcc 显示的不同 CUDA 版本感到非常困惑和 nvidia-smi .

我的 ubuntu 16.04 上同时安装了 cuda9.2 和 cuda10。现在我将 PATH 设置为指向 cuda9.2。所以当我运行时:

 $ which nvcc
/usr/local/cuda-9.2/bin/nvcc

然而,当我跑
$ nvidia-smi
Wed Nov 21 19:41:32 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.72 Driver Version: 410.72 CUDA Version: 10.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 106... Off | 00000000:01:00.0 Off | N/A |
| N/A 53C P0 26W / N/A | 379MiB / 6078MiB | 2% Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1324 G /usr/lib/xorg/Xorg 225MiB |
| 0 2844 G compiz 146MiB |
| 0 15550 G /usr/lib/firefox/firefox 1MiB |
| 0 19992 G /usr/lib/firefox/firefox 1MiB |
| 0 23605 G /usr/lib/firefox/firefox 1MiB |

所以我使用 cuda9.2 作为 which nvcc建议,或者我使用 cuda10 作为 nvidia-smi建议?

saw this answer但它并没有直接解决混淆,它只是要求我们重新安装 cudatoolkit,我已经这样做了。

最佳答案

CUDA 有 2 个主要 API,运行时 API 和驱动程序 API。两者都有对应的版本(例如 8.0、9.0 等)
对驱动程序 API 的必要支持(例如 linux 上的 libcuda.so)由 GPU 驱动程序安装程序安装。
对运行时 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 驱动程序。
因此,根据设计,这两个数字不一定匹配,因为它们反射(reflect)了两个不同的事物。
如果您想知道为什么 nvcc -V显示您不期望的 CUDA 版本(例如,它显示的版本不是您认为已安装的版本)或根本不显示任何内容,版本明智,这可能是因为您没有遵循 中的强制性说明cuda linux install guide 的第 7 步(在 CUDA 11 之前)(或 CUDA 11 linux 安装指南中的第 6 步)
请注意,尽管此问题主要针对 linux,但相同的概念也适用于 window 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.1 时实际上安装了 CUDA 10.2”
nvcc命令根本不报告任何内容(例如 Command 'nvcc' not found... ),或者如果报告意外的 CUDA 版本,这也可能是由于 CUDA 安装不正确,即上述强制性步骤未正确执行。您可以通过使用像 find 这样的 linux 实用程序来解决这个问题。或 locate (请使用手册页了解如何)找到您的 nvcc可执行。假设只有一个,然后可以使用它的路径来修复您的 PATH 环境变量。 CUDA linux install guide还解释了如何设置。您可能需要调整 PATH 变量中的 CUDA 版本以匹配您想要/安装的实际 CUDA 版本。
同样,当使用 docker 时,nvidia-smi命令一般会报告基础机器上安装的驱动程序版本,而其他版本方法如 nvcc --version将报告安装在 docker 容器内的 CUDA 版本。
同样的,如果你使用过其他的CUDA“工具包”安装方式,比如Anaconda,你可能会发现Anaconda指示的版本与nvidia-smi指示的版本不“匹配”。 .然而,上述意见仍然适用。 Anaconda 安装的较旧 CUDA 工具包可以与 nvidia-smi 报告的较新版本一起使用,以及 nvidia-smi 的事实报告比 Anaconda 安装的版本更新/更高的 CUDA 版本并不意味着您有安装问题。

关于cuda - nvcc 和 NVIDIA-smi 显示的不同 CUDA 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53422407/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com