ACK ProクラスターでのGPU共有は、cGPUに基づいて実装されます。 GPU共有は、複数の計算能力割り当てポリシーをサポートします。 計算能力割り当てポリシーを選択するには、ACK ProクラスターのcGPUコンポーネントで使用されるポリシーを指定します。 このトピックでは、ビジネス要件に基づいてGPU共有のための適切な計算能力割り当てポリシーを設定する方法について説明します。
cGPUの詳細については、cGPUとは何ですか?
前提条件
ACK Proクラスターが作成され、クラスターのKubernetesバージョンは1.18.8以降です。 Kubernetesバージョンの更新方法の詳細については、「手動でACKクラスターをアップグレードする」をご参照ください。
cGPU 1.0.6以降が使用されます。 cGPUを更新する方法の詳細については、「ノードのcGPUバージョンの更新」をご参照ください。
注意事項
cGPUコンポーネントをインストールする前にcGPU分離モジュールがノードにインストールされている場合、cGPUポリシーを有効にするには、ノードを再起動する必要があります。 ノードを再起動する方法の詳細については、「インスタンスの再起動」をご参照ください。
説明cGPU分離モジュールがノードにインストールされているかどうかを確認するには、ノードにログインし、
cat /proc/cgpu_km/version
コマンドを実行します。 システムがcGPUバージョン番号を返す場合、cGPU分離モジュールがインストールされます。cGPU分離モジュールがインストールされていない場合、またはモジュールがアンインストールされている場合は、cGPUポリシーを有効にするためにモジュールをインストールする必要があります。
クラスターでGPU共有が有効になっているノードは、同じcGPUポリシーを使用します。
ステップ1: cGPUコンポーネントがインストールされているかどうかを確認する
計算能力割り当てポリシーの設定に必要な操作は、cGPUコンポーネントがインストールされているかどうかによって異なります。 コンピューティング能力割り当てポリシーを設定する前に、cGPUコンポーネントがインストールされているかどうかを確認する必要があります。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
ヘルムページでack-ai-installerコンポーネントが存在するかチェックします。
ack-ai-installerが存在する場合、cGPUコンポーネントがインストールされます。 ack-ai-installerが存在しない場合、cGPUコンポーネントはインストールされません。
ステップ2: 計算能力割り当てポリシーの設定
次のセクションでは、cGPUコンポーネントがインストールされている場合と、コンポーネントがインストールされていない場合に、GPU共有用の計算能力割り当てポリシーを設定する方法について説明します。
cGPUコンポーネントがインストールされていない
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
[クラウドネイティブAI Suite] ページで、[デプロイ] をクリックします。
[スケジューリング] セクションで、[スケジューリングコンポーネント (バッチタスクスケジューリング、GPU共有、トポロジ対応GPUスケジューリング、およびNPUスケジューリング] を選択し、[詳細設定] をクリックします。
[パラメーター] ページで、
[ポリシー]
フィールドを変更し、[OK] をクリックします。 次の説明に基づいてpolicy
フィールドを設定します。 タイムスライスとスケジューリングポリシーの詳細については、「cGPUの使用例」をご参照ください。値
説明
0
公正共有スケジューリング。 各コンテナは、固定されたタイムスライスを占有する。 タイムスライスの割合は
1/max_inst
である。1
先制スケジューリング。 各コンテナは、できるだけ多くのタイムスライスを占有する。 タイムスライスの割合は、
1 /コンテナの数
である。2
重みベースのプリエンプティブスケジューリング。 ALIYUN_COM_GPU_SCHD_WEIGHTが1より大きい値に設定されている場合、重みベースのプリエンプティブスケジューリングが使用されます。
3
固定パーセンテージスケジューリング。 計算能力は一定の割合でスケジュールされます。
4
ソフトスケジューリング。 プリエンプティブスケジューリングと比較して、ソフトスケジューリングはよりソフトな方法でGPUリソースを分離します。
5
組み込みのスケジューリング。 GPUドライバーの組み込みスケジューリングポリシー。
ページの下部で、[クラウドネイティブAIスイートのデプロイ] をクリックします。
cGPUコンポーネントがインストールされている
次のコマンドを実行して、cGPUコンポーネントのcGPU分離モジュールが実行されるDaemonSetを変更します。
kubectl edit daemonset cgpu-installer -nkube-system
cGPU分離モジュールが実行されるDaemonSetを変更し、変更を保存します。
でDaemonSetの画像バージョンを表示します。
イメージ
フィールドを選択します。イメージのバージョンが1.0.6以降であることを確認します。
image
フィールドの例:image: registry-vpc.cn-hongkong.aliyuncs.com/acs/cgpu-installer: <イメージバージョン>
変更します。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ドライバーの組み込みスケジューリングポリシー。
GPU共有が有効になっているノードを再起動します。
ノードを再起動する方法の詳細については、「インスタンスの再起動」をご参照ください。