开源 GPU 监控库完整汇总(按编程语言、场景、生态分类)底层硬件采集 SDK(开发调用)、终端交互式工具、Prometheus 时序监控 Exporter、集群调度管理套件、Windows 全硬件监控、嵌入式边缘 GPU 专用工具、桌面可视化面板7 大类,区分 NVIDIA/AMD/Intel 跨平台适配、核心能力、适用场景、源码地址,兼顾二次开发与直接运维使用。

开源 GPU 监控 & 管理库 / 工具全景梳理

分为底层硬件采集 SDK(开发调用)、终端交互式工具、Prometheus 时序监控 Exporter、集群调度管理套件、Windows 全硬件监控、嵌入式边缘 GPU 专用工具、桌面可视化面板7 大类,区分 NVIDIA/AMD/Intel 跨平台适配、核心能力、适用场景、源码地址,兼顾二次开发与直接运维使用。

一、底层原生采集 SDK(用于二次开发、程序内嵌入 GPU 监控逻辑)

1. NVIDIA 生态底层 SDK

  1. NVML(NVIDIA Management Library)
    • 形态:C 语言二进制库(驱动自带nvml.dll/libnvidia-ml.so,接口文档公开),nvidia-smi 底层依赖
    • 可采集:GPU 利用率、显存、功耗、温度、PCIe、风扇、进程显存、MIG、故障报错、时钟频率
    • 主流开源绑定:
    • 适用:算力调度、容器 GPU 限额、训练任务异常告警
  2. DCGM(Data Center GPU Manager)SDK
    • 定位:NVML 企业级增强,面向 A100/H100/H200 数据中心 GPU
    • 能力:长时间遥测、硬件故障预判、GPU 隔离、集群性能调优、MIG 精细化管控
    • 开源组件:dcgm-exporter(时序采集),官方提供 C/Rust/Python SDK

2. AMD 开源底层 SDK

  1. ROCm SMI Lib(rocm_smi_lib)
    • 完全开源 C 库,AMD 官方维护,适配 Radeon 消费卡、MI210/MI250/MI300 计算卡
    • 指标:GPU 负载、VRAM、SOC 功耗、VDD 电压、XGMIB 互联带宽、功耗墙配置
    • 配套 CLI:rocm-smi,Python 封装直接调用
  2. libdrm(Direct Rendering Manager)
     
    Linux 内核态开源驱动接口,radeontop 底层依赖,无 ROCm 驱动也可读取 AMD GPU 硬件寄存器,适合轻量化嵌入式 AMD 显卡。

3. Intel GPU 开源采集库

igt-gpu-tools(libigt)
 
Freedesktop 开源项目,Linux 下 Intel Arc、Iris Xe 核显唯一原生开源采集库
 
采集:EU 阵列利用率、渲染 / 编码引擎负载、显存、功耗、GPU 时钟
 
命令行入口:intel_gpu_top

4. 跨厂商统一封装 SDK

  1. GPUtil(Python)
     
    极简封装,自动兼容 N 卡 / A 卡 / Intel,一键获取 GPU 编号、显存占用、使用率,仅基础指标,无功耗温度
python
 
运行
import GPUtil
gpu_list = GPUtil.getGPUs()
  1. LibreHardwareMonitorLib(.NET)
     
    Windows 平台万能硬件采集库,C# 可直接引用 DLL,全品牌 GPU 传感器(温度、功耗、风扇、电压、显存全覆盖),Windows 桌面程序首选。

二、终端交互式 GPU 监控工具(服务器 SSH 直接使用,轻量化)

  1. nvtop
     
    C 语言开源,跨 NVIDIA/AMD/Intel,终端版 GPU 任务管理器,彩色可视化、进程绑定 GPU、显存实时曲线
     
    仓库:https://github.com/Syllo/nvtop
     
    优势:一键编译部署,无额外依赖,运维排查首选
  2. radeontop
     
    AMD Linux 专用终端监控,基于 libdrm,无 ROCm 依赖,查看 GPU 核心、显存、视频编码负载
     
    仓库:https://github.com/clbr/radeontop
  3. jtop
     
    NVIDIA Jetson(Nano/Xavier/Orin)专用终端监控,CPU/GPU/DRAM/Codec/ 功耗 / 温度一体化监控,配套 Python SDK
     
    仓库:https://github.com/rbonghi/jetson_stats
  4. nvidia-smi-draw
     
    基于 pynvml 的终端绘图面板,自定义刷新频率,适合服务器常驻监控窗口。

