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

Container Service for Kubernetes:Enable Multi-GPU Sharing with Shared GPU Scheduling

最終更新日:Jun 24, 2026

モデル開発では、大量のリソースを必要としないにもかかわらず、複数の GPU カードが必要になる場合があります。開発プラットフォームに各 GPU カードを割り当てると、リソースを無駄にする可能性があります。マルチ GPU 共有を使用すると、Pod はいずれの GPU カードも排他的に占有することなく、複数のカードから同量の GPU メモリ割り当てを取得できます。ACK Pro クラスターは、よりきめ細やかなリソース使用率を実現するために、GPU メモリ分離を使用してこれをサポートします。

前提条件

次の条件を満たしていることを確認してください:

制限事項

マルチ GPU 共有は、計算能力の割り当てではなく、計算能力の共有のみを伴う GPU メモリ分離をサポートします。

仕組み

マルチ GPU 共有では、単一の Pod が複数のカードから GPU メモリを要求できます。各カードは同量を提供します。

モード 説明
単一 GPU 共有 Pod が 1 枚の GPU カードのリソースの一部を使用します。
マルチ GPU 共有 Pod が複数の GPU カードにまたがり、各カードが同量の GPU メモリを提供します。

割り当ての計算式:Pod が M 枚の GPU カードから N GiB を要求する場合、各カードは N/M GiB を割り当てます。

たとえば、Pod が 2 枚のカードにまたがって 8 GiB を要求する場合、各カードから 4 GiB を受け取ります。

制約:

  • N/M は整数である必要があります。

  • M 枚の GPU カードはすべて同一の Kubernetes ノード上に存在する必要があります。

image

マルチ GPU 共有の設定

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

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

  3. [ジョブ] ページで、[YAML から作成] をクリックします。 次の YAML を [テンプレート] に貼り付け、[作成] をクリックします。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: tensorflow-mnist-multigpu
    spec:
      parallelism: 1
      template:
        metadata:
          labels:
            app: tensorflow-mnist-multigpu
            aliyun.com/gpu-count: "2"    # 使用する GPU カードの枚数
        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    # 全カード合計の GPU メモリ (GiB)
            workingDir: /root
          restartPolicy: Never

    主要パラメーター:

    パラメーター タイプ 説明
    aliyun.com/gpu-count 文字列 (Pod ラベル) GPU カードの枚数です。metadata.labels に設定します。例:"2" は 2 枚のカードからメモリを要求します。
    aliyun.com/gpu-mem 整数 (リソース制限) 全カード合計の GPU メモリ (GiB) です。resources.limits に設定します。例:8 は合計 8 GiB (カードあたり 4 GiB) を意味します。

GPU メモリ分離の確認

Job の開始後、Pod が割り当てられた GPU メモリにのみアクセスできることを確認します。

  1. [クラスター] ページで、クラスターの名前をクリックします。左側のナビゲーションペインで、[ワークロード] > [Pod] をクリックします。

  2. Pod (例: 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 0 と GPU 1)。これは aliyun.com/gpu-count: "2" と一致します。

    • 各カードの合計メモリが 4309 MiB と表示されていること。これは、要求したカードあたり 4 GiB に基づく割り当てであり、物理メモリの 16,160 MiB ではないため、GPU メモリ分離が有効であることを示します。

  3. 同じ Pod で、[アクション] > [ログ] をクリックします。この出力が 2 回 (カードごとに 1 回) 表示されることを確認します。

    totalMemory: 4.21GiB freeMemory: 3.91GiB

    totalMemory がカードあたり約 4 GiB (物理メモリの 16,160 MiB ではない) であることは、GPU メモリ分離が有効であることを示します。