作者jk21234 (BL2400PT真不錯)
看板PC_Shopping
標題Re: [情報] 微星RX480 4GB 鎧甲虎便宜版 $7990新上市
時間Wed Sep 28 17:11:18 2016
推 john801110 : 借問一下現在cf都沒人在搞三張了嗎 還是說是沒辦法 09/27 15:34
→ john801110 : 三張cf了
不要說三張,兩張CF可能都要考慮一下
因為fermi以前的SLI,還有目前的crossfire都有很嚴重的
microstuttering的問題
最開始是去找資料的時候從wiki看見的
http://www.sweclockers.com/test/15381-geforce-gtx-690-varldens-snabbaste-grafikkort/18#content
雖然是瑞典文 不過只要看表跟圖就好
Frametime by ms
HD 7970
12,35/12,61/12,72/13,16..
HD 7970 CF
9,66/3,81/11,00/4,04...
如果只看平均FPS,或者frametime,
或許會得到後者有90%以上的性能成長
但是遊戲真正的視覺表現就不是這樣
1.人眼對於越長的延遲當然越顯眼
就跟前面戰顯示記憶體大小的時候 很多人會跳出來說
即使平均FPS差不多他也看的出很頓.
假設我們來放三個影片,Frametime分別為
A. X ms,X ms,X ms...
B Y ms,Y ms,Y ms... (假設X > Y)
C X ms,Y ms,X ms,Y ms ...
那麼找一群人來試看,C的效果接近哪個?一定是接近於
比較長的X ms的那個影片
2.比變長的framtime更慘的 就是那些超短的frametime
啊?為什麼變短的frametime不好?
因為這並不是真正計算時間變短,而是AFR模式的副卡
太晚送回來 主卡的下一張都快算完了所造成的現象....
我們來簡化問題,假設單卡的時候,畫圖的frametime
是很穩定的14ms持續下去,而crossfire是12ms-2ms這樣交錯
而顯示卡是用在遊戲上,遊戲是一種realtime反映的東西
基本上,3D遊戲的引擎核心裡面會有一個無窮迴圈不斷的啟動
"計算下一個frame"這樣的動作.
計算下一個frame是當然,不過開始的時候,就需要計算畫面上
所有物件的移動量.但這個移動量能不能計算,要先預測這個frame完成
的時間,也就是下一個frametime.
怎麼說?遊戲是互動的,假設我的遊戲設定成,偵測鍵盤是不是有按下前進鈕,
有前進的話,腳色以每秒10公尺的速度移動,
那下一個frame要把腳色擺在哪裡,就跟frametime的預測有關.
如果下一個frametime我預測是20ms,那麼腳色就要移動10M/50=(場景中)20公分
如果預測10ms,就是要讓它移動10cm,否則你做不出均速10M/s的感覺
這個frametime要怎麼預測?沒太好辦法,收集過去的資料也就是平均的Frametime
決定...至於收集前面N個frame就大家不一定...
如果N夠大,那麼這個engine收集到的crossfire平均frametime就會是7ms
那麼我就是不斷的讓腳色每個frame前進7公分
可是他真正顯示在螢幕上的時間不是遠大於7ms就是遠低於7ms,
因此兩個都造成視覺上的誤差...
前面有說過Fermi的SLI也有這個問題,事實上我最後用gtx460 SLI執行
HAWX 2的時候不要說顯示的很頓 連眼睛可看見畫面在...倒退又前進
的視覺感
重點是 新世代的卡的情況?
我從2013以後所有的SLI和crossfire review開始翻起,不過大多數都
沒有同時對比的 單一系統比較詳細的review有:
RX480 crossfire (Hardocp)
http://www.hardocp.com/article/2016/07/11/amd_radeon_rx_480_8gb_crossfire_review/4#.V-t9ovB953g
GTX 1070/1080 SLI (Guru3d)
http://www.guru3d.com/articles_pages/geforce_gtx_1070_2_way_sli_review,9.html
http://www.guru3d.com/articles_pages/geforce_gtx_1080_2_way_sli_review,8.html
上面算比較詳細的 從圖表就可以看到Crossfire和SLI的frametime波動
就自己從圖表內比較波動嚴重程度來看自己可不可以接受
DX12不是另外支援Multiple GPU嗎?這會不會過時了?
事實上DX12的multiple GPU支援目前僅限於AFR模式,未來會不會支援其餘方法
未知
而既然他是支援AFR模式,那麼推估有兩種可能
a.繼承driver中的AFR的microstuttering問題
b.因為自己的AFR所以無論原本解決了沒都產生新的microstuttering的問題
那根據這個review
http://www.guru3d.com/articles_pages/hitman_2016_pc_graphics_performance_benchmark_review,8.html
顯示答案比較可能是a.
但如果你是兩家混用那我猜測問題會是偏向繼承比較嚴重的情況
所以有甚麼結論嗎
大部分的問題都是來自於AFR,但原因是AFR最容易在跑分程式上達成很線性的
性能數字成長,可是這時候使用者只是被呼弄了,視覺上無法改進但是數字給你
90%,100%的變化.GPU廠商具有的專業不可能不瞭解但為什麼產品走向還是這樣...
除非是GTX 1070以上的需求還不夠,否則就不需要考慮多卡系統
其中雖說SLI的frametime波動比較輕微,但仍然比不上單卡
(windows 7以前的SLI可以強制選擇AFR/SFR,但windows 10
的這部分還沒完成)
而且要記得更新SLI cable
根據官方資訊最低需求如下
1080p 傳統軟排
1440p 軟排*2
4K LED bridge(2015年)
5K/4K/HDR:HB bridge(2016年)
規格沒到其實跑下去就是嚴重的microstuttering
http://www.sweclockers.com/test/20216-nvidia-geforce-gtx-titan-x-i-sli
事實上這個低標恐怕還是會影響frametime的穩定度
變成要上更上面一級比較保險
但如果1070買的兩張不是同一款 高度不一樣
就只有軟排可以用啦!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.81.222
※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1475053892.A.5BD.html
推 AerobladeIII: 推推 09/28 17:22
推 damnedfish : 快推,以免人家以為我看不懂 09/28 17:30
→ kuma660224 : 遊戲其實不是預測下一個frametime。 09/28 17:41
→ kuma660224 : 是根據已發生的delta time去算應有的位移 09/28 17:41
→ kuma660224 : 不能用預測是因為方向是玩家在控制。 09/28 17:42
你有點誤會了 我說的預測不是預測下一個frame,
而是這個frametime的最後有多長
通常frametime的開頭就會讀讀I/O決定操控狀態,
然後開始計算MODEL要怎麼移動 但是這還是在frametime的很前面.
而MODEL移動的量最好跟frametime的量重和效果最好.
這種需求的確屬於一種預測,技術上做的到當然會想用預測的
但技術上做不到啊 只能算過去現有資料充當很粗略的預測
→ kuma660224 : multiple GPU支援並不限於AFR模式。 09/28 17:43
→ kuma660224 : 只是現在連DX12自己被支援度都不夠完整 09/28 17:43
→ kuma660224 : 短期內不必指望其他更有效率的模式可普及 09/28 17:44
→ kuma660224 : AFR只是支援最簡單,但也最容易出問題。 09/28 17:45
→ kuma660224 : 遊戲優化時有些資料在單卡是前後frame共用 09/28 17:49
→ kuma660224 : CF/SLI多卡時那些資料要即時跨卡傳輸。 09/28 17:49
→ kuma660224 : 如果遊戲開發者有專門寫多卡path... 09/28 17:49
→ kuma660224 : 也許可以避開傳輸,兩卡各自重算資源。 09/28 17:49
→ kuma660224 : 稱為re-rendering...這往往比傳輸快很多。 09/28 17:49
→ kuma660224 : DX11時代CF/SLI是不同廠商私有API去擴充 09/28 17:50
→ kuma660224 : 那種東西沒有MS的支持,甚至廠商也半調子 09/28 17:52
→ kuma660224 : 常常因為市場因素,取消某些硬體的支援。 09/28 17:52
推 hix020421680: 專業推 用單張真的可以避免掉microstuttering問題 09/28 17:52
→ kuma660224 : 不屬於DX/OprlenGL標準的東西,註定難成功 09/28 17:54
推 DANTEINFERNO: 在這個問題之前 多卡帶來的fps上升效益大多了 09/28 17:54
這是捨本逐末,因為追求平均FPS的提升
原本就是希望能儘量降低大部分的frametime
降低到低於你視覺暫留的時間,這樣視覺上自然會有改善
可是現在的情況是,平均frametime看似下降
但是最差的frametime和之前沒甚麼不同啊,這時候
只要這個沒改善的frametime超過你的視覺暫留時間
就跟單卡一樣頓了
推 hix020421680: 可是有microstuttering看了會很不開心 09/28 17:58
→ kuma660224 : shutter多數是因為軟體支援度很不夠。 09/28 18:02
→ kuma660224 : 本來CF/SLI應該走專用AFR-friendly的path 09/28 18:02
→ kuma660224 : 不要慢速的轉移RenderTexture而是 09/28 18:02
→ kuma660224 : re-render 09/28 18:02
※ 編輯: jk21234 (111.248.81.222), 09/28/2016 19:23:26
→ kuma660224 : 多卡做的好也能提升FrameTime。問題是之前環境太差 09/28 19:54
→ kuma660224 : 短期內也難以支援度逆轉。 09/28 19:55
推 willy4907 : 最近用1070跑GTA4K 發現在某些場景FPS和之前用970跑 09/28 21:26
→ willy4907 : 差不多(相同特效) 但1070的GPU和CPU使用率都只有70 09/28 21:29
→ willy4907 : 不知道是引擎還是DX11在等待 和FRAMETIME預測有關? 09/28 21:32
→ willy4907 : 這些場景不增加特效FPS也不會變快 最後只好增加特效 09/28 21:36
→ kuma660224 : 我用過或聽過3D引擎都不是用預測的。沒這麼神。 09/28 21:39
→ kuma660224 : 是靠前frame到這frame之間的delta差異值算位置 09/28 21:39
推 MirageAngel : ━━━━━━━━━━━━━━━━━━━━讚━━━ 09/30 09:35
→ jk21234 : 這個問題年底的driver已經改善 12/07 01:07