查询 VRAM 数量或 GPU 时钟速度
Query amount of VRAM or GPU clock speed
我正在编写代码来选择一个物理设备,但我想加入一些逻辑来优先选择较新的设备(更多 VRAM 或更高的时钟速度),以防多个设备满足我的最低功能要求。
这可能吗?
Vulkan 没有特定的 API 调用来获取此类 GPU 详细信息,为此您需要使用供应商特定的 APIs,例如 NVAPI。唯一的提示可能是 VkPhysicalDeviceProperties
的 deviceType
成员 returns 无论它是集成、离散还是虚拟 GPU。
VRAM 大小可以通过使用 vkGetPhysicalDeviceMemoryProperties
找到设置了 DEVICE_LOCAL 位的内存堆来确定。该函数返回的 VkPhysicalDeviceMemoryProperties
包含 memoryHeaps
成员中的所有可用内存堆。配置不同,尤其是。在离散和集成 GPU 之间,所以这可能并不总是你要找的东西,例如在具有共享内存的集成 GPU 上。
独立 GPU 的堆:http://vulkan.gpuinfo.org/displayreport.php?id=1432#memoryheaps
集成 GPU 的堆:http://vulkan.gpuinfo.org/displayreport.php?id=1200#memoryheaps
我正在编写代码来选择一个物理设备,但我想加入一些逻辑来优先选择较新的设备(更多 VRAM 或更高的时钟速度),以防多个设备满足我的最低功能要求。
这可能吗?
Vulkan 没有特定的 API 调用来获取此类 GPU 详细信息,为此您需要使用供应商特定的 APIs,例如 NVAPI。唯一的提示可能是 VkPhysicalDeviceProperties
的 deviceType
成员 returns 无论它是集成、离散还是虚拟 GPU。
VRAM 大小可以通过使用 vkGetPhysicalDeviceMemoryProperties
找到设置了 DEVICE_LOCAL 位的内存堆来确定。该函数返回的 VkPhysicalDeviceMemoryProperties
包含 memoryHeaps
成员中的所有可用内存堆。配置不同,尤其是。在离散和集成 GPU 之间,所以这可能并不总是你要找的东西,例如在具有共享内存的集成 GPU 上。
独立 GPU 的堆:http://vulkan.gpuinfo.org/displayreport.php?id=1432#memoryheaps
集成 GPU 的堆:http://vulkan.gpuinfo.org/displayreport.php?id=1200#memoryheaps