见证电竞产业华丽转身的英特尔:游戏性能很重要,开发者更重要

英特尔如何优化游戏性能?
作者丨周雅

几乎每年的ChinaJoy都少不了英特尔的大招,今年也一样,英特尔联合京东现场包馆张罗了一场VR电子竞技国际大赛(简称VRES)媒体杯电竞体验赛。话说VRES已经发展到了第四届,而今年它又有新玩法——将「VR」和「5G」组合在一起,玩家无须背上沉重的“三级包”,只需VR眼镜一戴,轻装上阵。

图为ChinaJoy2021英特尔展台。

在当天的媒体分享会上,谈到英特尔赞助这场VR电竞赛的缘由,英特尔市场部总经理吕冬指出有两个原因:一方面,相比于传统电竞,VR电竞的高沉浸式、高互动式的属性更符合未来发展趋势;另一方面,全世界都在好奇“5G的杀手级应用是什么”,尽管VR/XR中高清晰度、高流畅性和极致交互体验感,对网络和计算力提出了更高的需求,但这恰恰是5G的强项,所以5G一定程度可以颠覆上一代的VR。比如VRES之所以能实现技术突破,背后就采用了英特尔的至强处理器、酷睿i9处理器的5G边缘计算解决方案。

“英特尔深耕电竞生态近20年,见证了电竞游戏市场的激荡沉浮和华丽转身。”吕冬说道,多年来,英特尔一直在电竞领域持续投入。比如“针对本地非职业玩家打造的”英特尔大师挑战赛,“针对全球最顶级职业玩家打造的”英特尔极限大师赛,近几年的《英雄联盟》全球总决赛,VRES等。此外,英特尔还在与国际奥委会讨论,如何把中国消费者更喜欢的、更主流的游戏带入北京冬奥会,甚至变成奥运的正式比赛。

图:英特尔赞助的全球电竞赛事

英特尔的大量投入不无道理。根据分析机构Newzoo数据显示,2021年全球游戏玩家数量达14 亿,到2023年全球游戏市场的收入将实现2000亿,庞大的数字意味着游戏不再是小众产业。再看今年的ChinaJoy,现场感受到的微妙变化是,参展的非游戏厂商势头更劲,这同样也印证着一种趋势——游戏产业正在不断破圈。

说到底,英特尔究竟如何赋能游戏产业?英特尔游戏合作技术经理卢卷彬总结道:优化游戏性能。

图:英特尔游戏合作技术经理卢卷彬在ChinaJoy2021媒体分享会。

这里有一个最简单的游戏架构,说是简单,但却覆盖了复杂的驱动和硬件、中间件、引擎、游戏内容4层架构,当中涉及到的厂商很多、模块很多、代码巨大,所以优化游戏性能并非易事。不过也有好处,就是当一个系统太复杂的时候,好比人类社会,就存在分工,每个“人”把自己的那一块做大,然后开放给更多开发者,大家一起把产业生态建好。

那么性能优化如何去做呢?一言以蔽之,就像把大象装冰箱,找到问题,解决问题。相对而言,找到问题更重要,因为在互联网时代,你遇到任何的问题都不是你独有的问题。

通常,游戏性能要看「硬件」和「软件」,硬件又主要看CPU和GPU。CPU层面,游戏体积越大,对 CPU的要求就越高。在这方面,英特尔经常会去收集市面上几十上百款游戏,分析这些游戏在公司的最新架构处理器上的表现,以改进产品。

比如英特尔几十年来沉淀了一整套性能分析工具「Vtune」。用卢卷彬的话来说就是,无论是服务器,还是客户端,Vtune可以从系统层面到每一个线程,每一个DLL,每一个函数,每一行代码,再到汇编,都可以给你整的清清楚楚、明明白白。而且它是免费的。

图为英特尔Vtune程序示例1。左边为该程序的利用情况,右边为对微架构的分析、针对性建议,便于开发者了解情况。

图为英特尔Vtune程序示例2。左下角是每个线程的概况,包括线程之间的同步关系、替代关系等,便于开发者了解情况。

GPU层面,英特尔也有一个工具「GPA」。卢卷彬介绍,游戏的总体情况,具体到每一个Pass,每一个Draw call,每一个Shader,每一个参数,都可以通过GPA发现并定位,以便开发者知道是什么情况。

图为英特尔GPA程序示例。

比如游戏突然掉帧的情况,你不知道它是在哪掉的,也根本来不及抓取。英特尔GPA可以抓取一段时间里的每一帧的Frame并显示出来,这样你就可以点击其中最耗时的那一帧看详细数据;此外,它也会对这一帧进行3D Pipeline分析,以便开发者找到问题。

除了工具之外,人也是非常重要的。英特尔在发布一些新平台的时候,会把测试版机器先给到开发者,让他们提前进行适配;同时英特尔还提供测试服务,帮助开发者的游戏对大部分的平台做性能分析或测试,并反馈给他们,开发者才会有目的性地优化平台。

上述谈到的是如何找问题,接下来就是解决问题。英特尔有四招:

第一,发现和修正代码。由于一款游戏的代码数量非常大且非常复杂,尤其是每个游戏团队中的分工很多,既有程序开发,也有美工,经常存在互相之间考虑的问题,而英特尔的工具会优化这个问题。

第二,并行优化。如果说GPU是处理几百万个单独的三角形,那么CPU就是处理无数个相互作用的模块——前者的三角形之间没有依赖的, 所以优化起来相对简单,用几百个或者是几千个显卡单元去计算,都可以得到非常线性的性能提升;但是CPU的模块之间互相依赖且互有逻辑,优化起来非常难。

在这方面,英特尔与合作伙伴合作开发了很多程序,帮助游戏开发者解决这些问题。比如和Unity合作做了ECS和Job system,和Unreal做了Unreal Task system,用线程池的方式,把任务都提交到 Unreal的任务系统当中,去充分应用多线程。

第三,算法优化。这需要针对具体游戏具体分析,所以需要游戏开发者与英特尔一起讨论并找到优化方式。

第四,底层架构优化。当一个游戏开发者把前面的都做好了,还是觉得性能不 好,如果也有余力、有时间,可以进行一些底层架构的优化,那么英特尔的工程师也会提供建议给他们,让他们自己评估。

图:英特尔对游戏性能的优化成果。

“游戏开发者就是我们的客户,客户就是上帝,我们会持续跟他们一起合作,开发更多有创造性的产品。”卢卷彬说道。

(0)

相关推荐