骁龙888后日谈:5nm X1和A78

我不知是不是我幻觉,我动态里好像一直有要求做一个关于888的视频。关于这东西好像争论特别厉害,所以我实际也没什么兴趣出来做个视频。只能说,人已经变得佛系了,就不喜欢出来做个表示,已经不是那个按E可赛艇的时期了,就我个人来说,各方面的数据并不完整,所以我实在不想在这种情况下做一个明确的会引出一个结论的视频。

说回这个视频,在Andrei的内容出来以后。我终于觉得,我可以在这基础基础之上,去建立一个合理的模型,并且去找出更多深层次,我也更感兴趣的东西,也才有了这个视频。

首先一个问题,骁龙888是怎么翻车:翻车这回事,反正翻车是一个很主观的描述。Andrei让SD865和SD888的同频同规模的A55小核心跑了相同测试,结果就是这俩功耗几乎一致。

这也就是这一代三星5nm的电气性能表现,大约就是台积电的7nmP的水平。另外,SD888还要集成基带,DSP还要堆SRAM,还有ISP的改进。这也使得GPU和CPU的共享三级缓存就是一个献祭的对象,所以也就没什么面积换能耗比的机会了。

A78:合理的翻车

接下来呢,就可以戴上黑框眼镜,提一下裤腰带,可以进入稍微深入一点的内容了。微博上你可以找到这样一个表,跑了几个不同频率的X1和A78核心的SPEC2006。当然这几个点,性能差距还不大,自然不能尝试说画出来多接近的性能功耗曲线。不过,Andrei也画了猎户座2100的X1和A78核心的电压。既然E2100和SD888都是相同工艺制造的,那就可以认为他们的驱动电压应该都是差不多的。

看X1和A78的电压曲线,你可能会发现X1和A78的同频率电压几乎是一摸一样的,即使是较中低频的部分,A78的电压和X1相比也是低不了多少的。这个问题,就放到待会再说。

通过用电压,就可以拟合出来整个SPEC06的性能功耗曲线。

D1100/1200更新的图表,已经包含了SD870/865+/865作为对照

可以看到,拟合的X1曲线误差最大在0.0645W,平均误差0.033W,而A78拟合最大误差0.0317W,平均0.0178W。在这里考虑到andrei的SPEC06功耗,所以我也缩放了一个曲线对了上去。但是,一眼就能看过去的是,同性能上A78的功耗要高于X1。

X1核心的表现要优于Kirin9000的A77核心,而A78核心则会弱于Kirin9000。

Kirin9000的A77样本的范围大约在2.34-2.6W,而同性能下SD888的X1在2.09W,缩放到和Andrei的样本的功耗也在2.2W。通常可以认为相同芯片会有10%的误差(Andrei本人拥有两个E2100样本,功耗差距在10%),所以哪怕估算一下,SD888的X1在同性能也在2.09-2.29W之间。即使是存在样本的偏差,SD888的X1依旧要比K9000的A77低大约11%的功耗。

还可以将这个曲线绘制成一个性能能耗比曲线。

可以看到,A78核心和X1核心的能耗比在大约A78@1.4GHz/X1@1.26GHz的位置相交。这意味着当一个负载需求的CPU性能超过了1.4GHz的A78之后,就应该调度给X1核心。不然运行在A78核心,功耗只会更高。

这一点上来说,比如小米11的CPU调度就显得很有问题,真正合理的调度是主线程负载应该运行在X1核,而A78核控制在更低频率。这种问题在过去的机器上并不太明显,A76和A77世代,大中核的区别主要就是来自于缓存配置的差距,以及通常使用的库不同。

A78和X1的差距更加是几乎复刻了SD820的大小核差距,因为SD820也是kryo小核明显功耗高于大核。

当然这只是表面上的相似,就好像一个人可以出于给长者+1s的原因戴上黑框眼镜,也可以是单纯就是眼睛不好。要寻找到A78究竟发生了什么,就需要从其他角度入手。

首先很明显的是,A78的同频率电压和X1几乎一致。这也使得抛开基础功耗,A78和X1至少在高频上的同频率能耗比应该是非常接近的。

