【AMD/NVIDIA】HWS vs SWS: 誰是贏家? - 3C

Table of Contents

原出處:https://www.youtube.com/watch?v=nIoZB-cnjc0

中文翻譯整理:http://www.mykancolle.com/?post=1589
--
NerdTechGasm做了一期影片講述了GCN架構和NVIDIA從Fermi到現在Scheduler的變化
能夠很清楚的解釋為什麼當前GCN的A卡在DX11下性能不及N卡,以及為何DX12下A卡發揮更
好,而N卡CPU佔用率高

典型的DX11遊戲中,Draw Call全在主執行緒上,瓶頸比較嚴重
http://i.imgur.com/kJHAnAH.jpg

使用Command Lists時,將Draw Call打包分給其他核心處理後再交給主執行緒,一定程度
上緩解瓶頸
但並沒有完全解決問題,因為有硬體瓶頸在。
http://i.imgur.com/W5SyD0o.jpg

而NV的DX11驅動永遠都是多執行緒的
通過CMDList “Server”進程實現,“Server”進程監控Draw Call,攔截D raw Call後
分給各個執行緒
這個解決方法很好。
驅動是從AMD開始在BF4上試水Mantle後出來的。
http://i.imgur.com/KQHeT6C.jpg

新的DX11“多執行緒”驅動使得N卡受CPU單執行緒的瓶頸影響小了很多
只能用到1-2個執行緒的優化很差的遊戲突然在N卡上跑的快了很多,同時導致非常吃CPU
的PhysX在N卡上變得幾乎沒有負面影響。
http://i.imgur.com/zPTe8PG.jpg

這也是為什麼N卡在DX11上佔優的原因。
http://i.imgur.com/5IvYekM.png
http://i.imgur.com/Vtj00wx.png
http://i.imgur.com/QocCJxr.png

Draw Call提交到GPU後,調度器決定如何把工作分配給CU/SMX
然後通過HW Warp Scheduler分配給SP/CUDA核心

之前在Fermi上,NVIDIA設計了一個很強大的HWS-GigaThread Engine,類似於目前GCN的
HWS
http://i.imgur.com/h2Dggnk.png

Fermi因為功耗太高被稱為核彈
為了提升能效,在Kepler上NV砍掉和簡化了很多東西,其中就包括HWS,改為軟體,也就
是驅動來進行的SWS。
http://i.imgur.com/Kq7zjHs.png

NV的調度器是基於軟體的,也就是驅動程序。它可以接受許多CMDList,甚至是比較大的
那種,因為它們在執行前都被快取了。
驅動程序確定了工作如何分配到每個SMX。

所以在遊戲時N卡的CPU佔用率會比A卡高不少。

AMD GCN上使用的則是硬體調度器HWS,驅動不負責分配工作,直接交給GPU,然後由HWS決
定工作分配。
設計上HWS更依賴於即時的內容,也就是要保持持續的Draw Call一直進入,而不是
CMDList這種必須打包後分發的龐然大物。
GCN的HWS缺乏妥善支持CMDList的快取/機制。
http://i.imgur.com/3gTBOJK.jpg

如果直接將CMDList送到AMD GPU,驅動就需要重新處理,這會浪費CPU資源。
Polaris的HWS可以快取一點點,主進程瓶頸比之前幾代GCN稍有改善。
http://i.imgur.com/sHyZ5sq.jpg

DX11下對A卡來說最理想的情況,將游戲邏輯(AI、物理、音效等)盡量分配到其他的執
行緒,緩解主執行緒的瓶頸
http://i.imgur.com/qGpvSka.jpg

在DX11下,多執行緒優化良好的遊戲中的情況
http://i.imgur.com/JmkOQX1.jpg

而DX12和Vulkan等low-level API就不一樣了
DX12和Vulkan可以真正完全利用到GCN的HWS的優勢,主執行緒的瓶頸大大降低。
http://i.imgur.com/y1nKUkS.jpg

當然,在N卡上由於沒有HWS,就由驅動來承擔。
並行執行緒越多,合併、優化、分發等工作對於N卡的SWS就越困難。
對於軟體工程師來,說想在DX12上實現NV在DX11上一樣的效率就非常需要技巧。

在3DMark API overhead測試裡的結果並不能直接體現遊戲中的情況,因為真正的遊戲遠
比測試複雜得多。
3DMark測的只是理論上的,在現實中永遠不會出現的場景。
http://i.imgur.com/hJMq4R4.jpg

事先說明,N卡依然能在DX12和Vulkan中獲得性能提升。
只是需要遊戲開發者的大量經驗和調整
比如id Software開發的Doom,採用了Vulkan並且實現了非常高的效率 (可以說是目前優
化的標杆...)
http://i.imgur.com/TxrEvcJ.jpg

