8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

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

Jonald Penpillo 2月前

124 0

我对运行 which nvcc 和 nvidia-smi 所显示的不同 CUDA 版本感到非常困惑。我的 ubuntu 16.04 上安装了 cuda9.2 和 cuda10。现在我将 PATH 设置为指向 cuda9.2。所以...

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 ?我 看到了这个答案 ,但它并没有直接解答我的困惑,只是要求我们重新安装 CUDA 工具包,而我已经这样做了。

帖子版权声明 1、本帖标题:nvcc 和 NVIDIA-smi 显示不同的 CUDA 版本
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Jonald Penpillo在本站《tensorflow》版块原创发布, 转载请注明出处!
最新回复 (0)
  • CUDA 有 2 个主要 API,即运行时 API 和驱动程序 API。两者都有相应的版本(例如 8.0、9.0 等)

    GPU 驱动程序安装程序安装了 libcuda.so 驱动程序 API 所需的支持(例如

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

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

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

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

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

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

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

    如果你想知道为什么 nvcc -V 显示的 CUDA 版本不是你期望的(例如,它显示的版本与你认为安装的版本不同)或者根本没有显示任何内容,那么就版本而言,可能是因为你没有遵循 cuda linux 安装指南中步骤 7(CUDA 11 之前)(或 CUDA 11 linux 安装指南中的步骤 6)中的强制性 说明

    请注意,尽管这个问题主要针对 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”

    如果 nvcc 命令根本没有报告任何内容(例如 Command 'nvcc' not found... )或者它报告了意外的 CUDA 版本,这也可能是由于 CUDA 安装不正确,即未正确执行上述强制性步骤。您可以使用 Linux 实用程序(如 find locate (请使用手册页了解如何操作))来查找 nvcc 可执行文件,开始弄清楚这一点。假设只有一个,那么可以使用它的路径来修复您的 PATH 环境变量。CUDA Linux 安装指南 还解释了如何设置它。您可能需要调整 PATH 变量中的 CUDA 版本以匹配您实际需要/安装的 CUDA 版本。也有可能您根本没有安装 CUDA 工具包( nvcc 通过 CUDA 工具包安装提供,而不是单独通过 GPU 驱动程序安装提供。)

    类似地,当使用docker时,该 nvidia-smi 命令通常会报告安装在基础机器上的驱动程序版本,而其他版本方法 nvcc --version 则会报告安装在docker容器内的CUDA版本。

    同样,如果您使用了其他 CUDA \'工具包\' 安装方法(例如 Anaconda),您可能会发现 Anaconda 指示的版本与 指示的版本不“匹配” nvidia-smi 。但是,上述评论仍然适用。Anaconda 安装的旧 CUDA 工具包可以与 报告的较新版本一起使用 nvidia-smi ,并且 nvidia-smi 报告的 CUDA 版本比 Anaconda 安装的版本更新/更高并不意味着您遇到了安装问题。

    是另一个涉及类似问题的问题。上述处理并不表明此答案仅适用于您有意或无意地安装了多个 CUDA 版本的情况。 每次安装 CUDA 时 nvcc 报告的版本 nvidia-smi 可能不匹配,这是 预期的 行为,在大多数情况下很正常。

    如果 报告的版本 nvidia-smi 在数值上低于 报告的版本 nvcc ,我会认为这可能是一个损坏的配置。如果您用它编译代码 nvcc ,然后尝试在该机器上运行它,它很可能无法正常工作。此原则存在 兼容性例外 (通过安装 \'向前兼容性包\' 启用)。在这种情况下,我的一般建议(对于很多问题都是如此)是将 GPU 驱动程序版本更新为适用于您的 GPU 的最新版本。

返回
作者最近主题: