数据中心/云端

在 NVIDIA Grace CPU 上使用 Polars 和 Apache Spark 实现高效 ETL

NVIDIA Grace CPU 超级芯片可为数据中心和云端的 CPU 工作负载提供出色的性能和出色的能效。NVIDIA Grace 的优势包括高性能 Arm Neoverse V2 核心、NVIDIA 设计的快速可扩展一致性结构(Scalable Coherency Fabric)以及低功耗高带宽 LPDDR5X 内存。

这些功能使 Grace CPU 成为处理 提取、加载、转换 (ETL) 工作负载的理想选择,展现出出色的性能。ETL 工作负载是在线分析处理 (OLAP) 和商业智能 (BI) 工作流的关键组成部分,使企业能够获得见解并改进组织决策制定。

本文介绍了 NVIDIA Grace CPU 如何提供解决方案,在不影响性能的情况下,在单节点 Polars 和多节点 Apache Spark 上运行 ETL 工作负载时降低功耗。

CPU 上的单节点 Polar

Polars 是一个用于数据处理的开源库。它通过其 Python API 为单节点工作负载提供高性能。Polars 通过其 pola-rs/polars-benchmark GitHub 存储库发布 PDS 基准测试 ,并实现了多个衍生自 TPC-H 的分析查询。

使用 PDS 获得的结果无法与已发布的 TPC-H Benchmark 结果相比,因为使用 PDS 获得的结果不符合 TPC-H Benchmark。PDS 基准测试包括使用 Polars LazyFrame 操作 实现的 22 个查询,允许 Polars 优化器 应用预测、投影下推和其他优化。测试使用 Polars 版本 1.22.0 并启用环境变量 POLARS_FORCE_NEW_STREAMING=1

使用热缓存 Parquet 数据源,以比例系数 100 (SF100 = 100 GB) 收集查询运行时数据。英特尔 Sapphire Rapids 系统使用 Xeon Platinum 8480CL CPU,配备 112 个逻辑核心和 2 TB DDR5 系统内存。AMD Turin 系统使用 EPYC 9755 CPU、256 个逻辑核心和 1.5 TB DDR5 系统内存。对于 Intel Sapphire Rapids 和 AMD Turin 而言,将运行时间限制在单个插槽的物理核心时,可达到最佳运行时间。

最后,NVIDIA Grace CPU 系统使用了 NVIDIA Grace CPU 超级芯片,配备了一个 NVIDIA Grace CPU,具有 72 个物理核心和 120 GB 的 LPDDR5X 系统内存。所有基准测试均在单个插槽上运行。运行 x86 CPU 基准测试时,使用环境变量 _RJEM_MALLOC_CONF=thp:always 启用透明大页 (THP)。

Bar chart showing the sum of query runtime for Intel Sapphire Rapids, AMD Turin, and NVIDIA Grace CPU.
图 1。PDS SF100 中 22 条查询的 CPU 型号查询运行时

在 PDS SF100 基准测试中,我们的团队观察到 NVIDIA Grace CPU 的速度比 AMD Turin 1S (测试中速度最快的 x86 CPU) 提高了 25%。加速的来源不受线程数、时钟频率、缓存带宽或内存带宽的影响。

相反,我们发现在 Grace 中使用 64K 默认页面大小与在 x86 中使用 4K 默认页面大小和在 x86 上使用 2 MB THP 相比具有优势。对于 AMD Turin,我们在双插槽 (2S) 计算机上使用默认设置观察到运行时间为 86 秒。将执行时间限制为一个插槽将运行时间缩短到 60 秒,启用 THP 和禁用超线程将运行时间缩短到 41 秒 (图 1)。

对于 PDS 中的数据处理工作负载,NVIDIA Grace CPU 的开箱即用配置提供了最佳性能。如需详细了解 NVIDIA Grace 的页面大小和其他配置选项,请参阅 NVIDIA Grace 性能调整指南

Bar chart showing the energy usage in Wh for servers using Intel Sapphire Rapids, AMD Turin, and NVIDIA Grace CPU.
图 2。对于 PDS SF100 中的 22 个查询,使用 CPU 模型的服务器的能耗 (瓦时 Wh)

