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

2024-02-25

我对运行时显示的不同 CUDA 版本感到非常困惑which nvcc and 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建议?我看到这个答案 https://stackoverflow.com/questions/34319877/nvcc-has-different-version-than-cuda但它并没有提供直接的答案来解决这个困惑,它只是要求我们重新安装 CUDA Toolkit,我已经这样做了。


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

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

对运行时 API 的必要支持(例如libcudart.so在Linux上,也nvcc)由 CUDA 工具包安装程序(其中可能还捆绑有 GPU 驱动程序安装程序)安装。

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

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

最近(Linux 上的驱动程序版本介于 410.48 和 410.73 之间)NVIDIA 的掌权者决定在输出中添加驱动程序安装的 CUDA 驱动程序 API 版本的报告nvidia-smi.

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

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

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

如果你想知道为什么nvcc -V显示您不期望的 CUDA 版本(例如,它显示的版本不是您认为已安装的版本),或者根本不显示任何内容(就版本而言),这可能是因为您没有遵循 中的强制说明步骤 7(在 CUDA 11 之前)(或 CUDA 11 Linux 安装指南中的步骤 6)cuda Linux 安装指南 https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions

请注意,虽然这个问题主要考虑的是 linux,但相同的概念也适用于windowsCUDA 安装。该驱动程序有一个与之关联的 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”

If nvcc命令根本不报告任何内容(例如Command 'nvcc' not found...)或者如果它报告意外的 CUDA 版本,这也可能是由于 CUDA 安装不正确,即未正确执行上述强制步骤。您可以使用 Linux 实用程序来开始解决这个问题,例如find or locate(请使用手册页了解如何操作)找到您的nvcc可执行的。假设只有一个,则可以使用它的路径来修复您的 PATH 环境变量。这CUDA Linux 安装指南 https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#mandatory-post还解释了如何设置它。您可能需要调整 PATH 变量中的 CUDA 版本以匹配您所需/安装的实际 CUDA 版本。

同样,当使用 docker 时,nvidia-smi命令通常会报告主机上安装的驱动程序版本,而其他版本方法如nvcc --version将报告 docker 容器内安装的 CUDA 版本。

同样,如果您使用过 Anaconda 等其他 CUDA“工具包”安装方法,您可能会发现 Anaconda 指示的版本与 Anaconda 指示的版本不“匹配”nvidia-smi。然而,上述评论仍然适用。 Anaconda 安装的旧版 CUDA 工具包可以与 Anaconda 报告的新版本一起使用nvidia-smi,以及事实nvidia-smi报告比 Anaconda 安装的版本更新/更高的 CUDA 版本并不意味着您有安装问题。

