[返回游戏天地首页]·[所有跟帖]·[ 回复本帖 ] ·[热门原创] ·[繁體閱讀]·[版主管理]
多核心还是高主频?聊聊CPU对于游戏性能的影响
送交者: tekkenman[☆★★铁拳男★★☆] 于 2018-10-24 9:42 已读 1786 次 2 赞  

tekkenman的个人频道

前言:显卡是PC游戏跑顺畅的关键零部件,一台优秀高效的游戏PC也需要一颗动力澎湃的芯。我们今天就来聊一聊CPU通过哪些方面来对游戏性能产生影响。 6park.com

1

当你打开电脑开始游戏的时,可曾想过现代计算机如何将单调的0和1转换为精彩纷呈的电子游戏? 6park.com

我们在 Steam 上点击购买了一款心仪的游戏后,迫不及待地开始下载,下载完成后的游戏数据储存在了电脑的硬盘(Hard Drive)里。按下“启动”按钮之后,硬盘开始运转,将游戏数据通过传输通道传输到了内存(RAM)中等待调取,而此时 CPU 根据游戏程序的指令开始调度各种游戏资源,如播放开场动画,执行游戏脚本。 6park.com

此时 GPU 也开始了自己的工作,由于 GPU 不能直接访问 CPU 的内存(RAM),所以它有自己的专用显存(VRAM)。复杂的场景与精美的光影效果,以及逼真的物理运算让 GPU 在运行游戏时保持满载状态。随着游戏画面的进化与游戏引擎的不断升级,现代电子游戏的复杂程度已经远超以前,GPU 需要处理的模型、纹理以及其他各种画面特效也越来越多,为了让游戏帧数与画质保持一个相对较高的水平,游戏业界对 GPU 性能增长的需求远远高于对 CPU 性能的渴望。 6park.com

6park.com

那 CPU 在游戏运行时就成了一个无关紧要的角色吗?答案当然是否定的。 6park.com

CPU 根据游戏程序的设定来指导 GPU 的工作,大部分游戏画面的变化都需要 CPU 进行运算完毕后,将结果传递给 GPU,才能正确的进行渲染、展示给玩家。一块性能强大的显卡也需要一块足够优秀的 CPU 配合,才能发挥出自己的全部实力。 6park.com

很多朋友对多核心在游戏运行时有没有帮助抱有疑问,比较主流的观点认为单核性能才是一切,频率越高越好,也有声音表示多核心对于某些特定游戏有着非常大的优势。游戏作为一种复杂度较高程序类型,对于硬件的需求不能一概而论,我们从处理器核心频率与数量两方面讨论一下 CPU 对于游戏运行的影响。 6park.com

2

电子芯片是人类制造业的皇冠,而现代尖端的中央处理器更是皇冠上的明珠,它代表了人类制造工艺的巅峰。虽然 CPU 的技术含量非常高,实际上主流 CPU 的工作过程在过去十分的“呆板”。我们日常使用的 Windows 这类现代操作系统,多任务操作已经是家常便饭,一边听歌一边浏览网页,后台挂着 IM 通信工具是非常普遍的使用场景。但在多核心处理器大规模普及之前的单核 CPU,同时可以执行的任务只有一个,即单任务处理器。这和我们的使用经验不同:很多年前我们并不是在看网页的时候就不能聊 QQ 了啊! 6park.com

6park.com

我们可以将 CPU 看作一个生产玩具的工厂,这家工厂只有一条流水线,且该流水线一次只能做一件事情。当需要生产玩具小车的时候,那么就不能做毛绒娃娃。理想情况下,工厂可以按照用户的订单按照顺序依次生产,就算一次只能做一件事情,还是可以把事情做好。但是用户突然临时改变主意要多生产一些玩具小车,暂停毛绒娃娃的生产,那么工厂就只能停下来,切换到玩具小车的生产模式。在实际的电脑使用情境中,这样的切换可以由操作系统完成,也可以由 CPU 本身来完成,不同任务之间的切换十分迅速,切换时间通常以 ms 计,用户根本不会发觉。 6park.com

