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

Platform For AI:GPU共有

最終更新日:Dec 11, 2024

専用リソースグループを使用してPlatform for AI (PAI) のElastic Algorithm Service (EAS) でサービスをデプロイする場合、GPU共有を有効にしてリソース使用率を高めることができます。 サービスをデプロイするときにGPU共有を有効にすると、システムはサービスの仮想化されたGPUリソースをデプロイします。 これにより、EASは、指定した計算能力比とGPUメモリに基づいて、各インスタンスに必要なリソースを割り当てることができます。 このトピックでは、GPU共有を設定する方法について説明します。

前提条件

専用リソースグループが作成され、リソースが購入されます。 詳細については、「専用リソースグループの操作」をご参照ください。

制限事項

  • GPU共有機能は、ホワイトリストのユーザーのみが使用できます。 GPU共有機能を使用する場合は、チケットを起票してください

  • GPU共有機能は、専用リソースグループを使用してデプロイされたサービスでのみ使用できます。

サービス作成時のGPU共有の設定

コンソールの使用

  1. PAI コンソールにログインします。 ページ上部のリージョンを選択します。 次に、目的のワークスペースを選択し、[Elastic Algorithm Service (EAS) の入力] をクリックします。

  2. [サービスのデプロイ] をクリックします。 [カスタムモデルのデプロイ] セクションで、[カスタムデプロイ] をクリックします。

  3. [リソースのデプロイ] セクションで、次の重要なパラメーターを設定します。 その他のパラメーターの詳細については、「PAIコンソールでのモデルサービスのデプロイ」をご参照ください。 image

    パラメーター

    説明

    リソースタイプ

    [EASリソースグループ] を選択します。

    GPU共有

    [GPU共有] を選択します。

    デプロイ

    次のパラメーターを設定します。

    • Single-GPU Memory (GB): 各インスタンスに必要なGPUメモリ。 値は整数です。 (単位:GB) PAIでは、1つのGPUのメモリリソースを複数のインスタンスに割り当てることができます。

      重要

      複数のインスタンスのGPUメモリは厳密に分離されていません。 メモリ不足 (OOM) エラーを防ぐために、各インスタンスで使用されるGPUメモリが要求量を超えないようにしてください。

    • Computing Power per GPU (%): 各インスタンスに必要な単一のGPUの計算能力。 値は1から100までの整数でなければなりません。 たとえば、10と入力すると、システムは単一のGPUの10% のコンピューティングパワーをインスタンスに割り当てます。 これにより、コンピューティングパワーの柔軟なスケジューリングが容易になり、複数のインスタンスが単一のGPUを共有できます。

  4. パラメーターを設定したら、[デプロイ] をクリックします。

オンプレミスクライアントの使用

  1. EASCMDクライアントをダウンロードし、ID認証を完了します。 この例では、Windows 64が使用されています。

  2. クライアントが配置されているディレクトリに、service.jsonという名前のサービス構成ファイルを作成します。 構成ファイルのサンプルコンテンツ:

    {
        "containers": [
            {
                "image": "eas-registry-vpc.cn-beijing.cr.aliyuncs.com/pai-eas/chat-llm-webui:3.0.4",
                "port": 8000,
                "script": "python webui/webui_server.py --port=8000 --model-path=Qwen/Qwen1.5-7B-Chat"
            }
        ],
        "metadata": {
            "cpu": 8,
            "enable_webservice": true,
            "gpu_core_percentage": 5,
            "gpu_memory": 20,
            "instance": 1,
            "memory": 20000,
            "name": "testchatglm",
            "resource": "eas-r-fky7kxiq4l2zzt****",
            "resource_burstable": false
        },
        "name": "test"
    }

    次のパラメータに注意してください。 その他のパラメーターについては、「モデルサービスのすべてのパラメーター」をご参照ください。

    パラメーター

    説明

    gpu_メモリ

    各インスタンスに必要なGPUメモリの量。 値は整数でなければなりません。 (単位:GB)

    PAIでは、1つのGPUのメモリリソースを複数のインスタンスに割り当てることができます。 GPUメモリをスケジュールする場合は、gpuフィールドを0に設定します。 gpuフィールドを1に設定すると、インスタンスはGPU全体を占有します。 この場合、gpu_memoryフィールドは無視されます。

    重要

    複数のインスタンスのGPUメモリは厳密に分離されていません。 メモリ不足 (OOM) エラーを防ぐために、各インスタンスで使用されるGPUメモリが要求量を超えないようにしてください。

    gpu_core_パーセンテージ

    各インスタンスがGPUごとに必要とする計算能力の比率。 値は1〜100の整数です。 単位はパーセントです。 たとえば、パラメーターを10に設定すると、システムは各GPUの10% の計算能力を使用します。

    これにより、コンピューティングパワーの柔軟なスケジューリングが容易になり、複数のインスタンスが単一のGPUを共有できます。 このパラメーターを設定する場合は、gpu_memoryパラメーターも設定する必要があります。 それ以外の場合、このパラメータは有効になりません。

    リソース

    既存の専用リソースグループのID。 専用リソースグループのIDを表示する方法の詳細については、「専用リソースグループの管理」をご参照ください。

  3. JSONファイルが配置されているディレクトリで次のコマンドを実行して、サービスを作成します。詳細については、「EASCMDクライアントを使用するコマンドの実行」をご参照ください。

    eascmdwin64.exe create <service.json>

    <service.json> を、作成したJSONファイルの名前に置き換えます。

サービスの更新時のGPU共有の設定

専用リソースグループを使用してサービスをデプロイするときにGPU共有機能を有効にしなかった場合は、サービス構成を更新することでGPU共有を有効にできます。

コンソールでのサービスの更新

  1. [Elastic Algorithm Service (EAS)] ページで、更新するサービスを見つけ、[操作] 列の [サービスの更新] をクリックします。

  2. [サービスの更新] ページの [リソースのデプロイ] セクションで、[リソースタイプ][GPU共有] 、および [デプロイ] パラメーターを設定します。 詳細については、このトピックの「コンソールの使用」セクションを参照してください。

    image

  3. パラメーターを設定したら、[デプロイ] をクリックします。

オンプレミスクライアントを使用したサービスの更新

  1. EASCMDクライアントをダウンロードし、ID認証を完了します。 この例では、Windows 64が使用されています。

  2. クライアントが配置されているディレクトリに、instances.jsonという名前のファイルを作成します。 ファイルのサンプルコンテンツ:

    "metadata": {
            "gpu_memory": 2,
            "gpu_core_percentage": 5
        }

    上記のコードのパラメーターの詳細については、このトピックの「オンプレミスクライアントの使用」を参照してください。

  3. ターミナルツールを開きます。 JSONファイルが配置されているディレクトリで、次のコマンドを実行してEASサービスのGPU共有を有効にします。

    eascmdwin64.exe modify <service_name> -s <instances.json>

    <service_name> をEASサービスの名前に置き換え、<instances.json> を作成するJSONファイルの名前に置き換えます。