ACK マネージドクラスター Pro エディション では、共有 GPU 機能がサポートされています。本トピックでは、共有 GPU コンポーネントのポリシーを設定することで、共有 GPU の計算能力割り当てポリシーを構成する方法について説明します。
cGPU の概要については、「cGPU とは」をご参照ください。
前提条件
注意事項
-
ノードに既に cGPU 隔離モジュールがインストールされている場合、ポリシーを有効化するには、共有 GPU コンポーネントのインストール後にノードを再起動する必要があります。詳細については、「関連ドキュメント」をご参照ください。
説明ノードにログインし、
cat /proc/cgpu_km/versionコマンドを実行して、cGPU 隔離モジュールがインストール済みかどうかを確認できます。コマンドの出力に cGPU のバージョン番号が表示された場合、cGPU 隔離モジュールがインストール済みであることを示します。 -
ノードに cGPU 隔離モジュールが未インストールであるか、またはアンインストール済みの場合、共有 GPU コンポーネントをインストールした直後にポリシーが即時有効になります。
-
同一クラスター内の共有 GPU ノードでは、1 つのポリシーのみを使用できます。
ステップ 1:共有 GPU コンポーネントのインストール状況の確認
共有 GPU の計算能力割り当てポリシーを構成する際の操作方法は、共有 GPU コンポーネントがインストール済みかどうかによって異なります。そのため、まずクラスター内でのコンポーネントのインストール状況を確認する必要があります。
Container Service Management Console にログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、クラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 をクリックします。
-
[Helm] ページで、コンポーネント一覧から [ack-ai-installer] コンポーネントを確認します。
ack-ai-installer コンポーネントが存在する場合は、共有 GPU コンポーネントがインストール済みです。存在しない場合は、未インストールです。
ステップ 2:共有 GPU 計算能力割り当てポリシーの設定
本セクションでは、共有 GPU コンポーネントが未インストールの場合と、すでにインストール済みの場合の、2 つのシナリオにおける共有 GPU 計算能力割り当てポリシーの設定方法について説明します。手順は以下のとおりです。
共有 GPU コンポーネントが未インストールの場合
Container Service Management Console にログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
「クラスターリスト」ページで、クラスターの名前をクリックします。左側のナビゲーションウィンドウで、「」をクリックします。
-
[クラウドネイティブ AI コンポーネントセット] ページで、[デプロイ] をクリックします。
-
スケジューリング エリアで、スケジューリングポリシーの拡張 (一括タスクスケジューリング、GPU 共有、GPU トポロジ認識) を選択し、次に右側の 上級 をクリックします。
-
パラメーター ページで、
policyフィールドを変更します。次に、OK をクリックします。
ポリシーの値の詳細については、「cGPU サービスの使用例」をご参照ください。値
説明
0
平均スケジューリング。各コンテナーは固定のタイムスライスを占有し、タイムスライス比率は
1/max_instです。1
プリエンプティブスケジューリング。各コンテナーは可能な限り多くのタイムスライスを占有し、タイムスライス比率は
1/current_number_of_containersです。2
重み付きプリエンプティブスケジューリング。ALIYUN_COM_GPU_SCHD_WEIGHT の値が 1 より大きい場合、自動的に重み付きプリエンプティブスケジューリングが使用されます。
3
固定計算能力スケジューリング。計算能力の固定割合を使用します。
4
弱計算能力スケジューリング。隔離レベルはプリエンプティブスケジューリングより弱くなります。
5
ネイティブスケジューリング。これは GPU ドライバー自体のスケジューリング方式です。
-
ページ下部の クラウドネイティブ AI コンポーネントセットのデプロイ をクリックします。
共有 GPU コンポーネントがインストール済みの場合
-
共有 GPU コンポーネント内で cGPU 隔離モジュールをインストールする DaemonSet を編集するには、以下のコマンドを実行します。
kubectl edit daemonset cgpu-installer -nkube-system -
cGPU 隔離モジュールをインストールする DaemonSet を変更して保存します。
-
imageフィールドから DaemonSet のイメージバージョンを確認します。イメージバージョンが v1.0.6 以降であることを確認してください。
imageフィールドの例を以下に示します。image: registry-vpc.cn-hongkong.aliyuncs.com/acs/cgpu-installer:<Image Version> -
valueの値を変更します。containers.envパラメーター配下で、POLICYのvalueを目的のポリシー値に変更します。# その他のフィールドは省略。 spec: containers: - env: - name: POLICY value: "1" # その他のフィールドは省略。valueの値の説明は以下のとおりです。値
説明
0
平均スケジューリング。各コンテナーは固定のタイムスライスを占有し、タイムスライス比率は
1/max_instです。1
プリエンプティブスケジューリング。各コンテナーは可能な限り多くのタイムスライスを占有し、タイムスライス比率は
1/current_number_of_containersです。2
重み付きプリエンプティブスケジューリング。ALIYUN_COM_GPU_SCHD_WEIGHT の値が 1 より大きい場合、自動的に重み付きプリエンプティブスケジューリングが使用されます。
3
固定計算能力スケジューリング。計算能力の固定割合を使用します。
4
弱計算能力スケジューリング。隔離レベルはプリエンプティブスケジューリングより弱くなります。
5
ネイティブスケジューリング。これは GPU ドライバー自体のスケジューリング方式です。
-
-
共有 GPU ノードのインスタンスを再起動します。詳細については、「関連ドキュメント」をご参照ください。