日本电子维修技术 显卡【AMD/NVIDIA】HWS vs SWS: 谁是赢家?




http://www.mykancolle.com/?post=1589

NerdTechGasm做了一期视频讲述了GCN架构和NVIDIA从Fermi到现在Scheduler的变化能够很清楚的解释为什么当前GCN的A卡在DX11下性能不及N卡,以及为何DX12下A卡发挥更好,而N卡CPU占用率高(偷U)
典型的DX11游戏中,Draw Call全在主线程上,瓶颈比较严重

使用Command Lists/CMDList时,将Draw Call打包分给其他核心处理后再交给主线程,一定程度上缓解瓶颈但并没有完全解决问题,因为有硬件瓶颈在。

NV的DX11驱动永远都是多线程的通过上面的CMDList “Server”进程实现,“Server”进程监控Draw Call,拦截Draw Call后分给各个线程这个解决方法很好。驱动是从AMD开始在BF4上试水Mantle之后出来的。

新的DX11“多线程”驱动使得N卡受CPU单线程的瓶颈影响小了很多只能用到1-2个线程的优化很差的游戏突然在N卡上跑的快了很多,同时导致非常吃CPU的PhysX在N卡上变得几乎没有负面影响。

这也是为什么N卡在DX11上占优的原因。




Draw Call提交到GPU后,调度器决定如何把工作分配给CU/SMX然后通过HW Warp Scheduler分配给SP/CUDA核心

之前在Fermi上,NVIDIA设计了一个很强大的HWS-GigaThread Engine,类似于目前GCN的HWS


Fermi因为功耗太高被称为核弹为了提升能效,在Kepler上NV砍掉和简化了很多东西,其中就包括HWS,改为软件,也就是驱动来进行的SWS。


NV的调度器是基于软件的,也就是驱动程序。它可以接受许多CMDList,甚至是比较大的那种,因为它们在执行前都被缓存了。驱动程序确定了工作如何分配到每个SMX。
所以在游戏时N卡的CPU占用率会比A卡高不少,也就是偷U


AMD GCN上使用的则是硬件调度器HWS,驱动不负责分配工作,直接交给GPU,然后由HWS决定工作分配。设计上HWS更依赖于即时的内容,也就是要保持持续的Draw Call一直进入,而不是CMDList这种必须打包后分发的庞然大物。GCN的HWS缺乏妥善支持CMDList的缓存/机制。

如果直接将CMDList送到AMD GPU,驱动就需要重新处理,这会浪费CPU资源。Polaris的HWS可以缓存一点点,主进程瓶颈比之前几代GCN稍有改善。

DX11下对A卡来说最理想的情况,将游戏逻辑(AI、物理、音效等)尽量分配到其他的线程,缓解主线程的瓶颈

在DX11下,多线程优化良好的游戏中的情况

而DX12和Vulkan等low-level API就不一样了DX12和Vulkan可以真正完全利用到GCN的HWS的优势,主线程的瓶颈大大降低。

当然,在N卡上由于没有HWS,就由驱动来承担。并行线程越多,合并、优化、分发等工作对于N卡的SWS就越困难。对于软件工程师来,说想在DX12上实现NV在DX11上一样的效率就非常需要技巧。
在3DMark API overhead测试里的结果并不能直接体现游戏中的情况,因为真正的游戏远比测试复杂得多。3DMark测的只是理论上的,在现实中永远不会出现的场景。

事先说明,N卡依然能在DX12和Vulkan中获得性能提升。只是需要游戏开发者的大量经验和调整比如id Software开发的Doom,采用了Vulkan并且实现了非常高的效率(可以说是目前优化的标杆...)

那么硬件和软件哪个更好?很明显,目前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上提供了更好的性能。

而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来说,即便是多线程优化良好的游戏里也会成为主要瓶颈。

来源:https://youtu.be/nIoZB-cnjc0,本站整理翻译,转载请注明出处。


评论
更好的利用CPU能被说成偷U,嘿

评论

负优化还是出自石村嘴里呢,偷U这词也不是这文章原创的

评论
利用率高是好事啊

评论
撞车了https://www.chiphell.com/thread-1722243-1-1.html

评论

按文章的逻辑,如果一个架构做了整整五年,而且还被市场份额最大的,数千万台游戏主机所应用,现在的评价却是这样,到VEGA还要被改掉了,那请问战未来有什么意义?我是不懂的…


评论

新闻区在首页取消后,在那里发帖子还不如去特定版面发来的快

评论
为什么DX12上,这文章就默认A的draw call可以直接并行运行在多核心上了?不了解求解答?

评论

dx11下应用程序只能通过驱动提交drawcall,a卡驱动只能单线程操作ace
dx12可以让程序直接控制ace,就能多线程操作了吧,代价就是代码更难写了

评论
驱动层的就太复杂了,我记得女神很早就说过A卡Draw Call的问题。。

话说现阶段最好的选择岂不是AU+N卡,重回10年前?

评论

