linuxgpu使用率代码 cpp
时间: 2023-01-28 15:47:02 浏览: 128
你可以使用 NVIDIA Management Library (NVML) 来查询 GPU 的使用率。 NVML 是一个用 C 语言编写的库,提供了一组 API,允许你查询 NVIDIA GPU 的状态和性能信息。
你可以通过下面的 C++ 代码来获取 GPU 使用率信息:
```cpp
#include <iostream>
#include <nvml.h>
int main()
{
nvmlReturn_t result;
unsigned int device_count;
// 初始化 NVML
result = nvmlInit();
if (NVML_SUCCESS != result)
{
std::cout << "Failed to initialize NVML: " << nvmlErrorString(result) << std::endl;
return 1;
}
// 获取 GPU 数量
result = nvmlDeviceGetCount(&device_count);
if (NVML_SUCCESS != result)
{
std::cout << "Failed to query device count: " << nvmlErrorString(result) << std::endl;
nvmlShutdown();
return 1;
}
// 遍历所有 GPU
for (unsigned int i = 0; i < device_count; i++)
{
nvmlDevice_t device;
nvmlUtilization_t utilization;
// 获取设备句柄
result = nvmlDeviceGetHandleByIndex(i, &device);
if (NVML_SUCCESS != result)
{
std::cout << "Failed to get handle for device " << i << ": " << nvmlErrorString(result) << std::endl;
continue;
}
// 获取 GPU 使用率
result = nvmlDeviceGetUtilizationRates(device, &utilization);
if (NVML_SUCCESS != result)
{
std::cout << "Failed to get utilization for device " << i << ": " << nvmlErrorString(result) << std::endl;
continue;
}
std::cout << "GPU " << i << " utilization: " << utilization.gpu << "%" << std::endl;
}
// 关闭 NVML
nvmlShutdown();
return 0;
}
```
注意:
- 你需要在编译和链接时指定 NVML 库(例如,通过 `-lnvml` 标志)。
-
阅读全文