DirectX 12工作圖正式發表新GPU自主系統旨在消除CPU瓶頸
微軟今天正式發布了一項新的DirectX 12功能,該功能在預覽版中已經推出了一段時間。在一篇長長的部落格文章中,Direct3D 工程師Amar Patel 和DirectX 編譯器工程師Tex Riddell 對工作圖(Work Graphs)進行了解釋,這是D3D12 中的GPU 自主系統,旨在解決GPU 上一般計算工作負載的限制,並釋放GPU 的潛在能力。
簡單來說,新系統旨在切換到更有效率的GPU 驅動渲染系統,減少在不同工作負載中使用CPU 的需求。
在許多GPU 工作負載中,GPU 上的初始計算決定了GPU 所需進行的後續工作。這可以透過返回CPU 發布新工作來實現。但通常情況下,GPU 最好能直接為自己提供資訊。D3D12 中的ExecuteIndirect 就是這樣一種形式,應用程式使用GPU 記錄一個非常受限的命令緩衝區,該緩衝區需要在GPU 上進行串行處理,以發布新的工作。
考慮一種新方案,假設在GPU 上執行的著色器執行緒(生產者)可以請求其他工作運行(消費者)。消費者也可以是生產者。只要GPU 有能力運行,系統就能安排所要求的工作。應用程式還可以讓系統管理任務間資料流的記憶體。這就是工作圖,工作圖是一個節點圖,每個節點上的著色器程式碼都可以要求呼叫其他節點,而無需等待它們啟動。工作圖可以捕捉使用者的演算法意圖和整體結構,而不會讓開發人員過度了解特定的硬體運作情況。非同步的特性使系統可以最大限度地自由決定如何以最佳方式執行工作。
有關DirectX 12 工作圖功能的全部詳細信息,請訪問: