苹果A12处理器深度解析:性能与能耗让安卓旗舰SoC汗颜与新一代iPhoneXS一同亮相的A12处理器也保持了这一优良传统。是业界首款实现量产应用的7nm手机SoC芯片。我们之前在雷锋网的文章《详细解读7nm制程》中介绍过。一般来说,工艺数越小,晶体管的MetalPitch和GatePitch的特征尺寸越小。虽然近年来工艺命名法已从实际物理尺寸转变为商业名称,但它们仍然代表着晶体管密度的飞跃,允许供应商将更多晶体管塞入同一芯片区域以提高晶体管密度。表现。不久前,外媒TechInsights拆解了iPhoneXS,并对A12芯片进行了X光扫描。我们可以借助他们分享的视角,对A12进行一波深入的分析和揣测。A12的主要性能模块位于芯片右侧和底部,最右侧是占地面积最大的GPU集群。4个铁芯2*2对称排列,中间夹着一个小公共电路。紧邻GPU集群中间的左侧是CPU和GPU的共享缓存(L3缓存),下方是低功耗CPU核心集群,左侧是高性能CPU核心集群,上最左边是8核NPU。GPU和CPU的共享缓存是整个SoC缓存系统的一部分,级别介于内存控制器和独占缓存之间。由于处理器访问内存会消耗大量的电能,使用片上共享缓存可以节能降耗,而且由于数据的局部性,性能也会有所提升。从图中可以看出,A12的共享缓存分为4块,而之前的5代处理器从A7到A11都是2块设计的。缓存块翻倍很可能代表着缓存性能的巨大提升,这在后面的测试中就会知道。***,NPU可以说是这次A12中进化幅度最大的一个性能模块。核心数量从A11的双核猛增到8核,实际性能从A11的0.6TOP暴涨到5TOP,提升近9倍。.需要注意的是,有传言称A11的NPU采用了CEVA架构设计,但直到现在都没有得到证实,而这次苹果A12官网上明确提到了“Apple-designed”,也就是说这次的苹果的NPU架构确实是苹果自主研发的。看看A11和A12中不同模组的面积变化,就可以很明显的看出台积电7nm新工艺的优势。鉴于几乎所有模块架构都发生了变化,无法计算7nm工艺的晶体管密度增加了多少,但如果以单个GPU核心作为参考,A12的面积比A11减少了37%.更大的CPU和缓存结构A12的大核代号为“旋风(Whirlwind)”。64KB增加到128KB。人们一直想弄清楚的问题之一就是苹果处理器的缓存系统到底是怎样的结构。现在我们可以通过使用不同的队列深度来测试内存延迟来一窥究竟。测试结果是L1缓存的latency拐点从64KB转移到128KB,这很正常,但是L2缓存的latency会在3MB~6MB范围内持续增加,只有当在完全随机模式下访问,在较小的访问窗口中,L2缓存延迟再次从3MB变为6MB。队列深度超过L2缓存容量后,Monsoon核心的延迟曲线会进一步增加约4MB,Vortex核心的曲线会继续增加到8MB。这是两者的共享缓存容量范围,然后进入内存。场地。这与芯片透视图上实际看到的非常吻合。A12的共享缓存不仅分区数量翻倍,容量也从4MB增加到8MB。代号为“Tempest(暴风雨)”的小核心要复杂一些。乍一看,你可能会认为A11中代号为“Mistral(干燥寒冷的北风)”的小核只有512KB的二级缓存,而A12只有512KB的二级缓存。有1.5MB,但实际上这只是缓存电源管理策略造成的错觉。从延迟图可以看出,Mistral核心在768KB和1MB处有明显的波动,而Tempest核心在2MB处也有类似的波动。根据以上数据,可以得到下表中的数据:A12的大核心二级缓存结构与A11相比没有变化,都是128个SRAM块,每个SRAM块大小都是48KB。A12的小核心二级缓存容量翻倍,这意味着SRAM块的数量从16个增加到32个。不过苹果在A11和A12上使用的缓存电源管理策略只允许激活一部分缓存电路当数据粒度较小时。这个粒度在A11上应该是256KB,在A12上应该是512KB。这也让我们更有理由认为A11的小核心二级缓存容量为1MB,而A12为2MB,这也意味着每个SRAM块大小为64KB。不过回过头来看大核,虽然之前我们认为它的容量是6MB,但仔细观察可以发现它的曲线在8MB处有了一些变化。曲线的变化表明测试数据的大小正在逼近缓存容量的边界,这让我们猜测A11和A12的大核实际上有8MB的二级缓存。总而言之,苹果处理器的缓存不惜使用晶体管,A12在这方面更进了一步。整个SoC上各级缓存超过16MB。它的旗舰产品非常丢人。出击GPU在GPU方面,业界普遍对A12寄予厚望,不仅在性能方面,在架构方面也是如此。去年,Imagination发布了一份新闻稿,称苹果计划在未来15-24个月内不在新产品中使用其知识产权。抛开Imagination股价暴跌以及随后出售自己的命运不谈,虽然苹果确实宣称A11的GPU是独立设计,但看起来还是源自Imagination的Rogue架构,依然是基于TBDR(TileBaseDefferedRendering,Imagination的专利渲染技术),但A11GPU的一个核心大小相当于A10的两个核心。A12的代号为“G11P”的GPU仍然与A11的GPU有着非常明显的相似之处,各种功能块似乎位于相同的位置并以相似的方式构建。苹果表示A12GPU最大的改进是支持显存压缩,也就是说苹果之前使用的GPU都不支持显存压缩(喵喵喵???),显存压缩可以显着提升GPU性能。所谓显存压缩是指从GPU到显存的透明帧缓冲压缩。PC端的NVIDIA和AMD等供应商多年来一直在使用这项技术来提高GPU性能,甚至无需增加内存带宽。移动SoC中的GPU也需要内存压缩,因为移动SoC的带宽比桌面GPU更有限。Arm的AFBC是移动领域讨论度最高的显存压缩方案,高通、Imagination等其他厂商也有自己的显存压缩技术。相比之下,苹果刚刚在A12上推出这一功能似乎为时已晚,但这也意味着A12将在效率和性能上获得显着提升。VortexCore:大规模内存改进在谈论Vortex内核之前,了解Apple新SoC的频率很重要。在过去的几代产品中,Apple一直在稳步提高其大核心的频率,同时也在提升微架构的IPC。下表是A12和A11的频率表:单核满载时A11和A12的最大频率分别为2380MHz和2500MHz;双核满载频率分别为2325MHz和2380MHz。小核加入工作后,A12的大核频率依然设计稳定在2380MHz,而A11会进一步降低到2083MHz。与越来越激进的大核相比,A12的小核显得更加保守。只启动一个小核时,A11的频率为1694MHz,A12的频率为1587MHz;二、三启动时,A11为1587MHz,A12为1562MHz;四个小核满载时,A11仍能保持1587MHz,而A12则进一步下降至1538MHz。如前所述,Apple在A12的缓存结构和内存子系统上投入了大量工作。回到线性延迟图,我们看到大小核的以下完全随机的延迟行为:Vortex内核的延迟从大约11.5ns下降到大约8.8ns,降幅高达29%,这意味着Vortex内核的L2缓存可以在更短的时间内完成读写访问。在小核心方面,A12的Tempest核心与A11的Mistral核心具有相似的延迟性能,但A12在L2分区和电源管理方面做了重大改变,允许访问更大的L2物理块。这里只测试了64MB的队列深度。显然,延迟曲线在这个数据集中并没有变得平坦,但是可以看出内存延迟有所改善。当小核处于活动状态时,内存控制器DVFS的攻击频率会增加,这就是为什么Tempest核的内存访问存在很大差异的原因:它们在大核负载高时表现更好。A12的共享缓存也发生了翻天覆地的变化。虽然缓存带宽相比A11有所降低,但是访问延迟却有了很大的改善。指令吞吐量和时延由于苹果没有像Arm和三星那样公布自己的架构设计,为了对比Vortex核心的后端特性,我们测试了A12的指令吞吐量,其中后端的性能决定了由其执行单元的数量,以及延迟由其设计的质量决定。Vortex内核看起来与Monsoon内核非常相似,整数除法和浮点除法的执行延迟都减少了2个周期,浮点吞吐量增加了一倍。从架构的中后端来看,Monsoon核心是一个重要的更新。此前A10处理器的大核代号为“飓风(Hurricane)”,解码宽度为6,而Monsoon核心解码宽度增加至7,后端整数ALU单元数量为也从4个增加到6个。Monsoon内核和Vortex内核都有6个整数执行单元(包括2个复数单元)、2个加载/存储单元、2个分支端口和3个浮点/向量流水线。不仅仅是三星M3和Arm即将推出的CortexA76。事实上,除了非典型的共享端口情况,可以肯定地说,就后端单元而言,Apple的微体系结构远远超过任何其他处理器体系结构,包括台式机CPU。CPU性能是安卓旗舰的2倍SPEC2006是一款重要的基准测试软件,它区别于其他测试软件的地方在于它处理的数据集更大更复杂。GeekBench4虽然在业界流行起来,但其测试项目更小,工作量更轻。因此,以SPEC2006为基准比较具有代表性,可以充分揭示微架构的更多细节,尤其是在内存子系统性能方面。性能测试在散热良好的环境下进行,可以保证在1~2小时内完整运行测试套件不会出现问题。在左轴上,条形表示给定工作负载的功耗,条形越长意味着消耗的电量越多。条上的文字标签显示了功耗的具体值(以焦耳为单位),以及测试期间的平均功耗(以瓦特为单位)。在大多数工作负载下,A12的大核频率比A11高5%,但实际上频率并未锁定,因此在SPECint2006中,A12的性能平均比A11高出24%。增加最小的两个测试是456.hmmer和464.h264ref,这也是SPECint2006套件中瓶颈最严重的测试。由于A12架构似乎没有任何真正的重大变化,因此小幅增加主要是由于更高的频率和缓存结构的改进。在445.gobmk测试项上,A12的提升非常大,相比A11提升了27%。该测试的负载特征是存储地址事件和分支预测错误中的瓶颈。429.mcf、471.omnetpp、473.Astar、483.xalancbmk和部分403.gcc测试项对内存子系统非常敏感。A12在这些项目中实现了30%到42%的性能提升。显然,新的物联网缓存结构和内存子系统在这方面取得了很大的成绩。在能耗比上,A12相比A11平均提升了12%,但需要注意的是,这里的能耗比指的是在最大性能下功耗降低12%,A12表现出了性能对比A11提升了24%,两款SoC的性能功耗曲线已经相差很大。不过,虽然7nm工艺可以降低能耗,但在性能提升最大的基准测试中,A12的功耗相比A11不降反升,平均功率从3.36瓦提升至3.64瓦。也就是说,A12提升性能的功耗,比7nm工艺降低的功耗还要多。接下来是SPECfp2006测试,由于XCode中没有Fortran编译器,而且它不是NDK的一部分,要让它在Android上运行非常复杂,所以我们选择C??和C++基准测试。SPECfp2006有更多的内存密集型测试,在7个测试中,只有444.namd、447.dealII和453.povray在内存子系统未达到标准时看到主要的性能回归。这对A12非常有利。它在SPECfp中的平均性能提升为28%,最新的433.milc项目甚至提升了75%。同样的分析也适用于450.soplex,出色的缓存结构和内存性能带来了40%的性能提升。而470.lbm是一个有趣的测试,它显示了苹果的架构与Arm和三星相比有哪些性能优势。470.lbm的特点是代码中有大量的循环,需要在架构中有更大的指令循环缓冲区来优化这样的工作量。在循环迭代中,核心将绕过解码阶段并从缓冲区中获取指令。看来苹果的架构恰好有某种类似的机制,也有可能苹果处理器内核热循环Lbm的向量执行性能大量使用了SIMD,最终产生高达3倍的执行吞吐量优势完美的表现。(高通的Kryo架构由于其独特的设计,在该项目中仍然优于近期的安卓阵营处理器。)与SPECint测试类似,A12在SPECfp测试中的能耗比有了明显提升。在所有测试中,总能量比A11低10%。另一方面,A12的功耗也有所提升,平均功耗从3.65瓦上升到4.27瓦,其中433.milc项目的功耗从2.7瓦上升到4.2瓦,增加了75%;482.sphinx3项目的功耗达到了A12所有SPEC测试项目中的最高值5.35瓦。总体而言,Apple对Vortex内核和内存子系统的改进使A12比宣传的更强大。与目前领先的安卓阵营SoC相比,A12在性能和能耗比上拥有近2倍的压倒性优势,而在正常使用情况下,A12的优势可能更大。这也让我们对今年发布的三星M3架构有了更好的理解,那就是更高的功耗只有在功耗可控范围内才能带来更高的性能(Exynos9810的功耗是苹果上一代A11的两倍,但它的性能只有A11的一半)。GPU能耗比是骁龙845GPU的1.8倍的性能提升是A12这次的亮点之一。通过将GPU从3核“简单”扩展到4核,以及显存压缩技术的引入,苹果表示A12的GPU性能比A11提升了50%。在进入基准测试之前你必须知道的是,在过去的两三年里,苹果开始注重峰值性能而忽略了长期运行时的稳定性能。使用过程中经常会出现过热、降频等情况,导致性能下降。因此,苹果最新GPU的峰值性能和峰值功耗是必须要关注的大问题。在3DMark物理测试中,iPhoneXS和A12相比去年的iPhoneX都有了很大的进步。3DMark物理测试之前对苹果的处理器并不友好,这种情况在A11上得到了一定程度的缓解。A12整体再次提升了SoC的性能功耗比,最终在本次测试中跑赢了骁龙845。在3DMark测试的图形部分,iPhoneXS的持续性能比去年的iPhoneX提升了41%,但OnePlus6更激进的功耗和温度限制使其性能更加出色。不过在峰值性能方面,iPhoneXS在3DMark测试中遇到了很大的问题。如果测试时手机温度比较低,测试时会很快死机。监测显示,低温下处理器频率较高,平台瞬时峰值功耗可达7.5瓦左右。系统无法提供足够的瞬态电流,这会导致电压下降,甚至损坏GPU。除了3DMARK,Kishonti的GFXBench多年来一直是行业标准,新的Aztec测试给我们带来了不同的工作量。不久前,Kishonti发布了GFXBench5.0版本,该版本运行在全新的渲染引擎上,并在HighTier和NormalTier模式下引入了新的测试场景AztecRuins。新测试更加强调着色性能,使用更复杂的效果来强调GPU的运算能力。NormalTier模式下的AztecRuins测试要求相对较低。iPhoneXS的峰值性能相比去年的iPhoneX提升了51%,持续性能提升了61%,一加6提升了45%。在HighTier模式下,iPhoneXS的持续性能比iPhoneX高61%,比OnePlus6高31%。在功耗方面,由于没有时间在各种情况下测量Aztec设备,它仍然依赖于标准的Manhattan3.1和T-Rex测试数据。在Manhattan3.1中,iPhoneXS的性能比iPhoneX高出75%。这里的提升不仅仅是因为内核的增加,还有内存压缩技术,可以降低RAM的功耗。在22℃的环境温度下,A12在曼哈顿3.1测试中的峰值功耗达到了6瓦。但即使在这样的峰值功耗下,A12的效率也超过了所有其他SoC,可见苹果对功耗的控制非常有效。运行测试3分钟后,功率回落到合理的3.79瓦。此时处理器的能耗比相比峰值功耗只增加了16%,证明A12的能耗比曲线非常平坦,6瓦的峰值功耗仍然是在芯片本身的可控范围内,可见苹果在芯片设计上的强大。在霸王龙测试中,iPhoneXS的持续性能比iPhoneX提升了61%,而功耗则与曼哈顿3.1测试相近。消费比也没有太大改善。那么为什么近两三年苹果处理器的峰值性能和持续性能会有如此大的差距呢?事实上,这种变化是由于日常GPU应用场景的变化以及苹果对GPU对非3D相关应用的加速需求。Apple的垂直整合和对API堆栈的严格控制意味着GPU加速成为现实,峰值性能是一个重要指标。Apple将GPU大量用于其他各种目的,例如在应用程序中使用GPU来实现相机图像处理的硬件加速。这些应用程序场景是需要高峰值性能以尽快完成处理的事务性工作负载。相比之下,Android在过去几年的GPU计算方面一直是一场灾难,这主要是因为AOSP中缺乏对OpenCL的支持——这使得供应商对OpenCL的支持非常不完善。由于无法保证性能,RenderScript从未获得太多关注,Android设备和SoC的碎片化意味着GPU计算在很大程度上无法用于第三方应用程序。得益于全新的A12处理器,iPhoneXS和XSMax展现了业界领先的性能和效率,是目前领先的游戏移动平台。不过,苹果还是应该在手机的散热方面做一些功课。iPhoneXS的热量分布与上一代iPhoneX一样过于集中,极大地影响了用户体验。本文转载自雷锋网。如需转载,请到雷锋网官网获得授权。
