ARM MacBook与Intel MacBook

2020-12-12 09:42:18

截止到昨天,我的笔记本电脑是一台15英寸的大型MacBook Pro。它包含一个英特尔Kaby Lake处理器(3.8 GHz)。我刚刚得到了配备苹果M1 ARM芯片(3.2 GHz)的全新13英寸2020 MacBook Pro。

在某些方面,Apple M1芯片远不如我的旧Intel处理器。英特尔处理器具有漂亮的256位SIMD指令。苹果芯片没有任何东西可以作为其主CPU的一部分。因此,我可以轻松地提出一些使M1看起来很糟糕的示例。但是,尝试观察M1的发光面可能会更有趣。

最近,我一直在忙于对数字解析例程进行基准测试,在该例程中,您将字符串转换为浮点数字。这似乎是一个有趣的比较。在基本测试中,我一般以单位间隔(0,1)为单位的随机浮点数,然后将它们精确地解析回去。小数有效位数跨度为17位数字。

我在两台计算机上运行相同的基准测试程序。我正在使用Apple内置的Xcode系统和LLVM C ++编译器来相同地编译两个基准。显然,二进制文件会有所不同,因为一个是ARM二进制文件,另一个是x64二进制文件。两台机器均已更新为最新的编译器和操作系统。

我的基准测试软件可在GitHub上获得。要进行复制,请安装Apple的Xcode(使用命令行工具),CMake(安装以供命令行使用),然后键入cmake -B build&& cmake --build构建&&& ./build/benchmarks/benchmark。

在这些特定测试中,新笔记本电脑速度更快。然而,差异无处不在。

我还不明白为什么Apple M1上的fast_float库这么快?它不包含特定于ARM的优化。

注意:我不喜欢在笔记本电脑上进行基准测试。 在这种情况下,测试很短,我不希望处理器受到热约束。