没错,确实X1和A78的高频同频率能耗比非常接近,而低频因为A78的电压稍低,同时基础功耗更低,所以会稍稍有些优势。这背后是A78和X1的关系:A78和X1是同源的架构。

同源的架构,这里就是说A78和X1的整数和LS管线是完全相同的。在这里的整数负载中,两者的区别就是来自于内存子系统的差异造成后端利用率的差别。A78和X1比,同频低下去的功耗实际上就是后端空载的更多。

PS:这图的每个部分基本和按真实芯片的布置差不多的画的

既然有这么一个前提,那么X1和A78的性能比,其实就是CPU后端利用率的比。而如果按这个比值,去将A78的功耗进行放大,两者的功耗也就应该是接近的。

实际确实这个结果很接近,A78功耗会偏高一些,毕竟A78是X1缩水核心。不说别的,一级缓存和二级缓存相比X1对半砍,最直接的结果就是在这种对内存子系统相当依赖的测试中,需要更高频率的进行三级缓存和内存操作。而更多的更远的SRAM和DRAM操作,就是更加消耗能量的,所以这么看的高频部分看功耗略高一些是很正常的。

这么来看的话,A78的翻车表现,反而是合理的。虽然他表现的不如上一代,但是相对于X1,他的表现都是能够解释的。而且这个翻车,也是来自于三星的工艺,说到底A78的所有预期都是那个5nm工艺,但是结果三星的5nm至少在这一代,依旧和上一代的865使用的台积电7nmPlus是一个水平的。

那么,这个要在台积电6nm,也就是7nm++上做A78的联发科,就看他缩不缩水了。骁龙888的A78核心的二级缓存和整个集群的三级缓存都已经是A78自己的满配水平了,但是他一级缓存是对半砍的32KiB,如果联发科在这个基础上弄上64KiB,至少我会扶一下我的黑框眼镜,期待一下他的表现。

GPU:数据处理和环境

骁龙888,以及麒麟9000等等,其实测试的都很多了,虽然整点就弄画个大概曲线出来。当然考虑就和之前一样,同比例也对一些被认为体制过好的数据进行了缩放。

嘶,这就有问题了。Andrei的E2100和Kirin9000的数据都非常接近一条直线,甚至K9000过热降频后的数据下,不仅性能要弱于省电模式,功耗还接近5W,要比省电模式高出来了0.6W多。

原先骁龙865OC的功耗7.67W几乎无人能复现,而主要在9W,所以这里的结果全部都重新更新,下文的也会随着改动。

这是因为,过热降频和省电模式不一样。省电模式会直接限制GPU的最大频率,而过热降频下,GPU依旧会试图尽可能运行在高频。这会使得GPU的频率有很大的波动,也会让GPU实际上的功耗变得更高。所以说省电模式和过热降频的数据是不能直接比较的,锁频率就比锁频率环境的数据,过热降频就比过热降频的数据。

这里我就将Andrei的过热降频数据和普通的取决于环境的峰值性能单独拿出来比较,这样可以绘制一个过热降频而不是限制频率的环境下的性能功耗曲线:至少这样比,算是条件算是一致的。

可以看到,Kirin9000和E2100的表现都是高性能区间表现较好,而中低性能区间的功耗都偏高。显然在这里的高性能区间的概念也挺夸张的,这一代的所有旗舰的峰值性能都是手持核弹,一个个峰值就冲着8W打底上。但是话说回来,说到底真的使用的时候,怕不是谁都维持不了这个规模。

话又说话来,能否从过热的数据中,尽可能恢复出来就是稳定在某个频率的功耗?答案当然是,有足够的数据下当然可以。在这里当然没有那么足够的数据,但是,我可以构建一个合理的模型,去推测这个范围。这也就是我这里要做的。

我可以预期,GPU在过热降频下,即使是短时间,也依旧会试图让GPU运行在峰值性能上,这样一个模式。接下来我需要知道GPU大致这个环境又会稳定下在最低什么频率,显然我不知道,但是我可以通过假设运行在峰值性能的空占比的范围,来计算出其他的性能点和上面的功耗。

在这里我就预期了0-50%的峰值性能空占比,符合每个空占比值会有一个对应的另一个性能功耗点,而这样一个范围,就会有另一个符合这个条件的一个曲线为解。

