#include <chrono>
#include <iostream>
#include <thread>
// 如果头文件路径找不到,可以试下 find /usr -type f -name nvml.h
#include "xxxxx/nvml.h"
void checkNvmlError(nvmlReturn_t result, const char* action) {
if (result != NVML_SUCCESS) {
std::cerr << "Error: " << action << " failed: " << nvmlErrorString(result) << std::endl;
exit(1);
}
}
int main() {
nvmlReturn_t result;
nvmlDevice_t device;
nvmlUtilization_t utilization;
nvmlMemory_t memory;
// Initialize NVML library
result = nvmlInit();
checkNvmlError(result, "nvmlInit");
// Get the first GPU device (assuming there's at least one GPU)
result = nvmlDeviceGetHandleByIndex(0, &device);
checkNvmlError(result, "nvmlDeviceGetHandleByIndex");
while (1) {
// Get GPU utilization rates
result = nvmlDeviceGetUtilizationRates(device, &utilization);
checkNvmlError(result, "nvmlDeviceGetUtilizationRates");
// Get memory information
result = nvmlDeviceGetMemoryInfo(device, &memory);
checkNvmlError(result, "nvmlDeviceGetMemoryInfo");
// Print GPU utilization and memory usage
std::cout << "GPU Utilization: " << utilization.gpu << "%" << std::endl;
std::cout << "Memory Utilization: " << (memory.used / (double)memory.total) * 100 << "%" << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1));
}
// Shutdown NVML library
result = nvmlShutdown();
checkNvmlError(result, "nvmlShutdown");
return 0;
}
C++获取显存利用率代码
最新推荐文章于 2024-09-19 21:28:18 发布