三年前,我们在评估高通Centriq后拥抱了ARM生态系统。 Centriq及其Falkor核心的功耗显着降低,同时对当时为服务器舰队提供供电的处理器的可比性。当我们完成将软件堆栈兼容的软件堆栈与ARM兼容时,Qualcomm决定退出服务器业务。从那时起,我们一直在等待另一台服务器级臂处理器,希望能够改善我们全球网络的电力效率,现在跨越200多个国家的200多个城市。
ARM推出了NeoVers N1平台,蓝图为创建能够定制原始设计的机构许可的功能,以满足其特定要求。安培许可NeoVerse N1平台创建安培Altra,这是一个处理器,允许拥有自己的公司和管理自己的服务器的公司,如我们自己,利用扩大的ARM生态系统。我们一直在使用安培确定Altra是否是电动我们第一代ARM边缘服务器的正确处理器。
AWS Graviton2是唯一可公开访问的其他基于N1的处理器,但仅通过亚马逊的云产品组合提供。我们希望了解两者之间的差异,因此我们比较了Ampere的单套接字服务器,名为MT.雪,配备安培Altra Q80-30,反对AWS Graviton2的EC2。
Ampere Altra和AWS Graviton2相似,通过臂基于NeoVerse N1平台,在TSMC 7NM过程中制造。 N1参考核心具有11级超出顺序执行管道,以及ARM命令中的以下规格。
N1核心包含64kiB的L1指令和L1数据高速缓存的64kib,并且可以使用最多可实现每个核心的专用L2缓存。 L3缓存或系统级缓存可以使用最多256mib(最多4MIB,最多64个切片),由所有内核共享。
一对N1芯可以通过组件聚集层组合成双核配置,然后放置在名为相干网格网络的网格互连内,该互连或CMN-600支持高达64对核心,总计128个核心。
我们可以通过检查CPU部分内的CPU部分来验证两个处理器基于NeoVers N1平台,该CPUInfo返回0xD0C,为新常规N1的指定部件号。
Ampere在Ampere Altra中留下了各种特征,包括从ARMv8.5指令集架构中包括来自ARMv8.5指令架构的熔化和幽灵(变体1和2),在其ISA中提供ALTRA(ARMv8.2)的“+”名称+)。
Ampere Altra由25%的物理核心组成,工作频率高出20%,而不是AWS Graviton2。由于Altra更高的核心计数和频率,我们应该预计安培Altra比计算绑定工作负载中的AWS Graviton2更好地执行高达50%。
AMPERE和AWS都决定每台核心实现1MIB的L2缓存,但只有32MIB的L3或系统级缓存,尽管CMN-600规范允许高达256MIB。这使得安培Altra具有比AWS Graviton2更低的L3高速缓存 - 每芯比,并将Altra放置在应用程序的工作组不适合L3缓存内的情况下的潜在缺点。
我们将两个系统与Debian Buster进行了成像,并下载了我们的开源基准套件,CF_Benchmark。该基准套件在大约15到30分钟内执行49个不同的工作负载。每个工作负载利用了在我们的堆栈中使用的库或在一点中考虑的库。由于基准测试的持续时间相对较短,并且工作负载调用库,我们将CF_Benchmark作为我们对所带来的任何新系统的烟雾测试。我们在讨论新硬件,主要处理器的新硬件,以确保这些工作负载可以编译并成功运行时,我们建议您的技术合作伙伴。
我们多次运行cf_benchmark并未观察到没有显着的运行变化。类似于行业标准基准,我们计算了使用几何平均值来提供比所有49个工作负载和类别分数的算术均值的算术均值的总分比使用它们各自的工作负载。
在单核方案中,CF_Benchmark将产生单个应用程序线程,占据单个硬件线程。在多核方案中,CF_Benchmark将根据需要产卵,直到处理器上的所有硬件线程被占用。任何处理器都没有实现同时多线程,因此每个物理核心一次只能执行一个硬件线程。
鉴于Altra在运营频率和纯粹的核心计数中的优势,安培·阿尔特拉队越过单核和多核性能。
在单核性能方面,安培·阿尔特拉优先于AWS Graviton2达16%。两个处理器之间的操作频率的差异使安培Altra成为我们单核工作负载的一半以上的比例优势高达20%。
在多核性能方面,安培Altra继续将其边缘保持在AWS Graviton2的31%。我们预计Ampere Altra由于Altra更高的工作频率和核心计数而获得了20%至50%的理论优势,同时考虑了核心计数的增加相关的固有开销,主要缩放网状网络。我们观察到我们的大多数多核工作负载在20%到50%的范围内下降。
在OpenSsl和Luajit中,安培Altra以单核性能的运行频率与其运行频率成比例,并继续展示其核心计数,以多核性能。 Ampere Altra在绝大多数压缩和Golang工作负载中保持其领先,除了Brotli Level 9压缩和一些不能让两个处理器忙于100%CPU利用率的Golang多核工作负载。
如前所述,我们使用Openssl的叉,名为Boringssl,在诸如TLS握手处理的地方。原始OpenSSL附带一个名为“速度”的内置基准测试,可衡量单核和多核性能。在此发现的非对称和对称加密工作负载在100%的CPU利用率下饱和了处理器。 Altra通过在整个类别中通过在单核中保持一致的20%优势,在整个类别中保持一致的20%的优势,并继续以核心计数持续扩展并平均执行的多核性能,并且在多核性能方面进行了47%的级别。
我们通常将Luajit描述为掌握CloudFlare的胶水。 Luajit在CloudFlare在CloudFlare历史悠久,因此它在视频演奏行业中广泛使用,绩效和响应性是不可谈判的要求。
虽然我们一直从Luajit转变为Rust,但我们欢迎向安培Altra实施的指令高速缓存一致性。指令高速缓存一致性旨在解决与Luajit关联的缺点,例如其自修改属性,其中需要获取的下一个指令不在指令缓存中,而是数据缓存。启用此功能,指令高速缓存变得连贯或意识到在数据缓存中进行的更改。 L2高速缓存变得包括L1指令高速缓存,这意味着L1指令高速缓存中的任何高速缓存行也应该存在于L2高速缓存中。此外,L2缓存拦截到任何L2的高速缓存行所做的任何无效或存储,并将这些变化传播到L1指令高速缓存。
Ampere Altra在单核性能中表现出色,除了Fasta,在管道的前端停滞不前。在Fasta的多核版本中,Altra在前端的可能由于安培的前端停滞不前,Altra在执行的指令高速缓存一致性的实现中占有可能。所有其他工作负载继续扩展到多核工作负载,其中二进制树以73%出现。由于多核变量未能在两个服务器上运行,因此省略了光谱。
Brotli和Gzip是我们在CloudFlare使用的两种主要类型的压缩。我们在高效的压缩算法中找到了价值,因为它有助于我们在更快的处理器上消费更多资源之间的平衡,或者除了能够更快地传输内容,还具有更大的存储容量。除了Brotli级别9和GZIP级别4多核性能之外,Ampere Altra在两种压缩类型上表现良好。
走出整个基准套件,Brotli Level 9引起了安培Altra和AWS Graviton2之间最大的三角洲。虽然我们在执行动态压缩时我们不使用Brotli级别7及以上,但我们决定进一步调查。
从历史观察中,我们注意到大多数处理器倾向于在9级遇到重大的性能下降。压缩工作负载通常由更高的分支指令混合组成,我们发现大约15%到20%的动态指令是分支指令。直观地,我们首先看着误估量,因为高错过率将迅速增加罚款周期。然而,为了我们的意外,我们发现9级非常低的误片率。
通过进一步分析我们的数据集,我们发现普遍的潜在原因似乎是9级发生的页面错误。Ampere已经证明,通过将页面大小从4K增加到64K字节,我们可以缓解瓶颈并带来安培Altra与AWS Graviton2的平价。我们计划在未来进行大型页面规模,因为我们继续评估Altra。
Luajit,Rust,C ++,以及我们的一些主要语言;这里发现的Golang工作负载包括加密,压缩,正则表达式和字符串操作。安培Altra在绝大多数单核性能下对其对AWS Graviton2的工作频率进行比例进行。在多核性能中,无法使处理器饱和至100%CPU利用的工作负载没有与两个处理器的相应操作频率和核心计数成比例地扩展。
我们无法在AWS Graviton2上收集任何遥测。功率将是AWS GravitOn2上有趣的数据点,但EC2实例没有暴露频率或功率传感器。我们测试的安培模型是Altra Q80-30,额定工作频率为3.0GHz,热设计功率(TDP)为210W。
安培Altra在整个CF_Benchmark保持持续的工作频率,而Altra的动态电压和频率缩放(DVFS)机构偶尔将其在工作负载之间的工作频率降低以降低功耗。封装功率根据工作负载而变化,但Altra从未在其额定TDP附近的任何位置消耗,而默认风扇曲线将温度保持在70℃以下。在系统级别,通过简单地查询基板管理控制器通过IPMI,我们观察到AMPERE服务器不超过300W。更多的功率高效服务器直接转换为更灵活性,我们如何填充我们的机架,我们希望这一趋势将继续生产。
在我们的自上而下的评估中,安培Altra在整个基准套件中都有很大程度上进行。我们经常观察到这两个新系列处理器对其各自的工作频率和核心计数,安培altra在这些关键区域上的顶部上方的AWS Graviton2。由于较高的工作频率,安培Altra产生了更好的单核性能,并通过对AWS Graviton2的多核性能的更高核心计数来缩放速度进一步升高其影响。我们还发现我们的安培评估服务器消耗比我们预期的权力更低,并希望这种趋势将继续生产。
在整个关于底层架构的初始测试和学习更多内容中,在与当代X86对应物相比,我们发现了许多零件,例如缺乏同时多线程或动态频率升压。我们期待看到哪些设计理念对云更有意义。我们目前正在评估Altra对我们的服务器队列的表现,并与安培合作以基于可以在比例下部署的ALTRA来定义ARM边缘服务器。
安培ARM硬件数据中心CloudFlare网络