メインコンテンツまでスキップ

はじめに: A10 GPU を使用したサーバレス GPU コンピュート

このノートブックでは、サーバレス GPU コンピュートを使用して、 Databricksノートブックから直接 A10 GPU で GPU ワークロードを実行する方法を示します。 分散トレーニングのために、 serverless_gpu Python ライブラリを使用して単一または複数の GPU 上で関数を実行する方法を学習します。

サーバレス GPU コンピュートは、クラスターを管理せずに GPU リソースへのオンデマンド アクセスを提供します。 serverless_gpuライブラリを使用すると、自動リソース プロビジョニングにより GPU ワークロードをシームレスに実行できます。詳細については、サーバレス GPU APIドキュメントを参照してください。

要件

このノートブックを実行する前に、サーバレス GPU コンピュートに接続します。

  1. コンピュート セレクターから [サーバ レス GPU] を選択します。
  2. 右側の 環境 タブで、アクセラレータとして A10 を 選択します。

GPU接続を確認する

nvidia-smiコマンドを実行して、ノートブックが A10 GPU に接続されていることを確認し、GPU の仕様を表示します。

Python
%sh nvidia-smi
Output
Wed Jan 14 19:31:33 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.144.03 Driver Version: 550.144.03 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA A10G On | 00000000:00:1E.0 Off | 0 |
| 0% 22C P8 23W / 300W | 1MiB / 23028MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+

サーバレス GPU ライブラリをインポートする

GPU リソースで関数を実行するための API にアクセスするには、 serverless_gpuライブラリをインポートします。

Python
import serverless_gpu
Output
Warning: serverless_gpu is in Beta. The API is subject to change.

分散関数を作成する

@distributedデコレータを使用して、GPU リソースで実行されるDistributedFunctionを作成します。このデコレーターは次の点を受け入れます。

  • gpus (int): 使用するGPUの数
  • gpu_type (Optional[Union[GPUType, str]]): 使用する GPU のタイプ (remote=True の場合は必須)。使用可能なタイプ: 'a10'、'h100'
  • remote (bool): リモート GPU で関数を実行するかどうか (デフォルトは False)
  • run_async (bool): 関数を非同期的に実行するかどうか (デフォルトは False)
Python
from serverless_gpu import distributed

@distributed(gpus=1, gpu_type='a10', remote=True)
def foo(x):
print('hello_world', x)
return x


foo
Output
DistributedFunction(gpus=1, gpu_type=GPUType.A10, remote=True, run_async=False, func=foo)

分散関数を実行する

.distributed()メソッドを使用してDistributedFunctionを起動します。必要な引数をキーワードとして渡します。

Python
foo.distributed(x=5)
Output
[5]

複数のGPUを使用した分散トレーニング

分散トレーニング ワークロード用に複数の A10 GPU を並行して起動できます。serverless_gpu.runtimeモジュールは、分散実行を管理するためのヘルパー関数を提供します。

  • get_local_rank(): 現在のGPUのローカルランクを取得する
  • get_global_rank(): すべてのGPUのグローバルランクを取得します
  • get_world_size(): GPUの合計数を取得する

注意: 最大 70 ノードのマルチノード実行では、開始までに最大 20 分かかることがあり、後続の各ノードの実行にはさらに長い時間がかかります。実行量が多い場合は、待ち時間が長くなったり、時々失敗したりする可能性があります。

Python
# The runtime module includes helpers to be used during the GPU runtime (i.e. in the function body).
# These helpers include get_local_rank, get_global_rank, get_world_size
from serverless_gpu import runtime as rt

@distributed(gpus=3, gpu_type='a10', remote=True)
def multi_a10():
return rt.get_global_rank(), rt.get_world_size()


multi_a10.distributed() # returns a list, one element per GPU

Output
[(0, 3), (1, 3), (2, 3)]

次のステップ

サーバレス GPU コンピュートの詳細については、こちらをご覧ください。

サンプルノートブック

はじめに: A10 GPU を使用したサーバレス GPU コンピュート

ノートブックを新しいタブで開く