次の方法で共有


GPU 対応コンピューティング

Note

一部の GPU 対応インスタンスの種類はベータであり、コンピューティングの作成時にドライバーとワーカーの種類を選択するときに、ドロップダウン リストに表示されます。

概要

Azure Databricks は、グラフィックス処理装置 (GPU) を使用したコンピューティングの高速化をサポートしています。 この記事では、GPU 対応インスタンスを使用してコンピューティングを作成する方法と、それらのインスタンスにインストールされている GPU ドライバーとライブラリについて説明します。

GPU 対応コンピューティングのディープ ラーニングの詳細については、「ディープ ラーニング」をご覧ください。

GPU コンピューティングの作成

GPU コンピューティングの作成は、コンピューティングの作成と似ています。 次の点に注意してください。

  • [ 機械学習 ] チェック ボックスをオンにする必要があります。 GPU ML バージョンは、ワーカーの種類に基づいて自動的に選択されます。
  • [Photon アクセラレーション]チェックボックスをオフにする必要があります。 Photon は GPU インスタンスタイプではサポートされていません。
  • Worker 型は GPU インスタンス型である必要があります。
  • [単一ノード] チェックボックスをオンにすると、1 つの GPU インスタンスを取得できます。

Clusters API を使用して GPU インスタンスを構成するプロセスは、kind フィールドが設定されているかどうかによって異なります。 kind は、要求で 単純なフォーム 仕様を使用するかどうかを決定します。

  • kind = CLASSIC_PREVIEW場合は、"use_ml_runtime": true設定します。
  • kind フィールドを設定しない場合は、spark_versionを GPU 対応バージョン (15.4.x-gpu-ml-scala2.12 など) に設定します。

サポートされているインスタンスの種類

Warnung

Azure Databricks では、 2025 年 3 月 31 日までに Nc24rs が非推奨となり、2025 年 9 月 30 日までに nc24rsNC6s_v3、NC12s_v3、NC24s_v3が非推奨になるため、NC v3 インスタンスタイプ シリーズを使用したコンピューティングのスピンアップはサポートされなくなりました。

Azure Databricks では、次のインスタンスの種類がサポートされます。

NCads_H100_v5

  • GPU の種類: NVIDIA H100 NVL GPU
インスタンス名 GPU の数 GPU メモリ vCPU 数 CPU メモリ
Standard_NC40ads_H100_v5 1 94 GB 40 320 GB
Standard_NC80adis_H100_v5 2 94 GB x 2 80 640 GB

NC_A100_v4

  • GPU の種類: NVIDIA A100 PCIe GPU
インスタンス名 GPU の数 GPU メモリ vCPU 数 CPU メモリ
Standard_NC24ads_A100_v4 1 80 GB 二十四 220 GB
Standard_NC48ads_A100_v4 1 80 GB x 2 48 440 GB
Standard_NC96ads_A100_v4 1 80 GB x 4 96 880 GB

NDasrA100_v4

  • GPU の種類: NVIDIA Ampere A100 40 GB Tensor Core GPU
インスタンス名 GPU の数 GPU メモリ vCPU 数 CPU メモリ
Standard_ND96asr_v4 8 40 GB x 8 96 900 GB

NVadsA10_v5

  • GPU の種類: NVIDIA A10 GPU
インスタンス名 GPU の数 GPU メモリ vCPU 数 CPU メモリ
Standard_NV36ads_A10_v5 1 24 GB 36 440 GB
Standard_NV36adms_A10_v5 1 24 GB 36 880 GB
Standard_NV72ads_A10_v5 2 24 GB x 2 72 880 GB

NCasT4_v3

  • GPU の種類: NVIDIA T4 GPU
インスタンス名 GPU の数 GPU メモリ vCPU 数 CPU メモリ
Standard_NC4as_T4_v3 1 16 GB 4 28 GB
Standard_NC8as_T4_v3 1 16 GB 8 56 GB
Standard_NC16as_T4_v3 1 16 GB 16 110 GB
Standard_NC64as_T4_v3 4 16 GB x 4 64 440 GB

NC_v3

  • GPU の種類: NVIDIA Tesla V100 GPU
インスタンス名 GPU の数 GPU メモリ vCPU 数 CPU メモリ
Standard_NC6s_v3 1 16 GB 6 112 GB
Standard_NC12s_v3 2 16 GB x 2 12 224 GB
Standard_NC24s_v3 4 16 GB x 4 二十四 448 GB
Standard_NC24rs_v3 4 16 GB x 4 二十四 448 GB

サポートされている GPU インスタンスの種類とその可用性リージョンの最新の一覧については、Azure Databricks の価格を参照してください。 GPU 対応コンピューティングを起動するには、Azure Databricks デプロイがサポートされているリージョンに存在している必要があります。

GPU のスケジューリング

GPU スケジューリングでは、Spark タスクが多数の GPU に効率的に分散されます。