三、Prometheus Exporter(云原生集群监控,对接 Grafana 大盘)

全部开源,用于 GPU 集群、K8s 容器 GPU 时序指标存储、告警配置
  1. dcgm-exporter【NVIDIA 集群首选】
     
    NVIDIA 官方开源,指标粒度最细,支持 MIG、GPU 错误计数、长时间性能曲线
     
    https://github.com/NVIDIA/dcgm-exporter
  2. nvidia-gpu-exporter
     
    轻量化 NVML 采集器,部署简单,适合小规模 GPU 服务器
  3. amdgpu-exporter
     
    基于 rocm-smi-lib,AMD 计算卡 Prometheus 指标导出
     
    https://github.com/hatamiarash7/amdgpu-exporter
  4. intel-gpu-exporter
     
    Intel Arc / 核显集群监控导出器
     
    https://github.com/ze0nni/intel-gpu-exporter
  5. gpu-metrics-exporter
     
    大一统多显卡融合 Exporter,同时采集 N/A/I 三家 GPU 指标,统一指标名

四、GPU 集群管理 & 调度开源套件(监控 + 调度一体化)

  1. GPU Manager(NVIDIA k8s-device-plugin)
     
    K8s 开源 GPU 设备插件,实现 GPU 卡虚拟化调度、显存限额、容器 GPU 绑定,附带基础监控上报
     
    https://github.com/NVIDIA/k8s-device-plugin
  2. Slurm + GPU 插件
     
    HPC 超算集群主流调度,搭配slurm-gpu-plugin实现 GPU 节点状态监控、任务 GPU 独占分配
  3. GPUShare
     
    开源 GPU 分时复用管理,多任务共享单 GPU,附带负载监控与任务隔离
  4. dstack
     
    开源 AI 算力编排平台,内置 GPU 节点监控、任务日志、资源使用率大盘

五、Windows 平台开源 GPU 监控工具(桌面 / Windows 服务器)

  1. LibreHardwareMonitor
     
    .NET 开源,GPU+CPU + 硬盘全传感器监控,可后台运行导出 JSON/CSV 数据,支持二次开发调用库
     
    https://github.com/LibreHardwareMonitor/LibreHardwareMonitor
  2. OpenHardwareMonitor
     
    老牌开源硬件监控,LibreHardwareMonitor 前身,轻量化静态编译版本
  3. GPU-Z-SensorReader(开源 GPU-Z 替代采集)
     
    读取 Windows 显卡 WMI 传感器,获取显卡功耗、温度、显存。

六、嵌入式边缘 GPU 开源监控(瑞芯微 Mali、Jetson、地平线)

  1. jetson-stats(Jetson 全系列)
     
    Jetson SoC 专用,GPU+VIC+NVENC+CPU + 电源一体化监控、功耗限制配置
  2. rk-gpu-monitor
     
    瑞芯微 RK3588/RK3566 Mali GPU 负载监控,读取 GPU 时钟、利用率
     
    https://github.com/rockchip-linux/mali-driver
  3. horizon-monitor
     
    地平线 BPU+GPU 联合监控工具,边缘 AI 盒子硬件状态采集

七、Linux 桌面 GUI 可视化 GPU 监控(可视化面板、超频、风扇曲线)

  1. GreenWithEnvy (GWE)
     
    Linux NVIDIA 显卡 GUI 监控 + 风扇曲线 + 功耗调节,后端 pynvml
     
    https://github.com/leinardi/gwe
  2. GPU-Viewer
     
    跨厂商显卡可视化仪表盘,同时展示 N/A/I 显卡运行参数
  3. Mission Center
     
    Rust 编写系统监控桌面工具,集成 GPU 实时负载图表

