游戏主机性能谎言的正文
英伟达时代——卡普空技术与索尼G80情结
要解释显卡技术和全平台游戏的关系,我们得回顾一段历史。2004年,基于对游戏画面趋势的大量分析,CAPCOM内部的一个专家组开始开发新一代游戏引擎。与此同时,NVIDIA花了三年时间研发的G80核心已经处于“消亡”阶段,这意味着该芯片将投入正式生产。为了加强市场竞争力,英伟达决定与全球游戏开发商合作,加快图形技术的变革。卡普空在玩家中的口碑和对所有CG动画电影的喜爱让他们一拍即合。NVIDIA的加入也极大的提升了CAPCOM的游戏引擎技术(即MT框架),逐渐掌握了DirectX 9.0c下的开发技术。
当时,索尼电脑娱乐公司(以下简称SCE)对G80芯片和相应的图形技术垂涎三尺,他们选择了更直接的方式——将G80内核纳入PS3的硬件系统中(SCE此举的目的是让PS3的'功能'大幅领先于微软的Xbox360,在画面精度方面牢牢压制对手的产品)。虽然当时PS3还没有发布,但是消息一经发布,立刻形成了巨大的冲击,玩家对PS3的期待被推到了顶峰,所以Xbox360被嘲讽为“Xbox1.5”。
然而事与愿违,由于NVIDIA当时并没有为G80核心设计出适合家用游戏机的简化方案,SCE意识到1的设计授权成本和芯片切割成本。在谈判桌上浪费了大量时间后,G80核心将远远超出其承受能力。2.家用游戏机这种小产品,在供电和散热方面都达不到G80 core的要求。在时间的压力下,SCE不得不退而求其次,从英伟达购买了上一代G70核心的授权。
不幸的是,随着母公司索尼集团财务状况的恶化,SCE不得不再次削减芯片制造成本,G70核的256位总线减半,ROP(光栅处理器)和TMU(纹理映射单元)也相继缩水。为了提高性能,SCE只能想办法提高芯片频率,不仅大大推迟了PS3的上市周期,还导致PS3在全负荷的温度高达97.6℃!同时,PS3也失去了在1920x1080分辨率下运行实时渲染的能力。实际性能只相当于GeForce 7900GS,相比Xbox360只是杯水车薪。NVIDIA后期通过优化G80内核得到的G92-400(GeForce8800GS)和G92-150(GeForce 9600GSO)内核最适合家用游戏机。-CAPCOM的企业和游戏开发机器是“面向英伟达”的。
游戏开发圈有个有趣的现象。跨平台游戏开发者很少会向微软Games for Windows专家组咨询DirectX 10的技术事宜。他们大多与微软的独立机构Xbox Mountain View部门沟通,固执地遵循过去积累的电脑游戏开发经验。画面效果比游戏机更好的Direct 9.0c版本直接在PC平台上推出,而拥有PC平台的游戏开发者则经常向Games for Windows专家组咨询,开发出《帝国-全面战争岛危机》等画面效果华丽的著名游戏。
目前家用游戏机的显示核心还停留在DirectX 9级别,这也是造成这种现象的原因之一。反映到游戏中的结果就是DirectX 910版本的全平台游戏在常规设定下画面差异很小,比如EPIC开发的战争机器。DirectX 10版本只提供了另一个可选的应用接口,在画质上并没有太大的优势。为什么?目前DirectX 10在所有平台游戏开发者眼中只是用来解决DirectX 9下HDR和AA的冲突,可以用也可以不用。比如PC版UT3没有DirectX 10模式,在1280×800的分辨率下无法实现抗锯齿技术。英伟达辅助的卡普空在这方面的表现要好得多,旗下游戏大多有DirectX 65430。
英伟达对卡普空的帮助不仅限于软件开发。2006年末,卡普空开发部的硬件设备进行了全方位的升级。基于G80核心的Quadro FX专业显卡和当时顶级的GeForce显卡被广泛采用。为开发部门提供稳定的办公支持和“疯狂”的图形应用性能。MT Framenwork Direct 9.0c的成品版也在此时新鲜出炉。基于该引擎设计的游戏,理论上可以充分发挥英特尔酷睿2 e 67002 gbforce 8800 gtx(768 MB)电脑的性能,但游戏的实际性能远没有达到让GeForce 8800GTX显卡“火力全开”的水平,这也是为什么正如鬼泣4的制作总监小林所说,
开发一款游戏,首先要在高性能的电脑上做一个Alpha版本,然后根据PS3和Xbox360的不同架构,进行图形的精简和计算的简化,以满足画面框架元素的要求。所以PC版的游戏其实是根本,也是第一版的游戏,只是变成了上一版的图形核心. 1。微软Xbox 360由于开发者的销售策略。
设计和制造ATI
芯片代码异种
晶体管传承2.32亿。
Xbox360的图形核心由ATI设计和制造,其中包括两个3.37亿晶体管的芯片,但只有主芯片——2.32亿晶体管的Xenos,大约是RADEON X800的大小,才是真正由ATI设计和制造的。另一个芯片呢?
我们必须继续回顾历史。当初ATI在设计Xenos芯片时,在微软的压力下采用了不成熟的“统一渲染架构”。虽然提高了执行效率,但无法满足Alpha混合、Z轴缓冲等反走样技术的要求。双方不得不寻求其他解决方案,最终选择了NEC提供的eDRAM(容量仅为10MB的嵌入式动态随机存取存储器芯片)。这两种芯片统称为-C1图形处理器。由于eDRAM芯片容量太小,只能存储AA采样数据,对图形子系统的性能没有帮助。这种解决方案的副产品就是著名的“3红”问题——为了控制成本,微软将两个芯片焊接在一个4层PCB上,由于Xenos的影响,在高温下会变形,导致脱焊。
相比PC中的显示核心,Xenos真的太小了,2.32亿个晶体管只能装下48个统一着色单元(USU)和16个纹理单元(TMU)。很多消费者以为Xenos是基于当时新一代R500(RADEON X1950XT)的核心设计,但实际上只相当于R420核心的24管路改装版。受限于冷却系统,只能工作在500MHz,效率非常低。根据微软官方公布的数据,C1图形处理器的理论计算能力为每秒480亿像素着色次数,而目前主流的GeForce 9800GTX+显卡可以达到每秒2365亿次,5倍左右的性能差距严重限制了整个平台游戏的屏幕性能。
至于显存带宽,差距就更大了。微软宣称的256GB/s只是eDRAM芯片中逻辑电路到暂存电路的带宽,而eDRAM到Xenos的数据带宽只有32 GB/s,由于Xenos的数据总线只有128bit,虽然采用了1400MHz频率的DDR3显存,但实际带宽只有22.4 GB/s,这是Xbox360理论上的最大显存带宽。在实际应用中,这个22.4GB/s的带宽是和处理器* * *(processor * * *)共享的,显存也是和主存* * *(main memory)共享的,造成了严重的性能损害。Xbox360采用DDR3显存,主频1400MHz,Xenos的数据总线位宽只有128bit。所以Xbox360的显存带宽是1400 x8000×128 = 22.4 GB/s,实际游戏中GPU的可用带宽只能比这个低很多——由于采用“统一内存系统”降低游戏机制造成本的弊端,Xbox360没有独立的GPU显存,只能和处理器抢512MB的内存容量。所以处理器必须占用将近一半的22.4 GB/s的带宽,如此低的从GPU到显存的带宽会极大的限制游戏的分辨率和特效的渲染精度,所以Xbox360无法实现真正的1080 p(1920×1080)的全高清画面,谜底后面再分解。我们来看看PS3的情况。
2个PS3的GPU
设计和制造:NVIDIASCE
芯片代码:RSX
晶体管集成度:3.02亿
SCE将PS3的GPU核心命名为RSX (Real Synthetic Processor),由英伟达设计,索尼“制造”。这个基于G70核的GPU集成了3.02亿个集成管。根据索尼官方公布的数据,其运行频率为550MHz,但官方发售的PS3已经悄然降至500MHz,拥有24个像素着色管道、8个顶点着色管道和24个纹理单元。在规格上,高于Xbox360的Xenos,这也是SCE经常指责游戏开发商没有发挥PS3的“功能”的原因之一。
但事实并非如此。虽然RSX的核心渲染能力尚可,但“配套设施”很差。不仅总线位宽切割为128bit,显存为DDR3,频率为1400MHz,所以其显存带宽与Xenos相同,均为22.4 GB/s,虽然拥有256MB独立内存,但并不比Xbox360好。再来看看SCE强调的浮点计算能力。RSX号称拥有1800GFlops(每秒1.8万亿次)的浮点运算能力,但与GeForce 9800GTX+的7096GFlops相差甚远。PS3相对于主流PC是白日梦,也很难满足生化危机5等游戏在1080P下运行的要求。已经从硬件基础上分析过了,Xbox360和PS3都不具备在大型3D游戏中实现1080P画面的条件,应该采取一些灵活的方法。
1 PS3的差分计算公式是伪1080P。
SCE在PS3的推广中采用了偷换概念的方法。诚然,PS3具备1080P蓝光电影文件的解码能力,但与游戏画面的1080P实时渲染不同。PS3的1080P游戏画面,其实是通过像素差计算出来的放大的1280×720图像。在这个简单的“拉伸”过程中,RSX只需要填充采样像素的颜色平均子像素,根本不需要计算像素着色。这样的1080P屏幕,即使是老NV40芯片也能实现。
这个伪1080P和真的1080P在像素数量上是有本质区别的——游戏中物体的几何模型不会变得更加精致流畅。相反,由于横向硬放大的游戏画面边框是用720P像素渲染的,锯齿像素面积也会放大2.25倍,物体模型的几何失真效果会很严重,但画面效果不会像720P那么好。
2台Xbox360假1080P
Xbox360和PS3一样,只能在设置中调整桌面的像素数量,而实际的Xbox360游戏中并没有分辨率调整菜单。Xbox360发布时,开发团队将其最高分辨率标注为1080i。然而,当时微软并不知道PS3的性能其实如此有限。因为SCE对RSX的技术细节严格保密,微软对RSX的表现非常恐惧,所以在宣传之初就明确表示Xbox360的游戏像素渲染量最适合720P。
但是2006年微软拿到了PS3开发包第三版的Debug tester进行反汇编分析,然后态度开始转变——既然别人能做到1080P,为什么我们不能?不妥协的Xbox开发团队立刻放出风声,称Xbox360开发工具优化后可以渲染1080P游戏。RSX根本不算什么,只是Xenos在大型着色器游戏中的像素填充能力太低,暂时修改芯片设计已经来不及了。我该怎么办?
工程师发现,C1中简单的eDRAM芯片,在分辨率高于1280×720时就没用了。只要帧高于100万像素,就不需要抗锯齿技术,只是简单的用来计算像素差,放大720P画面。虽然这样会在模型边缘形成明显的锯齿,但是可以得到比PS3更高帧率的“1080P”游戏画面,所以Xbox360拥有1080P的渲染能力。在2005 ~ 2006年,游戏开发者还在用P4 3.6和GF7900或者R X1900XTX作为开发机或者高强度的Dedug机,然后大幅度降低图形比例,测试在Xbox360和PS3的Dedug机上是否会中途挂起。在开发者看来,这两款游戏机的实际功能和现在已经是“老爷车”的PC差距很大。其中,他们对这两款游戏机的CPU极为不满。GPU的问题可以轻松解决,游戏机的屏幕分辨率和特效精度可以降低。基本的三流PC玩家也能胜任这种工作,但是处理器的计算能力严重成问题,引擎的底层代码还得重新构建,这让一大批Dedug程序员叫苦不迭。
其实Xbox360能保证720P P是好事,据EPIC调查,其他很多制作商为了达到不会让人吐槽的帧率,连700P都保证不了。史诗,当然,以危险告终。XBOX360的GOW最终渲染比例固定为每帧1244X700像素,所以只能维持在27fps,还不到他们在AthlonX2 6400+和GF8800GTX PCs上渲染速度的1/4!倒霉的开发者太多了。很多开发者因为早期的漫无边际,已经严重高估了游戏机的功能。即使是第二版的Xbox360开发套件也是用了两片高频Power Mac G5,而且据说这个开发套件只有最终版主机的2/3,基于Xbox360的处理器是3核的事实...开发程序的结果是,最终的游戏产品一般不会在Xbox360上以1/2的预期帧率运行。没办法,只能牺牲像素降低方案了!GTA4两个主机版本每帧只有1138X640,GPU像素填充优化的场景距离只有20%,两台主机也只有24 ~ 26 fps。PC版出现后,一大批不知道游戏机真相的人纷纷致电RockStar开发团队,幸灾乐祸地看着GTX280+E8200渲染的1920X1200像素、全特效、场景描述距离100%的GTA4,大喊:“才29fps!顶级显卡还不如游戏机。”
RockStar一线开发者在采访中的回应也很简单:
“那就降低视距,或者降低分辨率,PC版的质感效果也全面提升。其实关键是分辨率。其实PC版开到1680X1050的数据量已经比游戏机的GTA高出很多倍了。我已经忘了它有多高了。”很明显,开发者是碍于游戏机厂商的面子才没有说清楚的。"
砸Xbox360假1080P特技的游戏并没有受到任何人的攻击,而是微软自己的人——Bungie和他的《光环3》。光环3延续了上一代Xbox的游戏程序框架,并根据Xbox360的实际能力进行设计。场景大小、几何精度等数据基本上只提升了两倍。这种务实的做法使得游戏帧数比GTA4好很多,但遗憾的是,光环3的分辨率只有1138X640。处理器的工作是执行整个游戏中的所有应用,并将图形渲染线程分配给GPU执行。如果说画面的保真度取决于GPU的着色操作和纹理填充能力,那么游戏的执行速度则取决于处理器和GPU两者的性能。
所以可能有些人不理解,为什么《生化危机5》中装载了PS3的3核Xbox360和“9核”处理器,温度却飙升到了7、80℃。游戏机和PC的差距真的有这么大吗?看完下面对Xbox360和PS3的处理器的分析,你就明白游戏主机的处理器是怎么回事了。
1 PS3上的假“9核”单元处理器
与IBM用于服务器的Cell处理器不同,PS3上的Cell只有2.3亿个晶体管,主频3.2GHz,采用65nm工艺制造,使用与Ben 4相同的超线程。和IBM至少2.5亿个晶体管,主频高达4.6GHz的芯片比起来,简直没法比。在大型服务器上,基于Power PC架构的Cell处理器利用率很低,卖不出去也没有别的原因——Cell处理器的实际复杂计算能力太低。
PS3版本的Cell处理器逻辑电路由一个小功耗PC架构通用计算核心(PPE)和八个微单精度计算核心(SPE)组成,实际产品中屏蔽了其中一个核心,所以PS3处理器应该是“伪9核”。另外,为了省钱,系统没有硬件音效芯片,只好占用一个SPE来处理音效。
由于通用计算核心(PPE)的体积很小,即使对应两个工作线程来最大化逻辑电路的效率,它的计算能力也非常有限,所以它只配备了0.5MB的高速L2缓存,其他七个协处理器(SPE)的指令范围非常窄,甚至连NVIDIA的GPU上的流处理器单元(SPU)的指令范围都逊色 这也是PS3所谓的“次世代”游戏物理效果无法与PC上搭载GeForceGTX显卡的硬件PhysX的物理效果相提并论的原因。 真的是“次优”,不然PC版的《镜之边缘》有着极其复杂逼真的物体碾压、撕裂、碰撞效果。PS3为什么不用细胞处理器的鸡肋SPE来计算...这些基本上只能解码视频文件的SPE,每个都有0.25MB的低速缓存,所以了解处理器架构设计的人现在会看到Cell处理器晶体管规划的严重问题——它不是一个适合游戏处理器通用程序运行的芯片!
Cell处理器将70%以上的晶体管分配给SPE及其低速缓存,因此大量SPE不具备独立的程序运算能力,只能辅助RSX进行浮点运算,具体来说就是浮点着色运算——全是简单的非长程序着色指令级像素填充。这种在实际游戏中帮助复杂着色特效的能力是很差的,否则GTA4的PS3版本在1138×640的分辨率下也无法勉强达到24FPS。另一方面,真正能成为处理器的PPE核心晶体管太少,使用的是低效的顺序指令执行架构。然而,一旦6个SPE(一个用于屏蔽,一个用于声音处理)全速填充RSX的像素,PS3中容量仅为256MB的XDR内存的带宽将被削减超过65,438+0.8 GB/s,真实PPE逻辑运算的可用数据带宽不到7GB。再加上教条式的指令序列执行效率,内存数据流量随时可能瘫痪。
Xbox 360上的2个3核氙处理器
IBM为微软独立部门山景城开发团队(即Xbox360开发团队)设计的Xenon处理器(与ATI设计的Xenon display core不同),晶体管规模为165万,工作频率为3.25GHz,采用65nm工艺制造。看似比PS3的处理器规模小很多,但实际上Xenon并没有针对Cell中简单像素运算的SPE和PPE逻辑运算电路。Xenon和Cell一样是基于Power PC架构的处理器,相比PC上的Core2或者Athlon和Phonem效率太低。
Xenon的逻辑电路由三个小的通用运算核(PPE)组成,每个运算核有两个工作线程,总共有***6个线程。和电芯上的PPE相比,Xenon的三个PPE平均都要小一些。实际游戏中一般只用一个线程到三个线程,因为没有PS3这样的硬件声音处理芯片,氙必须占用一个线程才能对5.1声道进行软处理。游戏程序员忽略6线程最重要的原因是Xbox360为了省钱使用的统一内存系统。
因为一旦处理器的6个工作线程全部开启,游戏的有效计算性能真正能剩下多少,光是从内存中读取和传输数据就要占用每秒20GB的带宽。然而,工作频率仅为1,400 MHz的Xbox360的DDR3速度所提供的最大带宽仅为每秒22.4GB。因此,当处理器6线程开启时,可以直接关闭正在处理长着色指令的Xenon。反正经过GPU的画面特效操作,只有每秒2GB以上的显存带宽,才能不从51.2 MB内存显存传输到屏幕上,所以能省点电。
此外,在Xbox360中数据流量极其拥挤的统一内存上,Xenon顺序指令执行的任何一个线程都有可能停止数据流。如此严重的数据延迟会让Xbox360的游戏AI直接跌回DX7时代,所以使用两三个工作线程是最明智的方法。和Cell一样,由于PPE的低计算能力和教条的指令执行模式,Xenon始终只有1MB的高速二级缓存,和Cell的PPE的逻辑电路缓存比例差不多。综上所述,处理器的逻辑运算能力,GPU的渲染性能,以及内存和显存的容量和带宽——这些都是决定游戏性能的因素——之间的巨大差距,是《生化危机5》PC版画面精度更好,执行速度更快,性能比游戏机版好几个硬件倍的根本原因。
游戏死忠的人看到都会跳出来。2005、2006年的东西,和2008年的PC没法比。嗯,也是2005年和2006年Aehlon×2和Core2的对比,只是把它和2005年和2006年最低单核的Ben 4和Athlon 64放在一起。伪多核电池和氙气能超越前两者吗?游戏程序员中是没有机会的。除去处理器芯片设计、制造成本和晶体管规模的巨大差距,游戏机处理器致命的架构缺陷也是决定性因素。无论是小逻辑运算核还是三个,孰强孰弱是最底层硬件之间无休止的争论,比如游戏机芯片(Xenon在处理器架构工程师眼里更好),和真正个人电脑上Intel大逻辑运算核的处理器级别相差5 ~ 10个档次。
对于游戏机的Cell、Xenon等低级处理器来说,PPE最“弱智”的地方在于顺序指令执行架构,而PC上高级处理器的逻辑运算都采用只执行指令的架构。游戏机的这种架构会造成多大的性能损失?以《生化危机》为例:之前一个非洲兄弟用火焰弩瞄准猪脚进行发射,处理器要根据不同的指令提前计算命中概率和命中面探测,之后那个兄弟才会开火;但在PS3和Xbox360版《生化危机》中,一旦无法完成命中检测,Cell和Xenon就会继续尝试在指令深度完成计算,而流水线后面的其他程序指令只能等待前面的兄弟完成“击发”,浪费了数百个时钟操作周期。这种“弱智”的处理器架构会造成数据操作传输网络的交通堵塞(帧渲染停止),甚至“交通瘫痪”(崩溃)。最幸运的是,我们经常可以看到《生化危机》里的主人公拿着一把燃烧的弩,瞄准它……永远。
而PC上的处理器不仅具有强大的高精度计算能力,很少出现命中检测错误等低级行为,而且即使指令没有完成也不会导致数据流量停止。由于PC高成本的处理器带宽晶体管规划,逻辑运算电路有大量并行指令流水线,采用乱序执行架构。前面的程序指令没有完成,其他指令先算,然后在下一个时钟周期调用更强的指令集,无休止的赢下去。所以PC上这个“值钱”的大型PPE,会一直维持一个畅通无阻的计算网络。
顶级游戏图形专家,比如EPIC的蒂姆·斯维尼和id的约翰·卡马克,认为山景城在第一代Xbox中仍然可以虚心听取游戏程序员的意见,采用英特尔的X86处理器。但是到了Xbox360项目,就变得完全听不进大家的意见了。它一心想最大限度地降低芯片制造成本和节省资金,并坚持购买IBM的小型PPE架构许可证。程序员对这些“亚”时代游戏主机的实际性能非常不满意。未来需要多核处理器,但绝不是伪多核,没有意义。
Crytek的塞维特·耶尔利当时根本没看这些东西。很明显,他们正在制作的PC版《孤岛危机》即使八个PS3和Xbox360加在一起也无法渲染。但是Crytek重写的CE3引擎被大大简化了,图形的渲染精度只有CE2的18。我们可以看到Xbox360和PS3的CE3演示程序中渲染速度不足25FPS,巨大的锯齿图形失真和565,438+02× 565,438+02的恐怖纹理精度,全景动态体光照已经消失,就像回到了DX9.0a时代,不过好在塞维特·耶尔利保证了PC版不会受到牵连。
除了日本,欧洲偏远地区的几家swing游戏公司都不太注重硬件性能。世界各地的游戏开发者普遍对Xbox360和PS3的性能不满,甚至远不如2005年和2006年同期的主流PC Ben 4和Athlon64的7900GT和X1900pro,大大增加了编程难度。为了让这两款实际图形性能非常低的游戏主机呈现出一种异常的画质和帧率,就像《生化危机》的MTFramework一样,我们不得不像再挖PS2一样大规模使用低级汇编语言,耗时四年研发时间,而且由于PPE和ShaderCore最终在成都过高,带来了芯片温度异常、电气性能不稳定、游戏过程中容易死机等诸多硬件问题。
开发者越来越倾向于以PC游戏完整版为核心,然后收缩到为Xbox360和PS3调试机器以保证运行的策略,就像卡普空做Debug may cry 4和resident evil 5一样,基本上大多数跨平台发行商都选择了这种明智的路线。当被问及这些开发者是否认为下一代X720和PS4能达到同期“性能级”PC的硬件水平时,基本上开发者都有期待,但觉得实际操作的可能性很低。
根据几次广告宣传的经验,成熟的开发者早就明白,游戏机制造成本的限制无法同时提供比PC更好的性能。在彻底了解芯片的硬件架构后,程序员发现Xenon的性能只有第一代Xbox的奔腾733MHz的两倍。未来4-5年,Xbox360都会采用这款处理器,只能用失望来形容。在实际游戏中不可能出现的理想状态下,Xenon的浮点乘法器只比Ben 4快13。PS3的整体性能其实比PS2高6倍,比Xbox360大很多,但这都是因为PS2的性能有限。
世界上唯一永恒的真理是,你付出什么就会得到什么。像Cell和Xenon这样小的内核拥有类似Athlon 64和Ben 4的最佳性能。蒂姆·斯维尼和约翰·卡马克等顶级游戏程序专家在彻底分析了这一代游戏主机相对于其前辈的平均性能提升后,并不认为仍受本地制造成本限制的所谓X720和PS4可以与Core i7和GeForceGTX的计算机性能相提并论。