GPU架構(gòu)與技術(shù)詳解
GPU英文全稱Graphic Processing Unit,中文翻譯為“圖形處理器”。GPU是相對于CPU的一個概念,由于在現(xiàn)代的計算機中(特別是家用系統(tǒng),游戲的發(fā)燒友)圖形的處理變得越來越重要,需要一個專門的圖形的核心處理器。我們從GPU的發(fā)展歷程來看看顯卡GPU的架構(gòu)和技術(shù)的發(fā)展。
整合VCD/DVD/HD/BD解壓卡
在了解了CPU的發(fā)展歷程之后,我們再來看看GPU的發(fā)展過程,其實GPU很多重大改進都與CPU的技術(shù)架構(gòu)相類似。比如最開始我們介紹了古老的CPU協(xié)處理器,下面再介紹一個被遺忘的產(chǎn)品——解壓卡,資歷較老的玩家應(yīng)該記得。
十多年前,電腦的CPU主頻很低,顯卡也多為2D顯示用,當VCD興起的時候,好多電腦(主頻為100MHz以下)無法以軟解壓的方式看VCD影片,根本運行不起來!
ISA接口的VCD解壓卡
這時,VCD解壓卡就出現(xiàn)了,此卡板載專用的解碼處理器和緩存,實現(xiàn)對VCD的硬解碼,不需要CPU進行解碼運算,所以,即使在386的電腦上也可以看VCD了。
PCI接口的DVD解壓卡
隨后,顯卡進入了3D時代,并紛紛加入支持VCD的MPEG解碼,而且CPU的主頻也上來了,無論CPU軟解還是顯卡輔助解碼都可以流暢播放視頻,所以VCD解壓卡就退出了市場!
但DVD時代來臨后,分辨率提高很多,而且編碼升級至MPEG2,對于CPU和顯卡的解碼能力提出了新的要求,此時出現(xiàn)了一些DVD解壓卡,供老機器升級之用,但由于CPU更新?lián)Q代更加頻繁,性能提升很大,DVD解壓卡也是曇花一現(xiàn),就消失無蹤了。
現(xiàn)在已經(jīng)是1080p全高清時代了,高清視頻解碼依然是非常消耗CPU資源的應(yīng)用之一,于是幾年前NVIDIA和ATI就在GPU當中整合了專用的視頻解碼模塊,NVIDIA將其稱為VP(Video Processor,視頻處理器),ATI將其稱為UVD(Unified Video Decoder,通用視頻解碼器),相應(yīng)的技術(shù)被叫做PureVideo和AVIVO。
硬解碼幾乎不消耗CPU和GPU的資源,看高清視頻時接近于待機狀態(tài)
雖然VP和UVD都被整合在了GPU內(nèi)部,實際上它們的原理和作用與當年的協(xié)處理器/解壓卡芯片沒有實質(zhì)性區(qū)別,都是為了減輕/分擔處理器的某項特定任務(wù)。如今NVIDIA和ATI的GPU硬解碼技術(shù)都能夠支持高分辨率、高碼率、多部影片同時播放,性能和兼容性都很出色。
如今多核CPU的性能已經(jīng)相當強大了,軟解高清視頻簡直輕松加愉快,但要論效率的話,依然是GPU硬件解碼更勝一籌,專用模塊解碼消耗資源更少,整機功耗發(fā)熱更小,因此手持設(shè)備和移動設(shè)備都使用硬件解碼,而桌面電腦CPU軟解和GPU硬解就無所謂了。
ShaderModel指令集的擴充與發(fā)展
掐指一算,從GPU誕生至今雙方都已推出了十代產(chǎn)品,每一代產(chǎn)品之間的對決都令無數(shù)玩家心動不已,而其中最精彩的戰(zhàn)役往往在微軟DirectX API版本更新時出現(xiàn),幾乎可以說是微軟DirectX左右著GPU的發(fā)展,而歷代DirectX版本更新時的核心內(nèi)容,恰恰包含在了ShaderModel當中:
ShaderModel 1.0 → DirectX 8.0
ShaderModel 2.0 → DirectX 9.0b
ShaderModel 3.0 → DirectX 9.0c
ShaderModel 4.0 → DirectX 10
ShaderModel 5.0 → DirectX 11
Shader(譯為渲染或著色)是一段能夠針對3D對象進行操作、并被GPU所執(zhí)行的程序,ShaderModel的含義就是“優(yōu)化渲染引擎模式”,我們可以把它理解成是GPU的渲染指令集。
高版本的ShaderModel是一個包括了所有低版本特性的超集,對一些指令集加以擴充改進的同時,還加入了一些新的技術(shù)?梢哉f,GPU的ShaderModel指令集與CPU的MMX、SSE等擴展指令集十分相似。
隨著ShaderModel指令集的擴充與改進,GPU的處理資源和計算精度與日俱增,于是就有能力渲染出更加精美的圖像,并且不至于造成性能的大幅下降。就拿最近幾個版本來講,新指令集并沒有帶來太多新的特效,但卻憑借優(yōu)秀的算法提升了性能,是否支持DX10.1(ShaderModel 4.1)可能游戲畫面上沒有差別,但速度就很明顯了。
此外,DX11中的關(guān)鍵技術(shù)DirectCompute通用計算技術(shù)就是通過調(diào)用ShaderModel 5.0中的新指令集來提高GPU的運算效率,很多基于DirectCompute技術(shù)的圖形后處理渲染特效也都要用到SM5.0指令集來提高性能。
真正的雙核/四核GPU
從以往的多處理器系統(tǒng)到現(xiàn)在的雙核、四核、六核,CPU只能依靠增加核心數(shù)量來提升性能。而GPU從一開始就是作為并行渲染的管線式架構(gòu),GPU性能的強弱主要就是看誰的管線、流處理器數(shù)量更多。
不過雙顯卡甚至多顯卡也成為提升電腦游戲性能的一種途徑,通過SLI和CrossFire技術(shù)能夠輕松讓3D性能倍增,于是雙核心的顯卡成為NVIDIA和AMD雙方角逐3D性能王者寶座的殺手锏,近年來的旗艦級顯卡幾乎都是雙核心設(shè)計的。
但與CPU單芯片整合多核心的設(shè)計不同,顯卡一般是單卡多GPU設(shè)計,很少有單一GPU多核心設(shè)計,因為GPU性能提升的瓶頸主要在于制造工藝,只要工藝跟得上,那么他們就有能力在GPU內(nèi)部植入盡可能多的流處理器。
★ 雙核心設(shè)計的Cypress核心:
不管GPU架構(gòu)改不改,流處理器數(shù)量總是要擴充的,準確的說是以級數(shù)規(guī)模增長,這樣才能大幅提升理論性能。在流處理器數(shù)量急劇膨脹之后,如何管理好如此龐大的規(guī)模、并與其它模塊協(xié)調(diào)工作成為新的難題。
RV870的雙核心模塊設(shè)計
ATI RV870包括流處理器在內(nèi)的所有核心規(guī)格都比RV770翻了一倍,ATI選擇了“雙核心”設(shè)計,幾乎是并排放置兩顆RV770核心,另外在裝配引擎內(nèi)部設(shè)計有兩個Rasterizer(光柵器)和Hierarchial-Z(多級Z緩沖模塊),以滿足雙倍核心規(guī)格的胃口。
★ 四核心設(shè)計的GF100核心:
GF100可以看作是四核心設(shè)計
如果說Cypress是雙核心設(shè)計的話,那么GF100的流處理器部分就是“四核心”設(shè)計,因為GF100擁有四個GPC(圖形處理器集群)模塊,每個GPC內(nèi)部包含一個獨立的Raster Engine(光柵化引擎),而在以往都是整顆GPU共享一個Raster Engine。
我們知道RV870的Rasterizer和Hierarchial-Z雙份的,而GF100則是四份的,雖然命名有所不同但功能是相同的。
GF100的每個GPC都可以看作是一個自給自足的GPU
GF100的四個GPC是完全相同的,每個GPC內(nèi)部囊括了所有主要的圖形處理單元。它代表了頂點、幾何、光柵、紋理以及像素處理資源的均衡集合。除了ROP功能以外,GPC可以被看作是一個自給自足的GPU,所以說GF100就是一顆四核心的GPU。