对于 Polars PDS SF100,使用 NVIDIA Grace CPU 的服务器在能耗方面获得了更大的改进,预计能耗比使用 x86 CPU 的同等服务器低 65%。能耗分析基于运行两个 PDS SF100 工作负载实例的 2S 服务器。预计 NVIDIA Grace CPU Superchip 的能耗为 555 W,AMD Turin 为 1,120 W,Intel Sapphire Rapids 为 1,050 W。

与竞争对手相比,NVIDIA Grace 提供了惊人的价值,每瓦性能提高 2.7 倍,每美元性能提高 1.6 倍。

Bar chart showing the performance per dollar and performance per watt for NVIDIA Grace CPU and AMD Turin servers.
图 3。对于 PDS SF100 中的 22 个查询,使用 CPU 模型的服务器的每美元性能和每瓦性能

CPU 上的多节点 Apache Spark

Apache Spark 是一款热门且可靠的引擎,用于在多节点集群上执行数据工程、数据科学和机器学习工作负载。NVIDIA 在 NVIDIA/spark-rapids-benchmarks GitHub 存储库中开源了 NDS 基准测试工具集,并使用脚本运行衍生自 TPC-DS 的决策支持查询。

NDS 支持使用 Spark 执行 CPU,并支持使用 RAPIDS Accelerator For Apache Spark 插件执行 GPU。请注意,使用 NDS 获得的任何结果都无法与已发布的 TPC-DS Benchmark 结果进行比较,因为使用 NDS 获得的结果不符合 TPC-DS Benchmark。

该测试使用 Spark 版本 3.3.3,依次执行了 99 个查询,其中查询 14、23、24 和 39 分为两部分。使用 HDFS(Hadoop Distributed File System)数据源,以比例系数 3,000(SF3K = 3 TB)收集查询运行时数据。

两个集群用于评估 NDS SF3K 工作负载的 Spark 性能。第一个集群使用了 8 个节点,每个节点都有一个 AMD Genoa EPYC 9354 CPU 和 528 GB 的系统内存。第二个集群还使用了 8 个节点,每个节点都有一个 NVIDIA Grace CPU Superchip 和 240 GB 的 LPDDR5 系统内存。

Bar chart showing the energy usage for AMD Genoa and NVIDIA Grace C2 clusters.
图 4。NDS SF3K (由 Apache Spark 在 8 节点集群上运行) 中的 99 个查询的能耗 (按 CPU 模型计算) (瓦时)

对于 NDS SF3K 基准测试,我们的团队观察到两个 8 节点集群的运行时性能相似,其中 NVIDIA Grace CPU 集群几乎与 AMD Genoa 集群相匹配。

但是,如果将每个 Grace 节点的估计能耗值 ( 555 瓦) 和每个 Genoa 节点的估计能耗值 ( 795 瓦) 考虑在内,NVIDIA Grace CPU 集群在相同功率下提供的性能比 AMD Genoa 集群高出近 40%。

总结

ETL 工作负载对于当今的组织深入了解其数据至关重要。性能特征强调了大量的数据移动、频繁的通信和有限的矢量化机会。Grace 架构优化了一系列数据分析,包括 ETL 工作负载,具有高性能核心、快速的结构和巨大的内存带宽,加上更高的默认页面大小和更低的能耗

NVIDIA Grace CPU 可降低数据中心 ETL 工作负载的 TCO,与新一代 x86 CPU 相比,其每瓦性能提升高达 2.7 倍,每美元性能提升高达 1.6 倍。

为 ETL 工作负载部署 NVIDIA Grace 将提供领先的性能,同时节省功耗,并使客户能够将节省的电量用于 AI 功能。

过渡到基于 Arm 的 NVIDIA Grace 还可以实现 CPU 和 GPU 架构与 NVIDIA GB200 Grace Blackwell Superchip 在 NVIDIA GB200 NVL72 中的紧密结合 。借助 Grace,数据中心可以在单个 CPU 架构上实现标准化,该架构也适用于整个 Arm 生态系统。

详细了解 NVIDIA Grace CPU,包括软件和系统设置。

 

标签