在Windows上启用NVIDIA显卡的GSP固件以降低DPC延迟并提高性能
诺艾露
编辑于 2025年03月16日 19:02
调延迟不是有手就行

有些 GPU 包含一个 GPU 系统处理器(GSP),可用于卸载 GPU 初始化和管理任务。该处理器由固件文件驱动。一些特定产品目前默认使用 GSP,更多产品将在未来发布的驱动程序中利用 GSP。

卸载传统上由 CPU 上的驱动程序执行的任务,可以通过更低的延迟访问 GPU 硬件内部来提高性能。

此功能在Linux上使用,尚未在Windows上使用,以下是我自己发现并成功在Windows上启用

20系及其以上应该都有gsp固件,本人显卡RTX2080成功启用

修改注册表有可能导致开不了机,请先准备好pe等工具以备不时之需

要在Windows上启用GSP Firmware

在此注册表位置下添加值:


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000]

"EnableGpuFirmware"=dword:00000001


!!!有核显或者多显卡的请注意是不是Nvidia显卡的名称!!!

例如:


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0001]


重新启动系统后在PowerShell中输入 “nvidia-smi -q” 可显示固件版本

众所周知N卡的DPC延迟一直较高,GSP固件开启后测试DPC延迟下降效果不错

未开启之前:

  1. Total = 43248 for module nvlddmkm.sys

  2. Elapsed Time, >    0 usecs AND <=    1 usecs,  2457, or  5.68%

  3. Elapsed Time, >    1 usecs AND <=    2 usecs, 19820, or 45.83%

  4. Elapsed Time, >    2 usecs AND <=    4 usecs,  6011, or 13.90%

  5. Elapsed Time, >    4 usecs AND <=    8 usecs,  2486, or  5.75%

  6. Elapsed Time, >    8 usecs AND <=    16 usecs,  4791, or 11.08%

  7. Elapsed Time, >    16 usecs AND <=    32 usecs,  3624, or  8.38%

  8. Elapsed Time, >    32 usecs AND <=    64 usecs,  3170, or  7.33%

  9. Elapsed Time, >    64 usecs AND <=   128 usecs,  237, or  0.55%

  10. Elapsed Time, >   128 usecs AND <=   256 usecs,  567, or  1.31%

  11. Elapsed Time, >   256 usecs AND <=   512 usecs,   82, or  0.19%

  12. Elapsed Time, >   512 usecs AND <=   1024 usecs,   3, or  0.01%

  13. Total,                         43248

开启之后:

  1. Total = 43162 for module nvlddmkm.sys

  2. Elapsed Time, >    0 usecs AND <=    1 usecs,  5820, or 13.48%

  3. Elapsed Time, >    1 usecs AND <=    2 usecs, 19976, or 46.28%

  4. Elapsed Time, >    2 usecs AND <=    4 usecs,  6072, or 14.07%

  5. Elapsed Time, >    4 usecs AND <=    8 usecs,  6875, or 15.93%

  6. Elapsed Time, >    8 usecs AND <=    16 usecs,  3469, or  8.04%

  7. Elapsed Time, >    16 usecs AND <=    32 usecs,  693, or  1.61%

  8. Elapsed Time, >    32 usecs AND <=    64 usecs,  189, or  0.44%

  9. Elapsed Time, >    64 usecs AND <=   128 usecs,   67, or  0.16%

  10. Elapsed Time, >   128 usecs AND <=   256 usecs,   1, or  0.00%

  11. Total,                         43162

LatencyMon日常使用测试:

根据一些用户反馈,启用此功能可能需要一些前置条件:

  • 在BIOS中开启 Above 4GB MMIO BIOS assignment 功能

  • 在UEFI模式下运行Windows

此功能还需要占用一些显存

gpuz:

可能遇到的问题:

  • G-SYNC失效

  • 使用多显示器的用户可能会遇到一些问题

  • 某些游戏或应用无法运行或者在运行时导致Windows蓝屏

但是此功能让延迟下降了一些,还有一些应用场景性能得到了提升,如AI方面的场景


此内容为本人原创分享,在B站和guru3d论坛发表