你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Synapse Analytics(预览版)中的 GPU 加速的 Apache Spark 池

Azure Synapse Analytics 现在支持用图形处理单元 (GPU) 加速的 Apache Spark 池。

通过使用 NVIDIA GPU,数据科学家和工程师可以减少运行数据集成管道、为机器学习模型评分等所需的时间。 本文介绍如何创建 GPU 加速池并用于 Azure Synapse Analytics。 本文还详细介绍了作为 GPU 加速运行时的一部分预安装的 GPU 驱动程序和库。

警告

  • GPU 加速预览版仅限用于 Apache Spark 3.2(已宣布终止支持)运行时。 已于 2023 年 7 月 8 日宣布终止对 Azure Synapse Runtime for Apache Spark 3.2 的支持。 已宣布终止支持的运行时不会收到 bug 和功能修复。 安全修补程序将基于风险评估进行向后移植。 自 2024 年 7 月 8 日 起,Spark 3.2 上的此运行时和相应的 GPU 加速预览版将被停用并禁用。
  • GPU 加速预览版目前在 Azure Synapse 3.1(不支持)运行时上不受支持。 Azure Synapse Runtime for Apache Spark 3.1 已于 2023 年 1 月 26 日终止支持,并于 2024 年 1 月 26 日起停止提供官方支持,即在此日期之后不再处理支持工单以及提供 bug 修复或安全更新。

注意

已启用 GPU 的 Azure Synapse 池目前以公共预览版提供。

创建 GPU 加速池

为了简化创建和管理池的过程,Azure Synapse 负责预安装低级别库,并设置计算节点之间的所有复杂网络要求。 此集成允许用户在数分钟内开始使用 GPU 加速池。

注意

  • 可以在位于美国东部、澳大利亚东部和北欧的工作区中创建 GPU 加速池。
  • GPU 加速池仅适用于 Apache Spark 3 运行时。
  • 可能需要请求提高限制才能创建启用 GPU 的群集。

GPU 加速运行时

NVIDIA GPU 驱动程序、CUDA 和 cuDNN

Azure Synapse Analytics 现在提供 GPU 加速 Apache Spark池,其中包括各种 NVIDIA 库和配置。 默认情况下,Azure Synapse Analytics 安装在 Spark 驱动程序和辅助角色实例上使用 GPU 所需的 NVIDIA 驱动程序和库:

  • CUDA 11.2
  • libnccl2=2.8.4
  • libnccl-dev=2.8.4
  • libcudnn8=8.1.1
  • libcudnn8-dev=8.1.1

注意

此软件包含 NVIDIA Corporation 提供的源代码。 具体而言,为了支持 GPU 加速池,Azure Synapse Apache Spark 池包括 CUDA 示例中的代码。

NVIDIA 最终用户许可协议 (EULA)

在 Synapse Spark 中选择 GPU 加速硬件选项时,即表示你同意 NVIDIA EULA 中概述的以下方面的条款和条件:

加速 ETL 工作负载

借助对 NVIDIA 适用于 Apache Spark 的 RAPIDS 加速器的内置支持,Azure Synapse 中的 GPU 加速 Spark 池可以在无需更改任何代码的情况下,提供与标准分析基准相比显著的性能改进。 此包基于 NVIDIA CUDA 和 UCX 构建,支持 GPU 加速的 SQL、数据帧操作和 Spark 混排。 由于无需更改代码即可利用这些加速,因此用户还可以加速依赖于 Linux Foundation Delta Lake 或 Microsoft Hyperspace 索引的数据管道。

若要详细了解如何将 NVIDIA RAPIDS 加速器与 Azure Synapse Analytics 中的 GPU 加速池一起使用,请访问本指南,了解如何使用 RAPIDS 提高性能

训练深度学习模型

深度学习模型通常是数据和计算密集型模型。 正因为如此,组织经常使用支持 GPU 的集群来加速他们的训练过程。 在 Azure Synapse Analytics 中,组织可以使用 Tensorflow 和 PyTorch 等框架来生成模型。 然后,用户可以使用 Horovod 和 Petastorm 扩展他们的深度学习模型。

要了解有关如何训练分布式深度学习模型的更多信息,请访问以下指南: - 教程:使用 Horovod 和 Tensorflow 进行分布式训练 - 教程:使用 Horovod 和 PyTorch 进行分布式训练

改进机器学习评分工作负载

许多组织依赖于大型批处理评分作业在较短的时段内频繁执行。 若要改进批处理评分作业,还可以将 GPU 加速的 Spark 池与 Microsoft 的 Hummingbird 库一起使用。 借助 Treemingbird,用户可以使用基于树的传统 ML 模型,并将其编译为张量计算。 用户随后可以通过 Hummingbird 无缝利用本机硬件加速和神经网络框架来加速 ML 模型评分,而无需重写其模型。

后续步骤