苹果A12处理器小核心集群和NPU集群探究!
扫描二维码
随时随地手机看文章
上周我们对全新iPhone XS和A12处理器进行了深入分析,不过主要部分集中在CPU的大核心集群以及GPU集群两方面,对A12的低功耗小核心集群和NPU集群并没有过多描述,本文便来继续探究这两部分。
代号“Tempes(暴风)”:凶猛的小核心
从A10这一代开始,苹果在SoC中引入了代号为“Twister(龙卷风)”的低功耗小核心集群,而后是A11为“Mistral(干冷的北风)”,而此次的A12则为“Tempest(暴风)”。不过多年来小核心经历三代更迭,我们却从来没有分析过这些架构,对它们始终有一种神秘感。
从某种意义上说,高性能的核心架构无论怎样压低功耗,也无法媲美天生的低功耗小核心架构,即使时钟门控设计完美,也无法避免核心中存在的静态泄漏。使用更小的CPU核心有助于缓解静态泄漏,以及提高动态泄漏功率效率。
Tempest核心是一个乱序三发射的架构,这意味着它与Arm big.LITTLE体系下的小核心基本无关,因为Cortex A53和Cortex A55等均为更简单的顺序执行架构。Tempest核心的执行单元也相对较少,只有两个简单ALU算数逻辑单元,其中一个可执行整数和浮点乘法,另一个则能够执行浮点加法。除了两条主要管道外,只有一个专用的组合装载/存储端口。
有趣的是,Tempest核心基本上与苹果此前A6处理器的Swift核心是相同的,苹果很有可能是将老的高性能架构精简并修改为64位后作为低功耗小核心使用。如果Tempest核心确实是Swift核心派生的,那么在上面描述的三个执行单元之外,还应该有一个用于整数和浮点分区的专用端口,这样在指令被馈送时才不会阻塞主流水线。
Tempest核心频率最高可达1587MHz,有32KB L1缓存以及2MB L2缓存。除了L2容量较大之外,Tempest核心与A11的Mistral核心并没有其他明显差异。不过不幸的是,当A11的小核心集群上只有一个线程处于活动状态时,Mistral核心的频率可以提升到1694MHz,高于Tempest核心,很难直接比较二者的能耗比。
与大核心Vortex非常相似,A12的Tempest核心的最大改进体现在对内存敏感的测试项中。,而输给A11的Mistral核心主要是由于频率劣势。总体而言,除了内存改进之外,Tempest核心在性能上与Mistral核心非常相似,这也为我们对比二者的能耗比提供了便利。
但不幸的是,Tempest核心相比Mistral核心的能耗比提升并不如大核心一样巨大,纵观SPECint2006测试,Tempest核心的能耗比提升了35%,考虑到Mistral核心的频率更高,实际同频下的能耗比提升还要低于35%。而在浮点基准测试中,Tempest核心的能耗比平均只提高了17%。
如果将A11和A12的小核心与大核心以及来自Arm的竞争对手放在一起对比,其实并没有太大的惊喜。与苹果的大核心相比,小核心的性能大概只有三分之一到四分之一,但它们消耗的能量却足有大核心的一半。
(注:小核心的功耗只有大核心的七分之一到八分之一,但因为性能较低,执行相同任务所用的时间更长,因此实际消耗的能量为大核心的一半)
不过令人惊讶的是,在SPEC的整数工作负载中,A12的Tempest核心和A11的Mistral核心性能甚至相当于2.1GHz频率下的Cortex A73,但Mistral核心的功耗却仅有Cortex A73的41%(A11和麒麟970同为台积电10nm)。不过在浮点工作负载中,小核心由于没有专用的浮点执行单元而失去了性能上的竞争力,但它们仍能提供很高的能效。
从测试来看,苹果的小核心要比Arm的小核心性能要高得多,从私下里积累的Cortex A55测试成绩来看,Tempest核心的性能大概是Cortex A55的将近3倍。Arm小核心的性能在实际使用中很容易成为短板,这意味着我们未来可能会看到更多像麒麟980这样的的“大-中-小”三集群SoC,而Arm也应该思考一下小核心是否还应该继续使用性能低下的顺序执行架构。
NPU神经网络推理性能测试
A12另一个重大而神秘的进化是自主研发的全新NPU,在上篇文章中曾经提到,NPU在A12芯片上占据了较大的面积,几乎相当于两颗Vortex大核心。
幸运的是,鲁大师的AImark支持iOS,使用Apple的CoreML框架来加速与Android相同的推理模型,可以直接对比苹果和安卓阵营处理器的神经网络推理性能。
从结果来看,虽然苹果公布的理论性能(A11:0.6TOps,A12:5 TOps)在这个测试中并未得到很好的验证,但提升依然达到了4~6.5倍。测试中还发现,拥有NPU的A11成绩并没有比A10高出许多,这可能是由于A11的NPU从未通过API公开展示,因此在测试中只能使用GPU来执行CoreML。
华为P20 Pro的麒麟970比A12落后大约2.5倍,恰好与各自宣称的NPU理论性能比例相同(2TOP和5TOP)。而华为表示,麒麟980的全新双核NPU比麒麟970的NPU快2.2倍,每分钟可实现4500次推断,由此看来麒麟980的AI性能应该能够追平A12。
高通骁龙845的表现也很好,在不同特性的测试中与麒麟970互有胜负。由于AJmark目前还不支持NNAPI,只能使用SNPE框架进行推理加速,因此Pixel 2和Note9不得不使用CPU来进行运算,测试结果很差。
功耗方面,A12的NPU满载功耗约为5.5瓦,且整个测试期间的功耗有很大起伏。这一功耗水平意味着苹果希望拥有最高的突发处理性能。使用GPU加速AI处理的A11和10功耗在2.3瓦到5瓦范围内,具体取决于推理模型。
via:Anandtech