服务器测评网
我们一直在努力

Linux查看显存命令有哪些?nvidia-smi和gpu-stat怎么用?

在Linux系统中,查看显存信息是进行图形开发、深度学习训练或系统性能优化的常见需求,由于不同硬件架构(如NVIDIA、AMD、Intel)和驱动方案的存在,查看显存的方法也有所差异,本文将系统介绍主流场景下的显存查看命令,涵盖基础信息查询、详细监控及进阶工具使用,帮助用户高效获取所需数据。

Linux查看显存命令有哪些?nvidia-smi和gpu-stat怎么用?

基础显存查询:nvidia-smi与radeinfo

对于NVIDIA显卡用户,nvidia-smi(NVIDIA System Management Interface)是最直接的工具,该命令预装在NVIDIA驱动中,无需额外安装,在终端输入nvidia-smi,即可查看显存总量、已用显存、剩余显存等核心信息,同时附带显卡型号、驱动版本、GPU利用率等数据,若需实时刷新监控,可添加-l 1参数(每秒更新一次),例如nvidia-smi -l 1,适合长时间观察显存占用变化。

对于AMD显卡,radeinfo是官方推荐的工具(需安装radeon-profileradeinfo-tools包),执行radeinfo后,可显示显存大小、当前使用量、显存带宽等信息,部分版本还支持以表格形式展示显存频率、温度等详细参数,若需简化输出,可结合grep命令过滤关键信息,如radeinfo | grep "Memory"

进阶显存监控:/proc/meminfo与sysfs文件系统

除专用工具外,Linux内核提供的文件系统也能获取显存信息,通过读取/proc/meminfo中的"GPU"相关行,可查看系统识别到的显存总量(单位为KB),执行grep "GPU" /proc/meminfo,可能输出"GPU Total Memory: 8388608 kB"(即8GB显存),此方法适用于所有集成显卡场景,但信息较为基础,无法区分具体GPU设备。

若需更精细的显存分配信息,可访问/sys/class/drm/目录下的设备文件,对于NVIDIA显卡,/sys/class/drm/card0/device/mem_info_vram_total可显示显存总量,/sys/class/drm/card0/device/mem_info_vram_used显示已用显存,通过cat命令读取这些文件,可获取原始数值(单位为字节),需手动换算为GB或MB,此方法适合脚本自动化处理,但需注意权限问题(可能需要sudo)。

Linux查看显存命令有哪些?nvidia-smi和gpu-stat怎么用?

图形化工具:gnome-system-monitor与X.Org

对于习惯图形界面的用户,gnome-system-monitor(GNOME系统监视器)提供了直观的显存查看功能,打开后切换到”资源”标签页,在”GPU”选项卡中可查看各显卡的显存占用、GPU使用率及显存带宽,类似工具还有xfce4-taskmanager(XFCE环境)或glances(需安装python-glances包,支持实时图表展示)。

X.Org的xrandr命令可查看显示设备相关的显存信息,执行xrandr --query,在输出中可找到”Video RAM”字段,显示显卡的显存大小,此方法主要用于显示配置,但也能辅助验证显存总量。

深度学习场景:nvidia-ml-py与ROCm SMI

在深度学习开发中,常需通过程序接口动态获取显存信息,NVIDIA提供了nvidia-ml-py库(Python),可通过代码查询显存状态。

import pynvml  
pynvml.nvmlInit()  
handle = pynvml.nvmlDeviceGetHandleByIndex(0)  
meminfo = pynvml.nvmlDeviceGetMemoryInfo(handle)  
print(f"Total: {meminfo.total/1024**3:.2f} GB, Used: {meminfo.used/1024**3:.2f} GB")  

此方法适用于训练脚本中的显存监控或动态分配。

Linux查看显存命令有哪些?nvidia-smi和gpu-stat怎么用?

对于AMD ROCm平台,rocm-smi命令与nvidia-smi类似,可查看显存、GPU利用率等信息,通过rocm-smi --showmeminfo可获取更详细的显存分布,如显存类型(HBM/GDDR)、位宽等。

常见问题与注意事项

  1. 权限问题:部分命令(如nvidia-smi)可能需要普通用户权限,若提示无权限,可尝试sudo或确保用户已加入video组(sudo usermod -aG video $USER)。
  2. 驱动兼容性:若nvidia-smiradeinfo无法执行,需检查显卡驱动是否正确安装,可通过lspci | grep -i "vga"确认硬件是否被识别。
  3. 多GPU场景:系统存在多张显卡时,可通过nvidia-smi -L列出所有GPU设备,再结合nvidia-smi -i <GPU_ID>指定设备查询。
  4. 显存占用计算:显存占用包括显存本身、驱动缓存及应用程序内存,需结合ps命令分析具体进程的显存占用(如nvidia-smi -q | grep "Processes")。

Linux下查看显存的方法多样,可根据使用场景选择合适工具:基础查询用nvidia-smiradeinfo,脚本自动化用/proc/meminfosysfs,图形界面用gnome-system-monitor,深度学习开发则需结合程序接口,掌握这些方法,不仅能快速定位显存问题,还能为系统优化和开发调试提供数据支持。

赞(0)
未经允许不得转载:好主机测评网 » Linux查看显存命令有哪些?nvidia-smi和gpu-stat怎么用?