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

:GPUメモリ分離なしでGPU共有を設定する

最終更新日:Nov 10, 2025

一部のシナリオでは、GPUメモリを分離せずにGPU共有が必要になる場合があります。 たとえば、Javaアプリケーションなどの一部のアプリケーションでは、アプリケーションが使用できるGPUメモリの最大量を指定できます。 このシナリオでは、GPUメモリ分離を使用すると、例外が発生する可能性があります。 この問題に対処するには、GPU共有をサポートするノードのGPUメモリ分離を無効にします。 このトピックでは、GPUメモリを分離せずにGPU共有を設定する方法について説明します。

前提条件

手順1: ノードプールの作成

次の手順を実行して、GPUメモリの分離が無効になっているノードプールを作成します。

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

  2. On theクラスターページで、管理するクラスターの名前をクリックし、ノード > ノードプール左側のナビゲーションウィンドウに表示されます。

  3. [ノードプール] ページで、[ノードプールの作成] をクリックします。 [ノードプールの作成] ダイアログボックスでパラメーターを設定し、[注文の確認] をクリックします。

    次の表に、主要なパラメーターを示します。 詳細については、「ノードプールの作成」をご参照ください。

ステップ2: ジョブを送信

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [ジョブ] を選択します。

  3. [ジョブ] ページで、[YAMLから作成] をクリックします。 [作成] ページのコードエディターで、次のコンテンツと [作成] を貼り付けます。

    apiVersion: batch/v1
    種類: 仕事
    メタデータ:
      名前: tensorflow-mnist-share
    spec:
      parallelism: 1
      template:
        metadata:
          labels:
            アプリ: tensorflow-mnist-share
        仕様:
          containers:
          -name: tensorflow-mnist-share
            画像: 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: 4# GPUメモリのリクエスト4 GiB。 
            workingDir: /root
          restartPolicy: 決して 

    コードの説明:

    • YAMLコンテンツはTensorFlowジョブを定義します。 ジョブは1つのポッドを作成し、ポッドは4 GiBのGPUメモリを要求します。

    • aliyun.com/gpu-mem: 4resources.limits以下に設定して、4 GiBのGPUメモリをリクエストできます。

ステップ3: 設定の確認

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [ポッド] を選択します。

  3. [ポッド] ページで、手順2で作成したポッドの [操作] 列で [ターミナル] > [tensorflow-mnist-share] を選択してポッドにログインします。

  4. 次のコマンドを実行して、GPUメモリ情報を照会します。

    nvidia-smi

    期待される出力:

    6月14日水曜日06:45:56 2023
    + ----------------------------------------------------------------------------- +
    | NVIDIA-SMI 515.105.01ドライバのバージョン: 515.105.01 CUDAバージョン: 11.7 |
    | ------------------------------- + ---------------------- + ---------------------- +
    | GPU名永続性-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
    | Fan Temp Perf Pwr: 使用量 /キャップ | メモリ使用量 | GPU-Util Compute M. |
    | | | MIG M. |
    |=============================== + ====================== + ======================|
    | 0 Tesla V100-SXM2... オン | 00000000:00:09.0オフ | 0 |
    | N/A 35C P0 59W / 300W | 334MiB / 16384MiB | 0% のデフォルト |
    | | | N/A |
    + ------------------------------- + ---------------------- + ---------------------- +
    
    + ----------------------------------------------------------------------------- +
    | プロセス: |
    | GPU GI CI PIDタイププロセス名GPUメモリ |
    | ID IDの使用法 |
    |=============================================================================|
    + ----------------------------------------------------------------------------- + 

    出力は、ポッドに割り当てられたGPUがメモリのMiBを提供16,384ことを示します。 この例では、GPUモデルはV100です。 GPUメモリ分離が有効になっている場合、値はポッドによって要求されたメモリの量 (4 GiB) に等しくなります。 これは、構成が有効であることを示す。

    アプリケーションは、以下の環境変数からGPUメモリ割り当て情報を読み取る必要があります。

    ALIYUN_COM_GPU_MEM_CONTAINER=4# ポッドで使用可能なGPUメモリ。 
    ALIYUN_COM_GPU_MEM_DEV=16# 各GPUによって提供される合計GPUメモリ。

    アプリケーションで使用可能なGPUメモリの比率が必要な場合は、次の式を使用して、上記の環境変数に基づいて、アプリケーションが使用するGPUメモリと、GPUが提供するGPUメモリの合計の比率を計算できます。

    perceange=ALIYUN_COM_GPU_MEM_CONTAINER / ALIYUN_COM_GPU_MEM_DEV=4/16=0.25

関連ドキュメント