Win10任務管理器中的"專用GPU內存"是怎麼回事?「共享GPU內存」又是什麼?

Win10任務管理器中的"專用GPU內存"是怎麼回事?「共享GPU內存」又是什麼?

來自專欄 UEFI和BIOS探秘

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。

結論

很多事情雖然看起來十分淺顯,但如果我們仔細檢視問題的方方面面,其實還是有許多有趣的知識值得我們去發現。

歡迎大家關注本專欄和用微信掃描下方二維碼加入微信公眾號"UEFIBlog",在那裡有最新的文章。同時歡迎大家給本專欄和公眾號投稿!

用微信掃描二維碼加入UEFIBlog公眾號


推薦閱讀:

TAG:操作系統 | 圖形處理器GPU | 科技 |