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

Container Service for Kubernetes:共有GPUスケジューリングによる多GPU共有の有効化

最終更新日:Mar 07, 2026

ACK マネージドクラスター Pro Edition は、共有GPUをサポートしています。共有GPUは、Kubernetesにおける共有GPUスケジューリングとGPUメモリ隔離を可能にします。このトピックでは、共有GPUスケジューリングのための多GPU共有ポリシーを設定する方法について説明します。

前提条件

多GPU共有の概要

重要

現在、多GPU共有は計算能力共有によるGPUメモリ隔離をサポートしていますが、計算能力割り当てはサポートしていません。

モデル開発中、複数のGPUカードが必要になる場合がありますが、必ずしも大規模なリソースが必要なわけではありません。すべてのGPUカードを開発プラットフォームに割り当てると、リソースの無駄が発生する可能性があります。GPUスケジューリングのための多GPU共有は、この問題を解決します。

多GPU共有ポリシーとは、アプリケーションがN GiBのGPUメモリを要求し、M個のGPUカードがそれを割り当てることを意味します。各カードはN/M GiBを割り当てます。(N/Mは整数である必要があり、M個のGPUカードは同じKubernetesノード上にある必要があります。) 例えば、8 GiBのGPUメモリを要求し、2つのGPUカードを指定した場合、各カードは4 GiBを割り当てます。

  • 単一GPU共有: Podは1つのGPUカードのみを要求し、そのリソースの一部を使用します。

  • 多GPU共有: Podは複数のGPUカードを要求します。各GPUはそのリソースの一部を提供し、各GPUによって提供されるリソースの量は同じです。

image

多GPU共有ポリシーの設定

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

  2. クラスターリスト」ページで、クラスターの名前をクリックします。左側のナビゲーションウィンドウで、ワークロード > ジョブをクリックします。

  3. ジョブ ページで、YAML のリソースの作成 をクリックします。次の内容を テンプレート エリアにコピーし、作成する をクリックします。

    YAMLの詳細を表示

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: tensorflow-mnist-multigpu
    spec:
      parallelism: 1
      template:
        metadata:
          labels:
            app: tensorflow-mnist-multigpu
            # Podラベルで8 GiBのGPUメモリを宣言します。これは2つのGPUカードによって提供され、各カードは4 GiBのGPUメモリを提供します。
            aliyun.com/gpu-count: "2"
        spec:
          containers:
          - name: tensorflow-mnist-multigpu
            image: registry.cn-beijing.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:
                aliyun.com/gpu-mem: 8 # 合計8 GiBのGPUメモリを要求します。
            workingDir: /root
          restartPolicy: Never

    YAMLファイルは以下の通りです。

    • このYAMLは、TensorFlow MNISTの例を使用するジョブを定義します。このタスクは8 GiBのGPUメモリと2つのGPUカードを要求し、各GPUカードは4 GiBのGPUメモリを提供します。

    • Podラベルに aliyun.com/gpu-count: 2 を定義することで、2つのGPUカードを要求できます。

    • Pod resources.limitsに aliyun.com/gpu-mem: 8 を定義することで、8 GiBのGPUメモリを要求できます。

多GPU共有ポリシーの検証

  1. クラスターリスト」ページで、クラスターの名前をクリックします。左側のナビゲーションウィンドウで、「ワークロード > ポッド」をクリックします。

  2. 作成されたコンテナ (tensorflow-mnist-multigpu-*** など) の行の アクション 列で、[アクション] をクリックします。次に、端末 をクリックしてコンテナにアクセスします。次のコマンドを実行します:

    nvidia-smi

    期待される出力:

    Wed Jun 14 03:24:14 2023
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 470.161.03   Driver Version: 470.161.03   CUDA Version: 11.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  Tesla V100-SXM2...  On   | 00000000:00:09.0 Off |                    0 |
    | N/A   38C    P0    61W / 300W |    569MiB /  4309MiB |      2%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    |   1  Tesla V100-SXM2...  On   | 00000000:00:0A.0 Off |                    0 |
    | N/A   36C    P0    61W / 300W |    381MiB /  4309MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    +-----------------------------------------------------------------------------+

    期待される出力は、コンテナが2つのGPUカードのみを使用できることを示しています。各カードのGPUメモリの合計は4309 MiB (要求された4 GiBのGPUメモリであり、各カードの実際のGPUメモリは16160 MiB) です。

  3. 作成済みのコンテナ(例:tensorflow-mnist-multigpu-***)の行で、アクション 列の [操作] をクリックします。次に、ログ をクリックしてコンテナのログを表示します。以下の重要な情報を確認できます:

    totalMemory: 4.21GiB freeMemory: 3.91GiB
    totalMemory: 4.21GiB freeMemory: 3.91GiB

    主要情報は、アプリケーションによって照会されたデバイス情報において、各カードのGPUメモリの合計が約4 GiBであり、各カードの実際のGPUメモリである16160 MiBではないことを示しています。これは、アプリケーションによって使用されるGPUメモリが隔離されていることを意味します。