Bit數 - 顯卡

Una avatar
By Una
at 2006-11-06T11:47

Table of Contents

※ 引述《FiveAaaa ([5A]aaa)》之銘言:
: ※ 引述《maply0703 (落葉)》之銘言:
: : 傳輸頻寬
: : 記憶體時脈每跳動一次時
: : 所傳輸的位元數量
: : 例如記憶體時脈400MHZ
: 此處提到了記憶體時脈, 那核心時脈又有什麼影響呢?
: 是指: 用 [ (記憶體時脈) * (傳輸頻寬) ] bps傳入GPU, GPU再用xxxMHz來運算嗎?
: 謝謝!
小弟剛好是做GPU的..來大概簡述一下好了~
不過我是寫drvier跟demo的..所以會比較以軟體的角度來想~
名詞解釋:
視訊記憶體(VRAM)=>也就是顯示卡所標榜的記憶體
系統記憶體(System RAM)=>也就是平常所說的記憶體
GPU=>就是繪圖顯示晶片, 7300GT, 7600GT這類的東西.

大致上流程是這樣的:
1. 傳統:
3D應用程式透過API將節點資料跟效果設定從System Memory送進VRAM
Shader:
3D應用程式透過Shader program將資料(包含程式)從System Memory送進VRAM
這是第一個傳送瓶頸:system memory->vram,
最大值限制為PCI/AGP/PCI-E所能承受的頻寬.
2. 上面的步驟是將系統記憶體資料跟命令送進command queue,
command queue是什麼呢? 從頭解釋的話太麻煩, 就簡述吧!
當驅動程式下命令給硬體的時候, 硬體是不能做其他事情的,
這一點跟CPU跟OS的關係是一樣的, 所以這時候如果有一個buffer,
把要給硬體的命令存起來 每隔一段時間發一次給硬體,
其他的時間就可以給硬體去做其他事情, 而不會被傳送這些命令佔住時間.
而這些給硬體的命令中, 有很多時候會是送節點資料給硬體的,
這個時候這個機制就很重要了,
如果沒有這個機制的話, 驅動程式跟硬體說,
現在開始從某記憶體位置開始搬資料到VRAM去,
而假設資料很多, 搬動資料需要100毫秒, 那麼這100毫秒就沒辦法做3D運算,
所以FPS就會被限制在10fps以下,
如果有這個機制的話, 那麼驅動程式只要跟硬體說"搬資料囉!"
然後就不用管硬體搬資料搬到哪, 而可以繼續做之前沒做完的3D運算,
而不用等硬體搬資料.
這個道理跟最近新興的硬碟NCQ原理是一樣的,
不過這個機制在顯示卡上已經行之有年了~
command queue就是這個buffer, 而這時候引擎&記憶體的時脈就開始有影響了:
GPU這時候會從VRAM command queue部分parse資料, 然後做運算,
送到frame buffer去(frame buffer定義請查google, 因為很基本)
這裡就扯到VRAM跟GPU時脈的關係了, VRAM送的快, GPU就收的多,
能處理的3D指令也就多, 速度也就越快, 如果VRAM太慢, 那麼資料送不夠快,
那麼引擎工作當然也快不起來, 會有很多時間閒置.
如果VRAM夠快, GPU卻不夠快, 那麼GPU就會卡住效能.
3. GPU畫完之後, 如果非全螢幕的話, 通常會將framebuffer放在一個看不見的buffer,
然後在將buffer打到window內, 這部分就跟vram有很大的關係了,
因為這是一個gpu->vram->vram copy的動作,
這個部分記憶體時脈就直接影響到所謂的Fill Rate (像素填充率)
假設GPU能力可以負荷到每秒一億個點, 但是記憶體卻沒辦法跟上,
那麼Fill Rate就會被卡VRAM那端.
如果vram每秒有效時脈是400Mhz, 那麼一秒鐘就可以搬4億次資料,
假設記憶體寬度是128bit, 那麼一秒就是51200000000bps,
約6GB/s,如果畫面是32bit RGBA的話, 那麼fill rate就是1.5 Billion pixel/sec.
注意, 這是以vram的速度來判斷的, 並不是GPU時脈去算,
假設GPU時脈560Mhz, 256bit, 那麼一秒可運算的資料量就是:
560000000*256bit/32bit=>fill rate = 4.48Billion pixel/sec,
而全螢幕的時候不需要做搬動的動作, 因為不需考慮視窗重疊的狀況,
所以實際能力可以加倍, 將資料搬移簡化到單純一次gpu->vram,
所以在16bit色彩理想狀態可達到9 billion pixel/sec, 扣掉GPU自己的耗時,
就是實際的fill rate.
(這是假設沒有interrupt發生或者其他因素的理想狀態, 實際不大可能達到XD)
也有些廠商會用32bit當spec, 但是會做一些加成, 或者特殊的"偷吃步",
來省時間以達到一些漂亮的數字, 也就是犧牲品質換取速率.
也就是說, 就算GPU可以做到這麼快, 但是如果VRAM衝不到這麼快,
則像素填充率就會被限制在VRAM上, 這也就是為什麼超頻記憶體會有用的原因之一.
上面我是拿7600GT當範例, 但是7600GT spec寫的是6.7 billion pixel/sec?
這部分是因為command會有一些overhead,
並不是所有的時脈都可以全部拿來做填充的動作.(就是上面提的gpu自己的耗時)
至於為什麼我會拿400Mhz而不是拿ddr的800Mhz來說呢?
因為, GPU跟VRAM溝通是需要做hand-shaking的,而記憶體本身也會有些延遲,
hand-shaking這個動作就是在做: GPU發命令跟記憶體說"我要送資料了"
接著等一小段時間, 可能是1個tick, 也可能會慢到3~4個tick,
接著記憶體會回"ok我可以收", 然後又會等1~3個tick去等GPU發資料,
所以說這些頻寬能力並不是直接拿來乘就好,
實際頻寬還是需要除掉這些hand-shaking的時間的,
在這裡我用了比較低的數據去估計, 畢竟我不知道各廠商的記憶體設定:p

