微軟發表DirectX 12 Work Graphs 新的GPU自主系統,消除CPU瓶頸
微軟宣布推出一項DirectX 12新功能,名為Work Graphs,之前已經在預覽版中發布了一段時間了。利用Work Graphs,可以提高GPU驅動程式渲染的使用效率,進而減輕CPU的任務負擔。
微軟在一篇部落格文章中,由Direct3D工程師Amar Patel和DirectX編譯器工程師Tex Riddell對Work Graphs進行了解釋。Work Graphs是D3D12中的GPU自主系統,旨在解決GPU上一般運算工作負載的限制,並解鎖潛在的GPU功能。簡而言之,新系統旨在切換到更有效率的GPU驅動渲染系統,減少在不同工作負載下使用CPU的需求。
在許多GPU工作負載中,GPU上的初始運算決定了GPU需要做哪些後續工作,可以透過返回CPU以發出新的工作任務來完成。不過對於GPU來說,能夠為自己產生工作任務,直接提供數據效果會更好。D3D12中的ExecuteIndirect是這種形式的一種,其中應用程式使用GPU記錄一個非常受限的命令緩衝區,需要在GPU上進行串行處理,以發布新的工作。
這考慮到一種新的方案,假設在GPU上運行的著色器執行緒(生產者)可以請求其他工作運行(消費者),那麼消費者也可以是生產者,只要GPU有能力運行,系統就能安排所請求的工作。此外,應用程式還可以讓系統管理任務間資料流的記憶體。
延伸影片閱讀: