在 Windows 上使用 NVIDIA GPU 时捕获时间不稳定的问题
问题
在 Windows 上使用 NVIDIA GPU 进行采集时,出现捕获时间不稳定或变化较大的情况。更具体地说,间隔较长的采集比间隔较短的捕获速度更慢。
原因
GPU 驱动程序具有节能功能,当GPU未被主动使用时,该功能会降低GPU的时钟频率和显存频率。
解决方案
使用 nvidia-smi 将 GPU 时钟频率和显存频率锁定为固定的值或范围,以保持稳定的处理时间。通过以下命令读取可用的频率设置
nvidia-smi --query-supported-clocks=graphics --format=csv
nvidia-smi --query-supported-clocks=mem --format=csv
这将列出多个支持的频率,其中较高的频率可提供更好的性能。可以通过以下命令锁定时钟频率
nvidia-smi --lock-gpu-clocks="<minGpuClock>, <maxGpuClock>"
nvidia-smi --lock-memory-clocks="<minMemClock>, <maxMemClock>"
其中 <minGpuClock>
和 <maxGpuClock>
是所需的最小和最大 GPU 时钟频率,而 <minMemClock>
和 <maxMemClock>
是所需的最小和最大显存时钟频率。如果希望将频率锁定为固定值,请将最小值和最大值设为相同。
备注
并非所有 NVIDIA GPU 都支持 --lock-gpu-clocks
和/或 --lock-memory-clocks
选项。如果这些选项不可用,请尝试将 GPU 驱动程序更新到最新版本。
如需将核心频率恢复为默认设置,请使用以下命令
nvidia-smi --reset-gpu-clocks
nvidia-smi --reset-memory-clocks