すべてのプロダクト
Search
ドキュメントセンター

:ack-cgpu コンポーネントの実行

最終更新日:Apr 10, 2026

このトピックでは、ack-cgpu コンポーネントをインストールした後、専用 GPU クラスターで cGPU 機能を使用する方法について説明します。

前提条件

ack-cgpu コンポーネントがインストールされていることを確認してください。詳細については、「ack-cgpu コンポーネントのインストール」をご参照ください。

注意事項

Container Service for Kubernetes (ACK) クラスターで管理されている GPU ノードの場合、アプリケーションの GPU リソースをリクエストして使用する際には、次の項目に注意する必要があります。

  • ノード上で直接 GPU を集中的に使用するアプリケーションを実行しないでください。

  • DockerPodmannerdctl などのツールを使用してコンテナを作成し、そのコンテナに GPU リソースをリクエストしないでください。例えば、docker run --gpus all コマンドや docker run -e NVIDIA_VISIBLE_DEVICES=all コマンドを実行して、GPU を集中的に使用するアプリケーションを実行しないでください。

  • Pod の YAML ファイルの env セクションに NVIDIA_VISIBLE_DEVICES=all または NVIDIA_VISIBLE_DEVICES=<GPU ID> 環境変数を追加しないでください。NVIDIA_VISIBLE_DEVICES 環境変数を使用して Pod に GPU リソースをリクエストし、GPU を集中的に使用するアプリケーションを実行しないでください。

  • Pod の YAML ファイルで NVIDIA_VISIBLE_DEVICES 環境変数が指定されていない場合に、コンテナイメージをビルドする際に NVIDIA_VISIBLE_DEVICES=all を設定して GPU を集中的に使用するアプリケーションを実行しないでください。

  • Pod の YAML ファイルの securityContext セクションに privileged: true を追加して、GPU を集中的に使用するアプリケーションを実行しないでください。

上記の方法を使用してアプリケーションの GPU リソースをリクエストすると、次のような潜在的なリスクが存在する可能性があります。

  • 上記の方法のいずれかを使用してノード上の GPU リソースをリクエストし、スケジューラのリソース台帳に詳細を指定しない場合、実際の GPU リソース割り当て情報がスケジューラのリソース台帳の情報と異なる可能性があります。このシナリオでは、スケジューラは依然として GPU リソースをリクエストする特定の Pod をそのノードにスケジュールできます。その結果、ご利用のアプリケーションが同じ GPU によって提供されるリソース (同じ GPU からのリソースリクエストなど) を競合し、一部のアプリケーションは GPU リソースの不足により起動に失敗する可能性があります。

  • 上記の方法を使用すると、NVIDIA コミュニティによって報告された問題など、他の未知の問題が発生する可能性もあります。

操作手順

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

  2. クラスターリスト ページで、対象のクラスターの名前をクリックします。左側のナビゲーションウィンドウで、ノード > ノードプール を選択します。

  3. 対象のマスターノードにログインし、次のコマンドを実行してクラスターの cGPU 機能のクエリを実行します。

    説明
    kubectl inspect cgpu

    予想される出力:

    NAME                     IPADDRESS    GPU0(Allocated/Total)  GPU1(Allocated/Total)  GPU Memory(GiB)
    cn-beijing.192.168.XX.XX   192.168.XX.XX  0/7                    0/7                    0/14
    ---------------------------------------------------------------------
    Allocated/Total GPU Memory In Cluster:
    0/14 (0%)
    説明

    cGPU 機能の詳細情報をクエリするには、kubectl inspect cgpu -d コマンドを実行します。

  4. 左側のナビゲーションウィンドウで、ワークロード > ジョブ を選択します。ジョブ ページで、右上の YAML のリソースの作成 をクリックします。表示されたページで、名前空間を選択し、[サンプルテンプレート] ドロップダウンリストからテンプレートを選択するか、カスタムテンプレートを使用します。次に、次のサンプル YAML をコードエディタに入力し、[作成] をクリックします。

    apiVersion: v1
    kind: Pod
    metadata:
      name: gpu-share-sample
    spec:
      containers:
      - name: gpu-share-sample
        image: registry.cn-hangzhou.aliyuncs.com/ai-samples/gpushare-sample:tensorflow-1.5    
        command:
        - python
        - tensorflow-sample-code/tfjob/docker/mnist/main.py
        - --max_steps=100000
        - --data_dir=tensorflow-sample-code/data
        resources:
          limits:
            # 単位: GiB。Pod は合計 3 GiB の GPU メモリをリクエストします。
            aliyun.com/gpu-mem: 3 # GPU メモリの量を指定します。
        workingDir: /root                    
  5. マスターノードで、次のコマンドを再度実行して、クラスター内の GPU メモリ使用量を確認します。

    kubectl inspect cgpu

    予想される出力:

    NAME                      IPADDRESS      GPU0(Allocated/Total)  GPU Memory(GiB)
    cn-beijing.192.168.XX.XX  192.168.XX.XX  3/14                   3/14
    ---------------------------------------------------------------------
    Allocated/Total GPU Memory In Cluster:
    3/14 (21%)

    出力は、ノード cn-beijing.192.168.XX.XX の GPU メモリの合計が 14 GiB で、そのうち 3 GiB が割り当て済みであることを示しています。

結果の確認

ノードで GPU メモリ分離が有効になっていることを確認するには、次の手順に従います。

  1. 対象のマスターノードにログインします。

  2. 次のコマンドを実行してアプリケーションのログを表示し、cGPU メモリ分離が有効になっていることを確認します。

    kubectl logs gpu-share-sample --tail=1

    予想される出力:

    2023-08-07 09:08:13.931003: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 2832 MB memory) -> physical GPU (device: 0, name: Tesla T4, pci bus id: 0000:00:07.0, compute capability: 7.5)

    出力は、コンテナが 2,832 MB の GPU メモリをリクエストしたことを示しています。

  3. 次のコマンドを実行してコンテナにログインし、割り当てられた GPU メモリの合計量を確認します。

    kubectl exec -it gpu-share-sample nvidia-smi

    予想される出力:

    Mon Aug 7 08:52:18 2023
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 418.87.01    Driver Version: 418.87.01    CUDA Version: 10.1     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  Tesla T4            On   | 00000000:00:07.0 Off |                    0 |
    | N/A   41C    P0    26W /  70W |   3043MiB /  3231MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    +-----------------------------------------------------------------------------+

    出力は、このコンテナに割り当てられた GPU メモリの合計量が 3,231 MiB であることを示しています。

  4. サンプルアプリケーションを実行している GPU ノードにログインし、ノードの合計 GPU メモリを確認します。

    nvidia-smi

    予想される出力:

    Mon Aug  7 09:18:26 2023 
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 418.87.01    Driver Version: 418.87.01    CUDA Version: 10.1     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  Tesla T4            On   | 00000000:00:07.0 Off |                    0 |
    | N/A   40C    P0    26W /  70W |   3053MiB / 15079MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    |    0      8796      C   python3                                     3043MiB |
    +-----------------------------------------------------------------------------+
    
                            

    出力は、ホストノードの GPU メモリの合計が 15,079 MiB で、そのうち 3,053 MiB がコンテナに割り当てられていることを示しています。

関連トピック