windows 用户gpu使用率代码 cpp

时间: 2023-09-25 15:06:53 浏览: 148
### 回答1: 你好! 下面是一段使用 C++ 获取 Windows 用户 GPU 使用率的代码: ```cpp #include <Windows.h> #include <stdio.h> #include <Pdh.h> #include <PdhMsg.h> #pragma comment(lib, "pdh.lib") int main() { PDH_HQUERY query; PDH_HCOUNTER counter; PDH_STATUS status; PDH_FMT_COUNTERVALUE counterValue; // 创建查询和计数器 status = PdhOpenQuery(NULL, 0, &query); if (status != ERROR_SUCCESS) { printf("PdhOpenQuery failed with status %ld\n", status); return 1; } status = PdhAddCounter(query, "\\GPU Engine\\Utilization Percent", 0, &counter); if (status != ERROR_SUCCESS) { printf("PdhAddCounter failed with status %ld\n", status); return 1; } // 获取计数器的当前值 status = PdhCollectQueryData(query); if (status != ERROR_SUCCESS) { printf("PdhCollectQueryData failed with status %ld\n", status); return 1; } status = PdhGetFormattedCounterValue(counter, PDH_FMT_DOUBLE, NULL, &counterValue); if (status != ERROR_SUCCESS) { printf("PdhGetFormattedCounterValue failed with status %ld\n", status); return 1; } printf("GPU utilization: %f%%\n", counterValue.doubleValue); // 关闭查询和计数器 PdhCloseQuery(query); return 0; } ``` 这段代码使用了 Windows Performance Data Helper (PDH) 库来获取 GPU 使用率的信息。 需要注意的是,这段代码只能在 Windows 系统上运行。此外,需要在编译时添加 pdh.lib 库的链接。 希望这段代码能帮到你! ### 回答2: 要获取Windows用户GPU使用率的代码,你可以使用以下CPP代码: ```cpp #include <iostream> #include <windows.h> #include <Ntddvdeo.h> typedef struct _ADAPTER_PERFORMANCE_INFORMATION { LONGLONG Stardate; LONGLONG PerformanceCount; LONGLONG PerformanceFrequency; } ADAPTER_PERFORMANCE_INFORMATION, *PADAPTER_PERFORMANCE_INFORMATION; int main() { HMODULE ntdll = LoadLibraryA("ntdll.dll"); if (ntdll == NULL) { std::cout << "Failed to load ntdll.dll" << std::endl; return 1; } typedef NTSTATUS (WINAPI * NtQueryAdapterPerformanceCounterFn)( _Inout_ PADAPTER_PERFORMANCE_INFORMATION PerformanceInformation); NtQueryAdapterPerformanceCounterFn NtQueryAdapterPerformanceCounter = (NtQueryAdapterPerformanceCounterFn)GetProcAddress(ntdll, "NtQueryAdapterPerformanceCounter"); if (NtQueryAdapterPerformanceCounter == NULL) { std::cout << "Failed to get NtQueryAdapterPerformanceCounter function" << std::endl; FreeLibrary(ntdll); return 1; } ADAPTER_PERFORMANCE_INFORMATION info = { 0 }; NTSTATUS status = NtQueryAdapterPerformanceCounter(&info); if (status != 0) { std::cout << "Failed to get GPU performance counter" << std::endl; FreeLibrary(ntdll); return 1; } double usage = static_cast<double>(info.PerformanceCount) / static_cast<double>(info.PerformanceFrequency) * 100.0; std::cout << "GPU usage: " << usage << "%" << std::endl; FreeLibrary(ntdll); return 0; } ``` 这段代码将加载`ntdll.dll`并通过`NtQueryAdapterPerformanceCounter`函数获取GPU性能计数器信息。然后通过计算性能计数器和性能频率的比值来获取GPU使用率,并将结果以百分比的形式输出。请确保你的系统上有合适的GPU驱动和安装了Windows Driver Kit。 ### 回答3: 要获取Windows用户GPU使用率的代码,可以使用Windows API函数来实现。以下是一个示例代码: ```cpp #include <iostream> #include <windows.h> #include <pdh.h> #include <pdhmsg.h> // 获取GPU使用率 double GetGpuUsage() { PDH_HQUERY query; PDH_HCOUNTER counter; PDH_FMT_COUNTERVALUE counterVal; // 初始化 PDH(Performance Data Helper)查询 PdhOpenQuery(NULL, NULL, &query); PdhAddCounter(query, L"\\GPU Engine(0)\\Utilization Percentage", NULL, &counter); // 收集实时数据 PdhCollectQueryData(query); PdhGetFormattedCounterValue(counter, PDH_FMT_DOUBLE, NULL, &counterVal); // 关闭 PDH 查询 PdhCloseQuery(query); return counterVal.doubleValue; } int main() { double gpuUsage = GetGpuUsage(); std::cout << "GPU使用率: " << gpuUsage << "%" << std::endl; return 0; } ``` 使用Windows API中的Performance Data Helper(PDH)函数,可以通过指定特定的计数器路径来获取GPU的使用率数据。在示例代码中,我们使用了“\GPU Engine(0)\Utilization Percentage”计数器路径,其中“GPU Engine(0)”表示第一个GPU引擎,“Utilization Percentage”表示使用率百分比。通过调用 `PdhGetFormattedCounterValue` 函数,我们可以获取GPU使用率的值。在主函数中,我们输出了获取到的GPU使用率。 请注意,此代码仅适用于基于Windows的系统,并假设GPU驱动程序已正确安装。

相关推荐

最新推荐

recommend-type

免费使用阿里天池GPU深度学习.pdf

1.使用对象:想使用高端GPU且免费的初学者 2.参数:每天免费使用训练7.5小时 3.内容:对如何使用操作进行详细说明 因为深深的喜欢深度学习计算机视觉,苦于自己没有大型机器,网上可以使用阿里但没有教程,特写此...
recommend-type

Windows10+anacond+GPU+pytorch安装详细过程

主要介绍了Windows10+anacond+GPU+pytorch安装详细过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

检测tensorflow是否使用gpu进行计算的方式

今天小编就为大家分享一篇检测tensorflow是否使用gpu进行计算的方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

pytorch 限制GPU使用效率详解(计算效率)

主要介绍了pytorch 限制GPU使用效率详解(计算效率),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

基于Tensorflow使用CPU而不用GPU问题的解决

今天小编就为大家分享一篇基于Tensorflow使用CPU而不用GPU问题的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。