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

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

图形化工具: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")
此方法适用于训练脚本中的显存监控或动态分配。

对于AMD ROCm平台,rocm-smi命令与nvidia-smi类似,可查看显存、GPU利用率等信息,通过rocm-smi --showmeminfo可获取更详细的显存分布,如显存类型(HBM/GDDR)、位宽等。
常见问题与注意事项
- 权限问题:部分命令(如
nvidia-smi)可能需要普通用户权限,若提示无权限,可尝试sudo或确保用户已加入video组(sudo usermod -aG video $USER)。 - 驱动兼容性:若
nvidia-smi或radeinfo无法执行,需检查显卡驱动是否正确安装,可通过lspci | grep -i "vga"确认硬件是否被识别。 - 多GPU场景:系统存在多张显卡时,可通过
nvidia-smi -L列出所有GPU设备,再结合nvidia-smi -i <GPU_ID>指定设备查询。 - 显存占用计算:显存占用包括显存本身、驱动缓存及应用程序内存,需结合
ps命令分析具体进程的显存占用(如nvidia-smi -q | grep "Processes")。
Linux下查看显存的方法多样,可根据使用场景选择合适工具:基础查询用nvidia-smi或radeinfo,脚本自动化用/proc/meminfo或sysfs,图形界面用gnome-system-monitor,深度学习开发则需结合程序接口,掌握这些方法,不仅能快速定位显存问题,还能为系统优化和开发调试提供数据支持。


















