并没有,PS4上的那个APU明显要好很多,解析一下PS3上的CELL处理器:
CELL处理器的主核心是Power处理单元(Power Processor Element,简称为PPE,由PowerPC970简化而来),是一个2003发布的核心了,大概和当年的Pentium4C差不多同时期,缓存也非常小,二级缓存仅仅只有512KB。
看上去3.2G的主频率比较吓人,但实际上性能非常有限,能达到如此高的频率,完全是因为暴力加长流水线长度,在那个频率至上的年代,这个是很常见的,除了看上去频率高好看一点,其他卵用没有,当年用过Pentium4的都知道,3.2G的Pentium4差不多只能和2.0G的Athlon64性能接近,并且除了办公性能以外,其他基本上都是被吊打,加上PPE实际上为了减小功耗,被修改成一个顺序核心,比我们常见的乱序大核心的X86要差上不少了,和以前Intel出的Atom是比较类似。
唯一比Pentium4有一点优势的在于CELL的内存控制器是内置的,Pentium4是外置在主板的北桥上,所以CELL并没有FSB的总线的概念,但……是仅仅支持XDR内存,也就是423接口的Pentium4所支持的Rambus内存的改良版,速度很快,热量巨大,价格非常贵,在PC上直接被性价比更高的DDR内存打的销声匿迹,Pentium4不得不换成478接口再重新支持DDR内存。
就算索尼把XDR内存白菜价塞到PS3里,但这样设计的缺陷也非常明显,因为XDR内存非常冷门,PS3的GPU(也就是G70)是不支持XDR内存的,只支持GDDR3,所以PS3必须设计2套独立的256MB内存,由2个存储控制器控制,这样信息交互速度延迟非常高,并且在后期分离式内存设计会严重影响游戏的开发。
之所以这样设计,是因为当年在设计PS3的时候是准备塞2个CELL进去,后来发现CELL实在是没办法做GPU,只能临时找皮衣黄做一个GPU出来顶上,但已经完成设计的XDR内存控制器没办法修改了,最终就只能采用2套内存的方案。
可以想象当年索尼找老黄定制GPU的时候,一定提出了要支持XDR内存的要求,按老黄的脾气没有当场掏出个核弹把他们炸死也算索尼命大。
PS3的CELL上只有7个,并且系统占用一个,音频占用一个,实际上游戏可以用5个。
至于8个SPE,并不是独立运行的核心,只能说是协处理器,不能拿普通CPU的作用去看,早期必须要在PPE的调配下才能协助CPU进行运算,实际上设计理念和当年PS2的CPU(Emotion engine)的FPU和VU协处理器是一样的,8个SPE辅助PPE的峰值理论值不小,但要实现非常困难。
SPU理论上功能强大,可以处理物理、音频、光源、辅助GPU进行几何运算,甚至模拟GPU不支持的后处理特效,曲面细分(对,你没看错),computer shader等等。SPU有自己的流水线和库,所以理论上在游戏处理中SPU和GPU是一样重要的,其实这一看,SPE非常非常类似现在CUDA核心,适合简单的大量的数据计算处理,所以理论上SPE也是可以高速挖矿的。
那么SPU是怎么工作的呢?因为时代的局限性,当年SPE的开发是非常困难的,要昨天想今天这样的CUDA加速是非常非常困难的。
SPU一共有三种开发模式
第一种(SPU Thread)
简单的说就是由PPU(操作系统)去管理开发者创建的SPU线程。这种模式下,PPU需要进行复杂繁琐的SPU线程管理。大致流程(会有一些专业术语,可以选择跳过不看),首先创建SPU线程,然后为了通信PPU和SPU必须经由event queue,所以先得创建event queue,然后创建管理线程、工作线程、SPU线程,连接event queue,创建线程组,再连接等等,这些都要PPU主线程来完成。但是PPU毕竟只有一个,并且速度有限,所以会间接拖累SPU的运行效率,但这是Cell本身架构造成的缺陷,没法避免。
第二种(SPURS)
这种比起第一种有所进阶,当然开发难度也更大些。其实就是让SPU自己管理SPU线程,最小化PPU消耗,所以这种相比于第一种效率会更高,这种模式也是索尼主推的。
第三种(SPU RAW)
要真正发挥Cell潜能,那就需要这个模式了。这个模式下,开发者可以绕过操作系统,API,运行时等直接对SPU进行操作开发,效率最高,但是最难开发和优化,需要对硬件了如指掌,所以这种模式第三方基本不用,只有索尼第一方工作室玩的转,其中只有四个SPU支持这个模式。(GT小新)
虽然在后期,经过第一方的不断挖掘,PS3的性能潜力逐渐被开发出来,出现了很多画面非常精致的游戏,比如《杀戮地带3》《神秘海域3》等等,在这些游戏里SPE采用了第三种(SPU RAW)开发模式,通过SPE对GPU的画面进行后期处理,但并没有和2005年就发售的Xbox360拉开比较明显的差距,而且《杀戮地带3》都2011年发售的了,距离PS4的发布都只剩下2年了。
https://www.zhihu.com/video/1458035058422161408不过对索尼来说,《杀戮地带3》是一个面子问题,2005的E3拿CG当即时演算的《杀戮地带2》是一个著名的骗局,玩家们对索尼非常不满,在XBOX360上的《战争机器1、2》和《光环3》等发行后,一般玩家认为PS3的性能是不如XBOX360的,至少在PS3的G70的GPU确实要比XBOX360上的R500差一点。
https://www.zhihu.com/video/1458037846813175808一直到2011年的《杀戮地带3》出来之后,PS3的真实性能才基本上得以完全发挥,这个游戏就是典型的大力出奇迹,大量的SPU被拿来辅助渲染游戏画面,最大程度上弥补了G70的不足,并且从硬件底层上进行调用和优化,这游戏不但画面优秀,而且还支持3D、支持体感,是PS3后期的标杆游戏,至少在画面力压了同期的《战争机器3》。
CELL真正的传说还是内部支持的原生多芯片互联,这个是一开始设计就要求的功能,也是久多良木健最早就规划好的,如果游戏机用CELL,索尼的电视机用CELL,那当全部CELL连起来的时候,运算能力会非常强大,这个也是一直以来CELL背负的最大期望。
在那个云计算、区块链等还不发达的年代,PS3的低廉价格就能实现服务器级的多芯片串联,是非常少见的。
但这个是需要满足以下几个前提:RISC、linux系统、Power架构、廉价,在这四个情况下,PS3是一款非常有性价比的能组超算的节点,CELL内部的原生互联支持是提供比较快速节点互联。
最主要的是PS3真的是太太太便宜了……并且索尼还送了不少台给2个PS3集群,顺便打广告。
目前已知的2个PS3集群是比较出名的美国空军研究实验室(AFRL)的“秃鹰集群”和麻省大学达特茅斯分校物理系教授高瑞夫·肯纳(Gaurav Khanna)也打起了PS3的主意,他用16台PS3外加Fedora Linux系统打造了一个名为“重力网”(Gravity Grid)的超级计算机。
但是在那个摩尔定律还没失效的年代,这种真的也就是面子工程罢了,2个集群没几年就因为能耗比低被淘汰了,CELL2的开发也没有受到广泛的认可,久多良木健的CELL无处不在梦想终究还是没有实现。
2005-2007是一个CPU单核心过度到多核心的关键年份,除了CELL以外,其他家CPU都是做的对称式同步多核心。
当年喜闻乐见的真双核心VS胶水双核心的大论战,但是不管是原生还是胶水,都是对称式多核心设计,软件优化起来差距不是特别大。但你CELL非要搞成特异性的SPU协处理器多核心,谁吃饱了给你去做优化去?第三方做花了大力气去优化,并不能得到相应的回报。
索尼在称霸游戏业多年,自然在硬件的设计上是一脉相承并且有着长远的规划,记得PS2仅仅用了一个芯片就实现了对PS1的硬件兼容,同时这块芯片还能当南桥,给从来没有向下兼容惯例的游戏机行业一记响亮的闷棍,证明了索尼的硬件技术实力远在世嘉、任天堂之上。
只能我们的PS之父久多良木健在时代的限制之下,思维过于超前了,人家都在搞同步双核心CPU,你在搞GPU+CPU融合这种现在2021都没有完全搞定的事情,只亏几十亿美元还算好的了。
也许是因为PS2太过成功,让他坚持敢于以一己之力对抗整个产业的共识,哪怕撞的头破血流也坚持到底,但当索尼都是要破产了,你还头铁,那只能请你滚了。
虽然说不同架构,不同指令集很难比较,那PPE+8个SPE一共是2.3亿个晶体管,和差不多同时期2007Q1发布的我们都非常熟悉的Q6600 5亿8200万个晶体管相比,规模小很多,还要算上XDR内存控制器占用的那部分晶体管,除非IBM真的有火星科技,以Q6600三分之一的芯片规模就能实现性能超越,要是IBM真的有那个本事,苹果怎么会在05、06年换X86平台呢?
很多人都说IBM坑了索尼,我倒是觉得在时代的限制下,90nm制程下就只能搞成这样,也怪不了IBM,就是AMD用90nm制程也搞不出APU来,搞出来了发热量都会上天,更何况对图形技术并不擅长的IBM了,你让他搞AMD APP和CUDA,他能给你弄个SPE全很不错了。
好比我们都知道的Apple的M1芯片,有160亿个晶体管,而同样整合GPU的还没上市的AMD锐龙5000G APU在180平方毫米的晶圆面积上集成了107亿个晶体管,而我们熟知的i9-11900K的只有大约50亿左右的晶体管,当然M1可能还有其他辅助的芯片占用了不少晶体管,在很多人惊叹M1的性能很强的时候,殊不知从芯片规模上看,他是一个规模非常非常庞大的SOC。
PS2的成功并不是硬件设计有多好,PS2的显卡GS,实际上连硬件T&L都不支持,严格意义上并不能算是独立的GPU,连固定管线都没有,大概也就是TNT的水平,给第三方软件商带来了很大的痛苦,只是当年DC被7000万多边形吓掉线、NGC和Xbox又来太晚了,时也命也成就了PS2。
从现在的角度来看,cell里的SPE有点CUDA单元的雏形,因为CELL本来就是作为同时兼顾CPU和GPU来开发的,稍微有点常识的人都知道GPU里CU单元(比如CUDA)拥有非常强大的单精度浮点性能,可以用来处理大量简单的工作(比如挖矿),但也并不能拿来当CPU用,所以我们看到CELL恐怖的256Gigaflops浮点性能的时候,本质上并不能代表实际的CPU算力,也就是说索尼公布的CELL浮点算力类似于CPU+部分GPU的算力。
类似于随便拿一个新一点的APU对比i9总浮点性能,i9都会被秒杀,然而我们都知道实际并非如此,只不过AMD不会这样对比,而索尼这样比了而已,可以说CELL里真正纯的传统CPU部分也就是那个PPE核心而已。
这种打擦边球式的虚报数据误导技术小白是索尼的传统艺能了,PS2时代也是这样,7000万多边形吹的直接把世嘉直接吓傻了,赶紧退出主机市场止损,后面发现PS2的画面连比他便宜一大半的NGC都不如。
你说他吹么?并没有,7000万是最大的理论值,在没有任何特效、渲染、贴图的情况下可以达到,但这又有什么意义?
众所周知,久多良木健为cell的开发失败承担下了绝大部分责任,所以在PS3首发后不久,就以一种不怎么体面的方式被强制退休了。
平心而论,CELL的技术方向大体是对的,通用的复杂CPU核心+辅助的简单SPE核心,非常接近CPU+CUDA加速的异构计算的模式,只是当年在行业里并不具备实现这种东西的条件,理念有一些超前了,反而像Xbox360这种CPU和GPU完全分离,CPU采用开发更简单、兼容性更好的同步式多核心在游戏机上更容易被接受。
就因为他头铁,错误判断了局势,并且坚持和整个业界硬刚,哪怕不具备也要搞技术的大越进,然后让索尼SCE损失了几十亿美元(2005年的币值),到了几近破产的边缘,可以说这是一个极其严重的、无法容忍的重大错误。
后面是我们非常熟悉的套路,一代英雄人物犯下重大错误,严重错误判断了业界局势,大越进崩溃边缘更加敢于面对全球风云变化市场事实求是作风的平井一夫接手烂摊子,对差点行将就木的SCE进行改革,对第三方实现开放,力挽狂澜,而PS4在马克塞尼带领下几乎是一款非常能代表先进技术,代表玩家期望,代表开放商利益的产品,重回巅峰,SCE再次实现伟大复兴。
最后讲一下PS4的APU,因为CELL被吹上天,反而很多人觉得PS4的APU很一般,并没有比PS3强多少,实际上这个观念是完全错误的,PS4的整体性能至少是PS3的8-10倍,在地图庞大的开放世界类游戏里可以达到20倍以上,同时游戏开发难度大概是5-6分之一。
PS4的APU全称叫:Single-chip custom processor,不在搞什么乱七八糟的CELL、RSX、EE,简单直白,为了方便以下还是叫APU吧。
在芯片的透视图下我们可以看出来,PS4的APU实际上是2组4核心CPU+20组AMD的GPU核心,功,CPU和GPU共用8GBGDDR5高速内存,内存控制器实际上也是2组,但封装在了一起,共享256bit显存位宽。
GCN架构的HD7870都很熟悉了,没啥好多介绍的,而Jaguar同时被索尼和微软看中,肯定是有他过人之处,其中最主要的几点:
1、美洲豹的架构体系与Atom类似,但不同于Atom使用顺序指令架构(in order),AMD的低功耗产品也坚持使用乱序指令体系(out of order),前者的结构简单,但是后者的性能更强。同时Xbox360和PS3的主核心PPE也都是顺序指令架构。
2、美洲豹支持SSE 4.1、SSE 4.2、AVX及AES指令,和PC上的CPU一致,方便移植和开发。
3、核心很小,28nm工艺制造,每个内核的面积只有3.1mm2,这个是和GPU合成APU的必备条件
4、AMD在APU异构计算上耕耘多年的技术积累。
这点很重要,也是PS4能稳定的从2013年到今年还能玩上《对马岛》这样画质极其优秀的大作基石。
异构计算的本质就是最大限度的在硬件层面去融合CPU和GPU,把少量复杂的数据计算扔给CPU,大量的简单计算扔给GPU里的CUDA单元。这一点只有苦心经营了CPU和GPU的融合方案多年的AMD有这个实力。所以被索尼和微软不约而同的同时看上,也是合情合理。
我们可以看到那些最早针对游戏机平台开发后面在移植到PC的游戏,或多或少在移植初期都有着很多的问题。最典型的莫过于《荒野大镖客2》,2018年登陆游戏机平台,却一年多后才移植PC,
我推测,这游戏大概率在游戏机平台使用了大量的异构计算的代码,而移植PC时又不得不重写,反而兼容性又不好,所以在早期登陆PC的时候问题不断,各种卡顿、黑屏、掉帧,花了好几个补丁才有所好转。
有人会说那INTEL也有核显,本质上INTEL只是把核显和CPU封装在一起,强买强卖罢了,F系列是因为瑕疵屏蔽掉那一部分的晶体管。和APU强调“融合”的做法还是有本质的差距的。
如果纯对比APU里的CPU和CELL的PPE,单核心性能据可靠消息,时代过去那么多年架构的进步,并且美洲豹还是乱序核心,在实际频率相差一倍的情况下,最终实际单核心性能大概是80-120%之间,为什么能差那么多,主要是有些需要无脑高主频的计算,3.2G的PPE有一点优势。
但APU里有8个核心,所以8个核心还是远远强于CELL里的PPE的,至于SPE么,你可以把APU里所有的GPU核心都看成是更快、更强、更好用的SPE。
类似低电压版的多核心酷睿4代架构赛扬1.6G,完全可以匹敌Pentium4 3.7一个道理。
PS3犯的所有错误,诸如高成本、高发热、难开发、产能低等等,在前文提到的代表先进技术,代表玩家期望,代表开放商利益思想的马克塞尼设计的PS4几乎一个都没犯,支持二手和不需要联网,更低的价格,更强的性能,4记组合拳把XboxONE直接打晕,加上老任WIIU定位失败、花式自爆,一路躺赢到最后,也成为了迄今为止在主机战争中第一次是以同世代当之无愧的最强性能的主机的身份赢得胜利(不算半代机的话)。
架构合理、性能强、开发容易、潜力挖掘容易都是PS4的优势,同样是专门用于机能展示的《杀戮地带》系列中伴随PS4首发独占护航的《杀戮地带 暗影堕落》和后期画质最后一些标杆《战神4》《神海4》《美末2》等等上相差已经不是特别的明显了(仅仅是画质,《暗影堕落》真的是垃圾,虽然我通关了)。
在这里不得不赞扬一下AMD,如同以前孟德尔书记说的,AMD(ATI)和几大主机商合作那么多年来给N64(由SGI定制,后被ATI收购)、NGC、WII、WIIU、XBOX360定制了GPU,给PS4、PS5、XBOX1、XBOXSX定制了整套APU,从来没有传出来有什么扯皮、内幕、纠纷、官司、芯片产能不足、良品率问题等等。
就算最终产品不理想,第一责任人也都是主机厂商(比如Xbox360,AMD(ATI)只负责设计芯片,封装由微软自己负责),这在游戏主机历史上也是很罕见的了。
在PC端AMD也是如此,一个AM4平台可以从第一代ZEN用到现在,很多情况下刷刷BIOS就能支持下代CPU,也是到了换DDR5内存才准备换新的接口平台AM5,这种我们都能理解,换内存的话必须要换CPU的接口的,合情合理,合乎逻辑。
反观Intel在DDR4内存的生命周期里从6代到11代换了N个接口,而且就算是1151接口也并不兼容,而且很多是故意搞得不兼容的。