第3章 AMD GPU Operator のインストール


クラスターで使用可能な基盤となる AMD ROCm AI アクセラレーターを使用するには、AMD GPU Operator をインストールします。

AMD GPU Operator をインストールするには、複数のステップが必要です。OpenShift OperatorHub を使い、最初に Node Feature Discovery Operator を、次に Kernel Module Management Operator (KMM) をインストールし、最後に AMD GPU Operator をインストールします。

重要

AMD GPU Operator は、インターネットに完全にアクセスできるクラスターでのみサポートされ、非接続環境ではサポートされません。これは、Operator がクラスター内でドライバーをビルドする際に、完全なインターネットアクセスが必要となるためです。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。
  • クラスターに次の Operator がインストールされている。

    Expand
    表3.1 必要な Operator
    Operator説明

    Service CA Operator

    Service オブジェクトに対して TLS サービング証明書を発行します。kube-apiserver と KMM Webhook サーバー間の証明書の署名と認証に必要です。

    Operator Lifecycle Manager (OLM)

    Operator のインストールとライフサイクルのメンテナンスを管理します。

    Machine Config Operator

    ワーカーノードとコントロールプレーンノードのオペレーティングシステム設定を管理します。amdgpu ドライバーのカーネルブラックリストを設定するために必要です。

    Cluster Image Registry Operator

    Cluster Image Registry Operator (CIRO) は、OpenShift Container Platform クラスターがコンテナーイメージを保存および提供するために使用する内部コンテナーイメージレジストリーを管理します。クラスター内のドライバーイメージのビルドと保存に必要です。

手順

  1. AMD GPU Operator の Namespace CR を作成します。

    oc apply -f - <<EOF
    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-amd-gpu
      labels:
        name: openshift-amd-gpu
        openshift.io/cluster-monitoring: "true"
    EOF
    Copy to Clipboard Toggle word wrap
  2. Service CA Operator が動作していることを確認します。以下のコマンドを実行します。

    $ oc get pods -A | grep service-ca
    Copy to Clipboard Toggle word wrap

    出力例

    openshift-service-ca-operator   service-ca-operator-7cfd997ddf-llhdg    1/1    Running    7    35d
    openshift-service-ca            service-ca-8675b766d5-vz8gg             1/1    Running    6    35d
    Copy to Clipboard Toggle word wrap

  3. Machine Config Operator が動作していることを確認します。

    $ oc get pods -A | grep machine-config-daemon
    Copy to Clipboard Toggle word wrap

    出力例

    openshift-machine-config-operator   machine-config-daemon-sdsjj   2/2    Running    10   35d
    openshift-machine-config-operator   machine-config-daemon-xc6rm   2/2    Running    0    2d21h
    Copy to Clipboard Toggle word wrap

  4. Cluster Image Registry Operator が動作していることを確認します。

    $ oc get pods -n openshift-image-registry
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                               READY   STATUS      RESTARTS   AGE
    cluster-image-registry-operator-58f9dc9976-czt2w   1/1     Running     5          35d
    image-pruner-29259360-2tdrk                        0/1     Completed   0          2d8h
    image-pruner-29260800-v9lkc                        0/1     Completed   0          32h
    image-pruner-29262240-swcmb                        0/1     Completed   0          8h
    image-registry-7b67584cd-sdxpk                     1/1     Running     10         35d
    node-ca-d2kzl                                      1/1     Running     0          2d21h
    node-ca-xxzrw                                      1/1     Running     5          35d
    Copy to Clipboard Toggle word wrap

  5. オプション: クラスター内にドライバーイメージをビルドする予定の場合は、OpenShift 内部レジストリーを有効にする必要があります。以下のコマンドを実行します。

    1. 現在のレジストリーステータスを確認します。

      $ oc get pods -n openshift-image-registry
      Copy to Clipboard Toggle word wrap
      NAME                                               READY   STATUS      RESTARTS   AGE
      #...
      image-registry-7b67584cd-sdxpk                     1/1     Running     10         36d
      Copy to Clipboard Toggle word wrap
    2. レジストリーストレージを設定します。次の例では、クラスター内の emptyDir 一時ボリュームにパッチを適用します。以下のコマンドを実行します。

      $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge \
        --patch '{"spec":{"storage":{"emptyDir":{}}}}'
      Copy to Clipboard Toggle word wrap
    3. レジストリーを有効にします。

      $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge \
        --patch '{"spec":{"managementState":"Managed"}}'
      Copy to Clipboard Toggle word wrap
  6. Node Feature Discovery (NFD) Operator をインストールします。Node Feature Discovery Operator のインストール を参照してください。
  7. Kernel Module Management (KMM) Operator をインストールします。Kernel Module Management Operator のインストール を参照してください。
  8. AMD AI アクセラレーターのノード機能検出を設定します。

    1. AMD GPU ハードウェアを検出するには、NodeFeatureDiscovery (NFD) カスタムリソース (CR) を作成します。以下に例を示します。

      apiVersion: nfd.openshift.io/v1
      kind: NodeFeatureDiscovery
      metadata:
        name: amd-gpu-operator-nfd-instance
        namespace: openshift-nfd
      spec:
        workerConfig:
          configData: |
            core:
              sleepInterval: 60s
            sources:
              pci:
                deviceClassWhitelist:
                  - "0200"
                  - "03"
                  - "12"
                deviceLabelFields:
                  - "vendor"
                  - "device"
              custom:
              - name: amd-gpu
                labels:
                  feature.node.kubernetes.io/amd-gpu: "true"
                matchAny:
                  - matchFeatures:
                      - feature: pci.device
                        matchExpressions:
                          vendor: {op: In, value: ["1002"]}
                          device: {op: In, value: [
                            "740f", # MI210
                          ]}
              - name: amd-vgpu
                labels:
                  feature.node.kubernetes.io/amd-vgpu: "true"
                matchAny:
                  - matchFeatures:
                      - feature: pci.device
                        matchExpressions:
                          vendor: {op: In, value: ["1002"]}
                          device: {op: In, value: [
                            "74b5", # MI300X VF
                          ]}
      Copy to Clipboard Toggle word wrap
      注記

      特定のクラスターのデプロイメントに応じて、NodeFeatureDiscovery または NodeFeatureRule CR が必要になる場合があります。たとえば、クラスターにはすでに NodeFeatureDiscovery リソースがデプロイされており、それを変更したくない場合があります。詳細は、Create Node Feature Discovery Rule を参照してください。

  9. MachineConfig CR を作成して、ツリー外の amdgpu カーネルモジュールを modprobe ブラックリストに追加します。以下に例を示します。

    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfig
    metadata:
      labels:
        machineconfiguration.openshift.io/role: worker 
    1
    
      name: amdgpu-module-blacklist
    spec:
      config:
        ignition:
          version: 3.2.0
        storage:
          files:
            - path: "/etc/modprobe.d/amdgpu-blacklist.conf"
              mode: 420
              overwrite: true
              contents:
                source: "data:text/plain;base64,YmxhY2tsaXN0IGFtZGdwdQo="
    Copy to Clipboard Toggle word wrap
    1
    シングルノードの OpenShift クラスターの場合は machineconfiguration.openshift.io/role: master を設定します。
    重要

    MachineConfig CR を適用した後、Machine Config Operator は選択したノードを自動的に再起動します。

  10. AMD AI アクセラレータードライバーのインストールを開始するための DeviceConfig CR を作成します。以下に例を示します。

    apiVersion: amd.com/v1alpha1
    kind: DeviceConfig
    metadata:
      name: driver-cr
      namespace: openshift-amd-gpu
    spec:
      driver:
        enable: true
        image: image-registry.openshift-image-registry.svc:5000/$MOD_NAMESPACE/amdgpu_kmod 
    1
    
        version: 6.2.2
      selector:
        "feature.node.kubernetes.io/amd-gpu": "true"
    Copy to Clipboard Toggle word wrap
    1
    デフォルトでは、image フィールドの値を設定する必要はありません。デフォルト値が表示されます。

    DeviceConfig CR を適用すると、AMD GPU Operator はワーカーノードのシステム仕様を収集して適切なドライバーイメージをビルドまたは取得し、KMM を使用してドライバーをデプロイして、最後に ROCM デバイスプラグインとノードラベラーをデプロイします。

