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 に記載されているご契約条件に暗黙的に同意したことになります。
- CUDA 11.2: EULA :: CUDA Toolkit ドキュメント (nvidia.com)
- libnccl2=2.8.4: nccl/LICENSE.txt at master ·NVIDIA/nccl (github.com)
- libnccl-dev=2.8.4: nccl/LICENSE.txt at master ·NVIDIA/nccl (github.com)
- libcudnn8=8.1.1: ソフトウェア ライセンス契約 :: NVIDIA ディープ ラーニング cuDNN ドキュメント
- libcudnn8-dev=8.1.1: ソフトウェア ライセンス契約 :: NVIDIA ディープ ラーニング cuDNN ドキュメント
- CUDA、NCCL、および cuDNN ライブラリ、および NCCL ライブラリに NVIDIA エンド ユーザー ライセンス契約 (NCCL 補足を含む)
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 モデルのスコアリングを加速させることができます。