Android 台灣中文網
標題:
顯示卡詳解
[打印本頁]
作者:
gj941p4204
時間:
2015-3-19 19:11
標題:
顯示卡詳解
顯示卡的身份到底是什麼?
一般人問到顯示卡多半會習慣用「專門處理圖形資料的另一台電腦」一詞來形容
以人類腦部作比喻的話
也許可以把主機板、CPU、記憶體等等比喻為大腦、脊髓與腦幹等
那麼顯示卡大概可以被比喻為小腦吧
如果說我們的電腦主機中幾個重要的元件:CPU 主機板、記憶體、電源供應器
顯示卡也一樣:
(GPU、GDDR記憶體)---->板卡本體、散熱器、以及電源供應端子
其中散熱器可以說是最巨大的元件
同時也多是各板卡廠商外觀上爭奇鬥豔的主要目
當然我們知道各板卡廠商所做出來的樣貌各有差異
但一樣的,我們可以看到就像是CPU有專屬電源供應一樣
除了上述的相似點之外
整台電腦需要BIOS韌體來存放電腦啟動所必須的資料
(例如開機的時脈、電壓、從硬碟、從光碟開機等等的設定)
顯示卡也需要獨立對應的驅動程式來協助運作
這些由廠商發佈的驅動程式多半都能調整顯示卡的運作時脈、風扇等等
定位確實與主機的BIOS雷同。
CPU、主機板這些基本的電腦元件需要OS(作業系統 如XP、WIN7)來驅動
實際上GPU也需要圖形驅動軟體來轉換資料(DirectX、OpenGL 等)
各種技術規格與涵義
如果主機板上的最重要效能指標是CPU
那麼顯示卡的基版上最重要的效能指標則是GPU
就像是CPU有各種時脈、快取、製程、FSB、針腳腳位
等各種不同的技術規格一般
GPU和CPU一樣都是半導體、電晶體製程之下的產物
所以一樣的 因應製程的進步
能夠塞的晶體數量也越多,整個晶片的大小也能更小,而且放熱、耗電也會隨之減少
(DieSize:GPU晶片的大小 通常越強的GPU 製作上也會稍大一點)
顯示卡與CPU的關係
CPU與顯示卡分別都對顯示效能有直接或者間接的影響
1.I7-980X這種怪物級CPU 配上8400GS這種入門卡
想打星海2是會有困難的
相對的
2.裝個Pentium4 這種古董級的CPU
然後裝個最強顯卡的5970
這兩者一樣沒搞頭....
雖然兩者的結果可能一樣悽慘 但是原因稍有不同
CPU也要負責處理從遊戲程式、驅動軟體而來的資料
而之後才透過傳輸介面交給GPU運算資料、顯卡記憶體暫存資料與輸出
那麼 我們便不難看出
CPU對顯卡效能的意義為
「能夠餵飽GPU計算前的資料轉譯需求」
所以
案例1.的問題在於
CPU處理驅動軟體的轉譯很快
但是顯示卡、「GPU已經盡全力了」
但對於圖形運算處理不來
案例2.的問題在於
CPU處理驅動軟體、所需運算問題的速度太慢
GPU游刃有餘沒錯 但「無法有效發揮顯卡潛能」
打個比方吧
GPU是個數學很強的高手 可惜他不會英文
CPU則是能把英文翻譯為中文
CPU把題目由英文翻譯為中文
然後顯示卡負責回答中文的數學問題
案例1.的狀況是 翻譯得很快 但是GPU的計算能力不佳XD
案例2.的狀況是 GPU是個超強的計算高手 可惜CPU翻譯的太慢
我們多半在意的顯卡 以及市面上所討論的顯卡
都是遊戲用顯卡
工作站用、以及專業繪圖的繪圖卡
那又是不同的設計邏輯了
但是由於真的有這樣用途的人比較少
所以我們在這裡暫且先不予討論
可能留待之後在說明吧
顯卡其實也有數種不同的規格標準
與CPU作個對照 所以我們先從核心數量講起好了?
1.顯示卡本身就是平行處理單元
所以通常可以看到多核心CPU 卻很少看到GPU是多核心的
了不起就是在張板子上塞兩顆「獨立的GPU」(例如ATI5970)
而且這樣的話 也應該說為一張板卡兩個圖形處理器 而不是單處理器雙核心
當然就像是CPU一樣 GPU如果要瘋狂提升時脈 也不如多作幾顆來的實在就是
但實際上我們知道 隨便一顆GPU實際上本體就是個超多核心處理器
也因為其設計
所以顯卡很早就能夠多卡同時並連使用 只要晶片組有支援的話
2.GPU的時脈
實際上我們可以看到GPU的時脈多半不過千
但由上一節我們卻看到了在GFlops(浮點運算)的能力指標上
高階顯卡遠遠超越高階CPU數十倍有餘
且GPU因為處理特性的關係(自然的平行處理)
相較於CPU,GPU的電晶體數量可以極大量複製
(AI 5970足足有43億顆電晶體,但一顆要3萬的I7-980X卻只有11.7億顆電晶體)
所以在這種情況下,GPU實際上並不需要太高的處理速度
ATI的顯卡多半設計的比較高時脈(主流款式約700、800Mhz起跳)
Nvidia的顯卡則多半設計的較低時脈(主流款式約500、600Mhz)
但根據市場上、遊戲上的實際表現 我們知道這兩個時脈差距並不可以直接相比的
因為製造GPU的設計並不相同
不過若是相同的設計下(例如是同張顯卡的場合下)
我們若從850Mhz超頻顯卡到1020Mhz 效能上確實是大約增強了1.2倍沒錯
*
3.顯示卡的記憶體
由前面主機板、CPU等等章節我們也提到我們需要記憶體來暫存CPU的計算結果
顯示卡也需要專屬記憶體來存放GPU的計算資料
通常是存放貼圖資料(在3D骨架上的表面圖像)
所以記憶體的容量、傳輸頻寬與速度
會直接的影響高解析度下以及高畫質貼圖下的效能表現
顯示卡也很早就開始使用DDR的技術(雙倍或更高倍傳輸 但統稱DDR)
所以我們在包裝盒上面都可以看到「GDDR3」、「GDDR5」
值得注意的是
GDDR2 GDDR3 和主機板的DDR DDR2一樣
都是實際頻率X2的技術
但是GDDR5就與兩者不同了 是實際頻率X4
所以我們可以看到中高階顯示卡 都全面採用GDDR5記憶體
如此一來才能應付需要存放極為大量浮點運算與後製資料的GPU計算結果
與記憶體的計算頻寬方式一樣,是等效時脈X匯流排介面
我們主機用的DDR3記憶體
通常是這樣
666*2*64bit/8*(1.2 {雙通道})=約10.6GB/s(理論最大值)
而顯示卡就更扯了
除了GPU直接與記憶體相連使的傳輸延遲很短之外
以5770 5970為例
預設時脈分別為
1200 1000
倍率為
X4 X4
傳輸頻寬為
128bit 256bit
1200*4*128bit/8=約76.8GB/s
1000*4*256bit/8=約128GB/s
我們可以看出其極高的傳輸速度
而就像是在主機上無限制的多增加記憶體無助於效能一般
於GPU效能不佳的情況下,再怎麼增加記憶體容量 跑星海2也不會比較順XD
記憶體容量不足會限制效能 但需求之外增加容量並不會增加效能
4.串流處理器(Stream Processor)
過去GPU內部都還有區分處理多邊型頂點和像素的Shader運算單元
但NVIDIA和ATI都已經統一其兩者為串流處理器,簡稱SP
不管頂點或像素Shader,通通都可以運算
大致可以直接想像成這個GPU是幾個小運算單元,或說幾個核心平行運算的意思
可以說是直接影響顯卡效能的關鍵
這也就是為什麼我前面說顯示卡基本沒人在講幾核心
有的話也是單板卡塞兩個處理器晶片組
因為其本身的設計上就已經是由無數個小型運算單元組成
這個設計講解起來比較複雜
基本上我們的螢幕畫面是由顯示卡分開好幾個小單元來計算
每一個單元計算一定數量的像素
這是一張Call of duty 現代戰爭2的遊戲畫面
看著這張圖 後方的椰子樹 和前方的士兵 我想不會有人覺得這兩者有單元吧?
沒錯 不只是我們人類覺得沒關連
因為這兩個是完全不相干的畫面 放在一起計算 不如分開計算要來的實在吧?
遠距離的椰子樹通常不怎麼在動 我只要處理在移動的士兵就好了
分開處理的話 計算上就能更有效率
就算是一個士兵 也不見得每個身體部位都在動吧? 就算有 動的範圍、幅度也都不一樣吧?
所以顯示的計算上是把他拆成數個極小單位 例如3X3 4X4像素左右這樣
所謂的流處理器數量
就是象徵著我們有多少個處理單元來分別處理這些更小單元
所以電晶體數量通常直接代表流處理器數量
而更多的流處理器也就表示了更好的處理性能
故此浮點運算能力就會更優良
而ATI的顯示卡、顯示晶片設計
通常一張板卡上的流處理器數量會較多 連帶的浮點運算性能較好
以5770、4850、4870、4890等中階顯卡為例 都是800個串流處理器
而Nvidia的圖形晶片
其串流處理器數量通常遠少於ATI的晶片
以當前最高階的480為例
是480個串流處理器
這數字對比同為最高階款的ATI 5970
為3200(1600X2)個串流處理器 可以說是完全不成比例
主要是Nvidia以少數流處理器但單晶片高時脈的設計
ATI則是多晶片低時脈 結論是差不多
由於設計不同 所以不能直接以數量來評估效能差異
亦不可以直接以和流處理器數量、性能相關的GFlops以相同標準比較兩家產品
要比較的話 要把設計的差異造成的影響考慮進去
性能幾乎相似的情況下 以GFlops來檢視
N牌的顯卡GFlopsx1.5左右和ATI的顯卡的GFlops所代表的意義才會比較接近
而當相同製造設計下 串流處理器越多
理所當然的 耗電、供電需求與發熱上都會更加的嚴苛
以5770 與5870、5970作個比較
5770(小超頻)滿載時只要130W左右的供電 官方的公板TDP為110w
800個流處理器
而5870串流處理器數量為1600
耗電(滿載)就需要約 190w左右
是很可觀的數字
要是還使用多卡聯合技術的話
耗電更是可能破千
5.材質單元 與畫面輸出
老實說...我不知道材質單元放在硬體板卡上的哪裡....(爆)
可能是在接近背版輸出的位置吧XD
這也是一個影響顯卡效能關鍵(遊戲用顯卡)
但他的道理比較單純
雖然計算整個模型資料時也許訊息量相當的龐大
但因為我們的視角底下其實很多東西被遮住 或是只能看到一部份
所以透過一些硬體裝置、軟體方面的調整技術
我們就能夠在計算前 或計算中把這些單元省略掉
省下大量的計算空間與資源消耗
這就是材質處理單元在效能影響下的主要意義
同時在計算大量顯示資訊下
會有資訊的誤差與資料的損壞
所以造成毛邊、鋸齒之類的難看邊界
而我們的反鋸齒就是透過材質處理單元來去除這些問題的。
歡迎光臨 Android 台灣中文網 (https://apk.tw/)
Powered by Discuz! X3.1