2012.04.01 14:00

完全看懂 HD 7970 新架構,GPU 如何跑出更高的效能?

ADVERTISEMENT

GCN:率先使用新規格

看到的新架構,很難不去跟先前發表的比較,不過架構只是追求效能與節省成本的手段。論斷好壞並不客觀,但是在設計上倒是可以比較一下兩者的異同。

強化的快取架構

比較值得一提的是兩者的快取架構,每個SM(Streaming Multiprocessors)有64KB的L1快取,而所有SM則是共享768KB的L2快取。GCN設計上則較為複雜,CU有獨立64KB的L1快取,每4個CU還可共享16KB的指令快取(instruction cache)以及32KB的純量資料快取(scalar data cache)。L2則是每個記憶體控制器(memory controller)可支援64或128KB,HD 7970內具備6個記憶體控制器,因此L2快取與Fermi同為768KB。


▲新架構的快取共享機制很複雜,每個CU有獨立也有共享的快取。重視數據共享是GCN的特點之一,加上X86虛擬記憶體技術,讓複雜程度再上一層。

ADVERTISEMENT

X86虛擬記憶體

GCN架構的L1快取都是與L2共通的,且能跟顯卡上的GDDR5記憶體同步數據。GCN比更為注重資料同步,L1與L2、L2與顯卡記憶體、L2與系統記憶體都能同步數據。另外還有首次出現的X86 Virtual Memory(X86虛擬記憶體),可讓顯卡上的記憶體虛擬為系統記憶體。即使是X79用的四通道記憶體頻寬(memory bandwidth)不過30~50GB/s左右,HD 7970上的GDDR5記憶體頻寬可高達264GB/s,是系統記憶體的數倍,有助於通用運算與少部分遊戲。 

DX 11.1能看不能玩

除了X86虛擬記憶體外,這次HD 7970也支援了不少新規格,舉凡PCI-E 3.0、.1,而且又是第一款28nm製程的顯卡。PCI-E 3.0部分,下個章節會搭配效能實測介紹,在此我們先來了解能看不能玩的DirectX 11.1。
會說能看不能玩,主要還是因為目前微軟並不支援DirectX 11.1,大多猜測會到了Windows 8之後才會搭配新版API。從MSDN(Microsoft Developer Network)提供的資料來看,這次DirectX 11.1跟以往小改版相同,目的不在於增加新技術,大多是除錯與擴展功能。

DirectX 11.1新功能

  1. Shader tracing
  2. Direct3D device sharing
  3. Check support of new Direct3D 11.1 features and formats
  4. Create larger constant buffers than a shader can access
  5. Use logical operations in a render target
  6. Force the sample count to create a rasterizer state
  7. Process video resources with shaders
  8. Change subresources with new copy options
  9. Discard resources and resource views
  10. Support a larger number of UAVs
  11. Bind a subrange of a constant buffer to a shader
  12. Retrieve the subrange of a constant buffer that is bound to a shader
  13. Clear all or part of a resource view
  14. Map SRVs of dynamic buffers with NO_OVERWRITE
  15. Use UAVs at every pipeline stage

資料來源:MSDN

ADVERTISEMENT

迎接光線追蹤

目前.1有15項新功能,其中比較值得注意的是子項目DoublePrecisionFloatShaderOps,也就是較常聽到的DP Shader。DP指的是Double Precision,也就是雙精度運算。是微軟在DirectX中首度加入的Shader類型,可在運算當中加入雙精度規則。

先前有提過,雙精度比起單精度運算精確度更高,先前所有Shader運算都是採用FP32也就是單精度運算,應用面來說單精度運算已經足以使用,轉換成雙精度提升的精確度是多餘的。那為什麼要支援雙精度?能想到最直接的例子就是ray tracing(光線追蹤)。

在模擬ray tracing的過程中,必須依靠雙精度運算維持數據的精確性。Ray tracing特色在於物體與光線之間的高度模擬,依照現有的處理精確度,讓物體與光線交互作用數次就會產生不可忽略的誤差,對於交互次數多達數十次的ray tracing只用單精度是絕對不夠的,可能會造成模擬失真,於是只能靠雙精度技術加強。

ADVERTISEMENT

關鍵字:Ray Tracing(光線追蹤)


▲光線追蹤是幾何光學的技術,主要是計算光線碰到物體時的折射與反射,由於物體與物體、物體與光線、光線與光線之間都會互相影響,因此運算的數據量十分龐大。高階顯卡跑起來可能都不太夠力,且未來加入雙精度運算,雖精確度提升但是效能可能還要打折扣。圖中的車輛即是用光線追蹤模擬出來,板金上的光影十分逼真。

延伸閱讀:

ADVERTISEMENT

ADVERTISEMENT