nvtop 介绍与选型指南
nvtop(Neat Videocard TOP)介绍与选型:定位、支持厂商矩阵、数据采集机制、功能特性、快速开始、适用场景与限制,并给出与 nvidia-smi、radeontop、intel_gpu_top、nvitop、glances 的量化选型对比。
nvtop 介绍与选型指南
目标:说清 nvtop(Syllo/nvtop,Neat Videocard TOP)是什么、能监控哪些厂商的 GPU、数据从哪里来、与 nvidia-smi/radeontop/intel_gpu_top/nvitop/glances 等工具的差异与选型建议。本文为认知篇,全部信息来自官方仓库与官方文档的联网溯源(来源与查询日期均已逐项标注),未混入本地环境数据。
一、环境信息
- 溯源日期:2026-10-23(本文所有"最新版本/星数/支持列表"均以该日查询结果为准)
- 软件仓库:GitHub
Syllo/nvtop(https://github.com/Syllo/nvtop) - 最新稳定版:3.3.2(查询方式:GitHub Releases
releases/latest返回 tag3.3.2,2026-10-23) - 社区热度:约 11k stars(取自 shields.io GitHub Stars 徽章渲染结果
11k,2026-10-23) - 开源许可:GPLv3 或更新版本(来源:官方仓库 README「License」节,2026-10-23)
- 主语言:C(构建系统 CMake,用户界面 ncurses)
- 平台:Linux 为主(另有 Apple/WSL2 支持说明,见下文)
- 作者/维护方:Maxime Schmitt(GitHub 账号 Syllo),man 页署名 "Written by Maxime Schmitt"
二、软件概述
nvtop 全称 Neat Videocard TOP,官方定义是"a (h)top like task monitor for GPUs and accelerators"——一个类似 htop 的 GPU 与加速器任务监视器。它解决的核心痛点是:在混插不同厂商显卡/加速卡(NVIDIA、AMD、Intel,以及昇腾、天数智芯等)的机器上,用一个统一的终端界面同时观察所有卡的利用率、显存、温度、功耗、时钟与进程占用,而不必在 nvidia-smi、radeontop、intel_gpu_top 之间来回切换。
与 htop 展示 CPU/内存的方式类似,nvtop 在终端里为每块 GPU 绘制三段式视图(来源:官方仓库 README 首图 screenshot/NVTOP_ex1.png 与 man 页 nvtop(1),2026-10-23):
- 顶部设备条:每卡一行,展示利用率、显存占用、温度、功耗、风扇、时钟频率等即时数值与进度条;视频编码(ENC)/解码(DEC)单元被使用时会动态出现占用百分比条,闲置一段时间后自动隐藏;
- 中部折线图:GPU 利用率与显存利用率随时间变化的曲线(plot),可切换绘制指标;
- 底部进程列表:按卡列出占用 GPU 的进程及各进程的显存/利用率,支持排序与发信号终止。
💡 技术拓展:nvtop 从不同厂商获取数据的技术路径并不相同,了解这一点才能理解它的"支持条件"。常见三类采集路径对比——
采集路径 代表厂商 工作方式 前提条件 厂商管理库 NVIDIA(NVML)、昇腾(DCMI)、MetaX(MXSML)、燧原(EFML)、天数智芯(ixML) 通过驱动自带的用户态管理库 dlopen 查询 必须安装对应厂商驱动(NVML 随 NVIDIA 驱动分发) 内核 DRM/fdinfo AMD(amdgpu)、Intel(i915/xe)、Adreno(msm) 读内核暴露的 DRM 与 fdinfo 接口 内核版本要求:AMD ≥5.14、Intel ≥5.19、Adreno ≥6.0 sysfs/hwmon/procfs Tenstorrent、VideoCore、Rockchip 直接读内核文件系统,无需外部库 需对应内核驱动(如 tt-kmd)与设备节点(如 /dev/vcio) nvtop 同时实现了这三类路径,按启动时探测到的设备自动选择后端(来源:官方 README「GPU Support」各节与源码
src/extract_gpuinfo_*.c,2026-10-23)。
三、核心架构
nvtop 是单一可执行文件的 C 程序,架构上分三层(来源:官方源码目录结构 src/,2026-10-23):
- 设备抽象与采集层:
extract_gpuinfo.c统一调度各厂商后端(extract_gpuinfo_nvidia.c、extract_gpuinfo_amdgpu.c、extract_gpuinfo_intel.c、extract_gpuinfo_ascend.c等),启动时探测可用设备并注册后端;每个后端把厂商私有数据规整为统一的设备信息结构(利用率、显存、温度、功耗、时钟、进程列表)。 - 界面层:基于 ncurses(要求宽字符版本 libncursesw)绘制设备条、折线图与进程列表;提供 F2 进入的交互式 setup 窗口(General/Header/Chart/Processes 四个分区)与 F12 持久化。
- 选项与配置层:命令行参数(
nvtop -h)+ 运行中按键 + 配置文件$XDG_CONFIG_HOME/nvtop/interface.ini(仅由 F12 自动写入,官方声明"Do not edit this file")。
厂商支持矩阵(来源:官方 README「GPU Support」节,2026-10-23):
| 厂商/平台 | 驱动/接口 | 内核要求 | 备注 |
|---|---|---|---|
| NVIDIA | 私有驱动 + NVML(libnvidia-ml);NvAPI(libnvidia-api.so.1,可选,补充时钟域) | — | Kepler 架构起(GeForce 600/800M 及之后)受 NVML 支持良好;不支持 nouveau |
| AMD | amdgpu(主流)与 legacy radeon(有限) | fdinfo 需 ≥5.14 | radeon 驱动指标较少 |
| Intel | i915 或 xe | fdinfo 需 ≥5.19 | 读取总显存与精确频率需 CAP_PERFMON 或 CAP_SYS_ADMIN 能力(root 或 setcap cap_perfmon=ep $(which nvtop)) |
| 华为昇腾 Ascend | DCMI API(910B 实测) | — | 编译期 -DASCEND_SUPPORT=ON 启用 |
| Qualcomm Adreno | msm 驱动 | fdinfo 需 ≥6.0 | 手机/开发板 GPU |
| Broadcom VideoCore | v3d 驱动 | 非 RPi OS 需 ≥6.12 且有 /dev/vcio | 树莓派 4B 实测 |
| Rockchip | NPU 频率/温度/利用率 | — | Orange Pi 5 Plus 实测 |
| Apple M1/M2 | Metal | — | 仅 macOS 构建;构建时只支持该厂商 |
| MetaX | MXSML 库 | — | MXC500 实测 |
| Enflame 燧原 | EFML 库 | — | S60/L300/L600 实测 |
| Tenstorrent | tt-kmd 内核驱动 | — | Blackhole/Wormhole/Grayskull,读 sysfs/hwmon/procfs,无外部库依赖 |
| 天数智芯 Iluvatar CoreX | ixML(libixml.so) | — | 运行时动态加载 |
💡 说明:矩阵中"实测"字样均为官方 README 声明的硬件验证范围;nvtop 3.x 已明显超出"NVIDIA 专用"的早期定位——Ubuntu 22.04 仓库里的老版本 1.2.2 时代,包描述还是"Interactive NVIDIA GPU process monitor",这也是《Ubuntu 22.04 安装 nvtop 3.3.2 指南》中强调"老发行版仓库版本严重滞后"的原因(安装路径详见站内《Ubuntu 22.04 安装 nvtop 3.3.2 指南》。)。
四、功能特性
来源:官方 README 与 man 页 nvtop(1)(2026-10-23),关键能力逐条列出:
- 多 GPU 统一监控:同屏展示全部 GPU/加速器,可用命令行
-s(快照输出)与界面内设备开关配合聚焦; - htop 式进程管理:底部进程列表可排序(F6 选字段、+/- 切升降序)、可高亮选中,F9 向选中进程发送信号(如终止);
- 交互式界面定制(F2 setup):四个分区——General(颜色开关、刷新间隔)、Devices(华氏/摄氏、编解码隐藏计时、GPU 信息栏)、Chart(折线方向反转、绘制指标选择,含 GPU/显存利用率、温度、功耗、时钟、PCIe 收发吞吐)、Processes(排序字段、显示字段、排序方向);
- 偏好持久化(F12):把 F2 中的选择写入
~/.config/nvtop/interface.ini,下次启动自动加载; - 编码/解码动态条:ENC/DEC 使用时出现,闲置自动隐藏(隐藏时长由
-E控制,默认 30 秒,负值常显); - 附加信息栏(
-i):展示 NVML 不上报的动态参数(XBAR/SYS/NVD 时钟);-X另可显示静态规格(着色器核心、L2 缓存、执行引擎)与次级时钟域(依赖 libnvidia-api.so.1,无则该栏自动不留位); - 脚本化输出(
-s快照 /-l循环):不进 ncurses 界面,直接打印当前 GPU 状态,适合脚本与采集管道; - man 手册:
man nvtop提供完整手册页; - 单位口径:内存统一按 1024 字节(1 KiB)进制显示(man 页 MEMORY SIZES 节)。
五、快速开始(最小可用示例)
以下命令取自官方 README「Distribution Specific Installation Process / NVTOP Build」节(2026-10-23),在 Ubuntu 22.04 上的完整实测过程(含版本对比与逐条回显)见站内《Ubuntu 22.04 安装 nvtop 3.3.2 指南》:
# 路径一:发行版仓库(Ubuntu 22.04 的版本较老,见 B1 篇实测对比)
sudo apt install nvtop
# 路径二:官方 AppImage(免安装,从 Releases 页下载后直接运行)
chmod u+x nvtop-3.3.2-x86_64.AppImage
./nvtop-3.3.2-x86_64.AppImage
# 路径三:源码编译(功能最全、版本最新)
sudo apt install cmake libncurses5-dev libncursesw5-dev git libdrm-dev libsystemd-dev
git clone https://github.com/Syllo/nvtop.git
mkdir -p nvtop/build && cd nvtop/build
cmake .. -DNVIDIA_SUPPORT=ON -DAMDGPU_SUPPORT=ON -DINTEL_SUPPORT=ON
make && sudo make install
启动与基本交互(依据 man 页 INTERACTIVE COMMANDS 节):
nvtop # 进入监控界面;F2 调整界面,F12 保存偏好,q 退出
nvtop -s # 快照模式:打印一次状态后退出,适合脚本
nvtop -h # 查看全部命令行参数
man nvtop # 完整手册
界面预期(描述来源:官方 README 截图与 man 页,2026-10-23):在有 GPU 的机器上,nvtop 顶部按卡分块显示利用率/显存/温度/功耗/时钟等数值条,中部是利用率折线图,底部是进程列表;没有 GPU 时启动则直接提示 No GPU to monitor. 后退出。具体的图块布局以官方仓库截图 screenshot/NVTOP_ex1.png 为准,本文不以本地环境杜撰数值。
六、适用场景与限制
适合:
- 混插多厂商 GPU/加速卡(如 NVIDIA + AMD + Intel)的训练/推理服务器,需要"一块屏幕看全部";
- 排查显存被哪个进程占用、需要 htop 式按键(排序、发信号)的交互场景;
- 无图形界面的 SSH 终端与长期挂着的监控小窗;
- 把 GPU 状态纳入 shell 脚本/定时采集(
-s/-l)。
限制(来源:官方 README「GPU Support」「Troubleshoot」与 man 页 BUGS 节,2026-10-23):
- 不支持 nouveau 驱动栈与较老的 NVIDIA GPU(NVML 对 Kepler 之前的卡缺少查询支持);
- AMD 老 radeon 驱动的卡指标有限;字段显示 N/A 时官方建议"升级内核或向厂商要更好的支持";
- AMD/Intel 的进程级占用依赖内核 fdinfo(内核版本门槛见支持矩阵);
- Intel 上读总显存/精确频率需要 root 或 CAP_PERFMON 能力;
- 它是实时观察工具:没有历史数据存储、告警与 Web 界面——需要长期指标留存时应接入时序监控体系(nvtop 的
-s快照可作为取数端被脚本复用)。
七、同类选型对比
围绕"终端 GPU 监控"这一场景,把常见工具放在一起量化对比(各工具的支持范围与形态以其官方仓库/手册为准,nvtop 数据为本文溯源值,2026-10-23):
| 工具 | 实现语言 | 支持 GPU | 交互形态 | 运行时依赖 | 许可 | 定位差异 |
|---|---|---|---|---|---|---|
| nvtop | C | NVIDIA/AMD/Intel + 昇腾/天数/燧原等 12 类 | htop 式 TUI(进程排序/发信号/界面定制/持久化) | ncurses(编译期链接) | GPLv3+ | 多厂商统一视图 + htop 式交互,单二进制轻量 |
| nvidia-smi | C(驱动随附) | 仅 NVIDIA | 非交互 CLI(-l 循环打印)/ 持久模式管理 | 随驱动安装 | 闭源随驱动 | NVIDIA 官方瑞士军刀:查询/改参/看进程,但无可视化曲线与跨厂商能力 |
| radeontop | C | 仅 AMD(amdgpu/radeon) | 全屏 TUI(利用率曲线为主) | ncurses/libdrm | GPLv3 | AMD 专精的利用率观察,无 NVIDIA/Intel 支持,进程粒度信息有限 |
| intel_gpu_top | C(intel-gpu-tools 套件) | 仅 Intel(i915/xe) | 全屏 TUI(引擎级占用) | intel-gpu-tools | MIT | 引擎(3D/Video/Blitter 等)级粒度最细,但仅 Intel 且通常需 root |
| nvitop | Python | 仅 NVIDIA(基于 NVML/pynvml) | TUI + 进程管理(attach/环境变量查看/kill) | Python 运行时 + nvidia-ml-py | Apache-2.0 | NVIDIA 深度最强(进程交互丰富),但依赖 Python 且只覆盖 NVIDIA |
| glances | Python | NVIDIA(插件式,需 pynvml) | TUI/Web/REST/C/S 多形态 | Python + 依赖较多 | GPLv3 | 全系统监控大杂烩,GPU 只是众多模块之一;对比详见站内《glances 介绍与选型指南》 |
| bottom / btop | Rust / C++ | 有限(NVIDIA 可选支持) | 现代 TUI | 单二进制 | MIT / BSD-2 | CPU/内存/磁盘/网络为主角的系统监控,GPU 非核心;bottom 详见站内《bottom 介绍与选型指南》 |
| gtop | Node.js | 无 | 字符画布仪表盘 | Node.js 运行时 | MIT | 纯系统指标炫酷面板,不支持 GPU;详见站内《gtop 介绍与选型指南》 |
关键差异与如何选型:
- 看卡不看厂商 → nvtop:唯一同时覆盖 NVIDIA/AMD/Intel 并扩展到昇腾、天数智芯、燧原、Tenstorrent 等加速器的终端工具,混插环境几乎没有替代品;
- 单 NVIDIA 环境要深度进程操作 → nvitop 补位:nvitop 能 attach 进程、查看进程环境变量,比 nvtop 的 F9 更进一步;两者可并存(同一 NVML 不冲突);
- 驱动层参数修改 → nvidia-smi:锁频率、设功耗上限、持久模式等管理动作仍属 nvidia-smi,nvtop 是只读观察者(唯一例外是 F9 向进程发信号);
- AMD/Intel 的引擎级细节 → radeontop / intel_gpu_top:单厂商场景下它们更专精,但都做不了跨厂商统一视图;
- 要历史留存/告警/Web → nvtop 只当取数器:配合
-s快照接入 Prometheus 等体系,或直接换用 DCGM-exporter 类采集器; - 系统整体监控为主、GPU 偶尔看一眼 → glances/bottom:GPU 能力是配角;纯终端颜值仪表盘则 gtop,但与 GPU 监控无关。
一句话结论:nvtop 是"终端里的多厂商 GPU 任务管理器"——把 nvidia-smi/radeontop/intel_gpu_top 各管一摊的观察工作合并成一个 htop 式界面;管理动作交给厂商官方工具,长期指标交给监控平台,nvtop 负责把"现在哪块卡、哪个进程在吃什么"这件事做到一目了然。
八、参考链接
- 官方仓库:https://github.com/Syllo/nvtop (README/GPU Support/Build/Troubleshoot 节,查询日期 2026-10-23)
- Releases(3.3.2):https://github.com/Syllo/nvtop/releases/tag/3.3.2 (查询日期 2026-10-23)
- 星数取证:https://img.shields.io/github/stars/Syllo/nvtop (渲染值 11k,查询日期 2026-10-23)
- NVML API 参考(NVIDIA 支持范围):http://docs.nvidia.com/deploy/nvml-api/nvml-api-reference.html
- AMD fdinfo 内核源码(kernel 5.14):https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c?h=linux-5.14.y
- Intel fdinfo 内核源码(kernel 5.19):https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/gpu/drm/i915/i915_drm_client.c?h=linux-5.19.y
- 站内系列:《Ubuntu 22.04 安装 nvtop 3.3.2 指南》《nvtop 3.3.2 配置参数详解》《nvtop 3.3.2 常用 CLI 命令与工具详解》