该图只是示意,不做更新

我用笔划了一下这个线,接下来就是给定这个范围,并且给其他真实锁频限频的测试结果的点增加权重,就得到一个大致的曲线。因为有这个范围,加上其他诸如锁频的数据,就可以得到一个大致差不多的曲线。

在绘制这样一个区间还有一点,就是因为不同芯片是有差异的,实际上这个差异在10%都是正常的。但是这是一个使用多个样本的数据绘制的,并且就像上面一样,还有一部分点是计算出来的。要抱枕计算的点的大致范围对的上,就需要对差异比较的大的样本的重新缩放进行匹配。反而最原始的数据得到结果却不是更靠谱的。

在这里我保留了K9000/SD888(进行缩放统一)/E2100/SD865的结果,免得画面要素过多,看不清表格,诉讼。

可以看到,最后的结果,SD888相对于SD865并没有太明显的GPU性能提升,最有牌面的时候也就同功耗提升了10%左右的性能,还是算最有牌面的环境,而高频区间865都要和888落到一去了。低频部分865原本要比888过热降频到附近的水平要更好,但是毕竟对比的是过热降频,加上了还原出来的区间之后,至少888低频是不会比865高了。

更新前原文。

毫无疑问的是,可以确定,888的GPU要强于865。

Kirin9000的例子到是最有意思的,这里用Andrei过热降频的点来计算。这个点上,GPU需要至少25%的峰值性能空占比才能得到功耗比省电模式低的范围。这还是不考虑这里的性能差距的前提,考虑到了性能差距,这几乎意味着,此时GPU几乎有35%-40%的峰值性能空占比,才是比较真实的情况。

间接的,其实你也可以得到一个结论,那就是以现在手机厂商那调度能力,在这一世代普遍无脑冲高频高功耗,去换性能提升的条件下,实际上用户的正常的高性能的使用条件来说,反而是有所损失的。这个问题也不是简简单单指望手机过热降频到合理的区间就一样用的,或者这句话也可以换个角度,那就是这一代的手机,全部都逃不了开省电模式才是满血的宿命。

无论是对比猎户座2100和Kirin9000,还是再加上865和888。这里还是另外验证了我之前就说过的:规模越大的GPU,越容易在高性能区间得到较好的表现,而牺牲低性能区间的功耗。这就是,好好看好好理解我之前的视频的好处,从更加原理性的角度上去理解和看待,这才是坠吼的。

骁龙888最后是一个怎么样的产品,虽然要我说不会说他倒退。但是,确实抛开X1大核这种把865打死不可能追上的部分,总的来说他的差距特别小。在这基础之上,有硬给超频应给上爆炸功耗的负面影响,还有比如调度不跑X1核心就硬跑高频的A78这种。有些问题其实还是过去就有的,就好像我以前就说过,A55核心根本不需要那么高的频率,甚至A55核心高频还不如跑大核到了,大核可以拿出来数倍于A55核心的性能,还不用多消耗能量的程度。当然,安卓的调度我记得A55核心这样的CPU0-3从一开始就不会给需求性能的进程用,也算是一定程度上避免了问题。但是与过去的大核和中核的关系是中低性能性能区间中核功耗低,而中核飙到高频也不至于会差多少。变成了888这种中核哪怕是表现的好的范围也不会好到哪里去,而彪高频和X1直接差了一截,调度上的不合理当然会被放大。这当然也要求厂商真的需要固件更新。

这也就是我管SD888叫翻车的原因,说到底,在同一代中间。台积电5nm的拿去做A14和Kirin9000,前者只有iOS平台,平台上的差距本身就是类似于壁垒的存在,这一点上来说A14哪怕再强,也不是那么那么具有和安卓平台的产品竞争的实力的;而Kirin9000拿着这工艺去做了A77。而GPU上SD865依旧具有实力栖身于这一代的旗舰的水平,无非就是当时还没像今天那样个个直指8W那样的勇气。

SD888最后并不是一个SD810一般的大火龙(他甚至仍然是同世代中能量效率最好的),Andrei很久以前就有测试过。SD810的能耗比和同时期的三星20nm的A57的猎户座5433在SPEC2000相比峰值性能附近能耗比还算比较接近,而A57低频最后能比E5433低了大约37%的能耗比,也就是同性能高出来几乎60%的功耗,而A53核心更加是要比E5433同性能高出来一倍的功耗。也就是近似的,基础功耗几乎高了一倍。

