Azure Synapse Analytics での GPU アクセラレーション Apache Spark プール (非推奨)

Azure Synapse Analytics では、グラフィックス処理ユニット (GPU) を使用した Apache Spark プールの高速化がサポートされるようになりました。

NVIDIA GPU を使用すると、データ科学者やエンジニアは、データ統合パイプラインの実行、機械学習モデルのスコア付けなどに必要な時間を短縮できます。 この記事では、Azure Synapse Analytics で GPU アクセラレータ プールを作成して使用する方法について説明します。 この記事では、GPU 高速化ランタイムの一部としてプレインストールされている GPU ドライバーおよびライブラリについても詳しく説明します。

Azure Synapse GPU 対応プレビューは非推奨になりました。

GPU アクセラレータ プールを作成する

プールの作成と管理のプロセスを簡略化するために、Azure Synapse は、低レベルのライブラリをプレインストールし、コンピューティング ノード間の複雑なネットワーク要件をすべて設定します。 この統合により、ユーザーはほんの数分で GPU アクセラレータ プールを使い始めることができます。

  • GPU アクセラレータ プールは、米国東部、オーストラリア東部、北ヨーロッパにあるワークスペースで作成できます。
  • GPU アクセラレータ プールは、Apache Spark 3 ランタイムでのみ使用できます。

GPU 高速化ランタイム

NVIDIA GPU ドライバー、CUDA、cuDNN

Azure Synapse Analytics では、さまざまな NVIDIA ライブラリと構成を含む GPU 高速化 Apache Spark プールが提供されるようになりました。 既定では、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 Accelerator の組み込みサポートにより、Azure Synapse の GPU 高速化 Spark プールは、コードを変更することなく、標準の分析ベンチマークと比較して大幅にパフォーマンスを向上させることができます。 このパッケージは、NVIDIA CUDA と UCX の上に構築され、GPU 高速化 SQL、データフレーム操作、Spark シャッフルが有効になっています。 これらのアクセラレーションを活用するために必要なコードは変更されていないため、ユーザーは、Linux Foundation の Delta Lake または Microsoft の Hyperspace インデックス作成に依存するデータ パイプラインを高速化することもできます。

Azure Synapse Analytics の GPU 高速化プールと NVIDIA RAPIDS Accelerator を併用する方法の詳細については、RAPIDS を使用してパフォーマンスを向上させる方法に関するガイドを参照してください。

ディープ ラーニング モデルをトレーニングする

ディープ ラーニング モデルは、多くの場合、データと計算を集中的に行います。 このため、組織では多くの場合、GPU 対応クラスターを使用してトレーニング プロセスを高速化します。 Azure Synapse Analytics では、組織は TensorFlow や PyTorch などのフレームワークを使用してモデルを構築できます。 その後、ユーザーが Horovod と Petastorm を使用してディープ ラーニング モデルをスケールアップできます。

分散ディープ ラーニング モデルをトレーニングする方法の詳細については、次のガイドを参照してください。 - チュートリアル: Horovod と TensorFlow を使用した分散トレーニング - チュートリアル: Horovod と PyTorch を使用した分散トレーニング

機械学習のスコアリング ワークロードの向上

多くの組織は、限られた期間内に頻繁に実行する大規模なバッチ スコアリング ジョブに依存しています。 改善されたバッチ スコアリング ジョブを実現するために、Microsoft の Hummingbird ライブラリと GPU 高速化 Spark プールを使用することもできます。 Hummingbird を使用すると、ユーザーは従来のツリーベースの ML モデルを使用して、それらをテンソル計算にコンパイルできます。 Hummingbird を使用すると、ユーザーはネイティブのハードウェア アクセラレーションとニューラル ネットワーク フレームワークをシームレスに利用して、モデルを書き直すことなく ML モデルのスコアリングを加速させることができます。

次のステップ