我想制作一个显示 VRAM 大小的脚本(语言无关紧要)。唯一有效的是
sudo lspci -vnn
,但它不适用于未启用可调整大小 BAR 的系统。 glxinfo 还可以显示 VRAM 大小,但它在图形加载之前不起作用,因此脚本在 SSH 或 TTY 中会失败
e。 G。在我的电脑上:
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] [1002:73bf] (rev c1) (prog-if 00 [VGA controller])
Memory at 7800000000 (64-bit, prefetchable) [size=16G]
Memory at 7c00000000 (64-bit, prefetchable) [size=256M]
但是在我朋友的笔记本电脑上:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] [10de:1f91] (rev a1) (prog-if 00 [VGA controller])
Memory at a3000000 (32-bit, non-prefetchable) [size=16M]
Memory at 90000000 (64-bit, prefetchable) [size=256M]
Memory at a0000000 (64-bit, prefetchable) [size=32M]
另外,在每台计算机上启用可调整大小的 BAR 也不是一个选项,因为我不希望我的脚本仅在我的硬件上使用:)
很高兴看到任何跨平台解决方案,但如果你有至少 2/3 AMD/Nvidia(/Intel) 选项,那也很好
#!/bin/bash
# Function to extract NVIDIA VRAM info
extract_nvidia_info() {
# Replace with a command or a series of commands to fetch NVIDIA VRAM info
nvidia-smi # Example command, adjust as needed
}
# Function to extract AMD VRAM info
extract_amd_info() {
# Replace with a command or a series of commands to fetch AMD VRAM info
lspci -vnn | grep -i "Radeon" # Example command, adjust as needed
}
# Function to extract Intel VRAM info
extract_intel_info() {
# Replace with a command or a series of commands to fetch Intel VRAM info
lspci -vnn | grep -i "Intel" # Example command, adjust as needed
}
# Identify the GPU vendor
gpu_vendor=$(lspci | grep -i VGA | cut -d ' ' -f5)
case $gpu_vendor in
"NVIDIA")
extract_nvidia_info
;;
"AMD")
extract_amd_info
;;
"Intel")
extract_intel_info
;;
*)
echo "Unknown GPU vendor"
;;
esac
该脚本作为基本框架。您需要将占位符命令替换为为每个供应商获取 VRAM 信息的实际命令。示例命令是通用的,可能需要根据您的具体要求和 Linux 发行版进行调整。
对于 NVIDIA GPU,nvidia-smi 是常用工具,但可能需要安装 NVIDIA 驱动程序和实用程序。 对于AMD和Intel GPU,以lspci为例来识别GPU。可以从 /sys 或 /proc 文件系统或特定于这些供应商的其他工具中提取更多详细信息。 该脚本可以从 Linux 环境中的终端运行。确保使用 chmod +x scriptname.sh 为其授予执行权限。请记住,信息的准确性和可用性取决于您的系统配置和可用工具。