Here https://stackoverflow.com/questions/70048525/why-does-python-show-a-wrong-cuda-version是另一个涵盖类似领域的问题。上述处理并不以任何方式表明该答案仅适用于您有意或无意安装了多个 CUDA 版本的情况。情况自行显现任何时候安装 CUDA。报告的版本nvcc and nvidia-smi可能不匹配,那就是expected行为在大多数情况下都很正常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nvcc 和 NVIDIA-smi 显示的不同 CUDA 版本 的相关文章

  • 使用非均匀节点优化 CUDA 内核插值

    原问题 我有以下内核使用非均匀节点执行插值 我想对其进行优化 global void interpolation cufftDoubleComplex Uj double points cufftDoubleComplex result i
  • Cuda 计算模式和“CUBLAS_STATUS_ALLOC_FAILED”

    我的集群中有一台主机 有 8 个Nvidia K80我想将其设置为每个设备最多可以运行 1 个进程 以前 如果我在主机上运行多个作业并且每个作业都使用大量内存 它们都会尝试访问同一设备并失败 我将所有设备设置为计算模式 3 E Proces
  • nvcc fatal:安装 cuda 9.1+caffe+openCV 3.4.0 时不支持 gpu 架构“compute_20”

    我已经安装了CUDA 9 1 cudnn 9 1 opencv 3 4 0 caffe 当我尝试跑步时make all j8 in caffe目录下 出现这个错误 nvcc fatal 不支持的 GPU 架构 compute 20 我尝试过
  • C 中带括号和不带括号的循环处理方式不同吗?

    我在调试器中单步执行一些 C CUDA 代码 如下所示 for uint i threadIdx x i lt 8379 i 256 sum d PartialHistograms blockIdx x i HISTOGRAM64 BIN
  • CUDA错误:在python中使用并行时初始化错误

    我的代码使用 CUDA 但运行速度仍然很慢 因此 我将其更改为使用 python 中的多处理 pool map 并行运行 但我有CUDA ERROR initialization error 这是函数 def step M self ite
  • 为什么GK110有192个核心和4个扭曲?

    我想感受一下开普勒的架构 但这对我来说没有意义 如果一个 warp 有 32 个线程 其中 4 个被调度 执行 则意味着 128 个核心正在使用 64 个核心处于空闲状态 白皮书中提到了独立指令 那么64核是为这些指令保留的吗 如果是这样
  • 将 GPUJPEG 项目移植到 Windows

    我目前正在尝试移植 GPUJPEG 在 Sourceforge 上 http sourceforge net projects gpujpeg 库 基于 CUDA 从 Unix 到 Windows 现在我被卡住了 我不知道发生了什么或为什么
  • 某些子网格未使用 CUDA 动态并行执行

    我正在尝试 CUDA 5 0 GTK 110 中的新动态并行功能 我遇到了一个奇怪的行为 即我的程序没有返回某些配置的预期结果 不仅是意外的 而且每次启动都会出现不同的结果 现在我想我找到了问题的根源 似乎当生成太多子网格时 某些子网格 由
  • 在新线程中调用支持 CUDA 的库

    我编写了一些代码并将其放入它自己的库中 该库使用 CUDA 在 GPU 上进行一些处理 我正在使用 Qt 构建 GUI 前端 作为加载 GUI 的一部分 我调用 CUresult res CUdevice dev CUcontext ctx
  • 在 python docker 镜像上使用 GPU

    我正在使用一个python 3 7 4 slim busterdocker 镜像 我无法更改它 我想知道如何使用我的英伟达 GPU on it 我通常用一个tensorflow tensorflow 1 14 0 gpu py3并用一个简单
  • 用于类型比较的 Boost 静态断言

    以下问题给我编译器错误 我不知道如何正确编写它 struct FalseType enum value false struct TrueType enum value true template
  • cuda cpu功能-gpu内核重叠

    我在尝试开发以练习 CUDA 的 CUDA 应用程序时遇到并发问题 我想通过使用 cudaMemecpyAsync 和 CUDA 内核的异步行为来共享 GPU 和 CPU 之间的工作 但我无法成功重叠 CPU 执行和 GPU 执行 它与主机
  • CUDA Thrust 和 sort_by_key

    我正在寻找 CUDA 上的排序算法 它可以对元素数组 A 双精度 进行排序 并返回该数组 A 的键 B 数组 我知道sort by keyThrust 库中的函数 但我希望元素数组 A 保持不变 我能做些什么 我的代码是 void sort
  • 如何并行从数组中删除零值

    如何使用 CUDA 并行有效地从数组中删除零值 有关零值数量的信息是预先可用的 这应该可以简化这项任务 重要的是数字必须保持源数组中的顺序 当被复制到结果数组时 Example 该数组将例如包含以下值 0 0 19 7 0 3 5 0 0
  • CUDA Visual Studio 2010 Express 构建错误

    我正在尝试在 64 位 Windows 7 上使用 Visual Studio 2010 Express 在 Windows 上开始 CUDA 编程 我花了一段时间来设置环境 然后我刚刚编写了我的第一个程序 helloWorld cu 目前
  • Nvcc 的版本与 CUDA 不同

    我安装了 cuda 7 但是当我点击 nvcc version 时 它打印出 6 5 我想在 GTX 960 卡上安装 Theano 库 但它需要 nvcc 7 0 我尝试重新安装cuda 但它没有更新nvcc 当我运行 apt get i
  • NvCplGetThermalSettings 返回 false

    问题 您好 我正在尝试使用 Delphi 获取 nividia gtx 980 的 GPU 温度 我看过C 问题 他的解决方案是不使用nvcpl dll 我认为这不是正确的解决方案 因为 nivida 有完整的文档说明如何处理 API 见下
  • 在 Mac OS X 10.7.4 上使用 OpenCL 禁用 Nvidia 看门狗

    我有一个 OpenCL 程序 对于小问题运行良好 但是当运行较大的问题超过 Nvidia 硬件上运行内核的 8 10 秒时间限制时 虽然我没有将显示器连接到我正在计算的 GPU Nvidia GTX580 上 但一旦内核运行大约 8 10
  • Cuda 6.5 找不到 - libGLU。 (在 ubuntu 14.04 64 位上)

    我已经在我的ubuntu上安装了cuda 6 5 我的显卡是 GTX titan 当我想要制作 cuda 样本之一时 模拟 粒子 我收到这条消息 gt gt gt WARNING libGLU so not found refer to C
  • 尝试构建我的 CUDA 程序时出现错误 MSB4062

    当我尝试构建我的第一个 GPU 程序时 出现以下错误 有什么建议可能会出什么问题吗 错误 1 错误 MSB4062 Nvda Build CudaTasks SanitizePaths 任务 无法从程序集 C Program 加载 文件 M

