C++获取显存利用率代码

#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值