【问题标题】:How can I get GPU information?如何获取 GPU 信息?
【发布时间】:2021-10-07 02:37:10
【问题描述】:

我的任务是使用 C++ 在 Windows 中收集有关 GPU 的信息,但我不知道从哪里开始!有什么想法吗?

更新:我想要名称、vram、dac、制造商、版本、时钟。

update2:如果我使用win32_videocontroller类,我只是得到了当前使用的显卡的属性,但如果有更多,我需要所有显卡的属性。

【问题讨论】:

  • 您需要什么样的信息? GetDeviceCaps 是获取一些基本信息(例如,当前垂直/水平分辨率)的一种非常简单的方法,但很难猜测这是否是您想要的信息。
  • 名称、Vram、DAC、版本、制造商、时钟
  • 以及如何确定 gpu 中有多少个显示设备?
  • 有些你想要的东西并不存在,至少不是普遍存在的。一些 GPU 有多个不同的时钟。其他人没有固定大小的 VRAM。如果显示器接受数字数据,笔记本电脑配置可能完全没有 DAC。
  • 你可以考虑OpenCL(它也可以在 Windows 之外工作;例如在 Linux 上)

标签: c++ windows gpu


【解决方案1】:

您可能想要使用 WMI 和 Win32_VideoController 类。

Win32_VideoController class

【讨论】:

  • 我之前尝试过,但它不适用于 AdapterRam 等。它没有返回值,并且与其他一些相同
  • link 我使用这段代码,如果我请求 AdapterRam 它不会返回任何东西(ofc 我将 wql 查询写入 win32_displaycontroller......
  • 您是否以管理员权限运行您的应用程序?它可能是必需的。
  • 上面的链接实际上是Win32_VideoController类,而不是过时的Win32_DisplayControllerConfiguration类。
  • 好吧,我从 Win32_VideoController 获得了一些信息,我只遇到了一些我需要的问题,所以你的意思是当我使用管理员权限在 VS 中运行我的应用程序时。还是我应该以管理员身份启动 VS?
【解决方案2】:

开头:IDirect3D9::GetAdapterIdentifier

也许:IDXGIAdapter::GetDesc

如果您使用的是 Windows 8:IDXGIAdapter2::GetDesc2 返回更多信息

这至少应该为您提供一些基本信息,例如显卡的名称、供应商和功能。不确定 vram/dac/clock。

【讨论】:

    猜你喜欢
    • 2015-06-22
    • 1970-01-01
    • 2013-03-06
    • 2020-03-28
    • 1970-01-01
    • 2011-01-29
    • 2022-06-11
    • 1970-01-01
    相关资源
    最近更新 更多