所以說, 記憶體寬度決定了視訊記憶體是否會成為GPU瓶頸,
但是或許有人會說, 照這樣算起來, 7900GTX的記憶體根本也達不到需要的頻寬!?
沒錯, 因為事實上根本沒必要讓記憶體完全跟上GPU,
透過OpenGL/Direct3D這些API, 可以事先把資料送進VRAM,
然後之後就不在需要每個frame都送一次資料, 這部分就相當的省時了,
這使得傳輸的資料可以簡化到大部分都是送硬體命令,
省下了最佔時間的資料傳輸時間.
這個時候, game跟game engine設計好壞就可以一分高下了,
好的引擎跟遊戲設計規劃可以省下許多不必要的資料傳輸,
對於vram頻寬的需求相對就減少許多,
EA Games就是這方面我認為最強的專家,
而這也是為什麼有些廠商的遊戲竟然普通的效果就要很高的硬體,
有些廠商的遊戲居然可以用低硬體要求究可以做到更好的效果的原因.
至於polygon rate又是另一個故事了....0rz 就不提啦XD

所以呢..我一直覺得買最好的顯示卡是阻礙那些爛遊戲引擎發展的元兇阿XD
但是也有時候遊戲程式寫的爛但是把時間花在遊戲內容上的話
我還是會覺得很值得就是了...真兩難阿QQ

: : 傳輸頻寬64BIT
: : 傳輸速度就是
: : 400*64/8(/8是bit轉換成byte)=3200MB/sec
: : 如果時脈相同,bit變成128bit
: : 400*128/8=6400MB/sec
: : 直接變成兩倍
: : 所以bit數是相當重要的喔!

--
Tags: 顯卡

All Comments