Databricks Runtime は、Apache Spark 3.0 の GPU 対応スケジューリングをサポートしています。 これは、Azure Databricks によって GPU コンピューティング上に事前構成されます。

Note

GPU スケジューリングは、単一ノード コンピューティングでは有効になっていません。

AI と ML の GPU スケジューリング

spark.task.resource.gpu.amount は、構成が必要になる可能性のある GPU 対応スケジューリングに関連する唯一の Spark 構成です。 既定の構成では、タスクごとに 1 つの GPU が割り当てられます。これは、すべての GPU ノードを使用する場合に、分散推論ワークロードと分散トレーニングの最適な基準となります。

分散トレーニング中の通信オーバーヘッドを削減するために、Databricks では、コンピューティング spark.task.resource.gpu.amount をワーカー ノードあたりの GPU の数に設定することをお勧めします。 これにより、Spark ワーカーごとに 1 つの Spark タスクのみが作成され、そのワーカー ノード内のすべての GPU が同じタスクに割り当てられます。

分散ディープ ラーニング推論の並列化を高めるには、 spark.task.resource.gpu.amount を 1/2、1/3、1/4 などの分数値に設定できます。 1/N これにより、GPU よりも多くの Spark タスクが作成され、推論要求を並列で処理できる同時実行タスクが増加します。 たとえば、 spark.task.resource.gpu.amount0.50.33、または 0.25 に設定すると、使用可能な GPU は、タスクの数が 2 倍、3 倍、または 4倍にした数で分割して使われます。

GPU インデックス

PySpark タスクの場合、Azure Databricks は、割り当てられている GPUを0から始まるインデックスに自動的に再マッピングします。 タスクごとに 1 つの GPU を使用する既定の構成では、どの GPU がタスクに割り当てられているかを確認することなく、単に既定の GPU を使用できます。 タスクごとに複数の GPU を設定した場合 (4 つなど)、割り当てられた GPU のインデックスは常に 0、1、2、3 であると想定できます。 割り当てられた GPU の物理インデックスが必要な場合は、CUDA_VISIBLE_DEVICES 環境変数から取得できます。

Scala を使用すると、タスクに割り当てられている GPU のインデックスを TaskContext.resources().get("gpu") から取得できます。

NVIDIA GPU ドライバー、CUDA、cuDNN

Azure Databricks は、Spark ドライバーとワーカー インスタンスで GPU を使用するために必要な次の NVIDIA ドライバーとライブラリをインストールします。

  • CUDA Toolkit/usr/local/cuda にインストールされます。
  • cuDNN: NVIDIA CUDA Deep Neural Network Library。
  • NCCL: NVIDIA Collective Communications Library。

含まれている NVIDIA ドライバーのバージョンは 535.54.03 で、CUDA 11.0 がサポートされています。 NV A10 v5 インスタンスの種類シリーズ の場合、含まれる NVIDIA ドライバーのバージョンは 535.154.05 です。

含まれているライブラリのバージョンについては、使用している特定の Databricks Runtime バージョンのリリース ノートを参照してください。

Note

このソフトウェアには、NVIDIA Corporation によって提供されるソース コードが含まれています。 具体的には、GPU をサポートするために、Azure Databricks には、CUDA サンプルからのコードが含まれています。

NVIDIA エンド ユーザー ライセンス契約 (EULA)

Azure Databricks で GPU 対応の "Databricks Runtime バージョン" を選択した場合、CUDA、cuDNN、Tesla ライブラリに関する NVIDIA EULA に記載されている利用規約と、NCCL ライブラリの NVIDIA 使用許諾契約書 (NCCL の補助情報を含む) に対して暗黙的に同意するものとします。

GPU コンピューティング上の Databricks コンテナー サービス

重要

この機能はパブリック プレビュー段階にあります。

GPU を搭載したコンピューティングで Databricks Container Services を使用して、カスタマイズされたライブラリを備えたポータブル ディープ ラーニング環境を作成できます。 詳細については、「Databricks コンテナー サービスを使用してコンテナーをカスタマイズする」を参照してください。

GPU コンピューティング用のカスタムイメージを作成するには、GPU 向けの Databricks Runtime ML ではなく、標準ランタイム バージョンを選択する必要があります。 [独自の Docker コンテナーを使用する] を選択すると、標準ランタイム バージョンの GPU コンピューティングを選択できます。 GPU 用のカスタム イメージは、公式の CUDA コンテナーに基づいています。これは、GPU 向けの Databricks Runtime ML とは異なります。

GPU コンピューティング用のカスタム イメージを作成する場合、NVIDIA ドライバーのバージョンを変更することはできません。これは、ホスト コンピューター上のドライバーのバージョンと一致する必要があるためです。

databricksruntime Docker Hub には、GPU 機能を備えた基本イメージの例が含まれています。 これらのイメージを生成するために使用される Dockerfiles は、サンプルのコンテナー GitHub リポジトリに配置されています。これには、例のイメージが提供する内容とカスタマイズ方法についての詳細も含まれています。