GPU対応コンピュート
一部の GPU 対応インスタンスタイプはベータ版であり、コンピュートの作成時にドライバータイプとワーカータイプを選択すると、ドロップダウンリストで その ようにマークされます。
概要
Databricks は、グラフィックス プロセッシング ユニット (GPU) で高速化されたコンピュートをサポートしています。この記事では、GPU 対応インスタンスを使用してコンピュートを作成する方法について説明し、その内容について説明します それらのインスタンスにインストールされている GPU ドライバーとライブラリ。
GPU 対応コンピュートのディープラーニングの詳細については、「 ディープラーニング」を参照してください。
GPU コンピュートを作成する
GPU コンピュートの作成は、コンピュートの作成と似ています。 次の点に注意してください。
- Databricks Runtimeバージョンは 、 Runtime 13.3 LTS ML (GPU、Scala 2.12.15、Spark 3.4.1) などの GPU 対応バージョンである必要があります。
- ワーカータイプ と ドライバータイプ は GPU インスタンスタイプである必要があります。
サポートされているインスタンスタイプ
Databricks では、次のインスタンスタイプがサポートされています。
- A2 Ultra
- A2 Standard
- G2
- GPU Type: NVIDIA A100 80GB GPU
Instance Name | Number of GPUs | GPU Memory | vCPUs | CPU Memory |
---|---|---|---|---|
a2-ultragpu-1g | 1 | 80GB | 12 | 170GB |
a2-ultragpu-2g | 2 | 80GB x 2 | 24 | 340GB |
a2-ultragpu-4g | 4 | 80GB x 4 | 48 | 680GB |
a2-ultragpu-8g | 8 | 80GB x 8 | 96 | 1360GB |
- GPU Type: NVIDIA A100 40GB GPU
Instance Name | Number of GPUs | GPU Memory | vCPUs | CPU Memory |
---|---|---|---|---|
a2-highgpu-1g | 1 | 40GB | 12 | 85GB |
a2-highgpu-2g | 2 | 40GB x 2 | 24 | 170GB |
a2-highgpu-4g | 4 | 40GB x 4 | 48 | 340GB |
a2-highgpu-8g | 8 | 40GB x 8 | 96 | 680GB |
a2-megagpu-16g | 16 | 40GB x 16 | 96 | 1360GB |
- GPU Type: NVIDIA L4 GPU
Instance Name | Number of GPUs | GPU Memory | vCPUs | CPU Memory |
---|---|---|---|---|
g2-standard-4 | 1 | 24GB | 4 | 16GB |
g2-standard-8 | 1 | 24GB | 8 | 32GB |
g2-standard-12 | 1 | 24GB | 12 | 48GB |
g2-standard-16 | 1 | 24GB | 16 | 64GB |
g2-standard-24 | 2 | 24GB x 2 | 24 | 96GB |
g2-standard-32 | 1 | 24GB | 32 | 128GB |
g2-standard-48 | 4 | 24GB x 4 | 44 | 192GB |
g2-standard-96 | 8 | 24GB x 8 | 96 | 384GB |
これらのインスタンス タイプの詳細については、 GCP アクセラレータに最適化されたマシンを参照してください。また、これらのインスタンスが利用できる場所を確認するには、 GCP リージョンを参照してください。 GPU 対応のコンピュートを起動するには、Databricks デプロイメントがサポートされているリージョンに存在する必要があります。
GPU スケジューリング
GPU スケジューリングは、Spark タスクを多数の GPU に効率的に分散します。
Databricks Runtime 9.1 LTS ML 以降では、Apache Spark 3.0 からの GPU 対応スケジューリングがサポートされています。 Databricks はそれをGPUコンピュートに事前設定します。
GPU スケジューリングは、単一ノードのコンピュートでは有効になっていません。
AIとMLのGPUスケジューリング
spark.task.resource.gpu.amount
は、構成する必要がある可能性がある GPU 対応スケジューリングに関連する唯一の Spark 構成です。デフォルトの構成では、タスクごとに 1 つの GPU が使用されるため、分散推論ワークロードと、すべての GPU ノードを使用する場合の分散トレーニングに適したベースラインです。
分散トレーニング時の通信オーバーヘッドを削減するために、Databricksコンピュート Spark構成でワーカーノードあたりのGPU数にspark.task.resource.gpu.amount
を設定することをおすすめします。これにより、Spark ワーカーごとに Spark タスクが 1 つだけ作成され、そのワーカー ノード内のすべての GPU が同じタスクに割り当てられます。
分散ディープラーニング推論の並列化を強化するために、 spark.task.resource.gpu.amount
を 1/2、1/3、1/4 などの小数値に設定できます。1/Nです。 これにより、GPU よりも多くの Spark タスクが作成されるため、より多くの同時タスクで推論要求を並列に処理できます。 たとえば、 spark.task.resource.gpu.amount
を 0.5
、 0.33
、または 0.25
に設定した場合、使用可能な GPU はタスクの数が 2 倍、3 倍、または 4 倍に分割されます。
GPU インデックス
PySpark タスクの場合、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
Databricks は、GPU を使用するために必要な NVIDIA ドライバーとライブラリを Spark ドライバーとワーカー インスタンスにインストールします。
- CUDA Toolkit は、
/usr/local/cuda
. - cuDNN: NVIDIA CUDA Deep ニューラルネットワーク ライブラリ.
- NCCL: NVIDIA コレクティブ コミュニケーション ライブラリ。
含まれているNVIDIAドライバーのバージョンは525.105.17で、 CUDA 11.0をサポートしています。
含まれているライブラリのバージョンについては、使用している特定のバージョンの リリースノート Databricks Runtimeを参照してください。
本ソフトウェアには、NVIDIA Corporationが提供するソースコードが含まれています。 具体的には、GPU をサポートするために、Databricks には CUDA サンプルのコードが含まれています。
NVIDIA エンド ユーザー ライセンス契約 (EULA)
で GPU 対応の「Databricks Runtime Databricksバージョン」を選択すると、 NVIDIA EULACUDA は、 、cuDNN、Tesla ライブラリに関するものです。 NCCL ライブラリのNVIDIA エンド ユーザー ライセンス契約 (NCCL Supplement を含む)。
制限
- ノートブックからジョブをスケジュールするときに、新しい GPU コンピュートを作成することはできません。既存の GPU コンピュートでジョブを実行できるのは、 新しいコンピュート UI で作成された場合のみです。
- Databricks on Google Cloudでは、
nvidia-smi
などの一般的に使用される NVIDIA 実行可能ファイルはPATH
環境変数に含まれません。代わりに、彼らは/usr/local/nvidia/bin
にあります。 たとえば、nvidia-smi
を使用するには、Webターミナルまたは%sh
ノートブックのマジックコマンドを使用して、/usr/local/nvidia/bin/nvidia-smi
を実行する必要があります。 - Ganglia を使用したモニタリング コンピュート メトリクスは、 Databricks on Google Cloudではサポートされていません。