GPU 環境 (GPU を使用したJupyter Notebooks with Python )
GPU 環境では、計算主体の機械学習モデルを実行するために必要なトレーニング時間を短縮できます。 より多くのコンピューティング能力により、機械学習モデルを微調整する際に、より多くのトレーニング反復を実行できます。 GPU 環境は、 Python でのみ使用可能です。
サービス このサービスはデフォルトでは利用できません。 管理者がこのサービスをインストールする必要があります。 サービスがインストールされているかどうかを確認するには、アバターをクリックし、次に 「About(概要)」 > 「Version details(バージョン詳細)」 をクリックします。 サービスがインストールされ、使用可能な状態になっている場合は、 Deployed と表示されます。
詳しくは、以下を参照してください。
Nvidia マルチインスタンス GPU (MIG) を使用すると、物理 GPU を複数の小さい独立インスタンス (MIG デバイスと呼ばれる) に分割することができます。 これらの MIG 装置は、分離機能と割り振り機能を提供し、効率的なリソース共有を可能にします。
Nvidia MIGの使用に関する主なポイントについては、 「ノートブックおよびスクリプトでのMIGデバイスの使用」 を参照してください。
GPU 環境テンプレート
GPU 環境を使用するには、新しい GPU 環境テンプレートを作成する必要があります。
環境テンプレートを作成するには、プロジェクト内で 管理者 役割または 編集者 役割を持っている必要があります。
GPU 環境テンプレートを作成するには、以下のようにします。
プロジェクトの 「管理」 タブで 「環境」 ページを選択し、 「テンプレート」の下で 「新規テンプレート」をクリックします。
名前と説明を入力します。
「GPU」 環境構成タイプを選択します。
ハードウェア構成を選択します。 以下の条件に合わせてサイズをお選びください:
- モデル操作の複雑さ
- 実行したいモデルのトレーニング反復回数
- 分析ワークロードの複雑さ
- 利用可能なリソース
デフォルトのサイズは
1 GPU and 1 vCPU and 2 GB RAMです。Python ソフトウェアのバージョンを選択します。
環境テンプレートの詳細が表示されます。 ハードウェア設定を変更するには、設定の上にカーソルを移動します。
- Runtime 25.1 に対応した GPU 環境には、 NVIDIA、CUDA Toolkit 12.6 などがあります。
プリインストールされているライブラリーに加えて、独自のカスタム・ライブラリーを追加できます。 これを行うには、カスタマイズを作成します。 環境テンプレートのカスタマイズを参照してください。
ノートブックでの GPU 環境の使用
GPU 環境テンプレートを作成した後、ノートブックへのこの環境の割り当てを開始できます。
プロジェクトでは、同じ GPU 環境テンプレートを使用する複数のノートブックを実行できます。 つまり、同じプロジェクトで同じ環境テンプレートを使用して 2 番目のノートブックを開くと、同じランタイムで 2 番目のカーネルが開始されます。 ランタイム・リソースは、ランタイムで開始する Jupyter カーネルによって共有されます。 ランタイムは、ノートブックごとではなく、単一ユーザーごとに開始されます。
ノートブックおよびスクリプトでの MIG デバイスの使用
MIG 装置を使用する場合は、以下の制限に注意してください。
- 設計上、単一の CUDA プロセスで単一の MIG 装置を使用できます。 これは、複数の MIG 装置にわたる CUDA プロセスの並列実行がサポートされないことを意味します。 各プロセスは、特定の MIG 装置に割り当てる必要があります。 そのため、複数の MIG スライスを分散して簡単に使用することはできません。
- watsonx 現在はシングルプロセス戦略のみをサポートしており、この戦略ではMIGインスタンスが OpenShift に対して標準的なGPUとして公開されます。
- MIG サポートを提供しない他の GPU がクラスターに含まれている場合は、これらのノードにテイントを適用して、容認を含むカスタム・ランタイム定義を処理する必要があります。 これにより、ユーザーが単一の MIG デバイスではなく完全な GPU を誤って選択しないようにすることができます。
単一の MIG デバイスを使用する場合、GPU を操作するための標準ワークフローを適用できます。 デバイスパラメータの使用方法を示すコードスニペットを参照してください。PyTorch:
import torch
zeros_tensor_gpu = torch.zeros((50, 50), device='cuda')
あるいは、 torch.device("cuda:0") 関数を使用します。
Tensorflowを使用する場合は、 tf.device コンテキスト・マネージャーを使用できます。
import tensorflow as tf
with tf.device('/GPU:0'):
a = tf.constant([[1.0, 2.0], [4.0, 5.0]])
ランタイムごとに複数の MIG を使用してプログラマチックに MIG UUID にアクセスする
ランタイムが複数の MIG 装置を要求する場合は、CUDA プロセスで使用する特定の MIG を構成する必要があります。 これを行うには、 CUDA_VISIBLE_DEVICES 環境変数を使用します。 このコードスニペットは、 NVIDIA 管理ライブラリ(NVML)に対して、利用可能なすべてのMIG UUIDをプログラムで問い合わせます( py3nvml ライブラリがインストールされている必要があります)
import os
from py3nvml.py3nvml import *
nvmlInit()
deviceCount = nvmlDeviceGetCount()
for deviceIndex in range(deviceCount):
handle = nvmlDeviceGetHandleByIndex(deviceIndex)
deviceUUID = nvmlDeviceGetUUID(handle)
# Set CUDA_VISIBLE_DEVICES variable and start subprocess
# os.environ["CUDA_VISIBLE_DEVICES"]=deviceUUID
nvmlShutdown()