|
编辑注:CocoaChina2013春季开发者大会,于4月13日顺利举办,这里GameRes游资网作为合作媒体,为大家发送会议上的经验访谈。
同样在技术研讨分会场,ARM战略联盟软件架构师章立讲了一些趋势性的内容,比如在虚拟现实无处不在的情况下,游戏如何发展......
章立:今天下午的演讲都是有些技术化,这次我们直接从IT界跨到了游戏界,因为我们的ARM是不产芯片的,大家知道海思或者是展讯,是我们的合作伙伴把芯片给了各位,把一些游戏放在上面。所以今天我们主要还是考虑,在ARM提供这样一个基础的CPU和GPU的平台上,如何让各位的游戏具有更高的性能,更节约资源,更降低能耗,能玩得更久,所以今天是我们想和大家一起讨论这个事情,我今天主要会讲一些游戏的趋势,后面一部分我们的同事会重点突出一下我们的一个合作。我们有一个优化项目,相信未来会对各位游戏开发者有一定的帮助。在开始之前,我其实想跟大家分享一段视频。这是我们觉得未来的一个游戏的趋势,在ARM最强大的一个驱动下,未来可能游戏和人生非常接近,在虚拟现实无处不在的时候,可以在任何情况下去玩游戏。其实这个硬件并不是一个虚拟的,今天我手上拿的这个平板就是能够实现上面所看到的一些应用的,它是Google推出的,各位会后如果有兴趣可以去看,上面有很多很酷、很炫的一些应用,包括虚拟现实,包括可能用GPU来做一些计算,实现一些非常酷炫的效果。我们可以看到,在未来的生活当中,你的生活和游戏已经很难分开,而给大家提供这种非常炫的体验的往往是一些非常强大的硬件支撑,这是一个家庭的应用。也就是说你在虚拟和现实之间已经很难分别什么是真的,什么是假的。这个应用其实我们有合作伙伴已经有三个产品。大家也知道,在游戏行业里面,虚拟和现实一直是大家比较热的话题,但是很少有真正的应用。大家可以看到,在一个真实的产品里面有虚拟的风、虚拟的光,虚拟的一切,而这些东西都是非常真实的展现到你的生活里,成为你生活的一部分,其实我们觉得这也是游戏人生的概念。这是火的一种渲染,包括计算,要用到GPU的计算,这是一段很短的视频。
为什么大家对硬件达到了几乎于痴狂的推动力?大家可以看到,双核到四核用了一年的时间,一核到双核可能用了很多年,也就是说硬件的竞赛其实很大程度上,当然有我们的问题,因为我们不断的跟芯片公司说你们要上。但是从另外一个层面讲也是用户在推动,因为用户他希望有更加强的硬件平台来支撑他们的一些想法,有了各位的推动。因为你们可能有一些更好的想法,或者是更新的设计,希望在原来无法实现的情况下,在新的平台上有更加强的实现,所以我们觉得用户是推动这个图形体验最根本的东西。在过去12个月里面,大家都知道ARM是做GPU和CPU授权,除了CPU以外,我们在移动领域大概是90%的份额,包括高通。在GPU这个领域,我们其实觉得和游戏开发者是更加相关的。在过去13个月里面大家可以看到,我们Mali的GPU在智能电视是70%,在Android手机上5台手机当中就有1台是Mali的,今天大家去买中低端的,因为Android的定位也是中低端,因为Android平板如果做到跟iPad一样的价格就没有竞争力的。我们可以看到,做Android平板的公司都会很聪明的跟苹果的打开一个价值差,主要是中国本土的芯片公司的。Mali大家可以看到跟各位已经联系得很紧密了,包括三星的都使用到了Mali GPU。
在这种情况下,我们说现在一个最新的给开发者的设备是什么?我们其实在帮助开发者在开发游戏的时候,我们有些开发者计划,我们愿意提供最新的平台给各位开发者,包括现在可以看到最新的,我刚才演示的平板,我们可以提供出来。这里面有Google的,一上榜就卖完了,这是非常开放的一个市场。我们在整个生态系统里面有各种各样的合作伙伴,包括我们进行的合作,无论是芯片公司、设备原厂还是运营商、游戏公司等等,我们都有非常广泛的性能,确保各位在开发游戏的时候,用的引擎和工具在ARM的CPU和GPU上具有最早的性能。这是说到游戏这一块,其实大家可以看到,我们觉得从2G到3G,我们无论是和EA还是这种物理引擎,我们都在广泛的帮助他们在ARM这个平台上做一些优化。因为各位在做引擎优化的时候发现,如果你能够运用到硬件的性能,你的性能是10倍甚至是60倍的提升,今天我们有一位生态系统的合作伙伴,他用GPU加速来加速HTML5,性能能够提升60倍,我有一个Demo。60倍是什么概念?原来在Android可能是CPU来做,如果你做这种2D的加速,如果你能解决这些问题的话,给你带来的性能提升是非常之显著的。
今天我们说移动游戏主要还是Mali,因为包括三星所有的Android手机,iPhone、iPad是另外一回事,在Android以Mali400,S2是双核,S3是四核,未来的联发科的手机,或者是大唐的是Mili400,未来我们觉得是Mili6。大家不要太在意这些名词,要注意在未来的情况下,GPU的发展会让你进入新的时代。今天我们在看测评或者是跑的时候,都在看双核到四核。到四核之后会持续一段比较稳定的时间,未来设备厂家和芯片公司会比较专注于图形图像利用的差异化,也就是说真正对终端用户来说什么是最能看得见的差异化,是他们更加专注的。所以可以预见到,最近三年之内,CPU的核战会喷一段时间。大家会转到GPU怎么样,你跑那个游戏分辨率怎么样。像这种对GPU的关注,实际上就是对最终用户体验的一个关注。
从ARM的角度来看,移动游戏的一些关键趋势,这里各位都是游戏开发者,你们可能有更多自己的见解。从我们半导体行业,从底层硬件行业都出来看,休闲游戏依然是主流,但是情况也在发生变化。因为设备在发生变化,原来乔布斯创造了一个平板完全没有市场,原来可能只有5千多万台,去年2012年整个平板,不包括山寨是1.5万台。我们这里估计在2015年会达到1.9亿,也就是说平板或者更大屏幕移动设备的出现,会让你觉得有这么好的屏,有这么强的GPU,是不是可以做更多的一些事情?所以这种硬件准备好之后,自然就会推动游戏向前发展。其实所有的AAA级游戏都已经开始向Mobile去走了,他们其实都已经想把原来AAA的打造到Mobile上去。有一些已经开始做了,有些已经在LG的手机或者是电视上做了预置。所以我们可以看到这种趋势,休闲类的游戏依然是主流,但是未来会有一些变化。这种变化反映到各位的身上,可能各位目前会慢慢觉得3D,或者是一些对于硬件资源依赖的一些应用可以去实现。
这是从我们的角度来看游戏的架构,蓝色和绿色各自代表什么?蓝色意味着可以用GPU去做,绿色代表可以用CPU去做。在未来GPU也能做计算的工作,他就可以做很多这种原来做不了的事情,包括加速你的引擎,包括加速你的AI等等。也就是说,未来的趋势我们觉得5年左右的时间点,从我们ARM这个半导体的行业来看,我们觉得未来是异构。今天大家会觉得CPU、GPU会分,未来用户不会管,CPU和GPU在一个系统里面会具备同等的角色。它会把合适的任务交给合适的处理器,这就是未来我们倡导的一个异构系统,其实它正一步步的走入我们的生活。
后面一部分就是讲怎么优化。当然今天我不是专家,实际上怎么优化的话,待会儿我的同事会详细给大家讲用我们的工具怎么在这个上面发现热点,怎么去优化,有一些性能等等。大家有经验的都已经熟悉了,其实都是一些很基本的优化。这里有一点,Mali相对其他竞争对手有一点就是,我们全屏反锯齿是没有性能损失的,你可以看到,左右两张图,如果打开全屏的话,反锯齿性能是没有下降的,当你的屏逐渐大的时候,如果没有一个很好的反锯齿的效果在里面的话,体验是很难保证的,对于整个性能是没有损失的,而且可以取得更好的效果。这是一些我们给开发者的工具,待会儿我的同事会详细介绍。还有一些优化的手册,也在我们的网站上。我们最近发布了一个Mali的网站,这里有你需要的任何跟Mali GPU相关的信息,包括一个免费的UI引擎,包括免费的开发工具,或者一个论坛,可以找到我们的专家去咨询。非常欢迎各位去这个论坛上看一看。下面有请我们中国区的高级工程师给大家介绍一下怎么具体优化。
彭晓波:我今天大概会讲这么几个主题,这是我们的工具。首先我想咨询一下,在座有多少人听过,或者是了解过,或者是曾经用过我们的ARM DS-5产品?能不能举手示宜一下?这也说明我们有很多机会存在。我会介绍一下跟咱们的游戏相关的性能评级的几个方面。会大概再介绍一下我们的Stremline到底有哪些特点。在于年初开始跟Cocos2D一起做了一个项目,对Cocos2D引擎做了优化,我们觉得今天至少在亚洲已经非常流行了。
ARM DS-5实际上就是一个工具链,包括很多Streamline,我们只是把ARM DS-5放进来,跟别的工具这是非常不一样的地方,还有讲到我们的性能分析,这一块是非常强调的一个工具,有图形化的界面,而且可以定位到某一个时刻,每一个函数,甚至是每一段代码在执行,导致Code有性能问题。我们这个工具有两个版本,一个是社区版,一个是专业版,这个我就不再介绍了,我建议各位用专业版,社区版是免费的,有一些性能的瓶颈。性能分析的话也有,专业版的话会有一个月的免费期。当然如果各位对我们的工具试用以后觉得很好,可以找我申请一些免费的许可。大家到Google搜索一下DS-5,会有很多介绍,包括视频,另外就是License的一个准备,是绑定的。
可能做软件的应该可以理解,不是说随便一个工具直接就可以抓到任何应用的一些东西和数据出来,我们需要有一些硬件的支持。同时尽管我们这样一些工具,所有ARM架构的硬件都可以支持,但是我们这边需要有一个Driver,可以到我们的网上去下载,和PC的工具和硬件通信的,大家都是硬件厂商,我们急大家之所急,想大家之所想提供一些解决方案。DS-5可以直接进行通信,我们也考虑到现在价格有点高,我们做游戏的,希望在相对低端的平台上面才能更显现你游戏的瓶颈。我们做了一个电视棒,本身就是一个Android的平板电脑,这是一个Cotex A8的解决方案,我们这边免去了前面的功能,直接就可以用了。另外一方面,因为我们ARM在上海,我们也跟上海的游戏公司有交流,让他们试用我们的工具,他们觉得我们这个工具很好,但是觉得偶尔不方便,比如说他到外面讲的时候,那个地方正好没有一个HTML5的设备,所以我们考虑准备做一个三五百块钱的平板,大家就可以用,大概是Cotex A9和Mali400的方案。
我不是这个行业的专家,根据我们对于Mali和GPU的了解,对移动游戏性能评级的几个方面会做一些简单的分析。主要第一个就是带宽,带宽是一个硬件指标,每一个设备都有固定的,所以这是一个稀缺的资源。还有就是CPU,CPU有瓶颈导致CPU一直在忙。再就是GPU里面的处理器,可能某一个因为你的Code的原因会很忙,导致你的游戏性能有问题。我下面大概介绍一下,首先讲一下Fragment的瓶颈,最主要的因素我们认为是Overdraw,我们一会儿会介绍一下我们DS-5抓住的一个图,几乎是百分之百,最后就是Overdraw比较高,具体到Overdraw有哪些因素会导致比较高呢?体在做Object的时候,建议就是Front to Back。专家给我们的解释是,在一个程序链上面,跟你最差的Case是一样的,这应该是我们Overdraw最主要的一个原因。另外就是尽量少用透明度那种图像,如果你的Overdraw非常高,那可能要考虑一下反锯齿的倍数,如果是从4倍到16倍的话,这个Overdraw就是一个增长。另外就是分辨率,当然分辨率也是一个现实的问题会越来越高,我们建议就是说,如果太高的分辨率的话,也会引起这个Fragment非常忙。
刚才是一些理论的指标,如何实时的知道应用在跑的过程当中Overdraw或者是Fragment的处理器到底是什么样的程度?我们这里有一个工具,可以有一些硬件或者是软件的指标,这是Mali600,把它加入到你需要看的一个性能里面去,就可以通过这样一个公式计算出来性能是多少,这里是84%,其实已经很高了。在目前600是以这个为标准的,下面有一个Overdraw,有一个Fragment Threads Started,也可以算一下。
Mali400和300支持的有点不一样,所以我大概介绍一下这个情况。大家可以看到,这是我们的一个介绍。可以看到,我抓了一个110秒的值,是95.3%,非常忙,但是我们一开始就是很困惑为什么会导致这样的一个原因。大家可以看到,底下那个图是一些进程的信息,可以看到99这样一个进程,我们可以实时的发现,可以看到每一个进程,在底下可以直接进入到Code,可以直接定位出来。再介绍Overdraw,也是有另外一个指标来决定的,我这里不是很详细,大家可以看看这个幻灯片上,如果你下载的工具适用的话就会有这种感觉,大概算出来是22.5%,我们用的测试设备是相对低端的,是800×400的分辨率。
Vertex我们认为有它的瓶颈,我有一个建议,我相信很多朋友都是从PC端做开发转到移动端做游戏开发的,我想跟大家说的就是,移动平台,PC平台的硬件是有很大的差距的,不能完全再把PC的那个工作模式放到移动端来,否则就会有一些瓶颈的问题。有一些是可以完全没必要的,可以把它去除,就可以减少Vertex处理器的Log,另外就是LOD。这边也是一样的,我们有工具可以实时的看出你这个游戏里面在某一个时间段,处理器到底是什么样的Lod,CPI是多少,我们认为如果这个Lod超过2就有一些问题了,就要进行性能的优化。可以看到,我这边也是取了一个到110秒的周期,是7.95%,这个不需要你去计算,你只要把某一个时段,或者是主要把这个时间段排列出来,自动会算出这样一个值。如果说我们这个工具只是给大家一个个一个总体的我觉得没有太大的意义,我会详细的告诉大家某一个进程,在某一个时刻可以进入。
带宽这个瓶颈刚才我讲到,这是一个硬件的指标,每一个设备的带宽都是有限的。通常一个典型的嵌入式设备大概带宽是5GB/秒。但是出去是PC的话,能够达到100GB,所以大家想想看,这个差别是20倍的,如果你完全是原来那个习惯的话可能有些问题。但是目前我相信在座的各位不会太关注这一块,我觉得这是应该未来注意的一个问题。纹理压缩我们知道,目前最流行的一个格式,大概带宽可以减少很多,大概ARM也可以提供这样一个工具,有这样一个工具的话,就可以提前把纹理压缩好。一开始的时候我们也是发现这样一个问题,因为我们ARM也有一个工具,我们也有这样一些指标可以知道Bandwidth是多少,通过图形可以看到。我们发现基准点没有使用,确实他们说没有使用压缩纹理,而且目前他们说,还没有执行压缩格式,接下来准备做。当然他们觉得,这个格式对于应用的CPU是一个问题,要有很多的资源,基本上所有Android设备都可以支持。
Mali400也有另外一些不一样的,这个带宽是一个实时的带宽。然后就是CPU的瓶颈,实际上也是硬件的问题,有一些办法可以解决,随着GPU的性能越来越高,可以做一些计算,GPU也有一些优势。最早的你可以自己选择,右边就是图形的界面,可以点击任何一个时刻,可以看到同时点击的,就知道某一个进程占用的CPU。这里面就是某一个时段就会进入你的Code,有一个支持,甚至每一行的分辨率CPU是多少都可以看出来。下面这个就是其他的一些性能,我大概过一下,可以有一些调用关系。可以看到这是一个Cocos2D,可以看到每一行占用的CPU。这是一个Show case,我们可以看到GPU非常忙,没有使用压缩的管理,这个也是正在做。另外就是有些程序的逻辑,我可以给大家看一下。
最后秀一个对比的图,大家可能知道,ARM有一个V5和V6的一些架构,有一个编译的选项。这个问题实际上是我们发现有很多浮点运算的函数,用红色的圈起来了。我们觉得很奇怪,因为我们认为ARM底层有一些硬件加速,不应该出现在这里面。最后发现是Android有一个Bug,即使把两个选上的时候,不会解决这个问题。我们重新做了一个选项,红色的都没有了,在右边可以看到,这是一个很明显的提升。另外还发现一个小的问题,大家可以看到,有一个Unlock的问题,是一个小小的Bug。
我想就分享这些,大家有什么问题的话到时候可以到我们网站上去搜索,谢谢各位!
|
|