流处理器数量
概述 賣場中,一位裝機技術(shù)員侃侃而談:“ NVIDIA最新的GTX295顯卡核心只有2*240個流處理器, ATI的HD5970顯卡核心卻有3200個流處理器,你要最高性能的顯卡,當然要選HD5970顯卡?!?
AMD-ATI顯卡(以下簡稱A卡)和NVIDIA(以下簡稱N卡)在流處理器數(shù)量上的巨大差異給許多讀者造成巨大的困惑。其實,這個情況和不同廠商、相當于CPU的二級緩存數(shù)量存在差異情況類似,簡單來說就是“不同架構(gòu)的GPU,流處理器的作用不盡相同,不能直接比較數(shù)量。”深入的解釋請看下文說明
詳細定義
早在 微軟推出的DirectX 7當中就曾經(jīng)提出過一個概念——T&L(中文名稱是 坐標轉(zhuǎn)換和光源),它可以看做是流處理器的鼻祖,隨著顯卡核心芯片技術(shù)的發(fā)展,在DirectX 8中。由微軟首次提出了Shader的概念。并且將Shader分為Vertex Shader(頂點著色器,又稱VS單元)和Pixel Shader(像素著色器,又稱PS單元)。 一副 游戲畫面是怎么顯示的呢?其中,3D物體的幾何形狀、光亮和陰影的控制是由Vetex Shader來實現(xiàn)的,而Pixel Shader是對象素資料進行操作運算的指令程序。其中包括了像素的色彩、深度坐標等資料,在GeForce 8之前,Pixel Shader和 Vetex Shader這兩個參數(shù)非常重要,這兩個部分的多少完全決定了顯卡的性能表現(xiàn),N卡和A卡雙方都為了提升Pixel Shader和Vetex Shader的數(shù)量而想盡一切辦法。但是,在DirectX 10這一代顯卡中,業(yè)界提出了一個新的概念—— 統(tǒng)一渲染架構(gòu),就是把原有的VS單元和PS單元統(tǒng)一起來,統(tǒng)稱為Shader運算單元。這也就是我們所說的流處理器(Stream Processor)。因此,上述任務就由流處理器統(tǒng)一執(zhí)行了,既然流處理器是來自于VS單元和PS單元的統(tǒng)一渲染架構(gòu)。那么,流處理器的作用于VS單元+PS單元的合作用就是基本相同的。只是添加了全新的處理單元——Geometry Shader(幾何渲染器,又稱GS單元)。 同一架構(gòu)的顯卡,流處理器的個數(shù)自然是越多越好。相信讀者也在各大網(wǎng)站了解到這樣的信息——“同價位的產(chǎn)品中,N卡的流處理器數(shù)量要少于A卡”。比如本文開頭的裝機技術(shù)員提到ATI Radeon HD5970顯卡比NVIDIA GeForce GTX295顯卡的流處理器數(shù)量多,這是正確的。但是性能卻是前者稍遜于后者.這是為什么呢,其實在“流處理器”的名稱上A卡和N卡存在細微的差別,N卡的流處理器全稱為Stream Processing,而A卡的流處理器全稱為Stream Processing Units,一詞之差卻讓兩者的的性能差距有著天壤之別。而且因為A卡和N卡的GPU架構(gòu)存在根本性的差異,所以流處理器的工作方式和用途也有所差異,故不能直接比較流處理器的數(shù)量。這就可以解決許多讀者的疑問了 。A卡的GPU流處理器數(shù)量多很多但性能不一定就好。下面我們來分析A卡和N卡的GPU架構(gòu)及流處理器的工作方式,看看有什么不同.?
在DirectX 9時代末期,ATI意識到像素渣染的重要性,就通過1:3的架構(gòu)提高了像素著色器的數(shù)量.到了DirectX 10時代,ATI還是通過這種方式來提高重要的像素渲染性能。從RV770的核心架構(gòu)圖中可以看出,現(xiàn)在在ATI的GPU中,流處理器(Stream Processing)和流處理單元(Stream Processing Units)的比例就是1:5,也就是說ATI的每個“Stream Processing”都包含有5個“Stream Processing Units”。RV770的流處理器組群擴充至10組,因此數(shù)量也有了25倍的增長。達到160個(160x5=800個流處理單元).所以A卡所稱的“流處理器”實際上一般是指流處理單元。
NVIDIA方面,GeForce GTX200核心架構(gòu)分為四個層。最上面一層包括幾何著色器(Geometry Shader)、頂點著色器(Vetex Shader)和像素著色器(Pixel Shader).中間一層包括了10組TPCs(計算處理器群集)。每組TPC里面又包含了3組SMs(流處理器組) ,每組SM里面就包含了8個流處理器單元或計算單元,這樣一來,GeForce GTX 200顯卡就一共包含了240個流處理器單元或計算單元.流處理器是直接將多媒體的圖形數(shù)據(jù)流映射到流處理器上進行處理的,有可編程和不可編程兩種。1995年公布的名為Cheops中的流處理器,是針對某一個特定的視頻處理功能而設計的一種不可編程的流處理器。但為了得到一定的靈活性,系統(tǒng)中也包含一個通用的可編程處理器。 從1996年到2001年,MIT和Standford針對圖像處理的應用,研制了名為Imagine 的可編程流處理器。Imagine流處理器沒有采用cache,而是采用一個流寄存器文件SRF(Stream Register File),作為流(主)存儲器與處理器寄存器之間的 緩沖存儲器,來解決存儲器帶寬問題的。流存儲器與SRF之間的帶寬是2GB/s,SRF與處理器寄存器之間的帶寬是32GB/s, ALU簇(ALU Cluster)內(nèi)寄存器與ALU之間的帶寬是544GB/s,三種帶寬的比例關系為1:16:272。 抗鋸齒是3D特效中最重要的效果之一,它經(jīng)過多年的發(fā)展,變?yōu)橐粋€龐大的家庭,有必要獨立開來說明一下。 作用:去除物體邊緣的鋸齒現(xiàn)象,廣州話稱之為“狗牙”,大家可以想像一下狗牙是如何的凹凸不平。 過程:我們在真實世界看到的物體,由無限的像素組成,不會看到有鋸齒現(xiàn)象,而顯示器沒有足夠多的點來表現(xiàn)圖形,點與點之間的不連續(xù)就造成了鋸齒。 抗鋸齒通過采樣算法,在像素與像素之間進行平均值計算,增加像素的數(shù)目,達到像素之間平滑過渡的效果。去掉鋸齒后,還可以模擬高分辨率游戲的精致畫面。它是目前最熱門的特效,主要用于1600 * 1200以下的低分辨率。理論上來說,在17寸顯示器上,1600 * 1200分辨率已經(jīng)很難看到鋸齒,無須使用抗鋸齒算法。如此類推,在21.6寸顯示器上,必須使用1920 x 1080分辨率,總之,越大的顯示器,分辨率越高,才越不會看到抗鋸齒1920 x 1200。由于RAMDAC(Random Access Memory Digital to Analog Converter,隨機存儲器數(shù)/模轉(zhuǎn)換器)頻率和顯示器制造技術(shù)的限制,我們不可能永無止境地提升顯示器和顯卡的分辨率,抗鋸齒技術(shù)變得很有必要了。 超級采樣抗鋸齒 最早期的 全屏抗鋸齒,方法簡單直接。首先,圖像創(chuàng)建到一個分離的 緩沖區(qū),緩沖區(qū)圖像分辨率高于屏幕分辨率,假設是2*1(或2x),那么緩沖區(qū)場景的水平尺寸比屏幕分辨率高兩倍,若是2*2(或4x)抗鋸齒,緩沖區(qū)圖像的水平和垂直均比顯示圖像大兩倍。像素計算加倍之后,選取2個或4個鄰近像素,此過程稱為采樣。把這些采樣混合起來后,生成的最終像素,擁有鄰近像素的特征,那么像素與像素之間的過渡色彩,就變得更為近似,整個圖像的色彩過渡趨于平滑。再把最終像素輸出到幀緩沖,作為一幅圖像存儲起來,然后發(fā)到顯示器,顯示出一幀畫面。每幀都進行抗鋸齒處理,游戲過程中的所有畫面都變得帶有抗鋸齒效果了。 游戲卡曼奇四中采用的4X抗鋸齒算法,Commanche 4 4xs 邊緣超級采樣抗鋸齒 超級采樣效果很好,但效率極低,嚴重影響顯卡性能。新的4x抗鋸齒方法,只把抗鋸齒應用于物體邊緣,避免占用過大的緩沖區(qū)。工作過程比超級采樣稍為復雜,幾何引擎生成多邊形后,光柵單元會進行描色工作,同時檢查當前的紋理,看看它是否需要用2x2采樣的方式填充到多邊形邊緣。如果不是,GPU只計算一種色彩,在中間插入紋理像素,然后用單色填充這個塊。這些就是非邊緣像素,無須進行抗鋸齒處理。?
分類
在進入 統(tǒng)一渲染架構(gòu)時代后,提高Shade運行頻率與效率是NVIDIA主導的設計思路,而AMD則維持龐大的流處理器數(shù)量。兩種思路各有優(yōu)劣。 1、N的優(yōu)勢和A的劣勢 N卡的GPU中每個流處理器都具有完整的 ALU(算術(shù)邏輯單元)功能,在發(fā)出一條操作指令時每個流處理器都能充分工作.而A卡的GPU中每個流處理器的5個流處理單元都是固定的,不能拆開重組,如果在處理純4D指令的時候,每個流處理器只能處理一條4D指令,有一個流處理器單元閑置,但卻無法加入其他組合來共同工作. 簡單地說,一個指令任務派發(fā)下來的時候,N卡的GPU是需要1個“人”獨立工作即可完成。而A卡的GPU則需要5個“人”。結(jié)組工作才能完成ATI的人數(shù)雖然多,但這5個“人”中有可能會有4個“人”閑置,因為這4個“人”不具有獨立完整的ALU功能,不能執(zhí)行函數(shù)運算,浮點運算和Multipy運算。 2、N的劣勢和A的優(yōu)勢 ATI的設計也有其顯著的特點——浮點運算能力強大。也就是說如果單純比拼顯示核心在浮點運算上的能力的話,可能ATI則要強一些,在目前 GPGPU(通用圖形處理器)項目應用比較多的科學計算方面,理論上能適應GPU和CPU融臺的趨勢。 3、結(jié)論 開篇提到的,因為N卡的一個流處理器等于五個A卡的流處理單元,也即HD5970的3200個流處理單元相當于640(3200/5)個流處理器。總結(jié)
- 上一篇: Android平台单独编译内核模块ko
- 下一篇: 判断一个人有没有管理能力,就看这1点!