数据科学

用于 Apache Spark 的 RAPIDS 加速器发布版本 v21.08

介绍

用于Apache Spark RAPIDS 加速器 月版( 21.08 )现已发布。。自 NVIDIA GTC 2020 首次发布以来,已经有一年多的时间了。我们在许多方面都有所改进,特别是在易用性方面, Apache Spark 应用程序的代码更改很少甚至没有。去年,该团队一直专注于添加功能和持续改进性能。为了证明这一点,我们使用 NVIDIA 数据科学( NDS )基准测试了定期测量在 3000 ( 3 TB 未压缩)的比例因子下的性能和功能。在此版本中,除了添加新功能外,我们非常自豪地在提高所有通过查询的端到端速度和降低 NVIDIA EGX 服务器的总体拥有成本方面取得了进展。

基准更新

NVIDIA 决策支持( NDS )是我们对 Apache Spark 社区常用的行业标准数据科学基准的改编。 NDS 包含与行业标准基准测试 TPC-DS 相同的 105 个 SQL 查询,但修改了数据集生成和执行脚本的部分。在 GTC 2021 更新中,有 95 个查询通过。在 21 . 08 版本中,通过核心外分组方式、窗口排名和密集排名等新功能,我们已经能够在 GPU 上运行所有 105 个查询。

基准设置

  • 比例因子 -3K (带浮点数的 3TB 数据集)
  • Systems: 4x NVIDIA 认证 EGX 服务器
  • EGX 服务器硬件规格: 4-node Dell R740xd, each with (2) 24-core CPUs, 512GB RAM, HDFS on NVMe, (1) CX-6 Dx 25/100Gb NIC, 2x NVIDIA A30 GPU
  • CPU 硬件规格: 4-node dell r740xd , each with ( 2 ) 24-core CPU s , 512GB ram , hdfs on nvme ,( 1 ) cx-6 dx 25 / 100gb nic
  • 软件: RAPIDS 加速器 v21 . 08 . 0 、 cuDF 21 . 08 . 0 、 Apache Spark 3 . 1 . 1 、 UCX 1 . 10 . 1

结果摘要

A bar chart showing GPU speed-up for each NDS query compared to a CPU cluster. The chart also overlays the line chart showing 1. total cost of ownership, which is 1.29 times CPU cluster costs for the GPU cluster used for this benchmark 2. Average speed-up across all queries which varies from 0.2x to 18x in this chart.
图 1 : EGX 服务器上的 NDS 查询速度: GPU vs CPU 。

基于此版本,我们很高兴地向大家展示,所有 105 个查询现在都可以在 GPU 上运行,而无需任何代码更改。

  • 用于这些基准测试的基准服务器对于四台没有 GPU s 的服务器的成本略低于 170000 美元,而在每台服务器中包含一台 NVIDIA A100 GPU 的成本则低于 220000 美元。
  • 简单来说,基准 GPU 服务器的成本是 CPU 服务器的 1 . 29 倍。
  • 如上图所示(图 1 ),超过 95 个查询现在比 GPU 快 1 . 29 倍,因此运行起来更便宜。
  • GPU 上一些速度较慢的查询目前正在解决中,我们正在不懈地努力改进这些查询并提高总体速度。
  • 用户可以很容易地推断出 GPU 的加速从 1x 到 18x 不等,因此建议用户确认 GPU 的正确用例。
  • 如果用户不确定 GPU 的正确用例,鉴定工具将是一个方便的资产。有关鉴定工具的更多信息,请参阅以下章节。

分析和鉴定工具

分析与鉴定工具于 21 . 06 发布,获得了用户社区的积极反馈以及对新功能的要求。在 21 . 08 中,鉴定工具现在能够处理 Apache Spark 2 . x 版本生成的事件日志。该工具还将支持 AWS EMR 6 . 3 . 0 、 Google Dataproc 2 . 0 、 Microsoft Azure Synapse 以及 DataRicks 7 . 3 和 8 . 2 运行时生成的事件日志。鉴定工具不再需要 Spark 运行时。用户现在只需在机器上使用 Apache Spark 3 . x JAR 即可使用鉴定工具。最新版本还具有选择事件日志的新过滤功能。该工具还查找插件不支持的读取数据格式和类型,并从分数中删除这些格式和类型(基于 SQL Dataframe 操作中的总任务时间)。输出将以简洁的格式报告在终端上,对每个已处理事件日志的详细分析将存储为 csv 输出。

新功能

此版本为数组和结构添加了更多功能。我们现在可以对多层结构数据类型进行联合,也可以以拼花格式编写数组数据类型。我们在现有的超前、滞后和行号功能中添加了秩和密集秩窗口功能。有了这一新增功能, RAPIDS 加速器现在可以支持 SQL 中最常用的窗口运算符。对于时间戳操作符,我们添加了对遗留时间戳的支持。使用此功能,用户可以读取 Spark 2 . 0 中支持的传统时间戳格式。对于 Databricks 用户,我们添加了在 GPU 中缓存数据的功能(所有其他平台都支持这种功能)。

我们通过处理 GPU 内存溢出的数据集以进行分组和窗口操作,继续改善用户体验。这一改进将节省用户创建分区的时间,以避免 GPU 上出现内存不足错误。类似地, UCX 1 . 11 的采用改进了 RAPIDS Spark 加速洗牌管理器的错误处理。

成长社区

加入我们“使用 NVIDIA RAPIDS 加速器为 Spark 加速数据管道”了解 Informatica 如何消除使用 GPU 的障碍,在大规模运营机器学习项目时实现显著的性能改进。您可以阅读有关网上研讨会在这里注册的更多信息。

马上就来

正如我们在上一个版本中所指出的,自最新版本( 21.06 ).发布以来,我们已经发布了搬到卡尔弗和每两个月发布一次的 cadence 。即将发布的版本将添加对其他十进制类型的扩展支持,并继续添加对多级结构和映射的更多嵌套数据类型支持。此外,请留意带有代码示例和笔记本的微型基准测试,它们将突出显示最适合 GPU 的操作。我们想听听你和用户的意见。请在GitHub上与我们联系,让我们知道我们如何使用 RAPIDS Spark 继续改进您的体验。

 

Tags