◆ GTX 200的主要改進
·SIMT架構
NVIDIA的統一渲染以及運算架構使用了兩種不同的處理模式,在使用TPC執行指令時該模式被稱為MIMD(Multiple instruction multiple data),在使用每一個SM執行指令時,模式被稱為SIMT(single instruction, multiple thread)。
SIMT改進了純SIMD(single instruction, multiple data)設計,能夠同時保證性能以及可編程特性。在擁有可擴充性的同時,SIMT并沒有一個固定的矢量寬度(vector width),這使得在SIMT處理模式下,運算速度可以全速展開,完全和矢量寬度脫離關系。
相反,如果輸入信息較MIMD或SIMD寬度少的話,SIMD模式會開始低負載運作,SIMT保證所有流處理器能夠在任何使用都能夠被充分利用。在一個編程者的角度來看,SIMT同樣允許線程使用自己的路徑。由于分支機構(branching)是由硬件來控制的,所以并不需要在矢量寬度(vector width)內手動管理分支。
·同時支持大量線程
GTX 200系列顯卡的GPU能夠同時支持超過三萬個線程(thread),基于硬件的線程管理保證了所有流處理器核心能夠100%全部利用。核心架構的設計避免CPU內經常出現的延時問題:如果某個線程正在等待讀取緩存信息,那么GPU能夠實現一個完全即時沒有損耗的轉換,將另一個等待處理的線程交由空閑部分繼續處理。
SIMT多線程指令單元處在SM內部,能夠管理安排以及處理一組32個平行的線程,被稱為"warps"。前一代的GeForce 8或者GeForce 9 GPU每SM只能同時處理24個warps,而GTX 200系列顯卡的GPU能夠達到32warps/SM的效率。我們可以看到,憑借SM以及TPC數量的增多,可同時處理的線程數量也由GeForce 8和9系列的12888上升至30720個(1024*3*10=30720)。
·加大的寄存器組
和GeForce 8或9系產品相比,在GTX200系列顯卡中本地寄存器組的大小增加了一倍,在以往,寄存器組往往會因為過小導致信息必須轉存至顯存中,增大的寄存器組能夠允許顯卡更快速有效地處理大且復雜的shader。雖然寄存器組容量加大了,不過在核心die內這些額外的寄存器只占用了不多的些許面積。
現在的游戲越來越多地使用復雜的shader,需要更加大的寄存器組空間。
·改進的Dual Issue
在SM內部的特殊功能單元(Special Function Unit,SFU)負責超越數的運算,屬性插值(從一個原始的頂點屬性中解釋像素屬性,interpreting pixel attributes from a primitive vertex attributes),以及處理浮點MUL指令。GT200內每一個獨立的流處理核心都以幾乎全速的速度,用Dual issue的方法來運算:使用核心內部的MAD單元處理MADs(multiply add operations)以及MULs(3flops/SP),另外在同一時間也使用SFU單元來進行MUL運算。改進和直接的測試表明這種結構能夠帶來93%~94%的效率。
在GPU內部的所有特殊功能單元陣列能夠為顯卡帶來幾乎1Tflops的single -precision, IEEE 754浮點運算能力。
·支持雙精度浮點運算
在GTX 200核心架構內部有一個非常重要的新特點:支持double precision、64bit雙精度浮點運算。這對高端的科學工程以及金融運算更加有利,能夠為其帶來非常高精確度的結果,每一個SM內都有一個double-precision 64bit的浮點運算單元,整個芯片內總共有30個。
這些double precision單元能進行融合的MAD演算,完全兼容與IEEE 754R浮點運算規格。所有TPC內部的double precision性能幾乎等同與一個八核的XeonCPU,接近90Gflops。
·改進的紋理性能
8800GTX核心內部擁有8個TPC,允許進行每頻率內64像素的紋理過濾,每頻率32像素尋址,每頻率32像素的兩倍反鋸齒雙線性過濾(8bit整數)或者32-雙線性過濾像素(8bit整數或者16bit浮點),而GTX 200改進的紋理性能平衡了尋址能力和過濾能力。
·提高Shader to texture比例
由于游戲和其他圖形程序的需要,系統正在使用越來越多的復雜化shader,為了重新平衡顯卡的運算能力,GTX 200系列GPU的設計重新調整了Shader to texture的比例,通過在TPC內部增加1個SM讓Shader to texture的比例上升了50%,這讓GTX 200系列顯卡在處理目前以及將來的游戲時能夠更加有效率。
·ROP改進
GeForce 8系列的ROP系統支持multisampled,supersampled,透明適應以及Sampling抗鋸齒等功能,對于GTX 200同樣支持這些特性,ROP單元數量由6個增加到8個之外,總的ROPs數達到32個,相對于G80每時鐘周期24像素的輸出和12像素的混合速度,GTX 200均提升至每時鐘周期32像素,更加有利于高分辨率以及AA環境中速度的提升。
·1GB的Framebuffer
現在的3D游戲采用了大量的紋理來提高畫面的真實度,例如用普通的map提高表面真實度,用立方map來增強反射效果,用高分辨率的perspective shadow map來模擬soft shadow。這些map使得渲染每一幀畫面都需要大量的顯存,而不像傳統的游戲,有base texture就可以了。另外,Deferred rendering引擎在multiple render時,需要有一個預先渲染圖片特性的過程,這意味著又需要額外的顯存,還有就是很耗顯存的反鋸齒技術,這些技術使得內存和帶寬的需求都大大高于以前。
Geforce GTX 280和GTX 260分別支持1024MB和896MB的Framebuffer,是上一代顯卡的兩倍。1GB顯存將使高分辨率的反鋸齒能力得到提升。
·幾何shading和stream out
比起上一代顯卡,GTX 200將內部緩存輸出結構提高了6倍,使幾何渲染和stream out的速度大大提升。
·512bit顯存接口
GTX 200的最大顯存帶寬從原來的384bit提高到了512bit,擁有8個64-bit-wide FrameBuffer單元,為了使texture單元在被有效利用的同時,又不會出現不足,FreamBuffer帶寬需要反復調整達到最佳,NVIDIA的工程師測試了許多應用程序,最終達到了這個目的。
GTX 200 GPu的framebuffer總效率得到了提高,為了支持更高速度的顯存,重新設計了framebuffer重要的path,使得顯卡最高能支持到1.1GHz的DDR3顯存,內存的存取模式和緩存算法也都得到了改良。另外硬件壓縮加大了數據傳輸率,而實際上是增加了framebuffer帶寬,也提升了顯卡在高分辨率下的性能。