有没有办法确定 Linux 中可用视频 RAM 的数量?

Posted

技术标签:

【中文标题】有没有办法确定 Linux 中可用视频 RAM 的数量?【英文标题】:Is there a way to determine the amount of free video RAM in Linux? 【发布时间】:2010-12-01 14:45:13 【问题描述】:

我们认为,我们正在开发的基于 Linux 的系统中的视频 RAM 已用完。我们发现视频和图形驱动程序段出现分配相关错误。

它们是否是我们可以用来确定在任何给定时间点有多少视频 RAM 可用的任何工具或技术?无论是外部应用程序还是我们在应用程序中构建的东西都会很棒。

任何想法/建议将不胜感激 -- 谢谢。

【问题讨论】:

您是否向编写您正在使用的视频驱动程序的人报告了该错误? 是的,问题已报告给供应商。我需要额外的“证据”证明视频内存实际上是问题所在。 【参考方案1】:

据我所知,没有标准的方法。询问制造您正在使用的驱动程序的人。

根据您的驱动程序,您可能会使用 lspci。用 -v -v 详细运行它

$lspci -v -v | less

查找类似于您的视频卡驱动程序的东西,如果幸运的话,它可能会列出可用内存量。

【讨论】:

【参考方案2】:

lspci 不能保证反映 VRAM 的总量。它只会通过barmem,或prefetch-mem)将MMIO-ed的VRAM报告给cpu。但实际的 VRAM 可以更大。

对于同一张amd显卡,radeonamdgpu可以看到与lspci不同的mmio-ed vram,IIUC,对于hd8570radeon只能MMIO 256M VRAM到CPU,但是amdgpu可以MMIO 2G,这里是相关的 amdgpu 补丁:https://patchwork.kernel.org/project/platform-driver-x86/patch/1494348547-1465-6-git-send-email-deathsimple@vodafone.de/ 例如:

尝试调整 BAR0 的大小以让 CPU 访问所有 VRAM。

因此,没有从用户空间校准 vram 的通用方法,因为它依赖于 gpu 驱动程序。

【讨论】:

以上是关于有没有办法确定 Linux 中可用视频 RAM 的数量?的主要内容,如果未能解决你的问题,请参考以下文章

如何查看 Linux 的 RAM 视图以确定碎片

您如何确定 C++ 中 Linux 系统 RAM 的数量?

使用 C 或 C++ 在 OS/400 中获取可用 RAM?

R没有使用整个可用的RAM [重复]

如何通过批处理脚本检查可用内存(RAM)?

linux怎么安装oracle