那麼硬體和軟體哪個更好?很明顯,目前NVIDIA是贏家。
AMD的賭注是DX12以及Vulkan的快速普及,因為DX11可能很快就會達到瓶頸,開發者就會
轉向下一代API

但DX11的生命週期要長於預期。

就算是現在,很多遊戲依然只集中使用1-2個執行緒,對剩下的執行緒利用不多。
在這種情況下,NV的DX11驅動就能將Draw Call分配給其他空閒CPU資源,增加Draw Call
吞吐量。

真正很好地優化了多執行緒的遊戲很少,大多都是主機移植的。
N卡的SWS帶來的額外CPU overhead雖然會帶來一點負面影響,這也能被更快更多的CPU核
心/執行緒抵消。

在主要利用一個執行緒的遊戲中,N卡會有巨大優勢
而對於A卡,GCN架構會被主執行緒的瓶頸嚴重影響。

所以目前來說NV的SWS更優,在正確的時間點- DX11上提供了更好的性能。
http://i.imgur.com/tePGbn5.jpg

而AMD更需要DX12和Vulkan的普及,也需要遊戲引擎改進對多執行緒的優化,特別是現在
有了Ryzen CPU。
主機上八核的優化優勢還會繼續下去。

而NV更有$,只要肯給工作室砸錢,就可以決定遊戲在PC上如何優化。
在這方面AMD缺乏競爭資源,工程師更少,能贊助給工作室的錢也更少。

同時AMD也必須在硬體設計上更靈活一些,以對抗NV的策略。
Polaris上的Discard Accelerator就是這樣的設計,抵消了x32/x64曲面細分的瓶頸。【
很多遊戲,比如孤島危機2中就用了非常大量且毫無必要的曲面細分(故意的),A卡性能
受到很大影響】
改進的HWS和整數預取也對減輕主執行緒瓶頸有幫助。

Vega將會大幅改善HWS和效率,因為DX11還將維持很長時間。

遊戲將會變得越來越複雜,DX11 Draw Call瓶頸對於AMD來說,即便是多執行緒優化良好
的遊戲裡也會成為主要瓶頸。
http://i.imgur.com/Rqx0jIw.jpg

--

All Comments