6park.com

现在主流的程序语言都是“高级编程语言”,而CPU所能处理的都是“辣鸡编程语言”,不对,是机器语言,也就是0和1。程序员们为了让自己的生活变得轻松一点,将底层硬件所能识别的机器语言抽象包装成便于人类理解和使用的各类高级程序语言,现代主流的游戏引擎与游戏程序的编写都是基于高级程序语言来实现。这些高级语言编写的程序经过各种编译器、解释器翻译成 CPU 能理解的机器语言后,CPU 才可以真正开始自己的工作。 6park.com

6park.com

而在这一过程中,单个CPU核心的工作流程如上文所说,是线性的。早期 CPU 一次只能执行一条机器语言命令,这些命令我们一般称为指令。CPU 执行一条指令可能需要几个核心周期,而核心频率很大程度上决定了 CPU 执行指令的速度6park.com

6park.com

当游戏程序的各种指令被转换成机器语言后,依次被 CPU 执行,在 CPU 底层设计架构相同的情况下,更高的核心频率可以在单位时间内执行处理的指令数目更多。 6park.com

反映到游戏上来可以通过一个简单的例子来进行理解: 当我们释放一个火焰系范围伤害技能,击杀了1000个毒蜘蛛,而这毒蜘蛛死亡后会掉下蜘蛛卵,残留在地上的火焰效果持续灼烧这些掉落的蜘蛛卵,有些被烧没了,有些则孵化出了新的蜘蛛。 6park.com

6park.com

在这一个技能效果研判过程中,CPU 需要计算哪些卵被消灭, 哪些又没有,同时新孵化出的蜘蛛会不会继续受到地形火焰的伤害。如果游戏程序没有对这个机制做多线程、多核心优化,在 CPU 主频频率不够高的情况下,这一计算过程就可能产生问题。因为 CPU 核心需要在不断处理游戏程序内其他任务请求的同时,进行如此高密度的计算,计算结果的传递的延迟可能会过高,影响显卡正确渲染及游戏画面的输出。 6park.com

这也是为什么即时战略游戏后期大范围、兵种数量巨大的会战很容易出现掉帧的原因,海量的数据短时间内需要输入到 CPU 核心内,如果是优化不到位的游戏,高主频的 CPU 会有巨大的优势,以各种国产网络游戏最为明显。这些游戏往往场景内玩家、NPC、敌人数量众多,动辄几十人的副本瞬间释放大量游戏技能,由于底层程序一般没有针对多线程进行优化,单核性能与核心频率就变得十分重要。高主频的 CPU 可以更快地处理瞬间暴增的指令数量,让游戏运行的更加流畅。 6park.com

核心频率并不是决定 CPU 对游戏性能影响的全部,x86 架构经过40年的发展,Intel 不仅将 CPU 核心内部对于指令处理速度做了非常多的优化,还在指令被处理之前也有很多巧妙的设计,甚至针对某些常用的指令以硬件电路的形式做了针对性的强化。种种措施让 Intel 的处理器在很长一段时间里,以较低的频率和较少的核心在性能上压倒自己的竞争对手。 6park.com

3

在游戏程序运行过程中,CPU 需要进行各种各样的运算切换,这些切换过程必须控制的非常短,稳定性也必须足够高。多线程技术2002年才开始崭露头角,而多核心处理器更是到了2006年以后才开始慢慢普及。在这之前的所有游戏都是以这样的模式为基础进行设计,在这期间兴起的很多游戏引擎也是针对单核处理器硬件基础做的设计与优化。不停的切换任务肯定有延迟,在多核心处理器普及之后,为了取得更好的性能,游戏业界应该会很快的针对多核多线程进行深度优化才对,为何到了今天,四核打底,六核、八核都已经成为主流了,大部分游戏还是高度依赖单核性能呢? 6park.com

6park.com

