ACK Pro クラスターは GPU 共有をサポートします。cGPU コンポーネントの policy パラメーターを設定することで、計算能力割り当てポリシーを選択できます。
cGPU の詳細については、「cGPUとは」をご参照ください。
前提条件
-
ACK Pro クラスターが作成されており、Kubernetes 1.18.8 以降を実行していること。クラスターのアップグレード方法の詳細については、「クラスターの手動アップグレード」をご参照ください。
-
cGPU のバージョンが 1.0.6 以降であること。cGPU のアップグレード方法の詳細については、「ノードのcGPUバージョンのアップグレード」をご参照ください。
注意事項
-
ノードに cGPU アイソレーションモジュールがすでにインストールされている場合、cGPU コンポーネントをインストールした後、ポリシーを適用するためにノードを再起動する必要があります。詳細については、「インスタンスの再起動」をご参照ください。
説明ノードにログインして
cat /proc/cgpu_km/versionコマンドを実行することで、cGPU アイソレーションモジュールがインストールされているかどうかを確認できます。コマンドが cGPU のバージョン番号を返す場合、モジュールはインストールされています。 -
ノードに cGPU アイソレーションモジュールがインストールされていない場合、またはアンインストールされている場合、cGPU コンポーネントをインストールした直後にポリシーが有効になります。
-
同じクラスター内で GPU 共有を使用するすべてのノードは、同じポリシーを使用する必要があります。
ステップ 1:cGPU コンポーネントのインストール状況の確認
計算能力割り当てポリシーの設定手順は、cGPU コンポーネントがすでにインストールされているかどうかによって異なります。まず、クラスターにコンポーネントがインストールされているかどうかを確認します。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
-
Helm ページで、[ack-ai-installer] コンポーネントがリストに含まれているかどうかを確認します。
[ack-ai-installer] コンポーネントが存在する場合、cGPU コンポーネントがインストールされています。
ステップ 2:スケジューリングポリシーの設定
cGPU が未インストールの場合
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
-
クラウドネイティブ AI コンポーネントセット ページで、デプロイ をクリックします。
-
スケジューリング セクションで、スケジューリングポリシーの拡張 (一括タスクスケジューリング、GPU 共有、GPU トポロジ認識) を選択し、右側の 上級 をクリックします。
-
パラメーター ページで、
policyフィールドを変更し、OK をクリックします。cgpu: enabled: true image: acs/cgpu-installer tag: v1.5.3-8d3fc1b-aliyun financeCloudImageTag: v1.0.7-fin imagePullPolicy: IfNotPresent policy: 1 nodeSelector: {} checkRegions: true次の表に、有効な値を示します。詳細については、「cGPU の使用法の例」をご参照ください。
値
説明
0
フェアシェアスケジューリング。各コンテナには固定タイムスライスが割り当てられます。タイムスライスの割合は
1/max_instです。1
プリエンプティブスケジューリング。各コンテナは可能な限り多くのタイムスライスを使用します。コンテナあたりのタイムスライスは
1/現在のコンテナ数です。2
重み付けプリエンプティブスケジューリング。コンテナに設定された ALIYUN_COM_GPU_SCHD_WEIGHT 環境変数が 1 より大きい値の場合に、重みに基づいてスケジューリングが実行されます。
3
固定パーセンテージスケジューリング。このポリシーを使用して、計算能力の固定パーセンテージを割り当てます。
4
ソフトスケジューリング。このポリシーは、プリエンプティブスケジューリングよりも弱いアイソレーションを提供します。
5
組み込みスケジューリング。これは GPU ドライバーに組み込まれているスケジューリング方法です。
-
ページ下部の クラウドネイティブ AI コンポーネントセットのデプロイ をクリックします。
cGPU がすでにインストールされている場合
-
次のコマンドを実行して、cGPU アイソレーションモジュールをインストールする DaemonSet を編集します。
kubectl edit daemonset cgpu-installer -n kube-system -
DaemonSet を変更して保存します。
-
DaemonSet の
imageのバージョンを確認します。イメージのバージョンが v1.0.6 以降であることを確認します。例:
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/現在のコンテナ数です。2
重み付けプリエンプティブスケジューリング。コンテナに設定された ALIYUN_COM_GPU_SCHD_WEIGHT 環境変数が 1 より大きい値の場合に、重みに基づいてスケジューリングが実行されます。
3
固定パーセンテージスケジューリング。このポリシーを使用して、計算能力の固定パーセンテージを割り当てます。
4
ソフトスケジューリング。このポリシーは、プリエンプティブスケジューリングよりも弱いアイソレーションを提供します。
5
組み込みスケジューリング。これは GPU ドライバーに組み込まれているスケジューリング方法です。
-
-
GPU 共有を使用するノードを再起動します。詳細については、「インスタンスの再起動」をご参照ください。