cGPU は、GPU メモリと計算能力の隔離を提供する Alibaba Cloud モジュールです。この機能により、複数のコンテナーが互いのリソースに干渉することなく、単一の GPU を共有できます。この Topic では、cGPU の使用に関する既知の問題と重要な情報について説明します。
開始する前に
クラスター内の GPU ノードにラベル
ack.node.gpu.schedule=cgpu、ack.node.gpu.schedule=core_mem、またはcgpu=trueがある場合、そのノードで cGPU 隔離が有効になります。ack-ai-installer と cGPU コンポーネント間のバージョンマッピングの詳細については、「ack-ai-installer コンポーネント」のリリースノートをご参照ください。
cGPU の詳細については、「NVIDIA 公式ドキュメント」をご参照ください。
cGPU バージョンの互換性
NVIDIA ドライバーの互換性
cGPU バージョン | 互換性のある NVIDIA ドライバー |
1.5.20 1.5.19 1.5.18 1.5.17 1.5.16 1.5.15 1.5.13 1.5.12 1.5.11 1.5.10 1.5.9 1.5.8 1.5.7 1.5.6 1.5.5 1.5.3 | サポート対象:
|
1.5.2 1.0.10 1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 | サポート対象:
サポート対象外:
|
1.0.3 0.8.17 0.8.13 | サポート対象:
サポート対象外:
|
インスタンスファミリーの互換性
cGPU バージョン | 互換性のあるインスタンスファミリー |
1.5.20 1.5.19 | サポート対象:
|
1.5.18 1.5.17 1.5.16 1.5.15 1.5.13 1.5.12 1.5.11 1.5.10 1.5.9 | サポート対象:
サポート対象外:
|
1.5.8 1.5.7 | サポート対象:
サポート対象外:
|
1.5.6 1.5.5 | サポート対象:
サポート対象外:
|
1.5.3 1.5.2 1.0.10 1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 1.0.3 | サポート対象:
サポート対象外:
|
0.8.17 0.8.13 | サポート対象:
サポート対象外:
|
nvidia-container-toolkit の互換性
cGPU バージョン | 互換性のある nvidia-container-toolkit |
1.5.20 1.5.19 1.5.18 1.5.17 1.5.16 1.5.15 1.5.13 1.5.12 1.5.11 1.5.10 1.5.9 1.5.8 1.5.7 1.5.6 1.5.5 1.5.3 1.5.2 1.0.10 | サポート対象:
|
1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 1.0.3 0.8.17 0.8.13 | サポート対象:
サポート対象外:
|
カーネルバージョンの互換性
cGPU バージョン | 互換性のあるカーネルバージョン |
1.5.20 1.5.19 1.5.18 1.5.17 1.5.16 1.5.15 1.5.13 1.5.12 1.5.11 1.5.10 1.5.9 | サポート対象:
|
1.5.8 1.5.7 1.5.6 1.5.5 1.5.3 | サポート対象:
|
1.5.2 1.0.10 1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 1.0.3 | サポート対象:
|
0.8.17 | サポート対象:
|
0.8.13 0.8.12 0.8.10 | サポート対象:
サポート対象外:
|
よくある質問
cGPU の使用時に Linux カーネルパニックが発生する
バックグラウンド: cGPU コンポーネントを使用すると、cGPU カーネルドライバーでデッドロックが発生します。これは、同時プロセスが互いにブロックし合い、Linux カーネルパニックにつながることを意味します。
原因: 1.5.7 以前の
cGPUバージョンをインストールしたため、コンポーネントのバージョンが古くなっています。ソリューション: 新しいサービスでのカーネルエラーを防ぐために、
cGPU≥1.5.10をインストールまたはスペックアップすることをお勧めします。スペックアップ方法の詳細については、「ノードの cGPU バージョンをスペックアップする」をご参照ください。
一部のシナリオで cGPU Pod の起動に失敗する
バックグラウンド: Alibaba Cloud コンテナー最適化 OS イメージを使用すると、cGPU ノード上の cGPU Pod の起動に失敗することがあります。エラーメッセージは次のとおりです。
"Error: failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running prestart hook #0: exit status 2, stdout: , stderr: Auto-detected mode as 'legacy': unknown"原因: この問題は cGPU バージョン 1.5.18 以前 (
cgpu≤1.5.18) で発生し、cGPU ノード上の最初の cGPU Pod の起動に失敗する可能性があります。ソリューション:
ack-ai-installer≥1.12.6にスペックアップします。詳細については、「共有 GPU スケジューリングコンポーネントをスペックアップする」をご参照ください。
cGPU Pod の作成時に modprobe: ERROR エラーが発生する
バックグラウンド: cGPU Pod の作成時に
modprobe: ERROR: could not insert 'cgpu_procfs': Operation not permittedまたはmodprobe: ERROR: could not insert 'km': Operation not permittedエラーが発生します。原因: 次のエラーメッセージが表示されます。
Error: failed to create containerd task: failed to create shim: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 2, stdout: , stderr: modprobe: ERROR: could not insert 'cgpu_procfs': Operation not permitted modprobe: ERROR: could not insert 'cgpu_procfs': Operation not permitted Auto-detected mode as 'legacy': unknownmodprobe: ERROR: could not insert 'km': Operation not permitted
ソリューション: このエラーは通常、オペレーティングシステムのバージョンが cGPU と互換性がないことを示します。この問題を解決するには、コンポーネントを最新バージョンにスペックアップしてください。詳細については、「共有 GPU スケジューリングコンポーネントをスペックアップする」をご参照ください。
cGPU Pod のコンテナーが作成に失敗するか、タイムアウトにより終了する
バックグラウンド: cGPU Pod のコンテナーが作成できないか、タイムアウトのために終了します。
原因: この問題は、cGPU コンポーネントバージョン 1.0.10 以前 (
cGPU≤1.0.10) と NVIDIA Toolkit バージョン 1.11 以降 (NVIDIA Toolkit≥1.11) の間の非互換性が原因で発生します。ソリューション: この問題を解決するには、コンポーネントを最新バージョンにスペックアップしてください。詳細については、「共有 GPU スケジューリングコンポーネントをスペックアップする」をご参照ください。
cGPU Pod の作成時に Error occurs when creating cGPU instance: unknown エラーが発生する
バックグラウンド: パフォーマンス上の理由から、cGPU を使用する場合、単一の GPU 上に最大 20 個の Pod を作成できます。
原因: 作成された Pod の数がこの制限を超えると、GPU にスケジュールされた後続の Pod は実行できません。エラーメッセージ
Error occurs when creating cGPU instance: unknownが表示されます。ソリューション: cGPU を使用する場合、単一の GPU 上に作成される Pod の数が 20 以下であることを確認してください。
cGPU Pod で nvidia-smi コマンドを実行すると Failed to initialize NVML エラーが発生する
バックグラウンド: 共有 GPU スケジューリングリソースを使用する実行中の Pod で
nvidia-smiコマンドを実行すると、次の出力が表示されます。Failed to initialize NVML: GPU access blocked by operating system原因: この問題は、
cGPU バージョン 1.5.2 以前と 2023 年 7 月以降にリリースされた GPU ドライバーバージョンとの間の非互換性が原因で発生します。GPU ドライバーのリリース日に関する詳細については、「GPU ドライバーのリリース日」をご参照ください。さまざまな ACK クラスターバージョンと互換性のあるデフォルトの GPU ドライバーバージョンのリストについては、「ACK でサポートされている NVIDIA ドライバーのバージョンのリスト」をご参照ください。ソリューション: この問題を解決するには、コンポーネントを最新バージョンにスペックアップしてください。詳細については、「共有 GPU スケジューリングコンポーネントをスペックアップする」をご参照ください。