検証

  1. KMM ワーカー Pod が実行されていることを確認します。

    $ oc get pods -n openshift-kmm
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                       READY   STATUS    RESTARTS         AGE
    kmm-operator-controller-774c7ccff6-hr76v   1/1     Running   30 (2d23h ago)   35d
    kmm-operator-webhook-76d7b9555-ltmps       1/1     Running   5                35d
    Copy to Clipboard Toggle word wrap

  2. デバイスのプラグインとラベラーのステータスを確認します。

    $ oc -n openshift-amd-gpu get pods
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                                   READY   STATUS    RESTARTS        AGE
    amd-gpu-operator-controller-manager-59dd964777-zw4bg   1/1     Running   8 (2d23h ago)   9d
    test-deviceconfig-device-plugin-kbrp7                  1/1     Running   0               2d
    test-deviceconfig-metrics-exporter-k5v4x               1/1     Running   0               2d
    test-deviceconfig-node-labeller-fqz7x                  1/1     Running   0               2d
    Copy to Clipboard Toggle word wrap

  3. GPU リソースラベルがノードに適用されていることを確認します。

    $ oc get node -o json | grep amd.com
    Copy to Clipboard Toggle word wrap

    出力例

    "amd.com/gpu.cu-count": "304",
    "amd.com/gpu.device-id": "74b5",
    "amd.com/gpu.driver-version": "6.12.12",
    "amd.com/gpu.family": "AI",
    "amd.com/gpu.simd-count": "1216",
    "amd.com/gpu.vram": "191G",
    "beta.amd.com/gpu.cu-count": "304",
    "beta.amd.com/gpu.cu-count.304": "8",
    "beta.amd.com/gpu.device-id": "74b5",
    "beta.amd.com/gpu.device-id.74b5": "8",
    "beta.amd.com/gpu.family": "AI",
    "beta.amd.com/gpu.family.AI": "8",
    "beta.amd.com/gpu.simd-count": "1216",
    "beta.amd.com/gpu.simd-count.1216": "8",
    "beta.amd.com/gpu.vram": "191G",
    "beta.amd.com/gpu.vram.191G": "8",
    "amd.com/gpu": "8",
    "amd.com/gpu": "8",
    Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat