Nvidia Maxwell用ARM替換掉command processor有什麼意義?

是否與新的SM架構的性能提升和hyper-q等特性有關?

而在XBOX ONE,PS4的GPU都配備雙command processor又是做了什麼考慮?


題主其實提的是兩個問題。

1.NV用ARM替換掉command processor有什麼意義

對NV的CP不是很熟悉,但是我想它應該也是用來解析driver下發的command packet然後拆分為gfx pipeline可識別的regstier/data再往後下發吧。其實說白了,command processor通常都是一組(通常不會只有一個)64bit的RISC和一些額外的調度、存儲邏輯組成的。在以前CP的工作可能沒有那麼複雜,但現在DX11/DX12發布的大背景下,性能優化和perf/watt的壓力越來越高,大家都在壓榨卡的功耗和性能,這就意味著我們希望流處理器處理的都是有意義的數據,這就對CP提出了要求,能夠完成一部分的分支預判以及預測和控制的功能,這意味著要大量重寫CP的RTL代碼,這種時候的CP的硬體複雜度很可能會達到低端的ARM core的水平。既然這樣何不用ARM這麼好的RISC,把他直接整合進來,用它來控制圖像通路的工作。我想這也是合情合理的事情。

2.XBOX ONE,PS4的GPU都配備雙command processor又是做了什麼考慮

其實兩款game console用的其實都是AMD的APU(不是GPU)。它們等於是融合了CPU和GPU在一個chip上。嚴格說來它並沒有雙CP(command processor),而是一個CP有兩個graphical pipeline. 一個是普通的,一個是HP3D的,也就是高優先順序的3D pipeline,用於QoS來提高game console的用戶體驗的,比如說某些場景下有一些高優先順序的3D物件需要被繪製,如果只有一個gfx pipeline並且它被佔用的情況下,這些高優先順序的物件也只能幹等著,在用戶看來就會出現一些延遲和卡頓的情況,而使用雙pipeline的話,普通優先順序的pipeline會被暫停並緩存現場到顯存中,HP3D開始全速介入工作,等繪製完這一批高優先順序物件之後再恢復現場,繼續把普通優先順序的物件繪製完成,其實最終目的是為了用戶體驗,對於遊戲機玩家而言,遊戲的響應速度是一個非常關鍵的因素,因此有這樣的設計。


推薦閱讀:

知乎上有哪些 Android 開發的大牛?

TAG:軟體 | 計算機 | Android開發 | 圖形處理器GPU | 計算機科學 |