打游戏的话,还是77K吧……艹5g难逢敌手啊

a卡 drawcall的问题前两年3dmark出api测试的时候就说过了,同cpu dx11下a卡只有n卡一半的drawcall性能


评论
昨天看到今天,没理解错的话,hws是用来分配任务给各个sm/cu,而主线程那边说得是给cpu线程分配任务的事

还不如继续拿ace的事批判老黄呢

评论
执行端效率低下,调度器强有何用

评论

Ryzen优化速度很快,毕竟本身也不复杂,从2号发布到现在性能提升的很快。。达到6900K的游戏水平就足够了

7700K并不能稳定5G,你可以自己试试看,不开盖风冷根本是压不住的

评论

这个倒是,我用了两个星期,感觉鸡血补丁不停的发可惜我要玩的战争雷霆还是不兼容1700,各种卡顿

评论

在SWS方案出来之前,这句话就得改成调度器不强计算单元再多有什么用…然而架构定型了再大改就很难了

评论

大概懂了…原来DX12可以直接碰HWS吗…这么强…

评论
感觉现在还不是下手的时机

评论

   不是每一颗都能到5G的....一切都得看脸

评论

vega就是执行单元部分大改
140亿还是4096sp你觉的是只在捣鼓调度器吗?

评论

那请问这改了几年,现在我们谈论的GCN又过了几年了,别这么马后炮呀,看看费米好吧

评论
这篇文章很多概念都混淆了

评论

是NerdTechGasm的视频哦。

评论

不管是谁的视频也改变不了这一点

评论
个人觉得现在AMD最重要不是应该把能耗比方面和NV的巨大差距弥补上去才对么?

评论



评论

我的意思是内容有错误可能是视频作者的锅,而不是译者的。我个人支持你写一篇文章对本文做出分析和纠正,我会好好拜读的。

评论

我只说了文章内容有问题,你和我强调谁的问题干啥? 纠正啥的 我在新闻区的帖子已经发过了 不再发了

评论

我看到你说“下面那个图是是指SM内部的指令调度,Fermi的SM是通过硬件Scoreboarding完成指令调度,而Kepler开始改为编译时加入软件调度信息指导,简化了SM硬件,与本文强调的任务调度毫无关系,不知道是原作者还是译者完全没有理解这个区别。”
我只是想学习而已,没别的。

评论
白丁学习留念。不过还是很喜欢这些架构原理性的东西。Fermi Kepler Maxwell Pascal都有GTE啊,Kepler~Pascal简化的只是SM里的调度器啊
看这PPT的意思,GTE和调度器指是一个东西?

评论
喷了贵站看域名和题头是个草船网站,看内容是个amd硬件网站,莫名反差。

评论
A卡在DX12上的理论优势需要大量的优化才能体现,而A卡份额小,还不像NV一样塞钱,开发者凭什么要自找麻烦?
ryzen带起来的cpu跃进更让N卡所谓“偷U”更占便宜,不知农企gpu部有没有妈卖批
AMD很喜欢自己开发新东西试图引领未来,可惜不知自己几斤几两,推土机之后CPU部想通了,回归正常思路上来出个ryzen立马就翻身,不知GPU部什么时候才能想通

评论

这就很影响能效啊…

评论

按这样理解,ACE是A卡的HWS单元,任务调度器,而NV的方案是SWS,靠驱动程序软件调度,在DX11上HWS不能被游戏程序通过API直接访问,对于A卡来说draw call只能通过主线程单线程进行,而N卡通过SWS软件方案可以在DX11这样非低层级的API灵活地将draw call任务拆分给多核CPU,大大提升了效率;DX12则是低层级API,专为A卡的HWS方案而设计,游戏程序可以直接访问HWS(A卡上是ACE单元),按设定将draw call任务拆分,而N卡本身已经将这部分效率优化到很高的水平了,而且由于硬件HWS的缺失,导致游戏程序通过DX12控制HWS的这一过程效率还有所降低,所以N卡在DX12下大部分情况也无法再提升性能,甚至还有所下降了。我的理解对么?
如果我的理解是对的,那么我觉得…作为Xbox的API,DX12的重点就是为了拯救A卡的HWS方案和draw call效率,N卡在这方面本身已经接近优秀,DX12下的A卡追赶上了与DX11下N卡在draw call方面的差距。评价上我认为这是对A卡有利的一个进步,但并不一定对行业有利。DX12强制要求通过HWS而没有具体问题具体分析、给NV合适的空间,我觉得这是不合理的。如果A卡需要像费米架构那样消耗大量HWS资源才能做到的任务,N卡通过SWS将CPU更好、更简单地利用了,那为什么不支持后者呢?更不用说前者在低层级API上的编程难了。看全新的VEGA是什么样了。
如果我的理解不对,还请高手解答。 电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收
 ·日本留学生活 求个大阪合租
