第7章 OpenShift Data Science での GPU サポートの有効化

データサイエンティストがモデルで計算量の多いワークロードを利用できるようにするために、OpenShift Data Science でグラフィックスプロセッシングユニット (GPU) を有効にすることができます。OpenShift Data Science で GPU を使用できるようにするには、OpenShift Data Science をインストールした後、NVIDIAGPU アドオンをインストールする必要があります。このアドオンは、クラスター内の GPU 対応ワーカーノードを見つけて有効にし、GPU インスタンスタイプを選択できるようにします。NVIDIA GPU アドオンをインストールし、クラスターに GPU 対応のワーカーノードがあることを確認したら、データサイエンティストは、JupyterHub で GPU 対応のノートブックの 1 つを、データサイエンスの仕事に必要な GPU の数とともに選択できます。

Red Hat は、nvidia.com/gpu NoSchedule テイントのある GPU ノード用に別のマシンプールを使用することをお勧めします。既存のマシンプールを編集してこのテイントを追加する場合は、最初にマシンプールをゼロノードにスケールダウンしてから、マシンプールを必要なノード数まで増やす必要があります。これにより、新しいテイントがマシンプール内のすべてのノードに確実に適用されます。マシンプール内のすべてのノードで一貫した動作を確保するために、Red Hat ではマシンノードのスケールを速やかに増加させることを推奨しています。ノードをゼロにスケーリングするとデプロイメントに悪影響を及ぼすため、Red Hat では、適切な時間を選択するときにサービスの使用パターンを考慮しながら、このアクションをできるだけ早く実行することを推奨しています。

前提条件

  • OpenShift Cluster Manager の認証情報 (https://console.redhat.com/openshift/) がある。
  • OpenShift Dedicated の cluster-admins ユーザーグループに属している。
  • OpenShift Data Science および NVIDIA GPU アドオンの要件を満たすのに十分なリソースを含むクラスターをプロビジョニングしている。
  • Red Hat OpenShift Data Science をインストールしてログインしている。
  • OpenShift CLI (oc) をインストールしてログインしている必要がある。

手順

  1. OpenShift Cluster Manager でクラスターにナビゲートします。

    1. OpenShift Cluster Manager にログインします (https://console.redhat.com/openshift/)。
    2. Clusters をクリックします。

      Clusters ページが開きます。

    3. OpenShift Data Science をインストールしたクラスターの名前をクリックします。

      クラスターの Details ページが開きます。

  2. GPU を備えたノード用のマシンプールを追加します。

    1. Machine pools タブをクリックします。
    2. Add machine pool ボタンをクリックします。

      Add machine pool ウィンドウが開きます。

    3. Machine pool name を指定します。
    4. ワーカーノードインスタンスタイプ を設定します。インスタンスタイプが 1 つ以上の GPU を提供していることを確認してください。
    5. 少なくとも 1 つの ワーカーノード数 を設定します。
    6. Edit node labels and taints をクリックして、Node labels セクションを展開します。
    7. Taints の下に、nvidia.com/gpuKey と、NoScheduleEffect を使用してテイントを追加します。Value は、trueなどの任意の文字列に設定できます。

      注記

      テイントを設定する際は、テイントが誤字脱字なく正しく宣言されていることを確認するします。

    8. Add machine pool をクリックします。

      マシンプールが作成されます。

    9. 指定した Taint がマシンプールの Detailsページに表示されていることを確認します (例:nvidia.com/gpu=true:NoSchedule)。
  3. NVIDIA GPU Operator をインストールします。

    1. Add-ons タブをクリックします。
    2. NVIDIA GPU Operator カードをクリックします。
    3. Install をクリックします。

検証

  • OpenShift Cluster Manager で、クラスターの Add-ons タブで、NVIDIA GPU Operator がインストールされていることを確認します。
  • OpenShift Dedicated Web コンソールの ComputeNodes で、新しいマシンプールの各ノードに nvidia.com/gpu テイントが設定されていることを確認します (例: nvidia.com/gpu=true:NoSchedule)。
  • WorkloadsConfigMaps ページの redhat-ods-applications プロジェクトにある jupyterhub-singleuser-profiles ConfigMap には、次の NoSchedule 許容値が含まれています。

      gpuTypes:
      - type: gpu_one
        node_tolerations:
        - key: provider
          operator: Equal
          value: gpu-node
          effect: NoSchedule
        # This is the default NoSchedule toleration that is suported by the NVIDIA GPU operator
      - type: nvidia_gpu
        node_tolerations:
        - key: "nvidia.com/gpu"
          operator: Exists
          effect: NoSchedule
  • GPU 対応機能が Red Hat OpenShift Data Science で利用可能であることを確認します。

    • nvidia-device-plugin-validator ログを確認して検証します。OpenShift CLI で、次のコマンドを入力します。

      oc logs nvidia-device-plugin-validator-<alpha-numeric-string> -n redhat-gpu-operator

      ここで、<alpha-numeric-string> は、ランダムに生成された英数字の文字列になります。

      検証が正常に行われると、以下の応答が返されます。

      device-plugin validation is successful
    • Red Hat では、GPU 対応モデルが Red Hat OpenShift Data Science で正常に実行できることを確認するために、サンプル GPU アプリケーションを実行することを推奨しています。詳細は Running a sample GPU application を参照してください。
    • 関連する Pod 内で nvidia-smi コマンドを実行して、サンプルプロジェクトの GPU 使用率をテストします。詳細は、Getting information about the GPU を参照してください。