技术问答

Win10任务管理器中的"专用GPU内存"是怎么回事?“共享GPU内存”又是什么?

2020-05-08
0
Win10在任务管理器中增加了GPU相关的内容,不但可以看出各个程序的GPU占用率,还可以监视GPU的整体使用情况。这引起了不少同学的注意,也让游戏玩家比较在意的GPU内存占用率暴露了出来。这不,有人邀请我回答下面这个问题:

下图中专用GPU内存和共享GPU内存是啥,从哪里得来的?



哇塞,有两个GTX 1080T的显卡和高达32G的内存!土豪,我们交个朋友吧!其实我猜这位朋友应该是用这台机器来做机器学习的,否则一定是位骨灰级游戏发烧友。

其实这些信息并不是才有,在我的Win7系统中就已经存在,不过隐藏比较深罢了,我们可以通过下面的步骤找到它:

桌面上点右键,选择屏幕分辨率:

选择“高级设置”:

在适配器栏找到它:

东西不是新东西,问题依旧是好问题。我们今天就来引申一下,回答如下几个大家可能关心的问题:

1. 什么是专有GPU内存?什么是共享GPU内存?什么事GPU内存?

2. 它们是哪里来的,怎么调整?

3. 不知道大家有没有注意到,题主的GPU内存达到16GB,有什么副作用?

专有GPU内存

所谓专有GPU内存分为两种情况:独显和集显。

独显是指单独的GPU PCIe卡,在它上面有单独的GDDR内存,而这里的专有GPU内存就是指该GPU显卡上自带的内存,它只能够被GPU使用,而且带宽很高,延迟很小。

集显情况就比较复杂了,我们这里排除AMD GPU集成进Intel CPU那种另类CPU(可做独显看待),仅以Intel集显为例。这里的专有GPU内存是指BIOS在系统内存上挖掉的专门给集显GPU用的系统内存。我在这篇文章中有所介绍:

老狼:神秘消失的内存去哪了?

zhuanlan.zhihu.com
图标
简单的来说,就是BIOS把一部分内存在内存初始化后保留下来给GPU专用,叫做Stolen Memory。它的大小从16M到1024M不等,不同代集显可以支持的保留内存内存各不相同,譬如我的HD4000,它支持的显存最大256M,也不是内存土豪想要多大就能多大的。


另外我可以负责任的说,网上一些修改注册表增加它的最大值是没有用的。那么这个值在哪里改动呢?聪明的你看到这篇文章出现在这个专栏中就一定猜出来了,是的,是在BIOS里。位置各个主板不大一样,这里举两个例子:



需要特别指出的是这里的“Share”Memory让很多人产生了误解,网上很多人都以为这个地方是调节下面要介绍的"共享"GPU内存的。这个说法是错误的,这里的值最终会反应到集显的专有GPU内存项。

共享GPU内存

这里内存是操作系统Windows从系统内存中划出来,优先给GPU使用。题主有32G内存,而共享内存有16G,有两个GPU,是不是系统内存都被占用了呢?实际上,这个16G是两个GPU公用的,而不是每个都有16G。

但是还是有问题,题主真金白银买的32G内存,居然有一半都被划给GPU用了,是不是意味着题主的内存只剩下16G给其他应用程序使用呢?这个问题现在被问到的很多,网上有很多朋友都觉得可惜,尤其是那些不怎么打游戏的朋友,觉得专有GPU内存完全够用了,都在琢磨怎么降低这个共享内存。

这个问题实际上是多虑了,这个共享内存不仅仅是多GPU共享,而且是GPU和其他应用共享,只不过GPU优先级高些罢了。而且Windows也尽量会使用专有GPU内存,而共享GPU内存完全可以在其它应用程序大量消耗内存后归他们使用。而且这个值无法设置,由Windows根据系统内存大小自行设定。

这里需要指出的是共享内存的带宽和时延受限于PCIe的关系,比专有内存低了很多,这也是Windows会优先使用专有GPU内存的一个重要原因。

GPU内存/总共可用GPU内存

这个问题太简单了,它是上面两项的和。对题主来说就是11GB+16GB=27GB,对于我寒酸的电脑来说,就是:1632MB+64MB= 1696MB。
部分文章来源与网络,若有侵权请联系站长删除!

推荐产品