·日本留学生活 自家房招租求
·日本留学生活 东京地区出9成新lv钱包
·日本育儿教育 孩子从国内过来如何学习日语
·日本育儿教育 明年四月横滨招月嫂
·日本育儿教育 请问咋让娃突破识字关?感谢分享中文共读和学习经验的妈妈
 ·中文新闻 东区明星迈克尔·格列柯,53 岁,将在第一次出生两年后第二次
·中文新闻 《爱情岛》明星卡米拉·瑟洛和杰米·朱维特在透露即将迎来第三

维修经验

CPUcpu-z 1.77版低调发布

日本维修技术更新: New benchmark “submit and compare” feature New clocks dialog reporting all system’s clock speeds in real-time Preliminary support for Intel Kaby Lake AMD Bristol Ridge processors 主要是增加了支持I、A两个新架构的 ...

维修经验

CPU这几天经常开机黑屏,热重启后又正常

日本维修技术这几天经常开机黑屏,热重启后又正常,今天热重启也不管用了。折腾半天总算点亮,显示超频失败,以前出这个画面我是不理它的,直接重启就能正常进系统了,今天不敢托大,因为 ...

维修经验

CPU超频求助!关于华擎H170和6700K

日本维修技术问题见楼主的show贴 https://www.chiphell.com/thread-1634895-1-1.html 这次华擎的H170 Hyper最大的特色应该是自带时钟发生器可以自由超外频 可是楼主好久没有折腾超频了。。。 两图中除了CPU外频 以 ...

维修经验

CPU液态金属会侵蚀cpu核心吗?

日本维修技术前阵子看到有人说,液态金属时间长了会侵蚀cpu铜盖,那么问题来了,这货会不会侵蚀核心呢? 评论 这玩意儿好像只对铝起反应 评论 不是说,cpu的盖子是铜的吗。。。 评论 不会,核 ...

维修经验

CPUm6i究竟支不支持e3 1231v3

日本维修技术官网上看支持列表没写有e3 1231v3,装机帖又有人晒,百度也没个明确答案,那究竟能不能点亮?有在用的chher说一下么 评论 升级最新bios肯定可以支持 评论 我的p67evo官网上也没说支持12 ...

维修经验

CPU华擎 HYPER 妖板 正确玩法

日本维修技术600元的 B150,10相供电,释放洪荒之力 注意必须官网 Beta 区的 BIOS 有 AVX 的 CPU 可能会掉缓存 启动时按 X 键激活 SKY OC,重启后进入 BIOS 160924164727.jpg (95.63 KB, 下载次数: 1) 2016-9-24 17:47 上传 ...

维修经验

CPUE5 2686 V3和i7 6800K如何选择

日本维修技术默认用,不超频,两者功耗是一模一样的 E5 2686 V3:2.0主频,3.5睿频, 18核心36线程 ,45M L3 咸鱼大约2500~3000元 i7 6800K : 3.5主频,3.8睿频 ,6核心12线程 ,盒装3000元 评论 性能应该是26 ...

维修经验

CPUHD530硬解4K能力还是有点弱呀!

日本维修技术播放器用PotPlay 64bit,各种优化后,跑4K @120Hz视频只能到70帧左右的速度,勉强能用! 显示器用的4K的优派VP2780 未标题-1.jpg (211.97 KB, 下载次数: 0) 2016-9-26 21:29 上传 评论 这个估计你没优化 ...

维修经验

CPU6900k 1.25V到4.2体质怎么样

日本维修技术如图,体质怎么样,ring是35,没敢试了,都说ring高了毁硬件 评论 不错的U,但不算雕,上4.4就大雕了,这电压上4.5的目前没见有人发图 评论 谢谢前辈告知 评论 我这个用1.2V超的4.2,R ...

维修经验

CPUI3 6100 华擎B150M pro4超4.5g测试。

日本维修技术看看论坛没多少i3 6100的帖子,就转下自己发的show贴里面的数据,给大家参考下。家里还有当年的神U i3 540 oc 4.5G在给老妈用。 不知道数据上正常吗?有6100的朋友可以告诉下,另外是不有 ...

维修经验

CPU7系u会兼容100系主板吗?

日本维修技术RT,听说要推200系板,100系还能用吗以后。。 评论 兼容的 评论 感谢!以后换u就行了,目前消息200系板会有新的特性吗? 评论 24条PCI-E 3.0通道、支持Intel Optane混合存储技术、十个USB 3 ...

维修经验

CPU有心入5820k了,求教下温度问题

日本维修技术一直徘徊在6700k和5820k之间,6700k现在这德行直接把我推向了5820k啊,从2600k升级上来,三大件都要换,现在唯一疑惑的是IB-E ex这种顶级风冷能不能压住4.5g的5820呢?毕竟刚刚买一个多月。 ...

维修经验

CPU6600&6600K才100的差价

日本维修技术太少了吧。。。 6600.JPG (106.91 KB, 下载次数: 0) 2016-10-1 10:30 上传 评论 毕竟只是i5而已…… 评论 上z170 6600也能超,等于没区别,差价能有100已经不错了 评论 然后又见不超频人士推荐超频 ...