以编程方式获取GPU利用率

10

如何获取GPU的当前负载?我想要类似于任务管理器显示CPU%的功能。像GPU-Z这样的工具会显示这个值,但我不确定它是如何获取的。目前我特别关注于AMD显卡,有任何指针都将有所帮助。

如果没有清晰的API可以实现,是否有任何程序可以输出我需要的信息?

3个回答

5
对于AMD/ATI显卡,请查看GPU PerfStudio。http://developer.amd.com/gpu/Pages/default.aspx 对于NVidia显卡,请查看PerfHUD。http://developer.nvidia.com/object/nvperfhud_home.html 还有一个更通用的工具,DirectX SDK中的Pix,与这些工具部分重叠。
据我所知,没有一种简单的方式来获取GPU的使用百分比,因为情况并不简单。但是这些工具将有助于调试和分析GPU中正在发生的事情。 ATI和NVidia都提供了公共文档,其中包含找到和修复特定类型GPU瓶颈的推荐步骤。

这两个都是工具,而不是 API。但是仍然非常有用。从 AMD 开发者网站上我找到了 AMD 显示库 SDK,看起来它可能可以解决问题。谢谢。 - Amit G
PerfHUD很遗憾只支持Windows操作系统。 - Brian Vandenberg

4

尝试运行 nvidia-smi -a 命令,它已经随着 Nvidia 驱动程序一起安装。该命令提供当前 GPU 核心和内存利用率信息。

运行 nvidia --help 命令可以获取完整的帮助信息。


1

这种信息通常通过PerformanceCounter或WMI提供。使用Perfmon.exe或下载WmiCodeCreator来查找卡片制造商提供的信息。也许不用说,这种代码在不同的机器上移植性不好。


+1 提到 WmiCodeCreator 工具,看起来非常有用。不幸的是,它似乎在这个特定的情况下没有显示任何有用的东西。 - Amit G
浏览视频适配器制造商的网站,查看他们有哪些可用的WMI提供程序。 - Hans Passant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接