玩游戏,买显卡,多少显存才够用呢?根据 3 月份的 Steam 硬件统计,有 27.5% 的 Steam 用户在使用 8G 显存的显卡,占比第一。


可与主流用户持有 8G 显存显卡不同,时不时会有人去 BBS 上提问,8G 显存真的够用吗?


要我说的话,只要不爆显存,就不会有任何影响。

差友们可能会问了,啥是爆显存?

托尼列一个情况哈:在玩游戏时,有没有遇到时不时卡一下的问题?就是那种多数情况帧数都很正常,但就是偶尔卡那么一两下,还挺烦人的。

多数情况下,这是由于游戏特效、画质开太高导致显存不够用--也就是 "爆显存" 了。解决方案也简单--调低画质嘛。

但也有不少玩家表示,8G 显存是真不够,甚至还有这种极端的"显存焦虑"。


作为广大玩家的一员,托尼真的觉得天下苦 8GB 显存久矣。要知道 8G 显存的普及,已经是 10 年前的 1070 / RX 480 时期。


可 10 年过去了,2K 甚至 4K 分辨率的显示器普及了, DLSS 都要出到 5 了,贴图材质已经翻天覆地了,面对游戏画质和硬件需求的稳步提升,如今的 8G 显卡,确实是难以招架了。

加上这波内存涨价潮,大显存显卡也在肉眼可见的涨价。。。难道 8G 显存真的不配玩游戏了?

不过这两天托尼上网冲浪的时候,发现 Steam 的母公司 Valve ,正在开发一项新技术,尝试拉一把 8GB 显卡,让大伙避免显存焦虑。


具体是怎么个事呢?在聊新技术之前,托尼需要解释一下,为什么爆显存会发生卡顿。

托尼举一个不太恰当,但是很生动的例子。

想象数据是一辆车,而显卡是高速公路,那么显卡的运算过程,则是车在高速公路上飞快地跑着。暂时不用的数据(也就是暂时不跑的车),会放在显存(服务区)上,等需要运算的时候再进行调用。

图片来源:新华网--一带一路故事绘丨大道至柬 金港公路助力柬埔寨进入“高速时代”


那么服务区停满了该怎么办?要么继续在高速路上跑着,要么只能下高速了。这么看,被收费站分开的普通道路,就是系统内存了。

如果服务区被塞满,想找那辆不在高速路上跑着的"数据",就只能出收费站,看看普通道路上有没有了。这一来一回,速度就慢下来,也就是"爆显存"。


像托尼的这台办公电脑,平时就有 1.4G 的显存占用。而下面的共享 GPU 内存,则代表了 Windows 给显存 "溢出" 的部分,留了一些内存空间,避免程序直接崩溃。


当专用 GPU 内存(显存)快被占满时,程序申请的显存会来到共享 GPU 内存,也就是系统内存中,再通过 PCIE 通道与显卡进行数据交换。

这点是最要命的。显存(服务区)和内存(普通道路)之间传输数据的 PCIE 通道(可以理解为收费站),相比显存自身的速度属实是慢了很多,搬运起来也特别费时间。如果服务区不够大,那么就得频繁地在普通道路上找到那辆"数据",自然而然卡顿就多了起来。

而 V 社工程师 Vock (pixelcluster) 提出的显存优化方案,可以让游戏在 Linux 上的 "可用显存" 更多。


具体做了什么?简单来说,就是把这个服务区不需要的车,给尽可能清空了。

Linux 中使用了 GTT(图形转换表),来表示车在普通道路(内存)上。每个程序都有属于自己的 GTT,用来记录自身的有多少数据在内存中。

那么事情就变成了:如何让游戏的数据尽可能在显存里,让 GTT 里的数据尽可能少,这样就更少地发生显存和内存的数据交换,从而让卡顿更少了。


Vock 的办法是:让操作系统知道,目前正在运行的前台游戏,拥有显存的优先使用权。当显存快被占满时,后台任务所占用的显存数据将被强制“溢出”到系统内存中,从而保证游戏数据在显存里。

因为在此之前,Linux 内核并不清楚该优先保留哪个程序的数据。一旦游戏占用显存过高,内核可能会将游戏数据移出显存,转而分配给后台的浏览器窗口等程序,从而导致游戏掉帧、出现卡顿。

而这一套优先调度前台游戏的显存使用策略,以 dmemcg-booster 补丁的形式,可以安装在 Linux 内核中。

Vock 用一张 8G 显存的显卡以及《赛博朋克 2077》进行了测试。未应用补丁时,有 1.37GB 的数据被“溢出”到 GTT。而此时游戏实际只占用了约 6GB 显存。


应用补丁后,游戏使用了近 7.4GB 的显存,GTT 中的溢出数据降至仅 650MB。


所以本质上,这套方案并非直接减少显存占用,而是优化了有限显存的分配优先级。对于 12GB 显存的显卡而言,这套方案的效果可能并不明显;但对于 8GB 显卡,这一优化可以充分释放其潜力。


就是 dmemcg-booster 这个补丁,能够让游戏实际使用更多显存,进一步榨干显卡的性能,这点托尼是绝对支持的。

可这一套方案,目前仅支持 Linux,同时只有 intel 和 AMD 的 GPU 能够使用,N 卡由于显存管理部分是闭源的,所以无法使用。

但老黄也在慢慢开源了


虽然这个技术目前限制颇多,甚至还没在开发阶段,但考虑到 Steam Machine 也是 8G 的显存规格,或许可以期待一下届时 Steam Machine 会不会使用这项技术,实现更流畅的体验?


回到开头的问题:到底多少显存才够用?目前来说,大概是 4-8G 显存可以满足 1080P,12G 面对 2K 分辨率够用;4K 或者更高分辨率?那就是越多越好了。

但托尼不得不说啊。。。最关心你的游戏体验的,不是微软索尼,也不是英伟达 AMD,而是一个游戏起家,后来推出 Steam,最终成为 PC 最大游戏平台的公司的 V 社。

撰文:洛洛

编辑:米罗

美编:素描

图片、资料来源

https://github.com/Umio-Yasuno/amdgpu_top

https://pixelcluster.github.io/VRAM-Mgmt-fixed/

steam官网

nvidia官网

维基百科

nga玩家社区

新华网