而SD888就是没有这个背景条件,要成为SD810那样的超级火龙的要求是极端严苛的。

但是SD888并没有实现作为SD865换代产品被预期的提升,他的提升幅度实在是小。这才是888要被叫翻车的原因,作为一个865的换代,他就是翻车的。翻车到要是出一个GPU频率差不多的SD870,那还真不会差的程度,这才是SD888应该被称之为翻车的原因。

顺便提一下,这一代888的大中小核的关系和猎户座9820还挺像的。不过E9820的情况其实要比888糟糕很多,再加上三星的调度,真是令人感叹。

三星5nm:换代还是改名?

我在一开始提到,就结果来看这三星的表现还是大约相当于台积电7nmP的。但是这还是相对于上一代水准的。ARM在发布A78和X1的时候,也有提供基于SPEC06的A78的功耗参考,在这里X1并没有这样的参考,但是就和前文提到的关系一样,我可以推算出PPT环境的X1功耗。而Andrei的方式就是以了解到的X1面积会大约是A78的1.5倍,直接A78乘上1.5倍。

可以看到,通过我的方式三星5nm的X1要比PPT高了66%的功耗,而A78核心则比PPT高了58%。这里提一下,因为我是按真实电压来算的,而3GHz上X1电压要比A78更高,所以大致的缩放这种隐含电压和静态功耗相同条件下的对比是确实是会偏高的。

也就是说三星5nm相对于ARM的PPT里那个5nm,功耗实际上还高了大约58%。如果要说三星5nm这个电气性能在7nm和5nm之间的那个位置,那一定是非常接近7nm的。

除此之外,既然知道了功耗的关系,我可以评估一下如果是ARM的PPT N5,他可以做将到X1的CPU能量消耗做到什么水平。

可以看到,当有了这个ARM PPT的5nm工艺,X1@3GHz都是非常可用的,甚至可以跑更高的频率。其实考虑到TSMC的N5可以跑到A77@3.13GHz,而A78和X1本身都是A77改进,而A77又是A76改进,这个A76就相当于初代core的架构,同时A76/77/78/X1都是预期运行在3GHz。而横向比较2.84GHz的855/865/ARM PPT工艺的888,这个幅度也很正常。

这么一想,台积电N5能跑上X1@3GHz以上还是挺正常的。

而这里还有另外一个事:SD888的封装大小,是非常巨大的。

SD888是少数据我所知同K990 5G一样,芯片本身的封装大小甚至要比DRAM芯片更大的。这意味着你可以预期他的面积可以在105-115mm^2附近。也就是说它的面积实际上是非常大的,也就是比上一代的SD865大了大约25-38%,去掉集成进去的5G基带,面积还剩90-100mm^2,当然888还堆了ISP/DSP的SRAM/CPU二缓等等,但是这依旧让人非常怀疑三星的5nm究竟密度还有多少?

考虑三星曾经在E9825使用了7nmEUV,但是实际却和E9820这个8nm版本几乎没有区别,直到E990才有了称得上7nm节点的芯片出现。在有了这个前车之鉴后,究竟这5nm葫芦里卖的是什么药,那我就不知道了。

xian333c

tech nerd,Vup

您可能还喜欢...

7 条回复

  1. 洛晓渊说道:

    那就是这一代的手机,全部都逃不了开省电模式才是满血的宿命。

  2. 洛晓渊说道:

    那就是这一代的手机,全部都逃不了开省电模式才是满血的宿命。靠

  3. 钓鱼道长说道:

    下一代用4NM LPX 898面积好像还要更大。。。

  4. 说道:

    5LPE密度低N5这么多,还能让成本更低,可想而知5LPE有多么垃圾

  5. 123说道:

    x1和A78是共享L3么?

  6. Emotion说道:

    反复研读大佬文章,看起来x1相当于更好的A78?但是实际使用中X1长时间工作就会很烫,A78高负载比较长时间都有适中的温度是什么原因呢。这些数据是不是都是实机得出的呢?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注