新聞中心

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 Trace 與 Shader Profiler 檢視著色器中的執行緒分歧、warp 延遲及 D3D12 Work Graph 行為。對於無法僅靠 GPU 規格判斷瓶頸的遊戲、即時渲染與光線追蹤專案,重點不在追求單一指標,而是將量測結果連結到特定著色器、函式或原始碼行,再以專案測試驗證調整是否真正改善畫面效能。

圖形 GPU 最常見的兩類問題

GPU 以高度平行的方式處理三角形、像素、光線與其他渲染資料。可程式化著色器通常以 warp 為基本執行單位;一個 warp 包含 32 個執行緒,並在 Streaming Multiprocessor(SM)上依循 SIMT 模型發出指令。

第一類問題是執行緒分歧。當著色器中的動態分支讓同一 warp 內的執行緒走向不同的 if 或 else 路徑時,SM 必須遮罩不適用於目前分支的執行緒,降低有效吞吐量。但動態分支不必然應被移除:若條件在 warp 內具有良好的一致性,它仍可能比無分支地執行所有路徑更合適。

第二類問題是warp 停滯與延遲。記憶體存取與紋理擷取等長延遲操作可能使 warp 暫停。硬體可切換執行其他 warp,但若過多 warp 同時停滯,SM 利用率仍可能下降。實際延遲受快取命中層級及其他因素影響,不能僅以程式碼表面判斷。

2024.3 可觀察的著色器訊號

Nsight Graphics 的 GPU Trace 中,Shader Profiler 提供 Active Threads per Warp 直方圖。此圖可在著色器工作流程、由上而下、由下而上、熱點及原始碼/反組譯等檢視中使用,以效能計數器取樣的近似值呈現指定著色器、函式或原始碼行的活動執行緒情況。

直方圖中接近 32 的值,代表指令執行時有較多 warp 執行緒處於活動狀態。若熱點區段的活動執行緒偏低,可進一步檢查分支條件、資料分組方式與演算法;若數值接近滿載,則執行緒分歧未必是原先懷疑的主要限制因素。

要取得這項資料,啟動 GPU Trace 時需將 Timeline Metrics 設為 Top-Level Triage,或在可用時設為 Ray Tracing Triage,並啟用 Real-Time Shader Profiler。實際介面、支援條件與所需環境,應以對應版本的 NVIDIA 官方文件確認。

光線追蹤與延遲分析的適用情境

路徑追蹤的次級光線可能因擊中不同場景物件而產生顯著分歧。來源資料指出,Shader Execution Reordering(SER)旨在處理光線追蹤著色器中的執行緒與資料分散;當採用條件適合且 SER 正常運作時,Active Threads per Warp 可作為觀察執行一致性是否改善的訊號之一。是否可用、適用於哪些 GPU 與 API,以及對整體幀時間的影響,均需依完整專案與官方文件驗證。

此外,GPU Trace 的 Warp Latency直方圖將先前的單一平均延遲計數擴展為分布觀察,可協助辨識著色器計時變異、可能的提早結束,或不同呼叫參數造成的行為差異。該直方圖目前只包含時間軸上不重疊區域中、呼叫相同著色器的個別延遲資料點,因此不應將其視為完整工作負載的唯一延遲結論。

D3D12 Work Graph 與 Vulkan 工作流程

在 D3D12 中,Work Graph 的目標是降低 GPU 工作排程對 CPU 的依賴。Nsight Graphics 2024.2 已初步支援在 Shader Profiler 中分析整體 Work Graph 節點;2024.3 進一步提供 Work Graph 的原始碼關聯,可在 Shader Source 與 Hot Spots 中進行逐行分析。來源資料指出,此原始碼關聯需要 R565 系列驅動;部署前應核對實際驅動版本、工具版本與專案建置設定。

此版本的 Frame Debugger 支援 Vulkan 1.4,並支援新提升為必要項目的擴充功能及其他擴充功能,包括 VK_NV_inherited_viewport_scissor 與 VK_NV_device_generated_commands_compute。它亦增加 Windows 與 Linux 桌面平台上 Vulkan SC 應用程式的幀除錯與 GPU 追蹤支援。特定擴充功能、驅動與平台組合的可用性,應依 NVIDIA Nsight Graphics 使用指南及 Vulkan 驅動文件進行日期相符的確認。

建議的評估路徑

  1. 先建立可重現的場景、畫質設定與量測基準,確認問題出現在整體幀時間、特定通道或特定著色器。
  2. 使用 GPU Trace 找出熱點,並將 Active Threads per Warp 與原始碼行、分支或資料分組方式對照。
  3. 再檢查 Warp Latency 分布,區分分歧、記憶體或紋理延遲等可能因素,避免只針對單一指標調整。
  4. 每次僅變更一項策略,例如光線採樣方式、warp 感知的 D3D12 或 Vulkan 著色器程式碼,或適用時的 SER,之後重新量測整體效能與畫面正確性。
  5. 若使用 Work Graph 或 Vulkan 功能,將驅動、SDK、API 功能與建置產物納入測試矩陣。

常見問題

Active Threads per Warp 偏低,是否表示一定要移除所有分支?

不一定。偏低可表示分歧值得調查,但動態分支在條件結果於 warp 內較一致時可能仍具效益。應同時比對熱點、warp 延遲、整體幀時間與畫面輸出,再決定是否改寫分支或調整資料分組。

Work Graph 原始碼關聯可否直接證明 CPU 排程已不再是瓶頸?

不可以。原始碼關聯可協助定位 Work Graph 著色器中的逐行效能資料,但 CPU 與 GPU 的互動仍需透過完整追蹤與專案量測判斷。另須確認 R565 系列驅動及相容的工具、API 與專案設定。

結論

Nsight Graphics 2024.3 為圖形工作負載提供更細緻的 warp 活動度、延遲分布與 Work Graph 原始碼分析途徑。其價值在於讓團隊以可觀察的資料提出假設、進行小幅調整並重複驗證;最終採用與效能結論仍應以特定 GPU、驅動、API、場景及專案測試結果為準。

圍繞「NVIDIA Nsight Graphics 2024.3:分析圖形 GPU 工作負載的方法」繼續瞭解 NVIDIA 產品與網路方案