2013.05.02 13:13

決戰多螢幕,大容量 VGA 記憶體實戰:容量多1倍、效能多2%

ADVERTISEMENT

顯示卡記憶體主流容量越來越大,從早期64MB、128MB到現在1GB、2GB,還有高階卡一舉提升到4GB,而TITAN也打破紀錄一次攻頂到6GB。但相較於記憶體容量,主流螢幕解析度的成長相對緩慢,目前多數仍為1920 x 1080等級。現在顯示卡的記憶體是不是早已突破瓶頸?買顯卡時,是否需要多花10%的成本,去換那多1倍的記憶體容量,換回來到底有沒有價值?

快速瀏覽:

  • 理論篇:GPU、記憶體運作流程

記憶體好大好便宜

當年低階卡搭配64MB、128MB左右的記憶體恰如其分,但是最近越來越多的低階卡記憶體容量上看2GB,不禁讓人懷疑這樣的搭配到底是有何意義。姑且不論低階卡,就連高階卡容量也邁入4GB大關,一般中階卡記憶體容量也從以往256MB、512MB增加到1GB甚至2GB。

根據公式,一般2D影像在1920 x 1080的解析度底下,每幀(Frame)影像需要約7.91MB的空間。如果是3D影像則是再把上述數字再乘以3,大約是23MB左右。即便需要儲存多幀影像,但其所需記憶體總容量,已經跟現在顯示卡搭載的主流記憶體有明顯的落差。不過,遊戲的材質、反鋸齒等特效也會佔用記憶體容量,外加逐漸重要的GPGPU等運用,最後還有「未來」可能出現的多螢幕需求,也有一派認為大容量記憶體仍有其必要性。

ADVERTISEMENT

解析度與記憶體容量關係式

2D影像:每幀影像需要記憶體容量=(水平解析度 x 垂直解析度 x 色彩深度)/8bit

3D影像:每幀影像需要記憶體容量=(水平解析度 x 垂直解析度 x 色彩深度 x 3)/8bit

舉例來說,解析度1920 x 1080的螢幕,在32位元色彩深度的環境下,其2D影像所需容量為:(1920 x 1080 x 32)/8bit =8294400Byte8294400Byte=8294400/1024/1024=7.91015625MB

理論篇:GPU、記憶體運作流程

早期記憶體價格昂貴,且容量相當小,即使螢幕解析度低、色彩深度低,但是記憶體容量只有數MB的情況下,容量很容易變成效能瓶頸。自然就會出現所謂:記憶體容量越大,可使用的解析度越高的觀念。時至今日,記憶體容量成長率遠高於螢幕解析度的成長幅度,買大容量記憶體的顯示卡還有什麼用處?

接下來,我們先了解GPU與記憶體的運作原理,再來實測大容量記憶體與效能的關係式,驗證大容量記憶體到底是噱頭還是真有其功效。先從GPU的運作談起,不論你是要跑遊戲、看影片還是GPGPU運作,其實都離不開這GPU運作流程。

GPGPU

GPGPU是General Purpose Graphics Processing Unit的縮寫,中文為通用繪圖處理器。這類GPU可取代傳統CPU運算進行高速運算,透過GPU內多個核心平行運算,某些領域的運算效能會比CPU來的出色,後來GPGPU也大多泛指透過GPU平行運算的技術。

影像輸出CPU占一半

雖然影像輸出看似GPU的工作,但實際上CPU得要負擔一半的責任,且不論是3D遊戲、影片播放都是如此。從遠一點的角度來看,CPU負責影像輸出前端工作,遊戲或影片播放的需求進到CPU來,先透過DirectX、OpenGL、DXVA等API(Application Programming Interface,應用程式介面)轉換成統一標準,再來進到驅動程式內,以上這段都是由CPU負責。從上可知,就算玩遊戲CPU也會在其中扮演一定的角色,效能貧弱的CPU的確可能成為遊戲效能的瓶頸。

ADVERTISEMENT

驅動程式處理完之後,就是丟到GPU內運算,運算完畢則是放置到記憶體內儲存。當有需要的時候,再將記憶體內運算好的資源送到RAM DAC,將GPU運算的數位訊號重新編譯,轉為類比訊號再由D-sub介面傳輸。若使用的是數位訊號,像是DVI或HDMI,則是由TMDS通道直接傳輸。

▲不論何種影像輸出,都離不開CPU的前端工作。這也是為什麼有些人認為CPU會影響遊戲效能的原因之一,但是依照編輯部的經驗法則,主流等級的處理器應付前端處理工作都沒問題,CPU影響會效能大多是某些特殊遊戲(例如使用CPU做物理運算),或是太老舊所致。

ADVERTISEMENT

▲把顯示卡運作流程極度簡化後,應該不難看出記憶體是輸出前的最後一道關卡。如果輸出的是類比訊號,則再多經過RAM DAC處理。若使用數位訊號,則會直接經過TMDS通道傳輸到螢幕。

RAM DAC

