nvidia-smi GPU 性能测量没有意义

     2023-03-16     94

关键词:

【中文标题】nvidia-smi GPU 性能测量没有意义【英文标题】:nvidia-smi GPU performance measure does not make sense 【发布时间】:2015-08-20 05:26:20 【问题描述】:

我正在使用 Nvidia GTX Titan X 做深度学习实验。 我正在使用 nvidia-smi 来监控 GPU 运行状态,但是工具提供的 perf(ormance) 状态没有意义。

我查看了 nvidia-smi 手册,上面写着:

性能状态 GPU 的当前性能状态。状态范围从 P0(最高性能)到 P12(最低性能)。

GPU 上没有运行任何进程(空闲状态),GPU 性能状态为 p0。 但是,当运行一些计算量大的进程时,状态变为 p2。

我的问题是,为什么我的 GPU 在空闲时处于 P0 状态,但在运行繁重的计算任务时切换到 P2?不应该是相反的吗?

另外,有没有办法让我的 GPU 始终运行在 P0 状态(最高性能)?

【问题讨论】:

【参考方案1】:

令人困惑。

不过,nvidia-smi 手册是正确的。

当一个 GPU 或一组 GPU 空闲时,在机器上运行 nvidia-smi 的过程通常会使其中一个 GPU 脱离空闲状态。这是因为该工具正在收集信息 - 它需要唤醒其中一个 GPU。

此唤醒过程最初会将 GPU 带到 P0 状态(最高性能状态),但 GPU 驱动程序将监视该 GPU,并最终开始降低性能状态以节省电量,如果 GPU 空闲或不是特别忙。

另一方面,当 GPU 在工作负载上处于活动状态时,GPU 驱动程序将根据自己的启发式方法不断调整性能状态以提供最佳性能,同时将性能状态与实际工作负载相匹配。如果未达到热或功率限制,则性能状态应达到其最高水平 (P0),以应对最活跃和最繁重的连续工作负载。

周期性繁重但不连续的工作负载可能会导致 GPU 电源状态在 P0-P2 级别左右波动。由于热(温度)或电源问题而“节流”的 GPU 也可能会看到 P 状态降低。这种类型的限制很明显,并且在 nvidia-smi 中单独报告,但这种类型的报告可能并不适用于所有 GPU 类型。

如果您想查看 GPU 上的 P0 状态,我能提供的最佳建议是运行一个短暂、繁重、连续的工作负载(例如,执行大型 sgemm 操作的工作),然后在运行期间监控 GPU那个工作量。在那种情况下应该可以看到 P0 状态。

如果您正在使用一个使用 cuDNN 库的机器学习应用程序(例如 Caffe),并且您正在训练一个大型网络,则应该可以不时看到 P0,因为 cuDNN 执行的操作类似于sgemm 在这种情况下,通常。

但对于零星的工作负载,最常观察到的状态很可能是 P2。

要始终“强制”P0 电源状态,您可以通过nvidia-smi 工具尝试使用持久性模式和应用程序时钟。使用 nvidia-smi --help 或 nvidia-smi 的手册页来了解这些选项。

虽然我认为这通常不适用于 Tesla GPU,但某些 NVIDIA GPU 可能会在计算负载下将自身限制为 P2 电源状态除非应用程序时钟专门设置得更高。使用nvidia-smi -a 命令查看当前应用程序时钟、默认应用程序时钟和 GPU 可用的最大时钟。 (某些 GPU,包括较旧的 GPU,可能会在这些字段中显示 N/A。这通常表明应用程序时钟无法通过 nvidia-smi 修改。)如果卡在计算负载期间似乎以 P2 状态运行,您可以能够通过将应用程序时钟增加到最大可用(即 Max Clocks)将其增加到 P0 状态。使用 nvidia-smi --help 了解如何格式化命令以更改 GPU 上的应用程序时钟。修改应用程序时钟或启用可修改的应用程序时钟可能需要 root/admin 权限。也可能需要或必须设置 GPU 持久性模式。这将防止驱动程序在 GPU 活动期间“卸载”,这可能会导致在重新加载驱动程序时重置应用程序时钟。

