这篇文章介绍了使用 设置表电源状态关于 NVIDIA GPU 。要在应用程序中获得高且一致的帧速率,请参阅所有 高级 API 性能提示 .
大多数现代处理器,包括 GPU ,在应用程序执行期间更改处理器核心和内存时钟速率。这些更改可能会改变性能,在测量中引入错误,并且很难在运行之间进行比较。
推荐
- 在尝试测量之前,使用
nvidia-smi
实用程序设置 GPU 内核和内存时钟。此命令由 Windows 和 Linux 上的典型驱动程序安装程序安装。安装位置可能因操作系统版本而异,但应相当稳定。- 在 Windows 上的管理员控制台上运行命令,或在 Linux (如 OSs )上为以下命令添加前置命令
sudo
。
- 查询支持的时钟速率
nvidia-smi --query-supported-clocks=timestamp,gpu_name,gpu_uuid,memory,graphics --format=csv
- 要分别设置内核和内存时钟速率,请执行以下操作:
nvidia-smi --lock-gpu-clocks=<core_clock_rate>
nvidia-smi --lock-memory-clocks=<memory_clock_rate>
- 执行性能捕获或其他工作。
- 要分别重置核心和内存时钟速率,请执行以下操作:
nvidia-smi --reset-gpu-clocks
nvidia-smi --reset-memory-clocks
- 对于项目期间的一般使用,可以编写一个简单的脚本来锁定时钟、启动应用程序,然后在退出后重置时钟。
- 要获得命令行帮助,请运行
nvidia-smi --help
。为方便起见,前面列出的命令有一些简短版本。
- 有关更多信息,请参阅 NVIDIA 系统管理界面 。
- 在 Windows 上的管理员控制台上运行命令,或在 Linux (如 OSs )上为以下命令添加前置命令
- 使用 DX12 功能
SetStablePowerState
读取 GPU 预定的稳定电源时钟频率。稳定的 GPU 时钟频率可能因板而异。- 修改 DX12 示例以调用
SetStablePowerState
。 - 执行
nvidia-smi -q -d CLOCK
,并在SetStablePowerState
样本运行时记录图形时钟频率。将此频率与--lock-gpu-clocks
选项一起使用。
- 修改 DX12 示例以调用
- 使用 Nsight Graphics 的 GPU 跟踪活动,并选择在评测期间锁定内核和内存时钟速率(图 1 )。
不推荐使用
- 请勿仅使用 DX12 的
SetStablePowerState
功能锁定 GPU 核心时钟。这不会锁定内存时钟,结果也不如nvidia-smi
可实现的那样具有可比性。