日本电子维修技术 显卡【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 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收
·日本中文新闻 唐田绘里香为新剧《极恶女王》剃光头 展现演员决心
·日本中文新闻 真子小室夫妇新居引发隐私担忧
·日本中文新闻 前AKB48成员柏木由纪与搞笑艺人交往曝光
·日本学校 {日本国际学校}梅田インターナショナルスクール
·日本学校 LINE:sm287 陳雨菲、20歳、台湾からの留学生、東京に来たばかり
·日本留学生活 出售平成22年走行48000km 代步小车
·日本华人网络交流 円相場 一時1ドル=140円台まで上昇?
·日本华人网络交流 问日本华人一个问题
·日本旅游代购 富山接机
·生活百科 英国转澳大利亚转换插头
·汽车 【求助】修车遇到困难怎么办?