对于在这种情况下受影响的显卡,在计算负载下限制为 P2 的默认行为是设计的 GPU 驱动程序。

This 有点相关的问题/答案也可能很有趣。

【讨论】:

强制P0的指南cryptomining-blog.com/… 我不认为通过 nvidia-smi 或 nvidia-settings 设置内存/核心时钟适用于 1000 和 2000 系列卡 很好的信息。我想有时我们必须耐心等待 P2。例如,84C 的 Titan V 似乎不想超过 P2(功率在 180W 左右振荡)。 nvidia-smi -a 显示 SW Thermal Slowdown : Active - 驱动程序限制的迹象? 太热了。热减速Active 意味着软件正在读取 GPU 温度传感器并限制时钟速度以防止其变热。我通常会质疑您的冷却环境。系统机箱内部可能过热。您可能需要更多的系统粉丝。

nvidia-smi(代码片段)

nvidia-smi显示说明Fan风扇转速(0%--100%),N/A表示没有风扇TempGPU温度(GPU温度过高会导致GPU频率下降)Perf性能状态,从P0(最大性能)到P12(最小性能)PwrGPU功耗Persistence-M持续模式的状态(持续模式耗能大,但在新的GPU应用启动... 查看详情

nvidia-smi 结果中如何定义 GPU 和内存利用率?

】nvidia-smi结果中如何定义GPU和内存利用率?【英文标题】:HowisGPUandmemoryutilizationdefinedinnvidia-smiresults?【发布时间】:2011-07-0211:45:59【问题描述】:我目前正在使用nvidia的驱动程序“nvidia-smi”附带的工具在GPU上进行性能监控。当... 查看详情

OpenGL,测量 GPU 上的渲染时间

...布时间】:2015-07-1806:10:16【问题描述】:我有一些很大的性能问题here所以我想在gpu端进行一些测量。通过阅读thread,我围绕我的绘图函数编写了这段代码,包括gl错误检查和swapBuffers()(确实禁用了自动交换)gl4.glBeginQuery(GL4.GL_TI... 查看详情

gpu显存释放

...台终止掉正在运行的程序,但是有时候程序已经结束了,nvidia-smi也看到没有程序了,但是GPU的内存并没有释放,那么怎么解决该问题呢? 首先执行下面的命令:fuser-v/dev/nvidia*#查找占用GPU资源的PID因为我们只有一块显卡... 查看详情

nvidia-smi 无法初始化 NVML:GPU 访问被操作系统阻止

】nvidia-smi无法初始化NVML:GPU访问被操作系统阻止【英文标题】:nvidia-smiFailedtoinitializeNVML:GPUaccessblockedbytheoperatingsystem【发布时间】:2016-02-2310:12:37【问题描述】:请求时nvidia-smi它给出了这个错误:FailedtoinitializeNVML:GPUaccessblocked... 查看详情

nvidia-smi命令解读

nvidia-smi是用来查看GPU使用情况的。我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下。这是服务器上特斯拉K80的信息。 上面的表格中... 查看详情

nvidia-smi关键知识(代码片段)

Memory-Usage是显存使用率6423MiB/11177MiB也就是这一栏VolatileGPUutil34%GPU利用率主要是看这两个还有一个关键要素显存占用和GPU占用是两个不一样的东西,**显卡是由GPU和显存等组成的**,显存和GPU的关系有点类似于内存和CPU的关系。我... 查看详情

第二篇:linux系统jmeter性能测试笔记

...测试报告名 -Jthread=20 -Jstep=20(参数不加则默认)$nvidia-smi查看显存使用情况命令$watch-n10nvidia-smi周期性地查看GPU使用情况10表示每10秒刷新一次GPU状态vmstatintervalcount   间隔时间 需要输出多少次结果vmstat210... 查看详情

Android Pixel Device:CPU/GPU 功耗测量的内核路径

】AndroidPixelDevice:CPU/GPU功耗测量的内核路径【英文标题】:AndroidPixelDevice:KernelpathforCPU/GPUpowerconsumptionmeasurement【发布时间】:2022-01-0618:23:58【问题描述】:我想测量AndroidPixel设备的CPU/GPU功耗。功耗测量的kernelpath是什么?(我不... 查看详情

GPU RAM 已占用但没有 PID

...cupiedbutnoPIDs【发布时间】:2020-04-1308:28:26【问题描述】:nvidia-smi显示以下内容,表明GPU0上使用了3.77GB,但没有为GPU0列出任何进程:(base)~/.../fast-autoaugment$nvidia-smiFriDec2013:48:122019+--------------------------------- 查看详情

nvidia-smi系列命令总结

NVIDIA-SMI系列命令总结Michael丶Bear2018-07-0319:48:1246993收藏58展开1  NVIDIA-SMI介绍        nvidia-smi简称NVSMI,提供监控GPU使用情况和更改GPU状态的功能,是一个跨平台工具,它支持所有标准的NVIDIA驱动... 查看详情

linux下实时查看gpu状况

1.显示当前GPU使用情况Nvidia自带了一个nvidia-smi的命令行工具,会显示显存使用情况:$nvidia-smi输出如下:2.周期性输出GPU使用情况但是有时我们希望不仅知道那一固定时刻的GPU使用情况,我们希望一直掌握其动向,此时我们就希望... 查看详情

Spark:测量 ALS 的性能

】Spark:测量ALS的性能【英文标题】:Spark:MeasuringperformanceofALS【发布时间】:2016-06-2409:47:10【问题描述】:我正在使用来自spark.ml的ALS模型来创建推荐系统对特定的项目集合使用隐式反馈。我注意到了模型的输出预测值远低于1,... 查看详情

gpu温度监测

...就可以实现。 1.显示当前GPU使用情况 Nvidia自带了一个nvidia-smi的命令行工具,会显示显存使用情况: $nvidia-smi 11输出:? 2.周期性输出GPU使用情况 但是有时我们希 查看详情

为啥nvidia-smi在Windows 10 21H2下的WSL2中返回“GPU访问被操作系统阻止”[关闭]

】为啥nvidia-smi在Windows1021H2下的WSL2中返回“GPU访问被操作系统阻止”[关闭]【英文标题】:Whydoesnvidia-smireturn"GPUaccessblockedbytheoperatingsystem"inWSL2underWindows1021H2[closed]为什么nvidia-smi在Windows1021H2下的WSL2中返回“GPU访问被操作系... 查看详情

nvidia-smi详解(代码片段)

nvidia-smi详解大多数用户都知道如何检查他们的CPU的状态,查看有多少系统内存可用,或者找出有多少磁盘空间可用。相比之下,从历史上看,密切关注GPU的运行状况和状态一直比较困难。如果您不知道去哪里寻找... 查看详情

docker里找不到gpu

...后无反应cat/proc/driver/nvidia/version可以看到驱动的版本但是nvidia-smi有问题目前考虑的问题可能是cuda版本和该驱动版本不一致该docker里面的cuda版本是8.0而主机的cuda版本是9.0没有什么特别好的解决方法只能重新进一个容器,然后再... 查看详情

nvidia-smi 命令是做啥的? [关闭]

】nvidia-smi命令是做啥的?[关闭]【英文标题】:whatisthenvidia-smicommanddo?[closed]nvidia-smi命令是做什么的?[关闭]【发布时间】:2021-12-2708:42:03【问题描述】:我想知道什么does.IsitjustfreeingupthememoryofGPUanddonothing?【问题讨论】:【参考... 查看详情