八、选型参考表

使用场景 最优开源工具 / 库 核心理由
AI 训练集群、HPC 超算监控 dcgm-exporter + Grafana 指标完备、硬件故障预警、适配 MIG 虚拟化
单台 Linux 服务器 SSH 排查 nvtop 开箱即用终端可视化
Python 程序内嵌 GPU 监控 pynvml (N 卡)/GPUtil (通用) 接口简洁,快速集成
AMD Linux 无 ROCm 环境监控 radeontop 内核寄存器直读,无驱动依赖
Windows C# 程序读取 GPU 传感器 LibreHardwareMonitorLib 全品牌硬件传感器全覆盖
Jetson 边缘设备 jetson-stats SoC 异构模块完整监控
K8s 容器 GPU 调度 + 监控 nvidia-device-plugin 官方适配,容器 GPU 资源隔离
嵌入式 RK3588 开发板 rk-gpu-monitor Mali GPU 原生适配

补充关键说明

  1. NVIDIA NVML 仅在安装官方驱动后可用,Docker 容器需挂载nvidia-container-toolkit暴露 NVML 设备;
  2. AMD Windows 无官方开源硬件采集接口,Windows AMD 监控必须依赖 LibreHardwareMonitor/WMI;
  3. Intel Windows 仅能通过第三方硬件监控库读取传感器,Linux 使用igt-gpu-tools原生采集;
  4. 所有功耗、温度、风扇属于硬件传感器指标,仅显存 / 使用率采集可使用轻量化 GPUtil 降低依赖。

开源 GPU 监控库完整汇总(按编程语言、场景、生态分类)

覆盖NVIDIA CUDA、AMD ROCm、Intel Arc GPU、跨平台通用、嵌入式 GPU(Jetson、RK3588),区分底层硬件读取库、应用层 SDK、命令行工具绑定、Prometheus 监控采集、桌面可视化组件,标注核心能力、依赖、适用场景、仓库地址。

一、NVIDIA 专属 GPU 监控(生态最成熟)

1. NVML(NVIDIA Management Library,官方原生 C 库)

  • 类型:C 语言原生动态库 libnvidia-ml.so / nvml.dll,闭源二进制、调用接口开源文档
  • 核心能力:GPU 利用率、显存、功耗、温度、PCIe 带宽、风扇转速、电源限制、ECC 错误、进程显存占用、GPU 拓扑、MIG 切分状态
  • 绑定封装(开源):
    1. Python:pynvml(最主流)
    2. Go:github.com/NVIDIA/go-nvml
    3. Rust:nvml-wrapper
    4. C++:NVML C++ Wrapper
  • 适用:GPU 服务器监控、训练集群、算力调度、容器内 GPU 状态采集
  • 配套工具底层:nvidia-smi 本身基于 NVML 实现

pynvml(Python 最常用 NVML 封装)

python
 
运行
# 极简示例
from pynvml import *
nvmlInit()
handle = nvmlDeviceGetHandleByIndex(0)
info = nvmlDeviceGetMemoryInfo(handle)
util = nvmlDeviceGetUtilizationRates(handle)

2. NVDIA DCGM(Data Center GPU Manager)

  • 定位:NVML 企业级增强版,面向 A100/H100/H200、MIG、故障预警、长时间遥测、GPU 调度
  • 开源 SDK:DCGM C API、dcgm-exporter(Prometheus 采集器,开源)
  • 仓库:https://github.com/NVIDIA/dcgm-exporter

3. NVML 衍生开源采集组件

  1. gpu-stat:轻量 Python GPU 状态打印,基于 pynvml
  2. nvidia_gpu_exporter:Prometheus Exporter,K8s 集群 GPU 监控

二、AMD GPU 开源监控栈(ROCm + libdrm)

