编辑: GXB156399820 | 2013-04-07 |
6 章])来进行此操作.如果降低核心时钟 频率会相应地降低性能,这说明您的应用程序受顶点着色器、光栅 化、或碎片着色器的限制(也就是受着色器限制). ? 降低 GPU 的内存时钟频率.您可以通过常用的工具(例如 Coolbits[请参见第
6 章])来进行此操作.如果降低内存时钟频率会 相应地影响性能,这说明您的应用程序受纹理或帧缓存带宽的限制 (GPU 带宽限制). 总之,改变 CPU 的速度、GPU 核心时钟频率和 GPU 内存时钟频率, 是迅速确定 CPU 瓶颈或 GPU 瓶颈的简便方法.如果降低 CPU 时钟 频率 n 个百分点,导致应用程序性能降低 n 个百分点,那么,该应用 程序就是受 CPU 限制的.如果降低 GPU 的核心时钟和内存时钟 n 个 百分点,导致应用程序性能降低 n 个百分点,那么,该应用程序就是 受GPU 限制的.
12 NVIDIA 图形芯片编程指南
13 2.2.3. 2.3. 使用 NVPerfHUD 软件 为了确定 CPU 瓶颈,可以将您的应用程序在一个特殊的驱动程序上运 行,该软件叫做 空硬件(Null Hardware) 驱动程序.除了它事实上并 不对 GPU 传送任何任务外,这个驱动程序将像普通驱动程序一样工作 (它通过与普通驱动程序完全相同的编码路径运行).这样, 空硬 件 驱动程序便模拟了一个无穷快速的 GPU.如果 空硬件 驱动程 序的性能不如一个普通驱动程序,那么,应用程序就是完全受 CPU 限 制的. NVPerfHUD 2.0 有一个特殊的模式,可以禁止应用程序所有的绘图调 用,因此模拟了一个 空硬件驱动程序 .但是,由于驱动程序不再需 要处理和执行任何在绘图调用之前的状态改变,禁止绘图调用还因此减 轻了 CPU 的负荷.NVPerfHUD 还有许多其他有用的功能,能帮助您 确定软件的性能问题. 如果 NVPerfHUD 显示 GPU 从未闲置,那么应用程序就是受 GPU 限 制的.NVPerfHUD 的蓝线显示了驱动程序等待 GPU 的毫秒数,因此 能够验证受 GPU 限制的性能. 《NVPerfHUD 用户指南》介绍了确定并消除瓶颈、发现并排除故障等 的详细方法.下载地址为: http://developer.nvidia.com/object/nvperfhud_home.html. 瓶颈:CPU 如果应用程序是受 CPU 限制的,应使用概要分析来查明什么占用了 CPU 资源.下列模块通常会占用大量的 CPU 资源: ? 应用程序(可执行程序和相关的动态链接库[DLL]) ? 驱动程序(nv4disp.dll, nvoglnt.dll) ? DirectX Runtime(d3d9.dll) ? DirectX 硬件抽象层 (hal32.dll) 因为此阶段的目标是减少 CPU 占用率,使CPU 不再成为瓶颈,所以,查清是什么占用了 CPU 大部分运行时间相对比较重要.通常的方 法是:通过较小的最优化改进算法.当然,还需找出占用 CPU........