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

By Zanna
at 2017-04-03T22:04
at 2017-04-03T22:04
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
--
中文翻譯整理: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
--
Tags:
3C
All Comments

By Lucy
at 2017-04-07T23:44
at 2017-04-07T23:44

By Skylar DavisLinda
at 2017-04-10T15:59
at 2017-04-10T15:59

By Agnes
at 2017-04-11T07:44
at 2017-04-11T07:44

By Charlotte
at 2017-04-15T22:12
at 2017-04-15T22:12

By Una
at 2017-04-18T23:02
at 2017-04-18T23:02

By Christine
at 2017-04-20T18:06
at 2017-04-20T18:06

By Jake
at 2017-04-25T13:10
at 2017-04-25T13:10

By Olivia
at 2017-04-27T10:18
at 2017-04-27T10:18

By Madame
at 2017-05-01T11:11
at 2017-05-01T11:11

By Mason
at 2017-05-05T23:24
at 2017-05-05T23:24

By Selena
at 2017-05-06T14:12
at 2017-05-06T14:12

By Selena
at 2017-05-07T17:08
at 2017-05-07T17:08

By Tristan Cohan
at 2017-05-10T04:53
at 2017-05-10T04:53

By Emily
at 2017-05-11T00:25
at 2017-05-11T00:25

By Ida
at 2017-05-14T20:17
at 2017-05-14T20:17

By Candice
at 2017-05-18T18:22
at 2017-05-18T18:22

By Vanessa
at 2017-05-23T07:56
at 2017-05-23T07:56

By Quintina
at 2017-05-27T08:38
at 2017-05-27T08:38

By Isabella
at 2017-05-30T14:44
at 2017-05-30T14:44

By Zora
at 2017-06-02T04:10
at 2017-06-02T04:10

By David
at 2017-06-02T12:46
at 2017-06-02T12:46

By Hedy
at 2017-06-06T10:13
at 2017-06-06T10:13

By Joseph
at 2017-06-08T21:20
at 2017-06-08T21:20

By James
at 2017-06-13T02:00
at 2017-06-13T02:00

By Catherine
at 2017-06-15T21:34
at 2017-06-15T21:34

By Hazel
at 2017-06-17T03:55
at 2017-06-17T03:55

By Gary
at 2017-06-19T14:48
at 2017-06-19T14:48

By Connor
at 2017-06-24T11:40
at 2017-06-24T11:40

By Charlotte
at 2017-06-26T09:10
at 2017-06-26T09:10

By Puput
at 2017-06-26T23:52
at 2017-06-26T23:52

By Charlotte
at 2017-06-29T05:00
at 2017-06-29T05:00

By Leila
at 2017-06-30T22:05
at 2017-06-30T22:05

By Genevieve
at 2017-07-03T13:16
at 2017-07-03T13:16

By Bethany
at 2017-07-08T03:46
at 2017-07-08T03:46

By Andy
at 2017-07-11T20:21
at 2017-07-11T20:21

By Michael
at 2017-07-12T23:07
at 2017-07-12T23:07

By Blanche
at 2017-07-15T04:35
at 2017-07-15T04:35

By Ina
at 2017-07-18T02:06
at 2017-07-18T02:06

By Sierra Rose
at 2017-07-19T15:01
at 2017-07-19T15:01

By Emma
at 2017-07-20T14:02
at 2017-07-20T14:02

By Liam
at 2017-07-24T07:26
at 2017-07-24T07:26

By Emma
at 2017-07-24T20:57
at 2017-07-24T20:57

By Erin
at 2017-07-29T16:46
at 2017-07-29T16:46

By Odelette
at 2017-08-01T20:55
at 2017-08-01T20:55

By Blanche
at 2017-08-06T08:40
at 2017-08-06T08:40

By Michael
at 2017-08-07T06:53
at 2017-08-07T06:53

By Mason
at 2017-08-09T02:33
at 2017-08-09T02:33

By Oscar
at 2017-08-11T04:58
at 2017-08-11T04:58

By Mason
at 2017-08-12T04:46
at 2017-08-12T04:46

By Charlotte
at 2017-08-16T02:59
at 2017-08-16T02:59

By Hardy
at 2017-08-16T10:37
at 2017-08-16T10:37

By Rebecca
at 2017-08-19T02:40
at 2017-08-19T02:40

By Caitlin
at 2017-08-23T01:31
at 2017-08-23T01:31

By George
at 2017-08-24T07:28
at 2017-08-24T07:28

By Erin
at 2017-08-28T17:03
at 2017-08-28T17:03

By Charlotte
at 2017-08-31T21:19
at 2017-08-31T21:19

By Kristin
at 2017-09-02T15:45
at 2017-09-02T15:45

By Heather
at 2017-09-03T05:56
at 2017-09-03T05:56

