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

Container Service for Kubernetes:cGPUを使用してGPU共有用のコンピューティングパワー割り当てポリシーを設定する

最終更新日:Dec 13, 2024

ACK ProクラスターでのGPU共有は、cGPUに基づいて実装されます。 GPU共有は、複数の計算能力割り当てポリシーをサポートします。 計算能力割り当てポリシーを選択するには、ACK ProクラスターのcGPUコンポーネントで使用されるポリシーを指定します。 このトピックでは、ビジネス要件に基づいてGPU共有のための適切な計算能力割り当てポリシーを設定する方法について説明します。

cGPUの詳細については、cGPUとは何ですか?

前提条件

注意事項

  • cGPUコンポーネントをインストールする前にcGPU分離モジュールがノードにインストールされている場合、cGPUポリシーを有効にするには、ノードを再起動する必要があります。 ノードを再起動する方法の詳細については、「インスタンスの再起動」をご参照ください。

    説明

    cGPU分離モジュールがノードにインストールされているかどうかを確認するには、ノードにログインし、cat /proc/cgpu_km/versionコマンドを実行します。 システムがcGPUバージョン番号を返す場合、cGPU分離モジュールがインストールされます。

  • cGPU分離モジュールがインストールされていない場合、またはモジュールがアンインストールされている場合は、cGPUポリシーを有効にするためにモジュールをインストールする必要があります。

  • クラスターでGPU共有が有効になっているノードは、同じcGPUポリシーを使用します。

ステップ1: cGPUコンポーネントがインストールされているかどうかを確認する

計算能力割り当てポリシーの設定に必要な操作は、cGPUコンポーネントがインストールされているかどうかによって異なります。 コンピューティング能力割り当てポリシーを設定する前に、cGPUコンポーネントがインストールされているかどうかを確認する必要があります。

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[アプリケーション] > [ヘルム] を選択します。

  3. ヘルムページでack-ai-installerコンポーネントが存在するかチェックします。

    ack-ai-installerが存在する場合、cGPUコンポーネントがインストールされます。 ack-ai-installerが存在しない場合、cGPUコンポーネントはインストールされません。

ステップ2: 計算能力割り当てポリシーの設定

次のセクションでは、cGPUコンポーネントがインストールされている場合と、コンポーネントがインストールされていない場合に、GPU共有用の計算能力割り当てポリシーを設定する方法について説明します。

cGPUコンポーネントがインストールされていない

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[アプリケーション] > [クラウドネイティブAIスイート] を選択します。

  3. [クラウドネイティブAI Suite] ページで、[デプロイ] をクリックします。

  4. [スケジューリング] セクションで、[スケジューリングコンポーネント (バッチタスクスケジューリング、GPU共有、トポロジ対応GPUスケジューリング、およびNPUスケジューリング] を選択し、[詳細設定] をクリックします。

  5. [パラメーター] ページで、[ポリシー] フィールドを変更し、[OK] をクリックします。 policy.jpg次の説明に基づいてpolicyフィールドを設定します。 タイムスライスとスケジューリングポリシーの詳細については、「cGPUの使用例」をご参照ください。

    説明

    0

    公正共有スケジューリング。 各コンテナは、固定されたタイムスライスを占有する。 タイムスライスの割合は1/max_instである。

    1

    先制スケジューリング。 各コンテナは、できるだけ多くのタイムスライスを占有する。 タイムスライスの割合は、1 /コンテナの数である。

    2

    重みベースのプリエンプティブスケジューリング。 ALIYUN_COM_GPU_SCHD_WEIGHTが1より大きい値に設定されている場合、重みベースのプリエンプティブスケジューリングが使用されます。

    3

    固定パーセンテージスケジューリング。 計算能力は一定の割合でスケジュールされます。

    4

    ソフトスケジューリング。 プリエンプティブスケジューリングと比較して、ソフトスケジューリングはよりソフトな方法でGPUリソースを分離します。

    5

    組み込みのスケジューリング。 GPUドライバーの組み込みスケジューリングポリシー。

  6. ページの下部で、[クラウドネイティブAIスイートのデプロイ] をクリックします。

cGPUコンポーネントがインストールされている

  1. 次のコマンドを実行して、cGPUコンポーネントのcGPU分離モジュールが実行されるDaemonSetを変更します。

    kubectl edit daemonset cgpu-installer -nkube-system
  2. cGPU分離モジュールが実行されるDaemonSetを変更し、変更を保存します。

    1. でDaemonSetの画像バージョンを表示します。イメージフィールドを選択します。

      イメージのバージョンが1.0.6以降であることを確認します。 imageフィールドの例:

      image: registry-vpc.cn-hongkong.aliyuncs.com/acs/cgpu-installer: <イメージバージョン>
    2. 変更します。Modify theフィールドを選択します。

      containers.envパラメーターで、POLICYキーのvalueフィールドを設定します。

      # その他のフィールドは省略されます。 
      仕様:
        containers:
        -env:
          -name: ポリシー
            値: "1"
      # その他のフィールドは省略します。

      次の表に、valueフィールドの値を示します。

      説明

      0

      公正共有スケジューリング。 各コンテナは、固定されたタイムスライスを占有する。 タイムスライスの割合は1/max_instである。

      1

      先制スケジューリング。 各コンテナは、できるだけ多くのタイムスライスを占有する。 タイムスライスの割合は、1 /コンテナの数である。

      2

      重みベースのプリエンプティブスケジューリング。 ALIYUN_COM_GPU_SCHD_WEIGHTが1より大きい値に設定されている場合、重みベースのプリエンプティブスケジューリングが使用されます。

      3

      固定パーセンテージスケジューリング。 計算能力は一定の割合でスケジュールされます。

      4

      ソフトスケジューリング。 プリエンプティブスケジューリングと比較して、ソフトスケジューリングはよりソフトな方法でGPUリソースを分離します。

      5

      組み込みのスケジューリング。 GPUドライバーの組み込みスケジューリングポリシー。

  3. GPU共有が有効になっているノードを再起動します。

    ノードを再起動する方法の詳細については、「インスタンスの再起動」をご参照ください。