Intel Core i7 8700K Die 6park.com

6park.com

在程序设计领域,为了实现一个功能所编写的第一版代码往往只是为了能让程序勉强运行成功,验证工程师的设计思路,后续为了提升性能会进行很多次的代码重构与优化,在游戏开发领域更是十分常见的做法。在普通的应用程序内,所涉及到的外部资源调用还不算特别多,而游戏则完全不一样,现代电子游戏里,程序代码只是非常小的一部分,动辄几十GB,甚至上百GB的游戏,代码核心可能只占到10%不到的容量。剩余的都是庞大的素材贴图资源,各式各样的音频素材等等。以射击游戏为例,不同枪械的射击声音,子弹撞击到不同材质表面发生的碰撞声,人物与各种物体互动的声音等等。这些游戏素材需要以正确的方式进行表现,否则对游戏的体验会产生极大的影响。 6park.com

我们假设单核状态下,游戏引擎可以按部就班的根据程序来调度各种资源,程序员所需要做的大部分优化都是单一维度的,不需要考虑多核心互相协作、相互通信的过程。但是到了多核心、多线程下,不同的核心负载不同的任务,或者多核心协作合力完成同一件工作,看似可以将硬件利用率提高,提高整体效率,但这样会带来一个严重的问题,那就是程序复杂度会成指数上升。 6park.com

6park.com

在一款射击游戏里,假设第一个 CPU 核心负责子弹轨迹的运算,第二个核心负责声音资源的调度,第三个核心负责材质贴图的替换(实际上不会有游戏这么干),那么仅仅玩家开枪这一个动作就需要三个核心的互相通信与数据传递,如果这一过程中任意一个核心出了问题,那么其余两个核心就可能出现问题,反应到游戏体验上,要么是玩家开了枪没出声音,或者是打到墙上,墙面岿然不动。当然实际中的游戏程序设计要比这个复杂很多,更多的核心参与带来的不一定是性能的提升,更可能是性能损失。从单核到双核优化如果难度是翻倍,那么双核到四核,甚至六核那么对于程序维护的难度可能就是十倍、二十倍。更多的核心不仅带来性能的暴涨,可能出问题的地方也暴增,对于开发周期紧凑,人员压力巨大的游戏开发工作来说,稍微损失一点性能换来更加稳定的游戏表现是绝对划算的。 6park.com

《DOOM》首席程序员约翰·卡马克在一次演讲中提到,给一段垃圾代码做性能优化要比产生一段垃圾代码更加昂贵,这需要程序员们对原有的代码、设计模式反复不断的修改、验证,如果该处设计牵连到了其他部分,那么真的是牵一发而动全身了。这也是为什么越来越多的 Early Access 游戏性能表现十分糟糕,这些开发商并不急着做性能优化,等到销量起来以后再慢慢去修补。 6park.com

6park.com

但这并不代表着CPU硬件进步没有任何意义,以业内顶尖的顽皮狗工作室为例。PlayStation 3 的 Cell 处理器是出了名的难调教,很多第三方工作室都不能很好的驾驭这颗性能澎湃的核芯,但是作为 Sony 旗下的第一方工作室,顽皮狗在神秘海域系列开发之初就与 Sony 硬件工程师紧密合作,他们所使用的自主研发游戏引擎从底层开始就针对 Cell 处理器进行优化,多核心、多线程协作更是从立项之初就确立的性能指标。在经过了神秘海域三部曲的开发积累之后,顽皮狗在《最后的生还者》这部作品上体现出的技术实力让人得以一窥 Cell 处理器性能全开的样子。顽皮狗内部技术氛围浓厚,每周都有编程比赛,开发团队的平均水平也是行业顶尖,他们有着深厚的技术储备和来自厂商的密切配合,能够让硬件性能100%的发挥出来。 6park.com