1. ROCm SMI /rocm-smi-lib(AMD 官方开源)

  • 开源 C 库,AMD 显卡(Radeon、MI250、MI300)硬件指标读取
  • 指标:GPU 负载、VRAM、SoC 功耗、VDD、温度、风扇、XGMIB 带宽、GPU 时钟
  • Python 绑定:rocm-smi(自带 CLI)、pyrocm
  • 仓库:https://github.com/ROCm/rocm_smi_lib

2. libdrm + radeontop(底层开源 Linux AMD GPU 监控)

  • radeontop:开源命令行 GPU 监控,基于 libdrm 直接读取 GPU 寄存器,无驱动依赖
  • 仓库:https://github.com/clbr/radeontop
  • 适用:Linux 桌面 AMD 显卡、无 ROCm 环境显卡监控

3. amdgpu-exporter

Prometheus 导出器,基于 rocm-smi-lib,服务器监控使用
 
仓库:https://github.com/hatamiarash7/amdgpu-exporter

三、Intel GPU(Arc/Iris/Xe)开源监控库

1. Intel GPU Top(igt-gpu-tools,完全开源)

Linux 下 Intel 核显 / 独显标准工具集,底层libigt

2. intel-gpu-exporter

Prometheus 监控导出器,基于 igt-gpu-tools
 
仓库:https://github.com/ze0nni/intel-gpu-exporter

四、跨厂商统一 GPU 监控库(N 卡 / A 卡 / Intel 一键兼容)

1. GPUtil(Python,极简跨卡监控)

特点:一行代码获取全部 GPU 基础信息,自动适配 NVML、AMD ROCm、Intel,适合快速脚本开发
python
 
运行
import GPUtil
gpus = GPUtil.getGPUs()

2. psutil-gpu /py3nvml + amd 交叉适配

上层封装统一接口屏蔽多厂商差异

3. nvtop(终端可视化监控,C 语言开源)

终端版 GPU 任务管理器,全厂商适配:NVIDIA/AMD/Intel
 
底层依赖:NVML、ROCm、libdrm、igt-gpu-tools
 
仓库:https://github.com/Syllo/nvtop
 
作用:可二次开发嵌入程序做终端看板

4. gpu-info-rs(Rust 跨平台 GPU 硬件枚举)

Rust 库,枚举 GPU 型号、显存、总线,跨 Windows/Linux/macOS
 
仓库:https://github.com/ribir/gpu-info-rs

五、Prometheus 云原生监控专用 Exporter(生产集群必备)

全部开源,对接 Prometheus+Grafana 做大盘监控
  1. nvidia-dcgm-exporter(NVIDIA 数据中心卡首选)
  2. nvidia-gpu-exporter(轻量化 NVML 采集)
  3. amdgpu-exporter(AMD ROCm 服务器)
  4. intel-gpu-exporter(Intel Xe/Arc)
  5. gpu-metrics-exporter(大一统多卡融合)

六、嵌入式边缘 GPU 监控(Jetson、瑞芯微、地平线)

1. Jetson Stats(NVIDIA Jetson 嵌入式)

适配 Jetson Nano/Xavier/Orin,读取 GPU、CPU、DRAM、VIC、功耗、温度
 
Python 开源库:https://github.com/rbonghi/jetson_stats
 
配套 API:jtop命令行 + Python SDK

2. RK3588/RK3566 Mali GPU 监控

mali_platformrk-gpu-monitor,读取 Mali GPU 负载、时钟
 
开源工具:https://github.com/rockchip-linux/mali-driver

七、桌面 GUI 可视化开源 GPU 监控(底层基于以上库)

  1. GreenWithEnvy (GWE):Linux NVIDIA 显卡 GUI 监控 / 超频,pynvml 后端
     
    https://github.com/leinardi/gwe
  2. GPU-Viewer:跨平台多显卡状态可视化
  3. Mission Center(Rust):系统总览含 GPU 监控

八、Windows 平台开源 GPU 监控库

  1. GPU-Z 开源替代:OpenHardwareMonitor
     
    C# 开源硬件监控,包含 GPU(NVIDIA/AMD/Intel)温度、功耗、负载
     
    仓库:https://github.com/openhardwaremonitor/openhardwaremonitor
  2. HWiNFO 开源分支:LibreHardwareMonitor
     
    .NET 开源,最完善 Windows 硬件读取库,支持所有 GPU 传感器
     
    https://github.com/LibreHardwareMonitor/LibreHardwareMonitor
     
    可通过 C#/C++ 调用 DLL 获取 GPU 指标

