果你平時有關注過 Windows 10 系統(tǒng)的開發(fā)進度,那么自去年開始的熱詞“硬件加速GPU調(diào)度”就應該不會陌生了。當時該功能不過是設置應用中的一個選項,不過伴隨著驅動程序的陸續(xù)發(fā)布,現(xiàn)在這項功能已基本可用了。
想要體驗這項功能,需要
● Windows10 May 2020(20H1/Version 2004)功能更新或者 Build 19041 及更高版本,在 Windows Search 中搜索“Winver”,確認版本
● Nvidia GeForce 451.48 或 Adrenalin 2020 版 20.5.1 Beta 驅動程序。AMD目前已經(jīng)發(fā)布了測試版本,特爾正計劃在不久的將來更新他們的WDDM 2.7驅動程序,支持硬件加速GPU。
在升級到最新的 Windows 10 版本以及驅動程序之后,你可以通過設置應用或者注冊表來打開/關閉該功能。
通過設置應用啟用該功能,步驟如下
1. 打開開始菜單,點擊設置齒輪圖標。
2. 在設置應用中,點擊"系統(tǒng)"并打開"顯示"選項卡。
3. 在"多顯示器"部分,選擇"圖形設置"。
4. 開啟或關閉 "硬件加速GPU調(diào)度 "選項。
5. 重新啟動系統(tǒng)。
通過注冊表方式啟用該應用程序,步驟如下
1. 打開 Windows 搜索
2. 搜索"regedit"并選擇第一個選項。
3. 打開 "注冊表編輯器"。
4. 在注冊表編輯器中,導航到 "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/GraphicsDrivers"。
5. 找到名為"HwSchMode"的 DWORD 選項。該選項中的值 2 意味著啟用,1 意味著關閉
6. 重新啟動系統(tǒng)。
7. 打開設置 > 顯示 > 圖形設置,并切換該選項。
8. 重新啟動系統(tǒng)。
硬件加速 GPU 調(diào)度是 WDDM 2.7 的主要功能,它允許集成/獨立顯卡直接管理自己的顯存,從而讓你獲得更好的性能,降低延遲,提高平均或最低幀率,改善視頻播放效果。
有了硬件加速GPU調(diào)度,Windows 10現(xiàn)在可以將內(nèi)存管理控制權交給基于GPU的專用調(diào)度處理器,理論上應該可以解放一下CPU,減少輸入滯后。
這項功能在高端 CPU 上表現(xiàn)并不明顯,因為它們能夠完全勝任 GPU 幀處理。微軟表示:“用戶輸入在‘N+1幀’期間被CPU接收,但直到下一幀才被 GPU 渲染”。
不過,在低端和中端 CPU 上進行游戲時,硬件加速 GPU 調(diào)度才會被證明是有用的。根據(jù)微軟的說法,硬件加速GPU調(diào)度還應該減少GPU調(diào)度的開銷,并使圖形子系統(tǒng)的一個基本支柱現(xiàn)代化,為 "未來的事情做好準備"。
Win10已經(jīng)是目前主流系統(tǒng),而Win7會隨著時間推移慢慢淘汰掉,但是有些用戶依然堅守使用Win7,一種可能是習慣,另一種可能就是需要使用某個軟件或者游戲,在Win10下運行不了或者是有各類問題。論CPU,Win10對超線程的調(diào)度一直沒有Win7好,經(jīng)常會出現(xiàn)同頻下,i9-9900K不如i7-9700K,或者是i7 8700K不如i5 8600K的情況。
優(yōu)化Win10對CPU超線程技術的調(diào)度問題
優(yōu)化原理:
利用win10的異構調(diào)度功能將所有的超線程偽裝成小核心,達到優(yōu)先使用非超線程核心并減少線程切換核心,可以減少響應延遲提高游戲性能和單核性能,并且不影響多線程性能。
注意事項:
此方法只適合intel配備超線程的CPU,尤其是非K系列CPU效果更明顯,日常使用的時候睿頻也更加穩(wěn)定,如果您的CPU不帶超線程則無效,如果是AMD銳龍?zhí)幚砥鞑荒苁褂么藘?yōu)化方法,需要在Win10 1903或以上版本+最新芯片組驅動即可,此方法至少支持2017年以后的Win10版本。
具體操作方法
注意,我們需要修改如下的代碼中的SmallProcessorMask的值,例如2核4線程就改為00000005,4核8線程就改為00000055,6核12線程就改為00000555,8核16線程就改為00005555。
如下的代碼,我們以具備6核心12線程的i7-8700K為例,此值是2進制表示的大小核標識,1為大核心,由于實測Win10系統(tǒng)下0 2 4等線程才是超線程,所以是010101010101,它們的16進制值就是555,這里的KGroups>如下的代碼,我們以具備6核心12線程的i7-8700K為例,此值是2進制表示的大小核標識,1為大核心,由于實測Win10系統(tǒng)下0 2 4等線程才是超線程,所以是010101010101,它們的16進制值就是555,這里的KGroups\00中的00是1號cpu如果是多路cpu還需要設置01等等。DynamicCpuPolicyExpectedRuntime值決定進程在cpu單一線程上的保持時間可以適當加長,此值需要使用regedit手動修改注冊表添加,無法導入,1450為默認值5200ms。<>
代碼如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"DefaultDynamicHeteroCpuPolicy"=dword:00000000
"DynamicCpuPolicyExpectedRuntime"=dword:00001450?
"DynamicHeteroCpuPolicyImportant"=dword:00000002
"DynamicHeteroCpuPolicyImportantShort"=dword:00000000
"DynamicHeteroCpuPolicyMask"=dword:00000004
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\KGroups>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\KGroups\00]<]
"SmallProcessorMask"=dword:00000555
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings533251-82be-4824-96c1-47b60b740d00>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318584]<>
"Attributes"=dword:00000000
代碼結束!
我們需要在桌面空白處右鍵點擊,點擊“新建”,再點擊“文本文檔”,即可創(chuàng)建一個文本文件。
將以上的代碼復制到文本中,切記SmallProcessorMask的值,需要根據(jù)您的CPU實際具體情況來修改,如下演示是6核心12線程的i7-8700K,所以我們填寫了“00000555”。2核4線程就改為00000005,4核8線程就改為00000055,6核12線程就改為00000555,8核16線程就改為00005555。
我們點擊菜單欄一欄的“文件”,再點擊“另存為”,如下圖所示。
在另存為窗口中,我們將后綴名.txt修改為.reg,點擊保存。
我們雙擊創(chuàng)建好的.reg文件,點擊“是”,如下圖所示。
最后再點擊確定。
除此之外,我們還需要在電源方案的更改高級電源設置,將處理器電源管理中找到“針對第1類處理去電源效率的處理器性能核心放置最小核心數(shù)量”將其改為100%。
在Win10系統(tǒng)中,首先我們點擊“開始”菜單,點擊“設置”齒輪的圖標,如下圖所示。
在Windows設置界面中,我們點擊“系統(tǒng)”,如下圖所示。
我們點擊“電源和睡眠”選項,下拉右側窗口,找到相關設置下面的“其他電源設置”,如下圖所示。
想要電腦發(fā)揮最佳性能,無疑選擇“高性能”,如下我們勾選的就是“高性能”。在“高性能”后面有一個“更改計劃設置”,點擊進入。
再點擊“更改高級電源設置”,如下圖所示。
在電源選項的界面中,我們下拉找到“處理器電源管理器”并展開,展開“針對第1類處理去電源效率的處理器性能核心放置最小核心數(shù)量”,我們設置為“100”%,并應用確定。
假如不修改此值的話,會因為大小核調(diào)度默認啟用的core parking功能,會出現(xiàn)部分CPU線程無法調(diào)用的問題,最后將電腦重啟即可生效。