现代处理器每个周期可以执行多条指令。由于处理器无法轻易地运行得更快(就时钟速度而言),供应商试图让他们的处理器在每个周期内完成更多的工作。
Apple 处理器的范围很广,因为与同类的 Intel 或 AMD 处理器相比,它们每个周期可以退出更多的指令。但是,有些人认为这是不公平的,因为 ARM 指令的功能不如 x64(Intel/AMD)指令强大,而且做的工作也更少,因此我们具有性能对等。
让我们验证一下。
我有一个数字解析基准,它记录了平均解析数字的周期数、指令数和纳秒数。我解析了一个标准的数字数据集 (canada.txt),我保留了 fast_float 数字(ASCII 模式)。
系统 | 每个浮点数的说明 | 每个浮动周期 | 每个周期的指令 |
---|---|---|---|
英特尔冰湖,GCC 11 | 302 | 64 | 4.7 |
苹果 M1,LLVM 14 | 299 | 45 | 6.6 |
当然,这是一个单一的任务,但数字解析作为一个计算任务是相当通用的。
尽管你的里程会有所不同,但我发现对于我进行基准测试的任务,我经常看到与 x64 指令一样多的 ARM 指令被淘汰。有差异,但它们很小。
但是,与英特尔处理器相比,Apple 处理器每个周期最终淘汰了更多的指令。
原文: https://lemire.me/blog/2023/05/12/arm-instructions-do-less-work/