九、选型决策表

使用场景 首选库 理由
NVIDIA 训练集群、算力调度 pynvml / DCGM SDK 指标最全,支持 MIG、进程级显存
AMD MI 系列 GPU 服务器 rocm-smi-lib AMD 官方原生支持
快速 Python 原型开发 GPUtil 零配置开箱即用
Linux 终端实时监控 nvtop 直观 UI,可嵌入运维脚本
K8s 云原生监控 DCGM Exporter / amdgpu-exporter 标准 Prometheus 时序数据
Jetson 嵌入式边缘设备 jetson-stats 专用 SoC 全链路监控
Windows 桌面程序 GPU 监控 LibreHardwareMonitor 全厂商传感器全覆盖
跨平台通用 GPU 枚举 Rust gpu-info-rs 无重型驱动依赖

十、关键补充说明

  1. NVML 仅在安装 NVIDIA 驱动后可用,容器内部需要挂载nvidia-container-runtime暴露 NVML 设备;
  2. AMD 无 Windows 原生开源硬件读取接口,Windows AMD 监控依赖 LibreHardwareMonitor;
  3. Intel 核显在 Windows 只能通过 LibreHardwareMonitor 读取硬件传感器,Linux 使用igt-gpu-tools
  4. 所有功耗、温度、风扇属于硬件传感器指标,单纯显存 / 利用率可以用轻量库 GPUtil 实现。

在开源领域,有一些库和工具专门用于 GPU 监控和管理。以下是几个常见的开源 GPU 监控库:

  1. ROCm (Radeon Open Compute):

    • ROCm 是 AMD 的开源计算平台,支持 GPU 监控和管理。它包括许多工具和库,用于高性能计算和深度学习工作负载。
    • 官网链接: ROCm
  2. NVIDIA Management Library (NVML):

    • NVML 是 NVIDIA 提供的 API 库,用于监控和管理 NVIDIA GPU。虽然 NVML 本身不是开源的,但它可以在开源项目中使用。
    • 示例项目: pynvml 是一个 Python 包装器,可以通过 Python 访问 NVML。
  3. nvidia-smi:

    • nvidia-smi 是 NVIDIA 提供的命令行工具,用于监控和管理 GPU。虽然它本身不是库,但可以通过脚本调用来获取 GPU 信息。
    • 可以与 Python 等语言结合使用以编写自定义监控脚本。
  4. PyNVML:

    • PyNVML 是基于 NVML 的 Python 封装库,用于轻松地在 Python 应用程序中使用 NVML 提供的功能。
    • GitHub 项目: pynvml
  5. GPUtil:

    • GPUtil 是一个简单的 Python 库,用于轻松获取 GPU 统计数据,例如 GPU 使用率、内存使用率等。它利用了 nvidia-smi 命令行工具来获取数据。
    • GitHub 项目: GPUtil
  6. AMDuProf:

    • AMD 的开源用户性能工具,用于分析和调试 AMD GPU 和 CPU 性能。
    • 官网链接: AMDuProf
  7. GLXOSD:

    • GLXOSD 是一个开源的 Linux 工具,用于显示 GPU 和 CPU 的实时性能数据,适用于 OpenGL 和 Vulkan 应用程序。
    • GitHub 项目: GLXOSD
  8. intel-gpu-tools:

    • intel-gpu-tools 是一个开源项目,包含了一组用于调试和测试 Intel 集成 GPU 的工具。
    • GitHub 项目: intel-gpu-tools

这些工具和库提供了不同程度的 GPU 监控和管理功能,适用于不同的操作系统和硬件平台。选择合适的工具取决于你具体的硬件需求和开发环境。

 

posted @ 2024-06-22 05:28  suv789  阅读(1157)  评论(0)    收藏  举报