文章由 HPC 和 AI 创新实验室的 Varun Bawa、Savitha Pareek 和 Ashish K Singh 于 2019 年 4 月撰写
随着第 2 代英特尔至强®可扩展系列处理器(代号为“Cascade Lake”的体系结构)的发布,Dell EMC 更新了第 14 代 PowerEdge 服务器,以受益于更多的核心数量和更高的内存速度,从而有利于 HPC 应用程序。
此博客介绍了第一组结果,并讨论了在搭载全新英特尔至强® Cascade Lake 处理器的 Dell EMC PowerEdge C6420 上可用的不同 BIOS 调整选项对某些 HPC 基准测试和应用程序的影响。下面简要介绍了本研究中使用的 Cascade Lake 处理器、BIOS 选项和 HPC 应用程序。
Cascade Lake 是英特尔的 Skylake 后继产品。Cascade Lake 处理器支持多达 28 个核心、6 个 DDR4 内存通道,速度高达 2933 MT/s。与 Skylake 类似,Cascade Lake 通过 AVX512 指令集支持额外的矢量化能力,允许 32 DP FLOP/周期。Cascade Lake 引入了
矢量神经网络指令 (VNNI),可提高图像分类、语音识别、语言翻译、对象检测等 AI 和 DL 工作负载的性能。VNNI 还支持 8 位指令,以加快
推理性能。
Cascade Lake 包括针对某些
旁路漏洞的硬件缓解措施。预计这可以提高存储工作负载的性能,请期待
创新实验室的未来研究。
由于 Skylake 和 Cascade Lake 是插槽兼容的,因此系统 BIOS 中显示的处理器调整旋钮在这些处理器代系中是相似的。本研究探讨了以下 BIOS 调整选项,类似于
过去在 Skylake 上发表的研究。
处理器设置:
- Adjacent Cache Line Prefetch:相邻高速缓存行预取机制允许自动硬件预取,无需程序员干预即可运行。启用时,它将两个 64 字节的高速缓存行容纳到 128 字节扇区中,而不考虑是否已请求额外的高速缓存行。
- 软件预取器:它通过在需要数据之前将数据加载到缓存中来避免停滞。示例:使用 L2 预取指令将数据从主内存预取到 L2 高速缓存,然后在使用 L1 预取指令之前将数据从 L2 高速缓存预取到 L1 高速缓存。在这里,当设置为启用时,处理器将为每个内存请求预取额外的高速缓存行。
- SNC(Sub-NUMA 群集):启用 SNC 类似于将单插槽拆分为两个 NUMA 域,每个域具有插槽的一半物理内核和一半的内存。如果这听起来很熟悉,它在实用性上类似于英特尔至强 E5-2600 v3 和 v4 处理器中提供的 Cluster-on-Die 选项 。SNC 的实施方式与 COD 不同,与使用芯片上群集选项的前几代相比,这些更改改进了 Cascade Lake 中的远程套接字访问。在操作系统级别,启用了 SNC 的双插槽服务器将显示四个 NUMA 域。其中两个域彼此距离较近(在同一插槽上),另外两个域距离较远,穿过 UPI 到达远程插槽。这可以使用操作系统工具看到,例如:numactl –H ,如图 1 所示。
图 1:NUMA 节点布局
系统配置文件:
系统配置文件是一个元选项,进而设置多个以性能和电源管理为中心的 BIOS 选项,如
Turbo 模式、
Cstate、C1E、
Pstate 管理、非核心频率等。 本研究中比较的不同系统配置文件包括:
- 性能
- PerformancePerWattDAPC
- PerformancePerWattOS
我们使用了两个 HPC 基准和两个 HPC 应用程序来了解这些 BIOS 选项对 Cascade Lake 性能的影响。表 1 和表 2 说明了本研究中使用的服务器和 HPC 应用程序的配置。
应用程序 |
域 |
版本 |
基准 |
高性能线包 (HPL) |
计算 - 求解密集线性方程组 |
来自英特尔 MKL - 2019 Update 1 |
问题大小占总内存的 90%、92% 和 94% |
流 |
内存带宽 |
5.4 |
三合 会 |
WRF系列 |
天气研究与预报 |
3.9.1 |
科努斯 2.5公里 |
ANSYS® Fluent® |
流体力学 |
19.2 |
Ice_2m、 Combustor_12m、 Aircraft_wing_14m Exhaust_System_33m |
表 1:应用程序和基准测试
组件 |
详细信息 |
服务器 |
PowerEdge 服务器 C6420 |
处理器 |
英特尔®至强® Gold 6230 CPU @ 2.1 GHz,20 核 |
内存 |
192 GB – 12 个 16 GB 2933 MT/s DDR4 |
操作系统 |
Red Hat Enterprise Linux 7.6Red Hat Enterprise Linux 7.6 |
内核 |
3.10.0-957.el7.x86_64 |
编译 器 |
英特尔 Parallel Studio 群集 Edition_2019_Update_1 |
表 2 服务器配置
此处显示的所有结果均基于单服务器测试;群集级别的性能将受单个服务器性能的约束。使用了以下指标来比较性能:
- 流 – 流基准报告的三元组分数。
- HPL — GFLOP/秒。
- Fluent - 由 Fluent 报告的求解器评级。
- WRF – 在过去 719 个间隔内计算的 Conus 2.5 公里的平均时间步长
基准测试和应用程序结果
图形表示法缩写:
系统配置文件:
Perf – Performance OS – PerformancePerWattOS DAPC – PerformancePerWattDAPC
Sub-NUMA Clustering:SNC = 0(SNC = 已禁用):SNC = 1(SNC = 已启用:格式化为图表中的条带化)
SW – 软件预取器:SW = 0(SW = 已禁用):SW = 1(SW = 已启用)
图 2:高性能线包
图2比较了问题大小 = 90%,即,N=144476 在不同 BIOS 选项中的 HPL 结果。该图绘制了在不同 BIOS 配置中运行 HPL 时获得的绝对 Gigaflops。这些获得的 Gigaflops 绘制在 y 轴上,越高越好。
以下是图表中的观察结果:
- 由于软件预取,HPL 性能差异小于 1%。
- SNC 对 HPL 性能没有重大影响(SNC=Disabled 时提高 0.5%)。
- 与操作系统和 DAPC 相比,性能系统配置文件最多改善 6%。
图 3:流
图 3 比较了不同 BIOS 配置的 STREAM 结果。
该图绘制了在运行 STREAM Triad 时获得的内存带宽(以 GB/秒为单位)。获得的内存带宽(GB/秒)绘制在 y 轴上,越高越好。在 x 轴上绘制了与特定千兆字节/秒值关联的 BIOS 配置。
以下是图表中的观察结果:
- 启用 SNC = 时,内存带宽最多提高 3%。
- 由于 STREAM 内存带宽上的软件预取,性能偏差不大。
- 系统配置文件之间没有偏差。
图 4:内存带宽 — SNC
图 4 绘制了这种配置中的 Stream Triad 内存带宽得分。完整系统内存带宽为 ~220 GB/s。当本地插槽上的 20 个内核访问本地内存时,内存带宽为 ~ 109 GB/s - 完整系统带宽的一半。其中一半(~56 GB/s)是同一 NUMA 节点上 10 个线程访问其本地内存的内存带宽,以及一个 NUMA 节点上访问属于同一插槽上另一个 NUMA 节点的内存带宽。当线程通过远程套接字上的 QPI 链路访问远程内存时,内存带宽下降 42% 至 ~33GB/s。这告诉我们,当数据不在本地时,SNC 模式下存在显著的带宽损失。
图 5:WRF系列
图 5 比较了不同 BIOS 选项的 WRF 结果,使用的数据集是 conus2.5km,默认为“namelist.input”文件。
该图绘制了在不同 BIOS 配置上运行 WRF-conus2.5km 数据集时获得的绝对平均时间步长(以秒为单位)。获得的平均时间步长绘制在 y 轴上,越低越好。与平均时间步长的特定值相关联的相对剖面绘制在 x 轴上。
以下是图表中的观察结果:
- 使用 SNC=Enabled 时性能提高 2%。
- 启用和禁用软件预取没有性能差异。
- 性能配置文件比 PerformancePerWattDAPC 配置文件高 1%
图 6 至图 9 分别绘制了使用 Ice_2m、Combustor_12m、Aircraft_Wing_14m 和 Exhaust_System_33m 数据集运行 Fluent- 时获得的求解器评级。获得的求解器评级绘制在 y 轴上,越高越好。与平均时间的特定值关联的相对配置文件绘制在 x 轴上。
以下是上图的总体观察结果:
- 使用 SNC=Enabled,性能提高多达 4%。
- 软件预取对性能没有影响。
- 与 DAPC 和操作系统配置文件相比,使用性能配置文件可将性能提高多达 2%。
结论
在本研究中,我们评估了在使用英特尔至强 Gold 6230 处理器时,不同 BIOS 调整选项对性能的影响。观察不同基准测试和应用程序中不同 BIOS 选项的性能,得出以下结论:
- 软件预取 对测试的数据集没有显著的性能影响。因此,我们建议软件预取器保留为默认值,即 启用
- 使用 SNC=Enabled时,与 SNC = Disabled相比,Fluent 和 Stream 中的性能提高了 2-4%,WRF 中的性能提高了约 1%。因此, 我们建议应启用 SNC 以获得更好的性能。
- 性能配置文件比 PerformancePerWattDAPC 和 PerformancePerWattOS 高 2-4%。因此, 我们推荐 使用 HPC 的性能配置文件。
建议为通用 HPC 群集 关闭超线程 。根据所使用的应用程序,应测试并适当启用此功能的优势。
本研究中未讨论一种称为自适应双 DRAM 设备纠正 (ADDDC) 的内存 RAS 功能,当系统配置了具有 x4 DRAM 组织(32 GB、64 GB DIMM)的内存时,该功能可用。当系统具有基于 x8 的 DIMM(8 GB、16 GB)时,ADDDC 不可用,并且在这些配置中无关紧要。对于 HPC 工作负载,建议在 可调选项可用时将 ADDDC 设置为禁用。