Damian avatar
By Damian
at 2006-11-11T00:11
專業 推
Sierra Rose avatar
By Sierra Rose
at 2006-11-11T15:36
未看先推
Hamiltion avatar
By Hamiltion
at 2006-11-16T10:02
大推>_o b
Rae avatar
By Rae
at 2006-11-19T23:53
好文 推
Irma avatar
By Irma
at 2006-11-24T02:47
應該不是ncq吧ncq還會找最佳路徑解讀取區
Tracy avatar
By Tracy
at 2006-11-25T11:22
塊,也就是比較好的dramc可以out of order
Zanna avatar
By Zanna
at 2006-11-28T05:18
好文推一個
Lydia avatar
By Lydia
at 2006-11-29T14:19
高手
Regina avatar
By Regina
at 2006-12-01T23:29
ncq部分我不清楚 不過概念一樣嚕
gpu command queue其實也是會有最佳化的
ncq是臨時想到才舉的 說錯話請見諒 XD
Delia avatar
By Delia
at 2006-12-06T05:45
Odelette avatar
By Odelette
at 2006-12-09T03:28
好文大推
Skylar DavisLinda avatar
By Skylar DavisLinda
at 2006-12-11T04:07
好文 推
Jacky avatar
By Jacky
at 2006-12-12T00:24
被m前先推 高手高手高高手XDDD
Heather avatar
By Heather
at 2006-12-15T06:23
用大陸的說法 技術帖!我頂
Poppy avatar
By Poppy
at 2006-12-18T20:52
Jake avatar
By Jake
at 2006-12-19T19:51
謝謝! 但是頻寬6GBps如何求得Fill Rate?
James avatar
By James
at 2006-12-23T00:42
每筆資料4byte, 一秒送1.5G次
所以..剛剛打錯了..1.5才對 不是1.25XD
Hardy avatar
By Hardy
at 2006-12-24T14:14
已修正~
Vanessa avatar
By Vanessa
at 2006-12-26T09:37
真屌
Delia avatar
By Delia
at 2006-12-29T14:43
專業的來惹~ 版主請M!
Sandy avatar
By Sandy
at 2006-12-30T19:09
這個一定要先來推一下的
George avatar
By George
at 2007-01-01T00:08
推推 長知識
Kyle avatar
By Kyle
at 2007-01-05T13:42
有一行不小心刪了 剛自己看發現會大誤導
Suhail Hany avatar
By Suhail Hany
at 2007-01-06T00:29
已補上@@
Aaliyah avatar
By Aaliyah
at 2007-01-08T03:16
超專業...受教了
Thomas avatar
By Thomas
at 2007-01-09T08:15
超專業!
Valerie avatar
By Valerie
at 2007-01-09T10:22
GOOD
Iris avatar
By Iris
at 2007-01-11T17:27
天啊..好文大推!
Bennie avatar
By Bennie
at 2007-01-12T19:56
<( ̄▽ ̄)/ ..
Sierra Rose avatar
By Sierra Rose
at 2007-01-15T23:01
雖然直接END還是要推
Linda avatar
By Linda
at 2007-01-19T10:47
超專業 推~
Liam avatar
By Liam
at 2007-01-24T02:10
Victoria avatar
By Victoria
at 2007-01-28T07:51
真強者!!!先推一個!!
Bennie avatar
By Bennie
at 2007-01-29T03:34
專業
James avatar
By James
at 2007-01-30T07:43
這篇怎麼還沒被m起來?
John avatar
By John
at 2007-02-03T10:53
先推在慢慢看
Anonymous avatar
By Anonymous
at 2007-02-08T10:46
雖然有點看不懂不過還是推.不是唸理工的=_=
Anthony avatar
By Anthony
at 2007-02-09T15:26
您真內行!
Caitlin avatar
By Caitlin
at 2007-02-12T02:34
專業的 推!
Brianna avatar
By Brianna
at 2007-02-16T09:59
好文 推一個
Faithe avatar
By Faithe
at 2007-02-16T19:49
這個專業啊! 該M
Genevieve avatar
By Genevieve
at 2007-02-17T15:17
cool~
David avatar
By David
at 2007-02-18T19:13
那麼VRAM時脈還是GPU時脈決定fill rate?
Caitlin avatar
By Caitlin
at 2007-02-23T18:58
然後fill rate就決定效能對吧?
Rae avatar
By Rae
at 2007-02-24T15:10
這篇不M嗎?
Ursula avatar
By Ursula
at 2007-02-26T01:02
push!!!
Donna avatar
By Donna
at 2007-02-27T11:26
太厲害了,我有點看不懂呢@@
John avatar
By John
at 2007-02-28T08:00
這個專業!
Candice avatar
By Candice
at 2007-03-05T01:00
WOW 一整個超專業的啦~
Rebecca avatar
By Rebecca
at 2007-03-08T08:51
push 太專業了@@

ATI Catalyst 6.10

Barb Cronin avatar
By Barb Cronin
at 2006-11-01T09:00
http://0rz.tw/340iN 也許該叫他: AMD Catalyst 6.10 (?) -- 看到 http://ati.com 自動轉址成 http://ati.amd.com 心情有點複雜…… - ...

ATI 原生 CrossFire with X1650XT 解禁 …

Yedda avatar
By Yedda
at 2006-10-31T09:25
※ [本文轉錄自 hardware 看板] 作者: fsaa3dfx (fsaa3dfx) 看板: hardware 標題: [情報] ATI 原生 CrossFire with X1650XT 解禁發布 時間: Tue Oct 31 09:24:03 2006 情報來源:http://0rz.tw/59 ...

AMD 宣布完成ATI併購案 開創運算新紀元

Margaret avatar
By Margaret
at 2006-10-30T15:10
AMD 宣布完成ATI併購案 開創運算新紀元 作者:AMD AMD今日宣佈完成總額約54億美元的ATI併購案。結合兩家公司相輔 相成的領導技術優勢,新的AMD將更進一步鞏固其處理技術的霸主地 位,為科技產業帶來技術創新、多元選擇及產業成長的動力。擁有將 近15,000名員工的AMD,除了將保持在微 ...

ASUS 發布 RV560核心,EAX1650XT

Blanche avatar
By Blanche
at 2006-10-27T18:26
※ [本文轉錄自 hardware 看板] 作者: fsaa3dfx (fsaa3dfx) 看板: hardware 標題: [情報] ASUS 發布 RV560核心,EAX1650XT 時間: Fri Oct 27 18:25:25 2006 ATi即將在下周推出第二款的80nm製程GPU—— Rade ...

ASUS發布G80搭載「EN8800GTX/EN8800GTS」

Catherine avatar
By Catherine
at 2006-10-24T17:43
ASUSTek 發布 Nvidia G80-series 搭載 顯示卡「EN8800GTX/GTS Details」 情報來源:http://0rz.tw/b81YZ 其他更詳細資料 可等官方公佈SPEC 以及 詳細發售時程/價格 EN8800GTX/HTDP/768M (768MB with 384- ...