新闻中心

NVIDIA Nsight Graphics 2024.3:分析图形应用 GPU 工作负载 NEWS DETAIL

当前位置:首页 > 新闻中心
资讯分类 · 新闻中心 作者 · 中科新远内容团队 审核人 · 中科新远技术内容组 发布时间 · 2025-01-10 更新时间 · 2026-07-22 来源 · 原页面资料;原厂信息待核验
NVIDIA Nsight Graphics 2024.3:分析图形应用 GPU 工作负载

NVIDIA Nsight Graphics 2024.3 面向需要定位图形应用 GPU 瓶颈的开发者。源资料显示,该版本在 GPU Trace 的 Shader Profiler 中提供 Active Threads per Warp 与 Warp Latency 直方图,并扩展了 D3D12 Work Graph 和 Vulkan 相关分析能力。它适合用于依据实际测量结果检查着色器线程发散、warp 延迟和调度行为,而不是仅凭 GPU 理论规格推断性能。

图形 GPU 优化面临的问题

图形工作负载中的三角形、像素和光线会经过高度并行的 GPU 管线。可编程着色器以 warp 为基本硬件执行组:一个 warp 包含 32 个线程,并在 Streaming Multiprocessor(SM)上按 SIMT 模型执行指令。若着色器中的动态分支在同一 warp 内产生不一致的条件结果,相关线程可能需要分时执行不同分支,未参与当前分支的线程会被屏蔽,进而影响吞吐量。

但分支本身不必然代表性能问题。资料指出,动态分支可以避免未执行路径的副作用;当条件在 warp 层面具有较好的同质性时,也可能是合适的实现方式。是否需要修改代码,应结合实际线程效率、着色时间和其他计数器变化判断。

Nsight Graphics 2024.3 支持的分析能力

GPU Trace 的 Shader Profiler 提供 Active Threads per Warp 直方图,可在着色器工作流、自上而下、自下而上、热点及源代码/反汇编视图中观察。直方图中靠近 32 的值表示指令执行时活跃线程更多;显示值来自性能计数器采样估算。启动 GPU Trace 时,需将 Timeline Metrics 设置为 Top-Level Triage,或在可用时设置为 Ray Tracing Triage,并启用 Real-Time Shader Profiler。

Warp Latency 直方图用于观察 warp 延迟分布,而不只查看单一平均周期值。内存访问和纹理获取等长延迟操作可能使 warp 停止;其他 warp 虽可被调度,但过多 warp 停止时,SM 仍可能利用不足。该直方图当前仅包含时间线中调用同一着色器的非重叠区域所对应的独立延迟数据点,解读时需考虑这一范围限制。

适用场景与代码评估方向

对于光线追踪、计算、顶点和像素着色器,可先通过 Active Threads per Warp 判断线程发散是否与热点对应。路径追踪等场景中,二次光线命中不同对象可能导致发散。源资料提到,Shader Execution Reordering(SER)旨在处理光线追踪着色器中的线程与数据发散;当其发挥作用时,可预期 Active Threads per Warp 出现改善。不同的光线采样方式、工作分组方式,以及在 D3D12 或 Vulkan 中采用 warp 感知的着色器代码,也属于可测试的调整方向。

对于 D3D12 Work Graph,Nsight Graphics 2024.3 在 Shader Profiler 中支持源关联,可在 Shader Source 与 Hot Spots 中进行逐行分析。源关联需要 R565 系列驱动。资料同时指出,Nsight Aftermath SDK 2024.3 增加了工作图着色器跟踪支持,以提供有助于缩小相关 GPU 错误范围的上下文信息。

在 Vulkan 方面,该版本的 Frame Debugger 支持 Vulkan 1.4,并支持资料所列的新提升扩展及其他扩展,包括 VK_NV_inherited_viewport_scissor 和 VK_NV_device_generated_commands_compute;还支持 Windows 和 Linux 桌面平台上 Vulkan SC 应用的帧调试与 GPU 追踪。具体 API、驱动和平台组合是否适用于项目,应以对应版本的 NVIDIA Nsight Graphics 用户指南、驱动文档及项目测试为准。

建议的评估路径

  1. 选择可稳定复现的场景,记录帧时间、目标着色器及相关 GPU Trace。
  2. 在 Shader Profiler 中定位热点,检查 Active Threads per Warp 的分布是否显示明显的线程利用不足。
  3. 结合 Warp Latency 分布判断延迟差异,并区分分支、内存访问、纹理获取或调用参数差异等可能因素。
  4. 一次只调整一个变量,例如光线采样、工作分组或分支实现,然后重新采集相同场景的数据。
  5. 对 Work Graph 或 Vulkan 路径,确认完整 SKU/BOM 中的 GPU、驱动、操作系统、API 与工具版本组合,并在目标项目中验证结果。

常见问题

Active Threads per Warp 接近 32,是否说明着色器已经没有瓶颈?

不一定。该指标可帮助验证线程发散是否可能是限制因素,但不能单独说明整体着色时间、内存访问或其他硬件单元不存在限制。应将其与热点、warp 延迟和端到端性能测量关联分析。

能否仅依据直方图决定采用 SER 或重写分支?

不能。资料强调理论表现会受数据模式、编译器和硬件优化等因素影响。SER、采样调整或 warp 感知代码应作为可验证的候选方案,在相同场景和测量条件下比较调整前后的数据;功能适配条件还需核对官方版本文档。

结论

Nsight Graphics 2024.3 为图形 GPU 工作负载提供了面向 warp 活跃线程、延迟分布和 Work Graph 源代码的分析入口。有效使用方式是先建立可复现的 GPU Trace,再用指标验证具体假设,并以项目实测确认优化是否满足性能与功能要求。

围绕“NVIDIA Nsight Graphics 2024.3:分析图形应用 GPU 工作负载”继续了解 NVIDIA 产品与网络方案