随机推荐

  • 如何修改Eclipse代码辅助中非活动行的颜色?

    首先 已经有类似的问题 https stackoverflow com questions 4402087 how to change the color of the currently selected line in a code a
  • 如何强制安装软件包?

    我正在尝试通过以下方式安装以下软件包composer https packagist org packages cartalyst sentry dev feature laravel 5 https packagist org packa
  • 为什么 JAXB 2 RI 的 XJC 简单模式会更改集合名称?

    JAXB简单绑定模式将集合名称修改为其复数 版本 例如 附加数据 变为 附加数据 有什么解决方案可以改变这种行为吗 我需要一个与 XSD 字段名称相同的 Java 字段名称和方法名称 我的绑定文件
  • 忠实地保留已解析 XML 中的注释

    我希望在操作 XML 时尽可能忠实地保留注释 我设法保留了注释 但内容正在被 XML 转义 usr bin env python add host to tomcat py import xml etree ElementTree as E
  • 如何获取 Laravel 中已注册的路由路径列表?

    我希望找到一种方法来创建一个包含 Laravel 4 中注册的路由路径的数组 本质上 我希望得到一个类似这样的列表 login join password 我确实遇到了一个方法Route getRoutes 它返回一个包含路由信息和资源的对
  • 如何解决 RASA NLU 中未对齐的实体注释错误

    我正在尝试将 LUIS 架构模型导入 RASA 并尝试使用 spacy scikit 管道对其进行训练 我正在使用 RASA NLU v0 10 4 但是当我尝试加载 LUIS 模型架构时 ner crf 组件会抛出实体注释未对齐警告 尽管
  • 垂直滚动的整页背景图像

    我正在尝试创建一个页面 其中背景图像响应浏览器的屏幕尺寸 但是 我需要该图像下的内容 这样如果该人向下滚动 背景图像就会结束 这很难解释 所以我尝试创建一个图像以使其更清晰 尝试这个Fiddle http jsfiddle net Uwt6
  • 即使测试通过,鼻子测试跑步者也会显示日志记录

    我在用nosetests test py运行单元测试 import unittest import logging class Test unittest TestCase def test pass self logging getLog
  • Twitter Bootstrap 导航栏的按钮可以左对齐吗?

    我希望该按钮出现在移动设备上菜单的左侧 Twitter Bootstrap 可以实现这一点吗 这是我的标记
  • 如何使用 log4net 记录 Trace 消息?

    我正在使用 log4net 将写入日志消息记录到滚动日志文件中 现在我还将重定向所有跟踪消息System Diagnostics Trace到该日志文件 我该如何配置呢 我试图在 log4net 文档中找到任何相关内容 但没有成功 有可能吗
  • 如何在 Python Shell 中换行?

    在 IDLE 中 假设我想用两行编写以下内容 x 3 print x 5 但是当我输入 x 3 并按 Enter 时 它会执行分配 如何让它在两行都输入后执行 已阅读 Python 教程的第一页 但没有回答这个 有趣 的问题 Use the
  • Django 按向后外键排序

    我目前有以下型号 class ChatRoom models Model creator models ForeignKey User points to the initial user class Message models Mode
  • 使用 Flash 或 Silverlight 进行语音识别

    我正在开发一个网络用户界面来输入一些不是很复杂但需要实时加载的信息 我认为该应用程序可以利用语音识别来促进任务 该界面的核心是使用 Javascript 和 jQuery 构建的 但可以轻松包含 flash 或 silverlight 组件
  • 如何避免读取 pandas.read_excel 中的空行

    我有一个包含一百万行的 Excel 工作表 只有前一百行左右有数据 其余行都是空的 pandas read excel 内部使用 xlrd 来读取数据 反过来 xlrd 会读取整张纸并花费大量时间 大约 65 秒 我尝试了下面的代码 但无法
  • 如何在使用bundle install --deployment时包含bundler本身

    我正在尝试供应商化我的 ruby 应用程序 这样我就不必在服务器上手动安装任何 gem 并且可以在我们的 puppet 设置中将我的应用程序部署为 rpm 这几乎可以工作 除了尽管我向 Gemfile 添加了一个 require bundl
  • 将 XML 资源传递给 XMLReader

    我正在尝试通过 xml文件来自我的res文件夹到XMLReader为了将其解析为对象 private void parseXML String parsedData try Log w AndroidParseXMLActivity Sta
  • 是否可以将 SDL2 与智能指针一起使用?

    我有这行代码 std unique ptr
  • strlen() 和 UTF-8 编码 [重复]

    这个问题在这里已经有答案了 假设UTF 8编码 PHP中的strlen 这个字符串的长度有可能是4吗 我只想了解 strlen 而不是其他函数 这是字符串 1 2 我在自己的电脑上测试过 验证了UTF 8编码 得到的答案是6 我在 strl
  • Client.ipa 不包含文件

    自从过去几天以来 我一直在为这个错误而烦恼 当我尝试提交基于 cordova 的 iOS 应用程序时 出现符号工具失败的错误 这是我的日志中的内容
  • nvcc 和 NVIDIA-smi 显示的不同 CUDA 版本

    我对运行时显示的不同 CUDA 版本感到非常困惑which nvcc and nvidia smi 我的 ubuntu 16 04 上安装了 cuda9 2 和 cuda10 现在我将 PATH 设置为指向 cuda9 2 所以当我跑步时