Lucy avatarLucy2017-04-07
未看先推
Skylar DavisLinda avatarSkylar DavisLinda2017-04-10
讚讚 好文
Agnes avatarAgnes2017-04-11
先推以免別人說我看不懂
Charlotte avatarCharlotte2017-04-15
VEGA再怎麼改善效率,在DX11還是難敵1080Ti吧?
應該主力都放在推DX12,這樣CPU也能受益
Una avatarUna2017-04-18
那也要今年和明年DX12馬上變主流
Christine avatarChristine2017-04-20
預購了EVGA 1080Ti FTW3,但還是觀望VEGA能夠爭氣QQ
Jake avatarJake2017-04-25
....gamework
Olivia avatarOlivia2017-04-27
下一代主機就會換dx12了 再等幾年amd就會贏了
Madame avatarMadame2017-05-01
要稱多久阿
Mason avatarMason2017-05-05
沒錯,等到2020年就知道誰的褲子沒穿
Selena avatarSelena2017-05-06
農企一代架構可以馬甲三代...
Selena avatarSelena2017-05-07
然後還能跟NV對打...
Tristan Cohan avatarTristan Cohan2017-05-10
馬甲的那三代後面被打爆了
Emily avatarEmily2017-05-11
Polaris有做改良和更新到14nm製程
Ida avatarIda2017-05-14
海水要退還要好幾年勒
Candice avatarCandice2017-05-18
推。
Vanessa avatarVanessa2017-05-23
馬甲三代的不是GT系列嗎?
Quintina avatarQuintina2017-05-27
id的doom竟然是做了這麼強的編寫能力
Isabella avatarIsabella2017-05-30
Zora avatarZora2017-06-02
等DX12變主流 NV也不是不能改架構阿……
David avatarDavid2017-06-02
嗯 改回費米打自己臉嗎? wwwwwww
Hedy avatarHedy2017-06-06
現在怕的就是AMD追上來後 NV的架構也做深度優化跟改
善了
Joseph avatarJoseph2017-06-08
笑了 DX11一開始是誰佔優勢? A粉多用點腦子看看歷
史吧
James avatarJames2017-06-13
腦子哥這篇居然沒用噓了 QAQ
Catherine avatarCatherine2017-06-15
開戰啦!!!
Hazel avatarHazel2017-06-17
雞排準備好了
Gary avatarGary2017-06-19
陳三鼎買好了!
Connor avatarConnor2017-06-24
我比較喜歡吃鮑伯啦,排什麼陳三鼎
Charlotte avatarCharlotte2017-06-26
不要 巴伯那天發現用林鳳營 秒打入冷宮
Puput avatarPuput2017-06-26
先推以免別人說我看不懂
Charlotte avatarCharlotte2017-06-29
Dx9都還活的好好的
Leila avatarLeila2017-06-30
可惡 原來未來還是nv的
Genevieve avatarGenevieve2017-07-03
Dissipate: 笑了DX11一開始是誰佔優勢? ← 當然是
Bethany avatarBethany2017-07-08
A家啦,因為第一張支援DX11的顯卡是5870,而N家的第
Andy avatarAndy2017-07-11
一張支援DX11的顯卡還沒上市勒(GTX480 2010-4上市)
Michael avatarMichael2017-07-12
兩者上市時間足足差了半年!
Blanche avatarBlanche2017-07-15
不止啦 DX應該從8.1之後每代都是A卡先搞好
然後A卡就會爽吃兩年擺爛 然後被NV痛宰又再努力一年
Ina avatarIna2017-07-18
不過前幾年的落後已經是資金被抽走的問題了
Sierra Rose avatarSierra Rose2017-07-19
蘇媽把錢投去U,老黃從Maxwell後壓著農企打
Emma avatarEmma2017-07-20
這次Ryzen賣的不錯 Raja應該比較有錢搞研發了QQ
Liam avatarLiam2017-07-24
上次不是蘇媽抽的吧.. 是前CEO Rory
Emma avatarEmma2017-07-24
賣得不錯也是下一代Navi才會受惠吧? VEGA都開發完
了 雖然說開發VEGA是拿M軟的錢就是XD
Erin avatarErin2017-07-29
這應該要看蘇媽的態度 賣掉RTG一直都是選項之一
Odelette avatarOdelette2017-08-01
為什麼要賣掉RTG? 這樣對AMD有好處嗎?
Blanche avatarBlanche2017-08-06
不過沒人想買 便宜的時候沒人要 貴的時候出不起QQ
Michael avatarMichael2017-08-07
前CEO把錢押去ARM跟K12 雖然也沒搞出啥名堂
Mason avatarMason2017-08-09
對RTG有好處壓
RTG離開amd 想用的都可以用
Oscar avatarOscar2017-08-11
賣掉的消息好像一直有 不過賣了搞那麼多年的APU怎
麼辦?
Mason avatarMason2017-08-12
apu跟RTG授權就好
Charlotte avatarCharlotte2017-08-16
不研發買授權用現成的?
Hardy avatarHardy2017-08-16
賣掉RTG 微軟和索索會不會抖一下啊..
Rebecca avatarRebecca2017-08-19
主要的問題是沒多少人懂gaming 作平行運算的規模也
不夠大
當然就是想拐M軟跟S尼來買 表對手
大家都知道蘇媽當初在想捨摸 只是沒人想搞競標
Caitlin avatarCaitlin2017-08-23
這兩家看起來 索索應該買不起RTG啦
可是M軟就算買得起 買他又要幹嘛XD
George avatarGeorge2017-08-24
快兩年前amd要掛的時候蘇媽只要是救命錢都收
Erin avatarErin2017-08-28
就表S尼
不過M軟新CEO不太想衝xb
Charlotte avatarCharlotte2017-08-31
拐M和S買好像還是會騙錢的感覺XD
Kristin avatarKristin2017-09-02
lol
Heather avatarHeather2017-09-03
M軟買RTG以後遊戲絕對是Radeon驅動值五千啊
Erin avatarErin2017-09-04
不太想衝XB怎摸還會有天蠍?
Ingrid avatarIngrid2017-09-08
不想自己買頭牛啊XD
William avatarWilliam2017-09-12
天蠍只是照既定路線作而已
Leila avatarLeila2017-09-13
不過我不懂 如果M軟買RTG 那CPU還是得跟別人買不是
嗎? 這樣有賺頭嗎?
Gary avatarGary2017-09-16
搞死索索而已QQ
搞死對手 運氣好就是通吃
Aaliyah avatarAaliyah2017-09-18
當然婊對手是一招 可是M軟就算沒XB也沒差吧
Quintina avatarQuintina2017-09-22
那RTG獨立出來一間公司 有沒有搞頭?
Hedda avatarHedda2017-09-27
沒錢QQ
Mason avatarMason2017-09-30
未看先推大師要出來收割了
Edward Lewis avatarEdward Lewis2017-10-02
說不定連桌上型顯卡都通吃了哩
William avatarWilliam2017-10-04
老黃不致於坐以待斃喇
老黃黑招多的是QQ
Edward Lewis avatarEdward Lewis2017-10-08
M軟的硬體軟體都自家人啊
Hedwig avatarHedwig2017-10-13
RTG賣給intel有沒有搞頭啊XD
Agatha avatarAgatha2017-10-17
當初Ati據說跟intel也走得很近,結果AMD被溢價收購w
Ati員工當初本來都以為是賣給intel
Agatha avatarAgatha2017-10-18
老黃除非AI那塊全部打水飄 不然穩穩的吧
David avatarDavid2017-10-18
被intel買走會不會變成統一全世界啊
Selena avatarSelena2017-10-19
賣給Intel大概就準備養老了(?)
Olga avatarOlga2017-10-22
intel沒啥興趣衝GPU
Tom avatarTom2017-10-23
被intel買走 老黃就跟amd惹
intel當年是有興趣的優 只是出惹拉拉比太糞
Frederica avatarFrederica2017-10-25
RTG部門現在在AMD內部分不到太多資源QQ
Emma avatarEmma2017-10-25
買了我猜跟iGPU現狀差不了多少
我記得Intel喊了沒多久就裝死不是?
Valerie avatarValerie2017-10-30
現在好很多 2015那時候很慘
現在蘇媽想幹大事都會扯到gpu
Gilbert avatarGilbert2017-11-01
現在RTG部門的頭頭 Raja 也不是很爽這件事QQ
Edith avatarEdith2017-11-04
cpu沒辦法 沒梗 就市場大 超大
可是想搞dl/ai 那只有找顯卡QQ
Anthony avatarAnthony2017-11-08
14年明明就還好QQ
Harry avatarHarry2017-11-09
GPU大改架構也需要花大錢跟時間,現在AMD還沒那麼多
錢可以讓Raja研發新的架構QQ
結果就是一直在改GCN QQ
Valerie avatarValerie2017-11-11
今天股價又鳥鳥QQ
Erin avatarErin2017-11-13
最近應該固件都是這樣吧
股價
Aaliyah avatarAaliyah2017-11-17
幹嘛改掉GCN? 給我一個改掉GCN的理由
Dinah avatarDinah2017-11-18
Raja也對GF很無奈不是QQ
Kelly avatarKelly2017-11-20
無奈沒關係啊 GF做得出Zen AMD大概就超爽了
Suhail Hany avatarSuhail Hany2017-11-22
不然以後給牙膏廠代工GPU好惹
Charlotte avatarCharlotte2017-11-24
何況更大的Polaris都做出來了 該知足了喇
Andy avatarAndy2017-11-29
看不懂,但還是推
Quanna avatarQuanna2017-12-02
我也是看過RTG想賣掉的傳聞
Eartha avatarEartha2017-12-03
M$和索索都不會買,只能AMD繼續養
住破屋沒辦法惹
Kristin avatarKristin2017-12-04
上次在版上問人還被嗆說有賺錢幹嘛賣QQ
Kama avatarKama2017-12-08
價錢不對怎樣都不會買,要喝奶幹啥花大錢養牛
Skylar Davis avatarSkylar Davis2017-12-12
所以我覺得蠻好奇的,怎麼會有這種風聲
Kama avatarKama2017-12-12
DX12的Indirect Drawing可以將Draw Call的command
存成一種buffer的形式一口氣一次丟給GPU執行
Genevieve avatarGenevieve2017-12-14
教主上面說了 窮 沒錢 什麼都想賣
Sierra Rose avatarSierra Rose2017-12-18
數百千計Draw Call程式這邊執行一次ExecuteIndirect
就能執行了,軟體商只要好好優化一定能發揮好它
Poppy avatarPoppy2017-12-22
現在應該是暫時沒有賣RTG 的打算了
Steve avatarSteve2017-12-27
NV現在的架構不是也是從廢米一路小改到現在?
Eartha avatarEartha2017-12-28
Vanessa avatarVanessa2018-01-02
沒拔 費米跟之後的差距很大 是最近兩三代差不多
Noah avatarNoah2018-01-04
如果GCN被取代,一定是因為GCN 2.0後面要接The New
Isla avatarIsla2018-01-09
GCN沒錯
Ivy avatarIvy2018-01-12
GPU架構本來就是用改的,不是用換的
Valerie avatarValerie2018-01-17
修改也只是根據當時軟體趨勢做調整
Odelette avatarOdelette2018-01-21
需求變化很大才會大改。像是從繪圖轉向
GPGPU, 現在又轉向AI...
Joseph avatarJoseph2018-01-24
需求差異大時才換架構。
Necoo avatarNecoo2018-01-25
AMD,許你個未來