By Erin
at 2017-09-04T17:24
at 2017-09-04T17:24

By Ingrid
at 2017-09-08T15:05
at 2017-09-08T15:05

By William
at 2017-09-12T17:57
at 2017-09-12T17:57

By Leila
at 2017-09-13T21:32
at 2017-09-13T21:32

By Gary
at 2017-09-16T13:16
at 2017-09-16T13:16

By Aaliyah
at 2017-09-18T16:33
at 2017-09-18T16:33

By Quintina
at 2017-09-22T21:13
at 2017-09-22T21:13

By Hedda
at 2017-09-27T11:08
at 2017-09-27T11:08

By Mason
at 2017-09-30T00:53
at 2017-09-30T00:53

By Edward Lewis
at 2017-10-02T11:02
at 2017-10-02T11:02

By William
at 2017-10-04T12:25
at 2017-10-04T12:25

By Edward Lewis
at 2017-10-08T21:04
at 2017-10-08T21:04

By Hedwig
at 2017-10-13T09:11
at 2017-10-13T09:11

By Agatha
at 2017-10-17T19:16
at 2017-10-17T19:16

By Agatha
at 2017-10-18T05:52
at 2017-10-18T05:52

By David
at 2017-10-18T23:42
at 2017-10-18T23:42

By Selena
at 2017-10-19T01:10
at 2017-10-19T01:10

By Olga
at 2017-10-22T08:39
at 2017-10-22T08:39

By Tom
at 2017-10-23T20:36
at 2017-10-23T20:36

By Frederica
at 2017-10-25T19:37
at 2017-10-25T19:37

By Emma
at 2017-10-25T22:43
at 2017-10-25T22:43

By Valerie
at 2017-10-30T09:37
at 2017-10-30T09:37

By Gilbert
at 2017-11-01T00:21
at 2017-11-01T00:21

By Edith
at 2017-11-04T22:46
at 2017-11-04T22:46

By Anthony
at 2017-11-08T10:31
at 2017-11-08T10:31

By Harry
at 2017-11-09T02:27
at 2017-11-09T02:27

By Valerie
at 2017-11-11T04:42
at 2017-11-11T04:42

By Erin
at 2017-11-13T18:28
at 2017-11-13T18:28

By Aaliyah
at 2017-11-17T04:04
at 2017-11-17T04:04

By Dinah
at 2017-11-18T20:11
at 2017-11-18T20:11

By Kelly
at 2017-11-20T00:40
at 2017-11-20T00:40

By Suhail Hany
at 2017-11-22T20:46
at 2017-11-22T20:46

By Charlotte
at 2017-11-24T13:20
at 2017-11-24T13:20

By Andy
at 2017-11-29T10:59
at 2017-11-29T10:59

By Quanna
at 2017-12-02T08:29
at 2017-12-02T08:29

By Eartha
at 2017-12-03T05:03
at 2017-12-03T05:03

By Kristin
at 2017-12-04T12:03
at 2017-12-04T12:03

By Kama
at 2017-12-08T11:01
at 2017-12-08T11:01

By Skylar Davis
at 2017-12-12T04:05
at 2017-12-12T04:05

By Kama
at 2017-12-12T15:37
at 2017-12-12T15:37

By Genevieve
at 2017-12-14T18:22
at 2017-12-14T18:22

By Sierra Rose
at 2017-12-18T03:31
at 2017-12-18T03:31

By Poppy
at 2017-12-22T15:31
at 2017-12-22T15:31

By Steve
at 2017-12-27T02:58
at 2017-12-27T02:58

By Eartha
at 2017-12-28T17:14
at 2017-12-28T17:14

By Vanessa
at 2018-01-02T00:37
at 2018-01-02T00:37

By Noah
at 2018-01-04T22:08
at 2018-01-04T22:08

By Isla
at 2018-01-09T11:50
at 2018-01-09T11:50

By Ivy
at 2018-01-12T11:43
at 2018-01-12T11:43

By Valerie
at 2018-01-17T08:35
at 2018-01-17T08:35

By Odelette
at 2018-01-21T04:23
at 2018-01-21T04:23

By Joseph
at 2018-01-24T16:56
at 2018-01-24T16:56

By Necoo
at 2018-01-25T10:17
at 2018-01-25T10:17
Related Posts
25K文書影音機

By Charlie
at 2017-04-03T21:24
at 2017-04-03T21:24
10K左右架網站小主機請益

By Irma
at 2017-04-03T20:08
at 2017-04-03T20:08
Kaby Lake-G in da house

By Daph Bay
at 2017-04-03T19:05
at 2017-04-03T19:05
想請較這樣升級對程式編譯速度的改善

By Joe
at 2017-04-03T18:58
at 2017-04-03T18:58
ASUS X370-PRO BIOS 0515

By Jack
at 2017-04-03T18:54
at 2017-04-03T18:54