DirectX 技術 – NVIDIA 技術博客
http://www.open-lab.net/zh-cn/blog
閱讀開發者創建的最新技術信息、頭條新聞 和內容。
Tue, 27 Feb 2024 23:10:45 +0000
zh-CN
hourly
1
196178272 -
高級 API 性能:交換鏈
http://www.open-lab.net/zh-cn/blog/advanced-api-performance-swap-chains/
Fri, 15 Dec 2023 05:37:17 +0000
http://www.open-lab.net/zh-cn/blog/?p=8585
Continued]]>
交換鏈是如何將渲染數據輸出到屏幕的不可或缺的一部分。它們通常由一組輸出就緒型緩沖區組成,每個緩沖區都可以旋轉渲染為一個緩沖區。在渲染到交換鏈的某個緩沖區的同時,交換鏈中的其他緩沖區通常被讀取以進行顯示輸出。 本文介紹了在 NVIDIA GPU 上使用交換鏈時的最佳實踐。要在您的應用中獲得穩定的高幀率,請參閱我們的高級 API 性能提示。 在尋求提高渲染性能時,通常會專注于渲染管線中更頻繁優化的部分。但是,交換鏈通常會被忽略,從而將潛在性能和延遲放在桌面上。 以下建議和注意事項可讓您更深入地了解確保最佳交換鏈性能的最佳方法。 感謝 Cody Robson、Kumaresan Gnanasekaran、Adrian Muntianu 和 Meenal Nachnani 提供的建議和幫助。 …
Source
]]>
8585
-
在 HLSL 中解鎖 GPU 內部架構
http://www.open-lab.net/zh-cn/blog/unlocking-gpu-intrinsics-in-hlsl/
Tue, 21 Nov 2023 04:48:35 +0000
http://www.open-lab.net/zh-cn/blog/?p=8295
Continued]]>
NVIDIA GPU 指令集中存在一些標準圖形 API 中不包含的有用內部函數。 更新自 2016 年原始博文,添加了有關 DirectX 和 Vulkan 中新的內部結構和跨供應商 API 的信息。 例如,著色器可以使用線程束 shuffle 指令在線程束中的線程之間交換數據,而無需通過共享內存,這在沒有共享內存的像素著色器中尤其重要。或者,著色器可以在全局內存中對半精度浮點數執行原子添加。 我們的文章 線程之間的讀取:著色器內部函數 向您展示了內部指令的工作原理。現在,我將帶您深入了解如何讓它們在 DirectX 中運行。 在標準 DirectX 或 OpenGL 中,所有這些內部結構都不可能實現。[2023 年:這不再是事實。更多信息將在本文稍后分享。]但它們在 CUDA 中得到了多年的支持和詳細記錄。在 DirectX 中支持它們的機制已經推出一段時間,
Source
]]>
8295
-
高級 API 性能:內部函數
http://www.open-lab.net/zh-cn/blog/advanced-api-performance-intrinsics/
Tue, 21 Nov 2023 04:45:46 +0000
http://www.open-lab.net/zh-cn/blog/?p=8292
Continued]]>
Intrinsics 可被視為特定硬件指令的更高級別的抽象。它們提供對低級操作或特定于硬件的功能的直接訪問,從而提高性能。這樣,就可以在線程束中的線程間執行操作,也稱為線程束中的線程波前. 以下代碼示例是 SM6 的示例: …
Source
]]>
8292
-
高級 API 性能:描述符
http://www.open-lab.net/zh-cn/blog/advanced-api-performance-descriptors/
Fri, 27 Oct 2023 06:46:54 +0000
http://www.open-lab.net/zh-cn/blog/?p=8085
Continued]]>
通過使用描述符類型,您可以將資源綁定到著色器,并指定如何訪問這些資源。這可在 CPU 和 GPU 之間實現高效通信,并使著色器能夠在渲染期間訪問必要的數據。 …
Source
]]>
8085
-
高級 API 性能:調試
http://www.open-lab.net/zh-cn/blog/advanced-api-performance-debugging/
Fri, 13 Oct 2023 06:19:04 +0000
http://www.open-lab.net/zh-cn/blog/?p=8018
Continued]]>
NVIDIA 提供了大量的圖形調試工具,包括 NVIDIA Nsight System 用于 CPU 調試,Nsight Graphics 用于 GPU 調試。而 Nsight Aftermath 則可用于分析崩潰轉儲文件。 感謝 Patrick Neill、Jeffrey Kiel、Justin Kim、Andrew Allan 和 Louis Bavoil 在本文中的幫助。 …
Source
]]>
8018
-
高級 API 性能:著色器
http://www.open-lab.net/zh-cn/blog/advanced-api-performance-shaders/
Fri, 01 Sep 2023 05:25:39 +0000
http://www.open-lab.net/zh-cn/blog/?p=7774
Continued]]>
本文介紹在 NVIDIA GPU 上使用著色器時的最佳實踐。要在應用程序中獲得高且一致的幀速率,請參閱高級 API 性能小貼士。 著色器通過使您能夠控制渲染過程的各個方面,在圖形編程中發揮著關鍵作用。它們在 GPU 上運行,負責操作頂點、像素和其他數據。 這些提示適用于所有類型的著色器。 計算著色器用于從數據處理和模擬到機器學習的通用計算。 像素著色器,也稱為片段著色器,用于按像素計算效果。 頂點著色器用于在逐頂點的基礎上計算效果。 幾何體、域和外殼著色器用于控制、評估和生成幾何體,從而使鑲嵌能夠創建曲面和對象的動態生成。 感謝 Ryan Prescott、Ana Mihut、Katherine Sun 和 Ivan Fedorov。 …
Source
]]>
7774
-
DirectX 光線跟蹤中自相交偽影的求解
http://www.open-lab.net/zh-cn/blog/solving-self-intersection-artifacts-in-directx-raytracing/
Thu, 31 Aug 2023 05:33:02 +0000
http://www.open-lab.net/zh-cn/blog/?p=7781
Continued]]>
光線和路徑跟蹤算法通過從攝影機或光源開始并將光線與場景幾何體相交來構建光路。當對象被擊中時,會在這些曲面上生成新的二次光線以繼續路徑。 理論上,這些二次光線不會再次與同一三角形相交,因為相交算法排除了距離為零的相交。然而,在實踐中,實際實現中使用的有限浮點精度往往會導致假陽性結果,稱為自交叉(圖 2)。這會產生偽影,例如陰影痤瘡,其中三角形有時會不正確地陰影自己(圖 1)。 通過使用同一基元的標識符顯式地將其從交集中排除,可以避免自交集。在 DirectX 光線跟蹤(DXR)中,這種自相交檢查將在任何命中著色器中實現。然而,強制任何命中 所有三角形命中的調用都會帶來顯著的性能損失。此外,該方法不處理針對相鄰(近)共面三角形的誤報。 解決該問題的最廣泛的方案是使用各種啟發式方法來沿著光線方向或法線偏移光線。然而,這些方法不足以處理各種常見的制作內容,
Source
]]>
7781
-
高級 API 性能:管道狀態對象
http://www.open-lab.net/zh-cn/blog/advanced-api-performance-pipeline-state-objects/
Tue, 18 Jul 2023 05:36:00 +0000
http://www.open-lab.net/zh-cn/blog/?p=7431
Continued]]>
管道狀態對象( PSO )定義了在向 GPU 提交工作時硬件如何解釋和渲染輸入數據。 PSO 的正確管理對于系統資源的最佳使用和游戲的順利進行至關重要。 本文介紹了在 NVIDIA GPU 上使用管道狀態對象時的最佳實踐。要在應用程序中獲得高性能且一致的幀速率,請參考高級 API 性能技巧。 感謝 Patrick Neil 和 Dhiraj Kumar 的建議和幫助。 …
Source
]]>
7431
-
使用 SetBackgroundProcessingMode 對 DirectX 12 進行游戲內 GPU 分析
http://www.open-lab.net/zh-cn/blog/in-game-gpu-profiling-for-dx12-using-setbackgroundprocessingmode/
Mon, 10 Jul 2023 03:46:16 +0000
http://www.open-lab.net/zh-cn/blog/?p=7367
Continued]]>
如果你是 DirectX 12(DX12) 游戲開發人員,你可能已經注意到,即使應用程序端沒有任何變化,游戲 HUD 中實時顯示的 GPU 時間也可能會隨著時間的推移而變化。 GPU 時間變化的一個原因可能是 GPU Boost 動態地改變 GPU 核心時鐘頻率。即使使用 DX12 禁用了 GPU 升壓 SetStablePowerState API,GPU 游戲中測得的計時也可能在不同的跑步或每幀之間發生意外變化。需要考慮的因素包括是否進行了背景驅動程序優化,以及何時部署了優化后的著色器。 這篇文章提供了在使用 DX12 監控后臺驅動程序優化狀態的同時,在 NVIDIA GPU 上執行游戲內 GPU 評測的最佳實踐,使用 SetBackgroundProcessingMode API。 如果 DX12 驅動程序檢測到 CPU 開銷可能對 DX12…
Source
]]>
7367
-
適用于基于 NVIDIA 的 PC 的端到端 AI : ONNX 和 DirectML
http://www.open-lab.net/zh-cn/blog/end-to-end-ai-for-nvidia-based-pcs-onnx-and-directml/
Tue, 25 Apr 2023 05:26:39 +0000
http://www.open-lab.net/zh-cn/blog/?p=6785
Continued]]>
這篇文章是關于優化端到端人工智能. 雖然 NVIDIA 硬件可以以難以置信的速度處理構成神經網絡的單個操作,但確保您正確使用這些工具是很重要的。在 ONNX 中使用 ONNX Runtime 或 TensorRT 等開箱即用的工具通常會給您帶來良好的性能,但既然您可以擁有出色的性能,為什么還要滿足于良好的性能呢? 在這篇文章中,我討論了一個常見的場景,即帶有 DirectML 后端的 ONNX Runtime 。這是構建 WinML 的兩個主要組件。當在 WinML 之外使用時,它們可以在支持運算符集以及支持 DML 以外的后端(如 TensorRT )方面提供極大的靈活性。 為了獲得 ONNX Runtime 和 DML 的出色性能,通常值得超越基本實現。從使用 ONNX Runtime 時的常見場景開始。 這里有幾個問題。
Source
]]>
6785
人人超碰97caoporen国产