微軟今天正式發布了一項新的DirectX 12功能,該功能已經在預覽版中推出了一段時間,導入了新型GPU自主性,試圖消除CPU瓶頸。
在一篇冗長的部落格文章中工程師(Direct3D) Amar Patel和工程師(DirectX 編譯器) Tex Riddell解釋了工作圖,這是D3D12中的GPU自治系統,旨在解決GPU上一般計算工作負載的限制,以及釋放潛在的GPU功能。簡單來說新系統旨在切換到更有效率的GPU驅動的渲染系統,減少在不同工作負載中使用CPU的需要。
在許多GPU工作負載中GPU上的初始運算決定了GPU需要執行哪些後續工作。這可以透過返回CPU來發出新工作來完成。但GPU能夠直接自我供電通常會更好。D3D12中的ExecuteIndirect就是這種形式的一種形式,其中應用程式使用GPU記錄非常受限的命令緩衝區,該命令緩衝區需要在GPU上進行串行處理才能發出新的工作。
假設在GPU上執行的著色器執行緒(生產者)可以請求執行其他工作(消費者)。消費者也可以是生產者。一旦GPU有能力運作所要求的工作,系統就可以安排它。該應用程式還可以讓系統管理任務之間資料流動的記憶體。
有關DirectX 12工作圖功能的完整詳細資訊可以在此處找到。
消息來源 |