Apple M1的小Icestorm 内核与大Firestorm内核进行了对比
当 Apple 宣布其 M1 处理器时,该芯片成为第一个采用这种混合CPU 内核排列的设计,这些CPU 内核由更大的高性能内核与更小、功耗更低的内核组合而成。当然,我们已经知道这些大内核性能良好,但我们还没有看到小内核通过正面对头的基准测试。不过,Eclectic Light Company 的博客现在已经阐明了这个问题,因此我们正在了解这些较小的内核与其更高功率的同类产品相比在一般任务中的表现如何。
Apple M1 芯片由四个高性能“Firestorm”内核和四个低功耗“Icestorm”内核组成。两个 IP 协同工作,但每个 IP 都旨在高效运行某些类型的代码。
较小的内核通常专门用于基本的操作系统处理任务并处理后台代码执行,让大内核可以自由地执行其他任何事情——尤其是高性能工作。然而,当一些像繁重浮点计算这样的主要任务出现时,它会被定向到更大的 Firestorm 内核。
这些测试将小型 Icestorm 内核置于浮点点积测试套件之下。为确保只有 IceStorm 内核执行工作负载,测试人员将 服务质量 (QoS)设置设置为 9,这仅触发这些较小的内核而不是较大的 Firestorm 内核,如您在处理器图像中所见下面的负载监控工具。
该装备在四种情况下测试了性能:“在 4 宽单精度浮点数数组上使用混合 SIMD 指令的汇编语言的紧密循环;Apple SIMD(加速库的一个亲戚)在两个simd_float4 数组,使用 Swift;使用嵌套循环的简单 Swift;使用 map 和 reduce 的更“惯用”的 Swift 嵌套循环。”
如果我们将其与用作 100% 分数基准的参考大型 Firestorm 内核进行比较,则 Icestorm 内核完成这些任务所需的时间百分比如下:汇编语言为 190%,SIMD(加速)为 330%库函数,280% 用于简单 Swift,550% 用于“惯用”Swift 处理。请注意,基线是 100%,而 200% 的结果意味着完成特定任务所需的时间是原来的两倍。惯用的 Swift 代码基准测试代表了 Icestorm 核心的最坏情况,完成时间比 Firestorm 核心长 5.5 倍以上。
尽管如此,这并不意外,因为 Icestorm 内核主要是为了高效率而构建的。这意味着低功率和低热量输出同时仍能提供良好的性能是当今的流行语。由于基准 FireStorm 内核性能非常好,考虑到效率提升后,慢几倍并没有多大意义。