決戰性能之巔!NV雙芯旗艦GTX590評測
講完了GPC(內含光柵引擎)和SM(內含多形體引擎)之后,就輪到了GF100的最小單元——流處理器,現在NVIDIA將它稱為CUDA核心。
9.4 GF100圖形架構:第三代流處理器的諸多改進
論單個CUDA核心,GF100與GT200/G80的基本功能是相同的,沿用了之前的1D標量流處理器設計,無論程序要求什么類型的指令,都可以通過線程分配器打散之后交給CUDA核心處理,從而保證任何指令都能獲得100%的執行效率。
GF100的SM與CUDA結構
雖說像素和頂點等4D指令依然是主力,但在進入DX10時代后Z緩沖區(1D)或紋理存取(2D)等非4D指令所占比重越來越多,此時NVIDIA的標量流處理器架構處理起來依然如魚得水。
● CUDA核心的改進:
每一個CUDA核心都擁有一個完全流水線化的整數算術邏輯單元(ALU)以及浮點運算單元(FPU)。GF100采用了最新的IEEE754-2008浮點標準,2008標準的主要改進就是支持多種類型的舍入算法。新標準可以只在最終獲取數據時進行四舍五入,而以往的標準是每進行一步運算都要四舍五入一次,最后會產生較大的誤差。

GF100能夠為32bit單精度和64bit雙精度運算提供FMA(Fused Multiply-Add,積和熔加)指令,而GT200只在64bit時才能提供。FMA不僅適用于高性能計算領域,事實上在渲染緊密重疊的三角形時,新的FMA算法能夠最大限度的減少渲染誤差。
● 16個載入/存儲單元:
每一個SM都擁有16個載入/存儲單元,從而在每個時鐘周期內均可為16個線程運算源地址與目標地址。支持的單元能夠將每個地址的數據載入和存儲到高速緩存或顯存中。
● 四個特殊功能單元:
GF100每個SM內部還擁有額外的四個SFU(Special Function Units,特殊功能單元),可用于執行抽象的指令,例如正弦、余弦、倒數和平方根,圖形插值指令也在SFU上執行。每個SFU在一個時鐘周期內針對每個線程均可執行一條指令,一個Warp(32個線程)的執行時間可超過八個時鐘周期。SFU流水線從分派單元中分離出來,讓分派單元能夠在SFU處于占用狀態時分發給其他執行單元。復雜的程序著色器在特殊功能專用硬件上的運行優勢尤為明顯。
● 雙Warp調度器:
SM可對32個為一組的并行線程(又叫做Warp)進行調度。每個SM擁有兩個Warp調度器以及兩個指令分派單元。這樣就能夠同時發出和執行兩個Warp。
GF100的雙Warp調度器可選出兩個Warp,從每個Warp發出一條指令到16個核心、16個載入/存儲單元或4個特殊功能單元。因為Warp是獨立執行的,所以GF100的調度器無需檢查指令流內部的依存關系。通過利用這種優秀的雙指令執行(Dual-issue)模式,GF100能夠實現接近峰值的硬件性能。
大多數指令都能夠實現雙路執行,兩條整數指令、兩條浮點指令或者整數、浮點、載入、存儲的混合指令以及SFU指令均可同時執行。但雙精度指令不支持與其它指令同時分派。
關注我們