而业界其他大厂也不遑多让,EA和育碧的最新3A游戏对于 CPU 多核心的利用率也有了非常大的进步,《刺客信条:起源》与《战地1》都做到了六核心优化,可以看出这些财大气粗的厂商有着足够的人力、物力来进行基础性的研发工作,可以付出更多的成本来充分利用最新最强大的硬件。多核心对于很多游戏类型有着天生的优势,比如早已流行很久的开放世界游戏,即时战略游戏这种多单位、复杂场景的游戏类型,更多的核心可以支撑游戏实现更加复杂的效果与互动。不同于显卡性能提升所带来的画面提高,CPU 性能的提升对于游戏性能的影响没有那么直观,但 CPU 是游戏顺畅稳定运行的幕后功臣。 6park.com

4

现代主流市场上,提到组建游戏 PC,大部分人推荐的首要选择就是 Intel,这是因为 Intel 的发展路线就和游戏业界比较契合。 6park.com

6park.com

2006年是 Intel 发展的分水岭,Pentium 4 的失败带来的影响是巨大的,AMD 一时之间可以和 Intel 分庭抗礼,在这一年 Intel 推出了全新的 Conroe 架构,大幅度改善发热、功耗与流水线性能,将提升单核性能作为最主要的方向。 6park.com

Intel 首先将核心频率降低,将整体发热降低后,再将流水线整体结构对半砍,大幅精简了流水线流程,提高了处理效率,配合引入的动态频率调节技术,使得采用 Conroe 架构设计的 CPU 将每瓦特性能提到了一个新的高度,相对于 Pentium 4 和 Pentium D 处理器,新处理器能够在提供40%的性能提升的同时,减少40%的功耗。 6park.com

后续的 Nehalem 架构进一步优化设计,重新引入超线程(Simultaneous Multithreading)以及一系列 Intel 新研发的 CPU 技术,进一步深挖单核性能。不仅如此,Intel 还积极与游戏公司、开发者合作,还成为了 GDC(Game Developer Conference)的钻石赞助商,将自己的影响力扩大到整个游戏业界。 6park.com

6park.com

在大部分游戏开发商无力针对多核、多线程做深度优化的情况下,单核性能更强的 Intel 处理器在无需任何额外优化的情况下就可以表现的更加优秀,不仅如此,由于 Intel 处理器注重功耗与发热控制的设计,让处理器在运行游戏时散发的热量更低,让玩家电脑的整体温度可以控制在一个相对合理的水平。AMD 的处理器为了弥补单核性能的不足,将工作频率设定的更高,整体发热量十分恐怖,拉高了机箱内部的温度,更可能触发温度墙导致芯片降频,性能进一步降低。 6park.com

游戏开发者们必须在各种各样的妥协中开展他们的工作,一款游戏的制作,程序架构是基础,但并不是全部,游戏制作预算不足的情况时有发生,我们不能责怪他们为什么不针对多核做更多更好的优化,只能根据实际情况选择合适的零部件来达到自己想要的游戏效果。 6park.com

评分完成:已经给本帖加上 30 银元!

喜欢tekkenman朋友的这个贴子的话, 请点这里投票,“赞”助支持!
[举报反馈]·[ tekkenman的个人频道 ]·[-->>参与评论回复]·[用户前期主贴]·[手机扫描浏览分享]·[返回游戏天地首页]
帖子内容是网友自行贴上分享,如果您认为其中内容违规或者侵犯了您的权益,请与我们联系,我们核实后会第一时间删除。

所有跟帖:        ( 主贴楼主有权删除不文明回复,拉黑不受欢迎的用户 )


用户名:密码:[--注册ID--]

标 题:

粗体 斜体 下划线 居中 插入图片插入图片 插入Flash插入Flash动画


     图片上传  Youtube代码器  预览辅助

打开微信,扫一扫[Scan QR Code]
进入内容页点击屏幕右上分享按钮

楼主本栏目热帖推荐:

>>>>查看更多楼主社区动态...






[ 留园条例 ] [ 广告服务 ] [ 联系我们 ] [ 个人帐户 ] [ 版主申请 ] [ Contact us ]