最佳性价比? 我在 GCP 上对 AMD 实例进行了基准测试。
大家好
我叫神原,来自系统解决方案部。
我作为一名应届毕业生加入Beyond,但不知不觉间,我已经三年没有写博客了。
这是我的第一篇博客文章。
可能有点突然,但在过去的几年里,AMD 的 CPU 一直是我个人的热门话题。
2017年首款Zen架构CPU发布,其高多线程性能成为热门话题。
此后,Zen+、Zen2等改进架构的CPU陆续推出,特别是去年10月发布的Zen3架构CPU,不仅多线程性能显着提升,单线程性能也有明显提升从很多方面来看,这都是一个非常强劲的结果。
Kanbara 还热衷于在他的下一台自制 PC 中使用 AMD CPU,但由于各种原因,他尚未能够构建一台。我想要5800X。
现在,使用 AMD Zen 微架构的 CPU 也被部署在服务器上。
服务器产品正在AMD EPYC品牌下开发,我们公司的Ohara在博文中总结了EPYC的特点,请看一下。
配备EPYC CPU的服务器/实例可以在包括AWS在内的各种云平台上使用。
这次,我想在 GCP 上启动一个使用 EPYC 的 Compute Engine 实例,并使用使用 Intel Xeon 的实例对其进行基准测试。
GCP 计算引擎上的 AMD EPYC(霄龙)
Google Compute Engine 使 EPYC 可用于多种机器类型。
- E2虚拟机
- N2D虚拟机
- Tau T2D 虚拟机
该基准测试使用 N2D VM。 N2D 定位为 N2 VM 的 AMD EPYC 版本,采用 Intel Xeon,之所以被选中是因为它可以轻松比较 CPU 差异。
实例选择
首先,选择一个实例进行基准测试。
EPYC实例的机器类型为N2D VM,规格和配置如下。 EPYC也有几代,官方文档,似乎第二代EPYC Rome可以与N2D VM一起使用。对了,最新的EPYC是第3代Milan。
中央处理器品牌 | AMD EPYC(霄龙)罗马 |
虚拟CPU | 2 |
记忆 | 8GB |
磁盘 | 平衡永久磁盘 20GB |
操作系统映像 | centos-7-v20211105 |
对面的 Intel Xeon 实例是具有以下规格和配置的 N2 VM。但如果规格不平衡,就没有可比性,所以我使用的除了 CPU 品牌外,与 EPYC 实例完全相同。 Xeon 一代似乎要么是 Ice Lake,要么是 Cascade Lake,但无论哪种方式,它都是相当新一代的。
中央处理器品牌 | Intel Xeon(Ice Lake 或 Cascade Lake) |
虚拟CPU | 2 |
记忆 | 8GB |
磁盘 | 平衡永久磁盘 20GB |
操作系统映像 | centos-7-v20211105 |
这次我们就以此配置进行基准测试并进行比较。
检查CPU
启动实例后,使用SSH登录。
GCP在控制台中集成了SSH,因此可以很方便地从浏览器轻松登录服务器。如果像这次一样是一次性物品,那就更容易了,因为你不用担心准备钥匙。
使用 SSH 登录后,尝试运行 lscpu。首先是 EPYC 实例。
# lscpu 架构:x86_64 CPU 操作模式:32 位、64 位 字节顺序:Little Endian CPU:2 在线 CPU 列表:每个核心 0,1 个线程:每个插槽 2 个核心:1 个插槽:1 个 NUMA 节点:1 个供应商 ID:AuthenticAMD CPU 系列:23 型号:49 型号名称:AMD EPYC 7B12 步进:0 CPU MHz:2249.998 BogoMIPS:4499.99 虚拟机管理程序供应商:KVM 虚拟化类型:完整 L1d 缓存:32K L1i 缓存:32K L2 缓存:512K L3 缓存:16384K NUMA node0 CPU:0,1 标志:fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht 系统调用 nx mmxext fxsr_opt pdpe1gb rdtscp lmconstant_tsc artrep_good nopl nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave f16 c rdrand 管理程序 lahf_lm cmp_legacy cr8_legacy abm sse4a 未对齐 3dnowprefetch osvw topoext retpoline_amd ssbd ibrs ibpb stibp vmmcall fsgsbase tsc_调整 bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero xsaveerptr arat npt nrip_save umip
型号名称为 AMD EPYC 7B12。您还可以查看缓存配置。
架构自然是x86_64,指令集兼容Intel Xeon。
SIMD 指令最高兼容 AVX2。然而,由于SIMD指令本身在一般服务器应用中的使用机会有限,因此这被认为是必要且充分的。
接下来是在 Xeon 实例上执行时的结果。
# lscpu 架构:x86_64 CPU 操作模式:32 位、64 位 字节顺序:Little Endian CPU:2 在线 CPU 列表:每个核心 0,1 个线程:每个插槽 2 个核心: 1 个插槽: 1 个 NUMA 节点: 1 供应商 ID: GenuineIntel CPU 系列: 6 型号: 85 型号名称: Intel(R) Xeon(R) CPU @ 2.80GHz 步进: 7 CPU MHz:2800.252 BogoMIPS:5600.50 虚拟机管理程序供应商:KVM 虚拟化类型:完整 L1d 缓存:32K L1i 缓存:32K L2 缓存:1024K L3 缓存:33792K NUMA node0 CPU:0,1 标志:fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht 系统调用 nx pdpe1gb rdtscp lm Constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe aes xsave avx f16c rdrand 管理程序 lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_调整 bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt x savec xgetbv1 arat vx512_vnni md_clear spec_ctrl intel_stibp arch_capability
型号名称为 Intel(R) Xeon(R) CPU @ 2.80GHz,具体型号似乎被屏蔽。
此外,Flags中还添加了avx512标志,表明CPU支持AVX512(512位宽SIMD指令)。
EPYC 实例最高支持 AVX2(256 位宽度 SIMD 指令),因此很可能在视频编码和图像转换等可以使用 SIMD 指令(和兼容程序)的进程中展现高性能。
基准准备
这次,我们将使用UnixBench作为基准软件。
IDCF发表了关于UnixBench解释和安装过程的
EPYC 实例和 Xeon 实例均从同一映像 (centos-7-v20211105) 启动,我们在运行基准测试之前运行 yum -y update 一次。
执行环境的内核、GCC、UnixBench版本如下。
Linux内核 | 3.10.0-1160.49.1.el7.x86_64 |
海湾合作委员会 | 4.8.5 20150623(红帽4.8.5-44) |
UnixBench | 版本5.1.3 |
当 UnixBench 不带参数运行时,它以 1 个并行度运行基准测试,然后以与逻辑 CPU 数量相同的并行度继续运行(总共 2 次)。
这次,我们指定2vCPU作为实例规格,因此逻辑CPU的数量为2,因此并行数也为2。
在下一节的结果中,我们将显示并行性 1 的结果和并行性 2 的结果。
基准测试结果
首先,这是平行数的结果: 1。
蓝色条是 Xeon 实例的结果,红色条是 EPYC 实例的结果,值越大意味着结果越好。
底部的系统基准指数得分(总体)为基准总得分,其他项目为单项测试的结果。
从结果来看,AMD 实例总体表现良好。 Xeon实例的总分也是1096.6,AMD实例的总分是1288.2,差异显着。从各个项目来看,它似乎在系统调用开销和文件复制等项目中表现出特别高的性能。
系统调用调用和文件复制是服务器应用程序的重要指标,因此这些项目的性能高是件好事。
接下来是并行数 2 的结果。
与并行度 1 一样,蓝色条是 Xeon 实例,红色条是 EPYC 实例。
EPYC 实例在这里也占主导地位。总体而言,EPYC 实例比 Xeon 实例具有更好的结果。
另外,这里我想重点关注的是总分,Xeon 实例仍保持在 1545.4,而 EPYC 实例则将其分数提高到了 2253.1。
并行数为 2 的 Xeon 实例的得分约为并行数为 1 的得分的 1.4 倍,而并行数为 2 的 EPYC 实例的得分约为并行数为 1 的 1.75 倍。
这是运行名为 UnixBench 的单一基准测试软件的结果,但 EPYC 实例似乎比 Xeon 实例具有更好的并行化效率。
费用
尽管与基准测试没有直接关系,但 EPYC 实例比 Xeon 实例便宜。
根据此基准测试中使用的配置和规格,Xeon 实例的费用约为每月 74 美元,而 EPYC 实例的费用约为每月 64 美元。
概括
我在 GCP 的计算引擎上启动了一个使用 AMD EPYC 的实例和一个使用 Intel Xeon 的实例,并使用 UnixBench 对它们进行了基准测试以进行比较。
在此基准测试中,我们发现使用 EPYC 的实例具有卓越的性能。它还具有出色的性价比,因此请在使用GCP构建服务器时考虑它。
此外,在这个基准测试中,使用英特尔的实例的结果并不好。还有性别。 Intel Xeon 还具有 EPYC 所没有的名为 AVX512 的功能,因此您可以根据具体情况选择适合您的工作负载的实例。
就这样。非常感谢。