RAM DAC(Digital Analog Converter,數位類比轉換器)是顯示卡內的電子元件之一,作用是將GPU運算後的數位訊號重新編譯成類比訊號,並由D-sub輸出到螢幕。RAM DAC的速度單位是MHz,時脈會影響螢幕的更新率與解析度。因此除了記憶體容量可能成為解析度瓶頸外,RAM DAC更是直接影響解析度的高低。

另外,早期RAM DAC的規格會影響到輸出的色彩深度,像是8bit就只支援2的8次方,也就是256色輸出。現在規格到了極限,都能應付高解析度與高階色彩深度,RAM DAC的作用自然就很容易被遺忘。加上數位訊號的普及,RAM DAC早晚有天會從顯卡上消失。

硬體通吃的統一標準

看到這流程,應該會有疑問為什麼要多API這道手續,直接由軟體存取硬體資源不就好了,還能節省一道手續減少轉換上的效能耗損。的確,DOS時期應用程式可直接存取硬體資源,但是也就讓遊戲廠商傷透腦筋。因為缺乏統一標準,每套遊戲都要針對特定硬體支援,而且這還不只GPU,連音效卡甚至是搖桿等裝置都需要對應的語言,造成遊戲製作相當大的障礙。直到DirectX等標準出現後,軟硬體的問題才得以解決。

ADVERTISEMENT

記憶體是資料倉庫

回到這次的主角記憶體,在影像輸出的流程中,記憶體扮演的角色類似倉庫。不過相較於記憶體的容量,另外還有2個規格跟1個數字你得要記住,2個規格是記憶體時脈(Memory Speed)與記憶體介面頻寬(Memory Interface Width),數字則是記憶體頻寬(Memory Bandwidth)。

時脈不用多說就是速度,從SDRAM到DDR甚至是GDDR時期,速度都不停翻升。而記憶體介面頻寬(Memory Interface Width)經常跟記憶體頻寬(Memory Bandwidth)混淆,從英文來看會比較容易了解。前者指的是傳輸介面的寬度,後者才是意義上真正的頻寬。專有名詞可能不是很容易了解,用道路來舉例會更清楚。時脈就像是車子的速度,像是70km/h,介面頻寬就是車道寬度,像是雙線道、四線道,而頻寬就是兩者的乘積:單位時間內能通過的車流量。最後,記憶體容量就是位於公路末端的倉庫。

頻寬是兩者相乘

對於現代顯卡效能而言,理論上頻寬會比容量重要,從上述例子來說,現在的顯卡容易碰到的情況是倉庫很大塞不滿,但是車流量卻不太夠用。回到理論面來看,記憶體頻寬的公式如下:

記憶體頻寬=工作時脈 x 記憶體介面頻寬/8bit

以來說,該卡記憶體時脈是6Gpbs,記憶體介面頻寬是256bit,而記憶體頻寬就是兩者相乘除以8bit,可得到192GB/s。從公式也可以對記憶體規格稍做判斷,以前有不少顯卡會同時推出2種型號,差別在於記憶體顆粒的種類,常見的有高時脈配低記憶體介面,另一種則是低時脈配高記憶體介面,套用公式算一下就能求得頻寬,用頻寬做為統一標準計算,會比單純比較DDR2或是GDDR3等類型有意義。

容量用於減少瓶頸

說這麼多,那這次的主角記憶體容量到底是做什麼用?一言以蔽之就是倉庫。先前有提到,記憶體主要用於儲存運算的貼圖、多邊形等資訊,GPU運算完畢後會將資訊儲存在此等候RAM DAC提取,或直接經由數位介面輸出到螢幕顯示。現在記憶體容量或許已不是影響解析度的關鍵,但是可能成為其他瓶頸。遊戲特效過於豐富,像是高強度AA(Anti-Aliasing,反鋸齒)就可能吃掉更多的記憶體容量,但是多大的記憶體才夠用?這是我們接下來要探討的重點。

筆者認為,記憶體容量會限制效能,但是不太會增加效能。舉例來說,相同特效下若1GB記憶體夠用時,就算加到2GB也不會讓效能提升。因為此時倉庫(容量)夠大,但是車流量(記憶體頻寬)是瓶頸,加大倉庫並不會讓貨物運送更順暢,改變車速(記憶體時脈)、車道(記憶體介面頻寬)才會讓貨物運送更快。那實際上是怎樣?接著來看效能篇的驗證。

▲顯示記憶體容量不夠怎麼辦?當年NVIDIA把腦筋動到系統記憶體頭上。TurboCache技術透過MMU(Memory Manager Unit)控制容量分配,並經由PCI-E介面動態使用系統記憶體。例如顯卡本身只有64MB,最大可使用256MB的系統記憶體,此舉有助於降低顯示卡成本。但系統記憶體會被動態佔據,可使用量會減少,加上效能不如正常版本。因此TC版本只有出現在入門卡上,像是當年的GeForce 6200 TC。

同型不同款,差別在容量

▲市面上有不少顯卡都有不同容量的版本,但是要找張核心、時脈、佈局相似的卡就有點困難。還好這次編輯部從技嘉取得規格相近的GTX 680與GTX 650 Ti,才能讓我們有機會針對容量變數進行測試。

延伸閱讀:

(後面還有-效能篇:大容量記憶體用處少)

ADVERTISEMENT