|
||||
AMD全新圖形架構的革新之路最根本的問題是,以往的VILW對於圖形來說非常合適,但是對於計算就略顯弱勢了。不過從種種跡象來看,GPU的通用計算是AMD未來的一個很重要的發展分支方向,Fusion融合從某一方面來講並不僅僅是簡單地在CPU die裡面放置一個不錯的GPU,而是充分發揮和利用GPU架構優勢完成CPU所不擅長的並行計算任務,GPU的並行處理性能將被更加重復的利用,CPU和GPU將實現無縫協作運行。所以AMD傳統GPU的『重圖形輕計算』顯然不能適合AMD未來的發展方向。
在AMD的全新圖形架構裡,VILW將會徹底被摒棄,取而代之的是non-VLIW SIMD。從根本上來講,二者很是相似——都可以並行的處理大量指令,但是執行效率卻有天壤之別——VLIW是指令集並行(instruction level parallelism),而non-VLIW SIMD是線程級並行(thread level parallelism)。拋開其它過多不必要的深入研究(限於篇幅以後換個時間再談),二者架構最大的不同就是關於VILW在通用計算表現不濟,而為什麼non-VLIW SIMD要加強這方面的討論。
說到底就是VILW的編譯器沒有預調度處理機制,在執行過程中不能動態調度,其最大弱點也就在於此。雖然VILW5在圖形方面的表現已經相當出色,但計算方面依然不能盡如人意。成也編譯器,敗也編譯器,用這句話來形容VILW最恰當不過。對編譯器的過分依賴,也導致了對編譯器過高的要求,除了調度問題還包括擴充對編譯語言支持之後,即便是通過中間代碼進行抽象,編譯器也未必能很好的處理和執行。
另外,VLIW的復雜性在某些時候(比如需要對一段程序優化和手動調試的時候)盡顯無疑,雖然通常情況下這對圖形渲染並不構成問題,但通用計算就不一樣了。VILW復雜的天性使得調試和反匯編的每一步都困難重重,而且很難預計性能表現,至於找出和優化相關重要部分的代碼就更不用說了。
在講演中,AMD提供了一段示例代碼,展示了VILW和non-VLIW SIMD編譯器之間的不同,雖然主要針對開發人員,但是從中不難看出後者的改進之處。
去掉VILW之後,AMD又回歸了傳統的矢量SIMD,但也並非如此簡單。以往GPU架構的元素並不會直接原封不動地放到新架構裡,既然上文我們已經說過了流處理器單元,下面再來說說它最親密的代替者SIMD,不過此時的SIMD已經不是彼時的SIMD了。
需要注意的一點就是不要和以往GPU架構中的SIMD混淆(包含大量處理器的陣列),新架構中的SIMD是一個真正的16D 矢量單元(包含16個標量ALU),根據我們之前介紹的概念,全新的SIMD可以在在一個時鍾周期可以同時執行16次標量運算。和目前的Cayman一樣,AMD的wavefront依然包含64個線程,也就是說一個SIMD需要4個周期循環纔能完成一個wavefront。當然,每個SIMD中還會包含一個64KB的寄存器。
另外,類似於以往的流處理器單元,SIMD同樣可以進行不同的整數和浮點運算。不過遺憾的是AMD並沒有其中的細節方面做任何透露,不過我們還是希望AMD在可能的條件下帶來不一樣的出色改變。不過有一樣能夠確認的是64位浮點預算性能大幅提提高,基本上能夠達到32位浮點運算的1/2 。雖然這對桌面用戶來說並不能造成什麼深刻的影響,但是對AMD進入高精度計算是市場是大有裨益的。