ハードウェアアクセラレーター
ハードウェアアクセラレーター
概要
第1章 ハードウェアアクセラレーターについて リンクのコピーリンクがクリップボードにコピーされました!
専用ハードウェアアクセラレーターは、新しい生成人工知能および機械学習 (AI/ML) 業界で重要な役割を果たします。具体的には、ハードウェアアクセラレーターは、この新しいテクノロジーを支える大規模言語モデルやその他の基礎モデルのトレーニングと提供に不可欠です。データサイエンティスト、データエンジニア、ML エンジニア、開発者は、データ量の多い変換やモデルの開発と提供に特化したハードウェアアクセラレーションを活用できます。そのエコシステムの多くはオープンソースであり、複数の貢献パートナーとオープンソース財団が存在します。
Red Hat OpenShift Container Platform は、ハードウェアアクセラレーターの構成要素である次の処理ユニットを追加するカードと周辺ハードウェアをサポートしています。
- グラフィックスプロセッシングユニット (GPU)
- ニューラルプロセッシングユニット (NPU)
- 特定用途向け集積回路 (ASIC)
- データプロセッシングユニット (DPU)
専用ハードウェアアクセラレーターは、AI/ML 開発にさまざまな利点をもたらします。
- 1 つのプラットフォームであらゆる用途に対応
- 開発者、データエンジニア、データサイエンティスト、DevOps のためのコラボレーション環境
- Operator による機能拡張
- Operator により OpenShift Container Platform に AI/ML 機能を導入可能
- ハイブリッドクラウドのサポート
- モデルの開発、提供、デプロイのためのオンプレミスサポート
- AI/ML ワークロードのサポート
- モデルのテスト、イテレーション、統合、プロモートを行い、サービスとして運用環境に提供
Red Hat は、Red Hat Enterprise Linux (RHEL) および OpenShift Container Platform プラットフォームの Linux (カーネルとユーザー空間) および Kubernetes レイヤーで、このような専用ハードウェアアクセラレーターを有効にするために最適化されたプラットフォームを提供しています。これを実現するために、Red Hat は、Red Hat OpenShift AI と Red Hat OpenShift Container Platform の実証済みの機能を、単一のエンタープライズ対応 AI アプリケーションプラットフォームに統合しました。
ハードウェア Operator は、Kubernetes クラスターのオペレーティングフレームワークを使用して、必要なアクセラレーターリソースを有効にします。提供されているデバイスプラグインを手動で、またはデーモンセットとしてデプロイすることもできます。このプラグインにより、クラスターに GPU が登録されます。
専用ハードウェアアクセラレーターの中には、開発とテストのためのセキュリティーを確保する必要がある非接続環境内で動作するように設計されているものもあります。
1.1. ハードウェアアクセラレーター リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform では、次のハードウェアアクセラレーターが有効になります。
- NVIDIA GPU
- AMD Instinct® GPU
- Intel® Gaudi®
第2章 NVIDIA GPU アーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
NVIDIA は、OpenShift Container Platform でのグラフィックスプロセッシングユニット (GPU) リソースの使用をサポートしています。OpenShift Container Platform は、大規模な Kubernetes クラスターのデプロイと管理用に Red Hat が開発およびサポートする、セキュリティーを重視して強化された Kubernetes プラットフォームです。OpenShift Container Platform には Kubernetes の拡張機能が含まれているため、ユーザーはが簡単に NVIDIA GPU リソースを設定し、それを使用してワークロードを高速化できます。
NVIDIA GPU Operator は、OpenShift Container Platform 内の Operator フレームワークを使用して、GPU で高速化されたワークロードの実行に必要な NVIDIA ソフトウェアコンポーネントのライフサイクル全体を管理します。
これらのコンポーネントには、NVIDIA ドライバー (CUDA を有効にするため)、GPU 用の Kubernetes デバイスプラグイン、NVIDIA Container Toolkit、GPU Feature Discovery (GFD) を使用した自動ノードタグ付け、DCGM ベースのモニタリングなどが含まれます。
NVIDIA GPU Operator をサポートしているのは NVIDIA だけです。NVIDIA からサポートを受ける方法は、NVIDIA サポートの利用方法 を参照してください。
2.1. NVIDIA GPU の前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 1 つ以上の GPU ワーカーノードを備えた OpenShift クラスターが稼働している。
-
必要な手順を実行するために
cluster-admin
として OpenShift クラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。 -
Node Feature Discovery (NFD) Operator をインストールし、
nodefeaturediscovery
インスタンスを作成している。
2.2. NVIDIA GPU の有効化 リンクのコピーリンクがクリップボードにコピーされました!
以下の図は、OpenShift で GPU アーキテクチャーがどのように有効になっているかを示しています。
図2.1 NVIDIA GPU の有効化
MIG は、NVIDIA Ampere 生成で始まる GPU でサポートされています。MIG をサポートする GPU のリストは、NVIDIA MIG ユーザーガイド を参照してください。
2.2.1. GPU とベアメタル リンクのコピーリンクがクリップボードにコピーされました!
NVIDIA 認定のベアメタルサーバーに OpenShift Container Platform をデプロイできますが、いくつかの制限があります。
- コントロールプレーンノードは CPU ノードにできます。
AI/ML ワークロードがワーカーノードで実行される場合、そのワーカーノードは GPU ノードである必要があります。
さらに、ワーカーノードは 1 つ以上の GPU をホストできますが、すべて同じタイプである必要があります。たとえば、ノードには 2 つの NVIDIA A100 GPU が存在することは可能ですが、A100 GPU と T4 GPU を 1 つずつ備えたノードはサポートされません。Kubernetes の NVIDIA デバイスプラグインは、同じノード上で異なる GPU モデルの組み合わせをサポートしません。
- OpenShift を使用する場合は、1 台または 3 台以上のサーバーが必要な点に注意してください。2 台のサーバーを含むクラスターはサポートされません。単一サーバーのデプロイメントはシングルノード openShift (SNO) と呼ばれ、この設定を使用すると、高可用性 OpenShift 環境が得られません。
以下のいずれかの方法で、コンテナー化された GPU にアクセスできます。
- GPU パススルー
- マルチインスタンス GPU (MIG)
2.2.2. GPU と仮想化 リンクのコピーリンクがクリップボードにコピーされました!
多くの開発者や企業がコンテナー化されたアプリケーションやサーバーレスインフラストラクチャーに移行していますが、仮想マシン上で実行されるアプリケーションの開発と保守は引き続き注目されています。Red Hat OpenShift Virtualization はこの機能を提供し、企業はこの機能を使用して仮想マシンをクラスター内のコンテナー化されたワークフロー組み込むことができます。
ワーカーノードを GPU に接続する場合は、次のいずれかの方法を選択できます。
- 仮想マシン内の GPU ハードウェアにアクセスして使用するための GPU パススルー。
- GPU コンピュート容量がワークロードでいっぱいになっていない場合の GPU (vGPU) のタイムスライス。
2.2.3. GPU と vSphere リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、さまざまな GPU タイプをホストできる NVIDIA 認定の VMware vSphere サーバーにデプロイできます。
仮想マシンで vGPU インスタンスが使用されている場合は、NVIDIA GPU ドライバーをハイパーバイザーにインストールする必要があります。VMware vSphere の場合、このホストドライバーは VIB ファイルの形式で提供されます。
ワーカーノード仮想マシンに割り当てることができる vGPUS の最大数は、vSphere のバージョンによって異なります。
- vSphere 7.0: 仮想マシンごとに最大 4 つの仮想 GPU
vSphere 8.0: 仮想マシンごとに最大 8 つの仮想 GPU
注記vSphere 8.0 では、仮想マシンに関連付けられた複数の完全または部分的な異種プロファイルのサポートが導入されました。
次のいずれかの方法を選択して、ワーカーノードを GPU に割り当てることができます。
- 仮想マシン内の GPU ハードウェアにアクセスして使用するための GPU パススルー
- すべての GPU が必要でない場合の GPU (vGPU) タイムスライス
ベアメタルデプロイメントと同様に、1 台または 3 台以上のサーバーが必要です。2 台のサーバーを含むクラスターはサポートされません。
2.2.4. GPU および Red Hat KVM リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、NVIDIA 認定のカーネルベースの仮想マシン (KVM) サーバー上で使用できます。
ベアメタルデプロイメントと同様に、1 台または 3 台以上のサーバーが必要です。2 台のサーバーを含むクラスターはサポートされません。
ただし、ベアメタルデプロイメントとは異なり、サーバーで異なるタイプの GPU を使用できます。これは、GPU を Kubernetes ノードとして機能する別の仮想マシンに割り当てることができるためです。唯一の制限として、Kubernetes ノードがノードと同レベルで GPU タイプのセットを持つ必要があります。
以下のいずれかの方法で、コンテナー化された GPU にアクセスできます。
- 仮想マシン内の GPU ハードウェアにアクセスして使用するための GPU パススルー
- すべての GPU が必要でない場合の GPU (vGPU) タイムスライス
vGPU 機能を有効にするには、特別なドライバーをホストレベルでインストールする必要があります。このドライバーは RPM パッケージとして提供されます。このホストドライバーは、GPU パススルーの割り当てにはまったく必要ありません。
2.2.5. GPU と CSP リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、主要なクラウドサービスプロバイダー (CSP) である Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Microsoft Azure のいずれかにデプロイできます。
フルマネージドデプロイメントとセルフマネージドデプロイメントの 2 つのオペレーションモードを使用できます。
- フルマネージドデプロイメントでは、Red Hat が CSP と連携してすべてを自動化します。お客様は CSP の Web コンソールを使用して OpenShift インスタンスを要求できます。クラスターは自動的に作成され、Red Hat によって完全に管理されます。この環境内では、ノードの障害やエラーを心配する必要はありません。クラスターの稼働時間を維持する責任は Red Hat がすべて負います。フルマネージドサービスは、AWS、Azure、GCP で利用できます。AWS の場合、OpenShift サービスは ROSA (Red Hat OpenShift Service on AWS) と呼ばれます。Azure の場合、このサービスは Azure Red Hat OpenShift と呼ばれます。GCP の場合、このサービスは OpenShift Dedicated on GCP と呼ばれます。
- セルフマネージドデプロイメントでは、お客様が OpenShift クラスターのインスタンス化と維持を行う必要があります。この場合、Red Hat は OpenShift クラスターのデプロイを支援するために、OpenShift-install ユーティリティーを提供します。セルフマネージドサービスは、世界中のすべての CSP で利用できます。
このコンピュートインスタンスが GPU により高速化されたコンピュートインスタンスであること、および GPU タイプが NVIDIA AI Enterprise でサポートされている GPU のリストと一致することが重要です。たとえば、T4、V100、A100 はこのリストに含まれます。
以下のいずれかの方法で、コンテナー化された GPU にアクセスできます。
- 仮想マシン内の GPU ハードウェアにアクセスして使用するための GPU パススルー。
- GPU 全体を必要としない場合 GPU (vGPU) タイムスライス。
2.2.6. GPU と Red Hat Device Edge リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Device Edge は MicroShift へのアクセスを提供します。MicroShift は、シングルノードデプロイメントのシンプルさと、リソースに制約のある (エッジ) コンピューティング求められる機能とサービスを備えています。Red Hat Device Edge は、リソースに制約のある環境にデプロイされるベアメタル、仮想、コンテナー化された、または Kubernetes のワークロードのニーズを満たします。
Red Hat Device Edge 環境のコンテナー上で NVIDIA GPU を有効にできます。
コンテナー化された GPU へのアクセスには、GPU パススルーを使用します。
2.3. GPU の共有方法 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat と NVIDIA は、エンタープライズレベルの OpenShift Container Platform クラスター上で、GPU 加速コンピューティングを簡略化するための GPU 同時実行性と共有メカニズムを開発しました。
通常、アプリケーションにはさまざまなコンピューティング要件があり、GPU が十分に活用されていない可能性があります。デプロイメントコストを削減し、GPU 使用率を最大化するには、ワークロードごとに適切な量のコンピュートリソースを提供することが重要です。
GPU 使用率を改善するための同時実行メカニズムは、プログラミングモデル API からシステムソフトウェアやハードウェアパーティショニングまで、仮想化を含めて幅広く存在します。次のリストは、GPU 同時実行メカニズムを示しています。
- Compute Unified Device Architecture (CUDA) ストリーム
- タイムスライス
- CUDA マルチプロセスサービス (MPS)
- マルチインスタンス GPU (MIG)
- vGPU による仮想化
さまざまな OpenShift Container Platform シナリオで GPU 同時実行メカニズムを使用する場合は、次の GPU 共有に関する推奨事項を考慮してください。
- ベアメタル
- vGPU は使用できません。MIG 対応カードの使用を検討してください。
- 仮想マシン
- vGPU が最良の選択です。
- ベアメタル上の MIG を持たない古い NVIDIA カード
- タイムスライスの使用を検討してください。
- 複数の GPU を搭載し、パススルーと vGPU が必要な仮想マシン
- 個別の仮想マシンの使用を検討してください。
- OpenShift Virtualization と複数の GPU を備えたベアメタル
- ホストされた仮想マシンにはパススルー、コンテナーにはタイムスライスの使用を検討してください。
関連情報
2.3.1. CUDA ストリーム リンクのコピーリンクがクリップボードにコピーされました!
Compute Unified Device Architecture (CUDA) は、GPU での計算全般のために NVIDIA が開発した並列コンピューティングプラットフォームおよびプログラミングモデルです。
ストリームは、GPU 上で発行順に実行される一連の操作です。CUDA コマンドは通常、デフォルトストリームで順次実行され、前のタスクが完了するまでタスクは開始されません。
ストリームをまたいだ操作の非同期処理により、タスクの並列実行が可能になります。あるストリームで発行されたタスクは、別のタスクが別のストリームで発行される前、実行中、または発行された後に実行されます。これにより、GPU は指定された順序に関係なく複数のタスクを同時に実行できるようになり、パフォーマンスの向上につながります。
2.3.2. タイムスライス リンクのコピーリンクがクリップボードにコピーされました!
GPU タイムスライスは、複数の CUDA アプリケーションを実行しているときに、過負荷になった GPU でスケジュールされたワークロードをインターリーブします。
Kubernetes で GPU のタイムスライスを有効にするには、GPU のレプリカセットを定義し、それを個別に Pod に配分してワークロードを実行できるようにしっます。マルチインスタンス GPU (MIG) とは異なり、メモリーや障害はレプリカ間で分離されませんが、一部のワークロードでは一切共有しないより、こちらの方が適切です。内部的には、GPU タイムスライスを使用して、基礎である同じ GPU のレプリカからのワークロードを多重化します。
クラスター全体のデフォルト設定をタイムスライスに適用できます。ノード固有の設定を適用することもできます。たとえば、タイムスライス設定を Tesla T4 GPU を備えたノードにのみ適用し、他の GPU モデルを備えたノードは変更しないようにできます。
クラスター全体のデフォルト設定を適用し、ノードにラベルを付けて、それらのノードにノード固有の設定が適用されるようにすることで、2 つのアプローチを組み合わせることができます。
2.3.3. CUDA マルチプロセスサービス リンクのコピーリンクがクリップボードにコピーされました!
CUDA マルチプロセスサービス (MPS) を使用すると、単一の GPU で複数の CUDA プロセスを使用できます。プロセスは GPU 上で並行して実行されるため、GPU コンピュートリソースの飽和が発生しなくなります。MPS を使用すると、カーネル操作や、別のプロセスからのメモリーコピーの同時実行または重複も可能になり、使用率が向上します。
関連情報
2.3.4. マルチインスタンス GPU リンクのコピーリンクがクリップボードにコピーされました!
マルチインスタンス GPU (MIG) を使用すると、GPU コンピュートユニットとメモリーを複数の MIG インスタンスに分割できます。これらの各インスタンスは、システムの観点からはスタンドアロン GPU デバイスであり、ノード上で実行されている任意のアプリケーション、コンテナー、または仮想マシンに接続できます。GPU を使用するソフトウェアは、これらの各 MIG インスタンスを個別の GPU として扱います。
MIG は、GPU 全体のフルパワーを必要としないアプリケーションがある場合に役立ちます。新しい NVIDIA Ampere アーキテクチャーの MIG 機能を使用すると、ハードウェアリソースを複数の GPU インスタンスに分割できます。各インスタンスは、オペレーティングシステムで独立した CUDA 対応 GPU として利用できます。
NVIDIA GPU Operator バージョン 1.7.0 以降では、A100 および A30 Ampere カードの MIG サポートを提供しています。これらの GPU インスタンスは、最大 7 つの独立した CUDA アプリケーションをサポートするように設計されており、専用のハードウェアリソースをしようしてそれぞれ完全に分離された状態で稼働します。
2.3.5. vGPU による仮想化 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンは、NVIDIA vGPU を使用して単一の物理 GPU に直接アクセスできます。企業全体の仮想マシンで共有され、他のデバイスからアクセスできる仮想 GPU を作成できます。
この機能は、GPU パフォーマンスのパワーと、vGPU がもたらす管理およびセキュリティーの利点を組み合わせたものです。vGPU には他にも、仮想環境のプロアクティブな管理と監視、混合 VDI とコンピュートワークロードのワークロードバランシング、複数の仮想マシン間でのリソース共有などの利点があります。
関連情報
2.4. OpenShift Container Platform の NVIDIA GPU 機能 リンクのコピーリンクがクリップボードにコピーされました!
- NVIDIA Container Toolkit
- NVIDIA Container Toolkit を使用すると、GPU で高速化されたコンテナーを作成して実行できます。ツールキットには、コンテナーが NVIDIA GPU を使用するように自動的に設定するためのコンテナーランタイムライブラリーとユーティリティーが含まれています。
- NVIDIA AI Enterprise
NVIDIA AI Enterprise は、NVIDIA 認定システムで最適化、認定、サポートされている AI およびデータ分析ソフトウェアのエンドツーエンドのクラウドネイティブスイートです。
NVIDIA AI Enterprise には、Red Hat OpenShift Container Platform のサポートが含まれています。サポートされているインストール方法は以下のとおりです。
- GPU パススルーを使用するベアメタルまたは VMware vSphere 上の OpenShift Container Platform。
- NVIDIA vGPU を使用する VMware vSphere 上の OpenShift Container Platform。
- GPU Feature Discovery
NVIDIA GPU Feature Discovery for Kubernetes は、ノード上で使用可能な GPU のラベルを自動的に生成できるソフトウェアコンポーネントです。GPU Feature Discovery は、Node Feature Discovery (NFD) を使用してこのラベル付けを実行します。
Node Feature Discovery (NFD) Operator は、ハードウェア固有の情報でノードにラベル付けを行うことで、OpenShift Container Platform クラスターのハードウェア機能と設定の検出を管理します。NFD は、PCI カード、カーネル、OS バージョンなどのノード固有の属性で、ホストにラベル付けを行います。
Operator Hub で NFD Operator を見つけるには、"Node Feature Discovery" で検索してください。
- NVIDIA GPU Operator with OpenShift Virtualization
これまで、GPU Operator は、GPU で高速化されたコンテナーを実行するためにワーカーノードのみをプロビジョニングしていました。現在は、GPU Operator を使用して、GPU で高速化された仮想マシンを実行するためのワーカーノードもプロビジョニングできます。
GPU Operator を、どの GPU ワークロードがそのワーカーノード上で実行するように設定されたかに応じて、異なるソフトウェアコンポーネントをワーカーノードにデプロイするように設定できます。
- GPU モニタリングダッシュボード
- モニタリングダッシュボードをインストールして、OpenShift Container Platform Web コンソールのクラスターの Observe ページに、GPU の使用状況に関する情報を表示できます。GPU 使用状況に関する情報には、使用可能な GPU の数、消費電力 (ワット単位)、温度 (摂氏)、使用率 (パーセント)、および各 GPU のその他のメトリクスが含まれます。
第3章 AMD GPU Operator リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスター内で AMD Instinct GPU アクセラレーターと AMD GPU Operator を併用することで、機械学習、生成 AI、および GPU アクセラレーションアプリケーション向けのコンピューティング能力をシームレスに活用できます。
このドキュメントでは、AMD GPU Operator を有効化、設定、テストするために必要な情報を提供します。詳細は、AMD Instinct™ Accelerators を参照してください。
3.1. AMD GPU Operator について リンクのコピーリンクがクリップボードにコピーされました!
AMD GPU Operator のハードウェアアクセラレーション機能は、Red Hat OpenShift AI を使用して人工知能および機械学習 (AI/ML) アプリケーションを作成するデータサイエンティストや開発者に、高いパフォーマンスとコスト効率を提供します。GPU 機能の特定の領域を高速化すると、CPU 処理とメモリー使用量を最小限に抑え、全体的なアプリケーション速度、メモリー消費、帯域幅の制約を改善できます。
3.2. AMD GPU Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、OpenShift CLI と Web コンソールを使用して AMD GPU Operator をインストールできます。これは複数のステップから成る手順であり、Node Feature Discovery Operator、Kernel Module Management Operator、AMD GPU Operator のインストールが必要です。Operator の AMD コミュニティー版リリースをインストールするには、次の手順を順に実行します。
次のステップ
- Node Feature Discovery Operator をインストールします。
- Kernel Module Management Operator をインストールします。
- AMD GPU Operator をインストールして設定します。
3.3. AMD GPU Operator のテスト リンクのコピーリンクがクリップボードにコピーされました!
ROCmInfo のインストールをテストし、AMD MI210 GPU のログを表示するには、次の手順を使用します。
手順
ROCmInfo をテストする YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rocminfo
Pod を作成します。oc create -f rocminfo.yaml
$ oc create -f rocminfo.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
apiVersion: v1 pod/rocminfo created
apiVersion: v1 pod/rocminfo created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 1 つの MI210 GPU を含む
rocmnfo
ログを確認します。oc logs rocminfo | grep -A5 "Agent"
$ oc logs rocminfo | grep -A5 "Agent"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod を削除します。
oc delete -f rocminfo.yaml
$ oc delete -f rocminfo.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
pod "rocminfo" deleted
pod "rocminfo" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 Intel Gaudi AI アクセラレーター リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform の生成 AI および機械学習 (AI/ML) アプリケーションに Intel Gaudi AI アクセラレーターを使用できます。Intel Gaudi AI アクセラレーターは、コスト効率が高く、柔軟性と拡張性に優れたソリューションを提供し、最適化されたディープラーニングワークロードを実現します。
Red Hat は Intel Gaudi 2 および Intel Gaudi 3 デバイスをサポートしています。Intel Gaudi 3 デバイスは、トレーニング速度とエネルギー効率を大幅に向上させます。
4.1. Intel Gaudi AI アクセラレーターの前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 少なくとも 1 つの GPU ワーカーノードを備えた OpenShift Container Platform クラスターが動作している。
- 必要な手順を実行できるように、cluster-admin として OpenShift Container Platform クラスターにアクセスできる。
-
OpenShift CLI (
oc
) がインストールされている。 -
Node Feature Discovery (NFD) Operator をインストールし、
NodeFeatureDiscovery
インスタンスを作成した。
第5章 NVIDIA GPUDirect Remote Direct Memory Access (RDMA) リンクのコピーリンクがクリップボードにコピーされました!
NVIDIA GPUDirect Remote Direct Memory Access (RDMA) を使用すると、オペレーティングシステムを介さずに、1 台のコンピューターのアプリケーションから別のコンピューターのメモリーに直接アクセスできます。これにより、プロセスにおけるカーネルの介入を回避できるため、リソースが解放され、ネットワーク通信の処理に通常必要な CPU オーバーヘッドが大幅に削減されます。これは、GPU で高速化されたワークロードをクラスター全体に分散するのに役立ちます。RDMA は高帯域幅と低レイテンシーのアプリケーションに非常に適しているため、ビッグデータや機械学習のアプリケーションに最適です。
現在、NVIDIA GPUDirect RDMA には 3 つの設定方法があります。
- 共有デバイス
- この方法では、NVIDIA GPUDirect RDMA デバイスを、デバイスが公開されている OpenShift Container Platform ワーカーノード上の複数の Pod 間で共有できます。
- ホストデバイス
- この方法では、Pod に追加のホストネットワークを作成することにより、ワーカーノード上で直接の物理イーサネットアクセスを提供します。プラグインを使用すると、ネットワークデバイスをホストのネットワーク namespace から Pod 上のネットワーク namespace に移動できます。
- SR-IOV レガシーデバイス
- Single Root IO Virtualization (SR-IOV) 方式では、イーサネットアダプターなどの単一のネットワークデバイスを複数の Pod と共有できます。SR-IOV は、ホストノード上で Physical Function (PF) として認識されるデバイスを、複数の Virtual Function (VF) に分割します。VF は他のネットワークデバイスと同様に使用されます。
これらの各方法は、NVIDIA GPUDirect RDMA over Converged Ethernet (RoCE) または Infiniband インフラストラクチャーで使用できます。そのため、設定方法は合計で 6 つあります。
5.1. NVIDIA GPUDirect RDMA の前提条件 リンクのコピーリンクがクリップボードにコピーされました!
NVIDIA GPUDirect RDMA のどの設定方法でも、特定の Operator のインストールが必要です。Operator をインストールするには、次の手順を実行します。
- Node Feature Discovery Operator をインストールします。
- SR-IOV Operator をインストールします。
- NVIDIA Network Operator をインストールします (NVIDIA ドキュメントを参照)。
- NVIDIA GPU Operator をインストールします (NVIDIA ドキュメントを参照)。
5.2. IRDMA カーネルモジュールの無効化 リンクのコピーリンクがクリップボードにコピーされました!
一部のシステム (DellR750xa など) では、DOCA ドライバーをアンロードおよびロードするときに、IRDMA カーネルモジュールによって NVIDIA Network Operator の問題が発生します。モジュールを無効にするには、次の手順を実行します。
手順
次のコマンドを実行して、次のマシン設定ファイルを生成します。
cat <<EOF > 99-machine-config-blacklist-irdma.yaml
$ cat <<EOF > 99-machine-config-blacklist-irdma.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターにマシン設定を作成し、ノードが再起動するのを待ちます。
oc create -f 99-machine-config-blacklist-irdma.yaml
$ oc create -f 99-machine-config-blacklist-irdma.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
machineconfig.machineconfiguration.openshift.io/99-worker-blacklist-irdma created
machineconfig.machineconfiguration.openshift.io/99-worker-blacklist-irdma created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、各ノードのデバッグ Pod でモジュールがロードされていないことを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3. 永続的な命名規則の作成 リンクのコピーリンクがクリップボードにコピーされました!
場合によっては、再起動後にデバイス名が保持されないことがあります。たとえば、R760xa システムでは、再起動後に Mellanox デバイスの名前が変更される可能性があります。この問題は、MachineConfig
を使用して永続性を設定することで回避できます。
手順
ノードのワーカーノードから MAC アドレス名をファイルに収集し、永続化する必要があるインターフェイスの名前を指定します。この例では、ファイル
70-persistent-net.rules
を使用し、その中に詳細を保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このファイルを改行なしの base64 文字列に変換し、出力を変数
PERSIST
に設定します。PERSIST=`cat 70-persistent-net.rules| base64 -w 0` echo $PERSIST U1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjozYjo1MToyOCIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImliczJmMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjozYjo1MToyOSIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImVuczhmMG5wMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjpmMDozNjpkMCIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImliczJmMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjpmMDozNjpkMSIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImVuczhmMG5wMCIK
$ PERSIST=`cat 70-persistent-net.rules| base64 -w 0` $ echo $PERSIST U1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjozYjo1MToyOCIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImliczJmMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjozYjo1MToyOSIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImVuczhmMG5wMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjpmMDozNjpkMCIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImliczJmMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjpmMDozNjpkMSIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImVuczhmMG5wMCIK
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、マシン設定を作成し、カスタムリソースファイルで base64 エンコードを設定します。
cat <<EOF > 99-machine-config-udev-network.yaml
$ cat <<EOF > 99-machine-config-udev-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターにマシン設定を作成します。
oc create -f 99-machine-config-udev-network.yaml
$ oc create -f 99-machine-config-udev-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
machineconfig.machineconfiguration.openshift.io/99-machine-config-udev-network created
machineconfig.machineconfiguration.openshift.io/99-machine-config-udev-network created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow get mcp
コマンドを使用して、マシン設定のステータスを表示します。oc get mcp
$ oc get mcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-9adfe851c2c14d9598eea5ec3df6c187 True False False 1 1 1 0 6h21m worker rendered-worker-4568f1b174066b4b1a4de794cf538fee False True False 2 0 0 0 6h21m
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-9adfe851c2c14d9598eea5ec3df6c187 True False False 1 1 1 0 6h21m worker rendered-worker-4568f1b174066b4b1a4de794cf538fee False True False 2 0 0 0 6h21m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ノードが再起動し、更新フィールドが false
に戻ったら、デバッグ Pod でデバイスを調べてノードを検証できます。
5.4. NFD Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
Node Feature Discovery (NFD) Operator は、ノードにハードウェア固有の情報をラベル付けすることで、OpenShift Container Platform クラスター内のハードウェア機能と設定の検出を管理します。NFD は、PCI カード、カーネル、オペレーティングシステムのバージョンなど、ノード固有の属性でホストにラベルを付けます。
前提条件
- NFD Operator がインストールされている。
手順
次のコマンドを実行して、
openshift-nfd
namespace 内の Pod を確認し、Operator がインストールされ、実行されていることを確認します。oc get pods -n openshift-nfd
$ oc get pods -n openshift-nfd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE nfd-controller-manager-8698c88cdd-t8gbc 2/2 Running 0 2m
NAME READY STATUS RESTARTS AGE nfd-controller-manager-8698c88cdd-t8gbc 2/2 Running 0 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NFD コントローラーを実行している状態で、
NodeFeatureDiscovery
インスタンスを生成し、クラスターに追加します。NFD Operator の
ClusterServiceVersion
仕様では、Operator ペイロードの一部である NFD オペランドイメージなどのデフォルト値が指定されています。次のコマンドを実行してその値を取得します。NFD_OPERAND_IMAGE=`echo $(oc get csv -n openshift-nfd -o json | jq -r '.items[0].metadata.annotations["alm-examples"]') | jq -r '.[] | select(.kind == "NodeFeatureDiscovery") | .spec.operand.image'`
$ NFD_OPERAND_IMAGE=`echo $(oc get csv -n openshift-nfd -o json | jq -r '.items[0].metadata.annotations["alm-examples"]') | jq -r '.[] | select(.kind == "NodeFeatureDiscovery") | .spec.operand.image'`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: より多くのネットワークアダプター (NVIDIA BlueField DPU など) をサポートするには、デフォルトの
deviceClassWhiteList
フィールドにエントリーを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、'NodeFeatureDiscovery` のインスタンスを作成します。
oc create -f nfd-instance.yaml
$ oc create -f nfd-instance.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
nodefeaturediscovery.nfd.openshift.io/nfd-instance created
nodefeaturediscovery.nfd.openshift.io/nfd-instance created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
openshift-nfd
namespace 配下の Pod を確認し、インスタンスが起動して実行されていることを確認します。oc get pods -n openshift-nfd
$ oc get pods -n openshift-nfd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow しばらく待ってから、NFD によってノードにラベルが追加されたことを確認します。NFD のラベルには
feature.node.kubernetes.io
という接頭辞が付いているため、簡単にフィルタリングできます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 検出されたネットワークデバイスがあることを確認します。
oc describe node | grep -E 'Roles|pci' | grep pci-15b3
$ oc describe node | grep -E 'Roles|pci' | grep pci-15b3 feature.node.kubernetes.io/pci-15b3.present=true feature.node.kubernetes.io/pci-15b3.sriov.capable=true feature.node.kubernetes.io/pci-15b3.present=true feature.node.kubernetes.io/pci-15b3.sriov.capable=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5. SR-IOV Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
Single Root I/O Virtualization (SR-IOV) は、単一のデバイスを複数の Pod 間で共有できるようにすることで、NVIDIA GPUDirect RDMA のパフォーマンスを向上させます。
前提条件
- SR-IOV Operator がインストールされている。
手順
次のコマンドを実行して、
openshift-sriov-network-operator
namespace 内の Pod を確認し、Operator がインストールされ、実行されていることを確認します。oc get pods -n openshift-sriov-network-operator
$ oc get pods -n openshift-sriov-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE sriov-network-operator-7cb6c49868-89486 1/1 Running 0 22s
NAME READY STATUS RESTARTS AGE sriov-network-operator-7cb6c49868-89486 1/1 Running 0 22s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトの
SriovOperatorConfig
CR を MLNX_OFED コンテナーで動作させるために、次のコマンドを実行して次の値を更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターにリソースを作成します。
oc create -f sriov-operator-config.yaml
$ oc create -f sriov-operator-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
sriovoperatorconfig.sriovnetwork.openshift.io/default created
sriovoperatorconfig.sriovnetwork.openshift.io/default created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、sriov-operator にパッチを適用し、MOFED コンテナーと連携できるようにします。
oc patch sriovoperatorconfig default --type=merge -n openshift-sriov-network-operator --patch '{ "spec": { "configDaemonNodeSelector": { "network.nvidia.com/operator.mofed.wait": "false", "node-role.kubernetes.io/worker": "", "feature.node.kubernetes.io/pci-15b3.sriov.capable": "true" } } }'
$ oc patch sriovoperatorconfig default --type=merge -n openshift-sriov-network-operator --patch '{ "spec": { "configDaemonNodeSelector": { "network.nvidia.com/operator.mofed.wait": "false", "node-role.kubernetes.io/worker": "", "feature.node.kubernetes.io/pci-15b3.sriov.capable": "true" } } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
sriovoperatorconfig.sriovnetwork.openshift.io/default patched
sriovoperatorconfig.sriovnetwork.openshift.io/default patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6. NVIDIA Network Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
NVIDIA Network Operator は、NVIDIA GPUDirect RDMA ワークロードを有効にするために、NVIDIA ネットワークリソースと、ドライバーやデバイスプラグインなどのネットワーク関連コンポーネントを管理します。
前提条件
- NVIDIA Network Operator がインストールされている。
手順
次のコマンドを実行して、コントローラーが
nvidia-network-operator
namespace で実行されていることを確認し、Network Operator がインストールされ、実行されていることを確認します。oc get pods -n nvidia-network-operator
$ oc get pods -n nvidia-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE nvidia-network-operator-controller-manager-6f7d6956cd-fw5wg 1/1 Running 0 5m
NAME READY STATUS RESTARTS AGE nvidia-network-operator-controller-manager-6f7d6956cd-fw5wg 1/1 Running 0 5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator を実行している状態で、
NicClusterPolicy
カスタムリソースファイルを作成します。実際に選択するデバイスはシステム構成によって異なります。この例では、Infiniband インターフェイスibs2f0
がハードコードされており、共有 NVIDIA GPUDirect RDMA デバイスとして使用されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターに
NicClusterPolicy
カスタムリソースを作成します。oc create -f network-sharedrdma-nic-cluster-policy.yaml
$ oc create -f network-sharedrdma-nic-cluster-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
nicclusterpolicy.mellanox.com/nic-cluster-policy created
nicclusterpolicy.mellanox.com/nic-cluster-policy created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DOCA/MOFED コンテナーで次のコマンドを実行して、
NicClusterPolicy
を検証します。oc get pods -n nvidia-network-operator
$ oc get pods -n nvidia-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mofed
コンテナーにrsh
で接続し、次のコマンドを実行してステータスを確認します。MOFED_POD=$(oc get pods -n nvidia-network-operator -o name | grep mofed) oc rsh -n nvidia-network-operator -c mofed-container ${MOFED_POD}
$ MOFED_POD=$(oc get pods -n nvidia-network-operator -o name | grep mofed) $ oc rsh -n nvidia-network-operator -c mofed-container ${MOFED_POD} sh-5.1# ofed_info -s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
OFED-internal-24.07-0.6.1:
OFED-internal-24.07-0.6.1:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ibdev2netdev -v
sh-5.1# ibdev2netdev -v
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
0000:0d:00.0 mlx5_0 (MT41692 - 900-9D3B4-00EN-EA0) BlueField-3 E-series SuperNIC 400GbE/NDR single port QSFP112, PCIe Gen5.0 x16 FHHL, Crypto Enabled, 16GB DDR5, BMC, Tall Bracket fw 32.42.1000 port 1 (ACTIVE) ==> ibs2f0 (Up) 0000:a0:00.0 mlx5_1 (MT41692 - 900-9D3B4-00EN-EA0) BlueField-3 E-series SuperNIC 400GbE/NDR single port QSFP112, PCIe Gen5.0 x16 FHHL, Crypto Enabled, 16GB DDR5, BMC, Tall Bracket fw 32.42.1000 port 1 (ACTIVE) ==> ens8f0np0 (Up)
0000:0d:00.0 mlx5_0 (MT41692 - 900-9D3B4-00EN-EA0) BlueField-3 E-series SuperNIC 400GbE/NDR single port QSFP112, PCIe Gen5.0 x16 FHHL, Crypto Enabled, 16GB DDR5, BMC, Tall Bracket fw 32.42.1000 port 1 (ACTIVE) ==> ibs2f0 (Up) 0000:a0:00.0 mlx5_1 (MT41692 - 900-9D3B4-00EN-EA0) BlueField-3 E-series SuperNIC 400GbE/NDR single port QSFP112, PCIe Gen5.0 x16 FHHL, Crypto Enabled, 16GB DDR5, BMC, Tall Bracket fw 32.42.1000 port 1 (ACTIVE) ==> ens8f0np0 (Up)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow IPoIBNetwork
カスタムリソースファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターに
IPoIBNetwork
リソースを作成します。oc create -f ipoib-network.yaml
$ oc create -f ipoib-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
ipoibnetwork.mellanox.com/example-ipoibnetwork created
ipoibnetwork.mellanox.com/example-ipoibnetwork created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 他のインターフェイス用に
MacvlanNetwork
カスタムリソースファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターにリソースを作成します。
oc create -f macvlan-network.yaml
$ oc create -f macvlan-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
macvlannetwork.mellanox.com/rdmashared-net created
macvlannetwork.mellanox.com/rdmashared-net created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7. GPU Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
GPU Operator は、NVIDIA ドライバー、GPU のデバイスプラグイン、NVIDIA Container Toolkit、および GPU プロビジョニングに必要なその他のコンポーネントの管理を自動化します。
前提条件
- GPU Operator がインストールされている。
手順
次のコマンドを実行して、Operator Pod が実行されていることを確認し、namespace 配下の Pod を確認します。
oc get pods -n nvidia-gpu-operator
$ oc get pods -n nvidia-gpu-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE gpu-operator-b4cb7d74-zxpwq 1/1 Running 0 32s
NAME READY STATUS RESTARTS AGE gpu-operator-b4cb7d74-zxpwq 1/1 Running 0 32s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のような GPU クラスターポリシーのカスタムリソースファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GPU
ClusterPolicy
カスタムリソースが生成されたら、次のコマンドを実行してクラスターにリソースを作成します。oc create -f gpu-cluster-policy.yaml
$ oc create -f gpu-cluster-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
clusterpolicy.nvidia.com/gpu-cluster-policy created
clusterpolicy.nvidia.com/gpu-cluster-policy created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Operator がインストールされ、実行されていることを確認します。
oc get pods -n nvidia-gpu-operator
$ oc get pods -n nvidia-gpu-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: Pod が実行中であることを確認したら、NVIDIA ドライバーの daemonset Pod でリモートシェルを起動し、NVIDIA モジュールがロードされていることを確認します。具体的には、
nvidia_peermem
がロードされていることを確認します。oc rsh -n nvidia-gpu-operator $(oc -n nvidia-gpu-operator get pod -o name -l app.kubernetes.io/component=nvidia-driver)
$ oc rsh -n nvidia-gpu-operator $(oc -n nvidia-gpu-operator get pod -o name -l app.kubernetes.io/component=nvidia-driver) sh-4.4# lsmod|grep nvidia
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
オプション:
nvidia-smi
ユーティリティーを実行して、ドライバーとハードウェアの詳細を表示します。
nvidia-smi
sh-4.4# nvidia-smi
+ 出力例
ドライバーの Pod に接続したまま、
nvidia-smi
コマンドを使用して GPU クロックを最大に設定します。oc rsh -n nvidia-gpu-operator nvidia-driver-daemonset-416.94.202410172137-0-ndhzc
$ oc rsh -n nvidia-gpu-operator nvidia-driver-daemonset-416.94.202410172137-0-ndhzc sh-4.4# nvidia-smi -i 0 -lgc $(nvidia-smi -i 0 --query-supported-clocks=graphics --format=csv,noheader,nounits | sort -h | tail -n 1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:61:00.0 All done.
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:61:00.0 All done.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nvidia-smi -i 1 -lgc $(nvidia-smi -i 1 --query-supported-clocks=graphics --format=csv,noheader,nounits | sort -h | tail -n 1)
sh-4.4# nvidia-smi -i 1 -lgc $(nvidia-smi -i 1 --query-supported-clocks=graphics --format=csv,noheader,nounits | sort -h | tail -n 1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:E1:00.0 All done.
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:E1:00.0 All done.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、リソースが利用可能であることをノードの詳細情報で確認します。
oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A9
$ oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A9
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.8. マシン設定の作成 リンクのコピーリンクがクリップボードにコピーされました!
リソース Pod を作成する前に、ユーザー特権を必要とせずに GPU およびネットワークリソースへのアクセスを提供する machineconfig.yaml
カスタムリソース (CR) を作成する必要があります。
手順
Machineconfig
CR を生成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9. ワークロード Pod の作成 リンクのコピーリンクがクリップボードにコピーされました!
共有デバイスとホストデバイス用のワークロード Pod を作成するには、このセクションの手順を使用します。
5.9.2. RoCE 上でのホストデバイス RDMA の作成 リンクのコピーリンクがクリップボードにコピーされました!
NVIDIA Network Operator のために、ホストデバイスの Remote Direct Memory Access (RDMA) 用のワークロード Pod を作成し、Pod の設定をテストします。
前提条件
- Operator が実行されていることを確認する。
-
NicClusterPolicy
カスタムリソース (CR) が存在する場合は削除する。
手順
以下に示すように、新しいホストデバイス
NicClusterPolicy
(CR) を生成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、クラスターに
NicClusterPolicy
CR を作成します。oc create -f network-hostdev-nic-cluster-policy.yaml
$ oc create -f network-hostdev-nic-cluster-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
nicclusterpolicy.mellanox.com/nic-cluster-policy created
nicclusterpolicy.mellanox.com/nic-cluster-policy created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DOCA/MOFED コンテナーで次のコマンドを使用して、ホストデバイスの
NicClusterPolicy
CR を確認します。oc get pods -n nvidia-network-operator
$ oc get pods -n nvidia-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、リソースがクラスターの
oc describe node
セクションに表示されることを確認します。oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A7
$ oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HostDeviceNetwork
CR ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、クラスターに
HostDeviceNetwork
リソースを作成します。oc create -f hostdev-network.yaml
$ oc create -f hostdev-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
hostdevicenetwork.mellanox.com/hostdev-net created
hostdevicenetwork.mellanox.com/hostdev-net created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、リソースがクラスターの
oc describe node
セクションに表示されることを確認します。oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A8
$ oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.3. RoCE 上での SR-IOV レガシーモード RDMA の作成 リンクのコピーリンクがクリップボードにコピーされました!
RoCE 上で Single Root I/O Virtualization (SR-IOV) レガシーモードホストデバイス RDMA を設定します。
手順
新しいホストデバイスの
NicClusterPolicy
カスタムリソース (CR) を生成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、クラスターにポリシーを作成します。
oc create -f network-sriovleg-nic-cluster-policy.yaml
$ oc create -f network-sriovleg-nic-cluster-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
nicclusterpolicy.mellanox.com/nic-cluster-policy created
nicclusterpolicy.mellanox.com/nic-cluster-policy created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DOCA/MOFED コンテナーで次のコマンドを使用して Pod を検証します。
oc get pods -n nvidia-network-operator
$ oc get pods -n nvidia-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE mofed-rhcos4.16-696886fcb4-ds-4mb42 2/2 Running 0 40s mofed-rhcos4.16-696886fcb4-ds-8knwq 2/2 Running 0 40s nvidia-network-operator-controller-manager-68d547dbbd-qsdkf 1/1 Running 13 (4d ago) 4d21h
NAME READY STATUS RESTARTS AGE mofed-rhcos4.16-696886fcb4-ds-4mb42 2/2 Running 0 40s mofed-rhcos4.16-696886fcb4-ds-8knwq 2/2 Running 0 40s nvidia-network-operator-controller-manager-68d547dbbd-qsdkf 1/1 Running 13 (4d ago) 4d21h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV レガシーモードで動作させる必要があるデバイス用の Virtual Function (VF) を生成する
SriovNetworkNodePolicy
CR を作成します。以下の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、クラスターに CR を作成します。
注記SR-IOV Global Enable が有効になっていることを確認してください。詳細は、Unable to enable SR-IOV and receiving the message "not enough MMIO resources for SR-IOV" in Red Hat Enterprise Linux を参照してください。
oc create -f sriov-network-node-policy.yaml
$ oc create -f sriov-network-node-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
sriovnetworknodepolicy.sriovnetwork.openshift.io/sriov-legacy-policy created
sriovnetworknodepolicy.sriovnetwork.openshift.io/sriov-legacy-policy created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各ノードのスケジューリングが無効になっています。設定を適用するためにノードが再起動します。次のコマンドを使用してノードを表示できます。
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION edge-19.edge.lab.eng.rdu2.redhat.com Ready control-plane,master,worker 5d v1.29.8+632b078 nvd-srv-32.nvidia.eng.rdu2.dc.redhat.com Ready worker 4d22h v1.29.8+632b078 nvd-srv-33.nvidia.eng.rdu2.dc.redhat.com NotReady,SchedulingDisabled worker 4d22h v1.29.8+632b078
NAME STATUS ROLES AGE VERSION edge-19.edge.lab.eng.rdu2.redhat.com Ready control-plane,master,worker 5d v1.29.8+632b078 nvd-srv-32.nvidia.eng.rdu2.dc.redhat.com Ready worker 4d22h v1.29.8+632b078 nvd-srv-33.nvidia.eng.rdu2.dc.redhat.com NotReady,SchedulingDisabled worker 4d22h v1.29.8+632b078
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが再起動したら、各ノードでデバッグ Pod を開いて、VF インターフェイスが存在することを確認します。以下のコマンドを実行します。
a$ oc debug node/nvd-srv-33.nvidia.eng.rdu2.dc.redhat.com
a$ oc debug node/nvd-srv-33.nvidia.eng.rdu2.dc.redhat.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 必要に応じて、2 番目のノードで前のステップを繰り返します。
オプション: 次のコマンドを使用して、リソースがクラスターの
oc describe node
セクションに表示されることを確認します。oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A8
$ oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV レガシーモード用の VF の準備が整ったら、
SriovNetwork
CR ファイルを生成します。以下の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、クラスターにカスタムリソースを作成します。
oc create -f sriov-network.yaml
$ oc create -f sriov-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
sriovnetwork.sriovnetwork.openshift.io/sriov-network created
sriovnetwork.sriovnetwork.openshift.io/sriov-network created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.10. RDMA 接続の検証 リンクのコピーリンクがクリップボードにコピーされました!
システム間で、特にレガシー Single Root I/O Virtualization (SR-IOV) イーサネットに関して、Remote Direct Memory Access (RDMA) 接続が機能していることを確認します。
手順
次のコマンドを使用して、各
rdma-workload-client
Pod に接続します。oc rsh -n default rdma-sriov-32-workload
$ oc rsh -n default rdma-sriov-32-workload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
sh-5.1#
sh-5.1#
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、最初のワークロード Pod に割り当てられた IP アドレスを確認します。この例では、最初のワークロード Pod は RDMA テストサーバーです。
ip a
sh-5.1# ip a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この Pod に割り当てられた RDMA サーバーの IP アドレスは、
net1
インターフェイスです。この例では、IP アドレスは192.168.4.225
です。ibstatus
コマンドを実行して、各 RDMA デバイスmlx5_x
に関連付けられているlink_layer
タイプ (Ethernet または Infiniband) を取得します。出力でstate
フィールドを確認することで、すべての RDMA デバイスのステータスもわかります。フィールドにはACTIVE
またはDOWN
のいずれかが表示されます。ibstatus
sh-5.1# ibstatus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワーカーノード上の各 RDMA
mlx5
デバイスのlink_layer
を取得するために、ibstat
コマンドを実行します。ibstat | egrep "Port|Base|Link"
sh-5.1# ibstat | egrep "Port|Base|Link"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RDMA 共有デバイスまたはホストデバイス用のワークロード Pod では、
mlx5_x
という名前の RDMA デバイスがすでに認識されており、通常はmlx5_0
またはmlx5_1
です。RDMA レガシー SR-IOV ワークロード Pod では、どの RDMA デバイスがどの Virtual Function (VF) サブインターフェイスに関連付けられているかを確認する必要があります。この情報は次のコマンドを使用して表示します。rdma link show
sh-5.1# rdma link show
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、RDMA デバイス名
mlx5_7
がnet1
インターフェイスに関連付けられています。この出力は、次のコマンドで RDMA 帯域幅テストを実行するために使用します。このテストでは、ワーカーノード間の RDMA 接続も検証します。次の
ib_write_bw
RDMA 帯域幅テストコマンドを実行します。/root/perftest/ib_write_bw -R -T 41 -s 65536 -F -x 3 -m 4096 --report_gbits -q 16 -D 60 -d mlx5_7 -p 10000 --source_ip 192.168.4.225 --use_cuda=0 --use_cuda_dmabuf
sh-5.1# /root/perftest/ib_write_bw -R -T 41 -s 65536 -F -x 3 -m 4096 --report_gbits -q 16 -D 60 -d mlx5_7 -p 10000 --source_ip 192.168.4.225 --use_cuda=0 --use_cuda_dmabuf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
-
mlx5_7
RDMA デバイスを-d
スイッチで渡します。 -
RDMA サーバーを起動するための送信元 IP アドレスは
192.168.4.225
です。 -
--use_cuda=0
、--use_cuda_dmabuf
スイッチは、GPUDirect RDMA の使用を示します。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
別のターミナルウィンドウを開き、RDMA テストクライアント Pod として機能する 2 番目のワークロード Pod で、
oc rsh
コマンドを実行します。oc rsh -n default rdma-sriov-33-workload
$ oc rsh -n default rdma-sriov-33-workload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
sh-5.1#
sh-5.1#
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、
net1
インターフェイスから RDMA テストクライアント Pod の IP アドレスを取得します。ip a
sh-5.1# ip a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、各 RDMA デバイス
mlx5_x
に関連付けられているlink_layer
タイプを取得します。ibstatus
sh-5.1# ibstatus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
ibstat
コマンドを使用して、Mellanox カードのファームウェアバージョンを取得します。ibstat
sh-5.1# ibstat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントワークロード Pod が使用する Virtual Function サブインターフェイスに関連付けられている RDMA デバイスを特定するために、次のコマンドを実行します。この例では、
net1
インターフェイスは RDMA デバイスmlx5_2
を使用しています。rdma link show
sh-5.1# rdma link show
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の
ib_write_bw
RDMA 帯域幅テストコマンドを実行します。/root/perftest/ib_write_bw -R -T 41 -s 65536 -F -x 3 -m 4096 --report_gbits -q 16 -D 60 -d mlx5_2 -p 10000 --source_ip 192.168.4.226 --use_cuda=0 --use_cuda_dmabuf 192.168.4.225
sh-5.1# /root/perftest/ib_write_bw -R -T 41 -s 65536 -F -x 3 -m 4096 --report_gbits -q 16 -D 60 -d mlx5_2 -p 10000 --source_ip 192.168.4.226 --use_cuda=0 --use_cuda_dmabuf 192.168.4.225
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
-
mlx5_2
RDMA デバイスを-d
スイッチで渡します。 -
送信元 IP アドレスは
192.168.4.226
で、RDMA サーバーの送信先 IP アドレスは192.168.4.225
です。 --use_cuda=0
、--use_cuda_dmabuf
スイッチは、GPUDirect RDMA の使用を示します。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow テストが正常な場合は、期待される BW average と Mpps 単位の MsgRate が表示されます。
ib_write_bw
コマンドが完了すると、サーバー側の出力もサーバー Pod に表示されます。以下の例を参照してください。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
第6章 Dynamic Accelerator Slicer (DAS) Operator リンクのコピーリンクがクリップボードにコピーされました!
Dynamic Accelerator Slicer Operator は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Dynamic Accelerator Slicer (DAS) Operator を使用すると、ノードのブート時に定義される静的にスライスされた GPU に依存するのではなく、OpenShift Container Platform で GPU アクセラレーターを動的にスライスできます。これにより、特定のワークロードの需要に基づき GPU を動的にスライスし、効率的なリソース利用を実現できます。
動的スライスは、クラスター上のすべてのノードで必要なアクセラレーターパーティションすべてを事前に把握できない場合に便利です。
現在、DAS Operator には NVIDIA マルチインスタンス GPU (MIG) のリファレンス実装が含まれており、将来的には NVIDIA MPS や他のベンダーの GPU などの追加テクノロジーもサポートできるように設計されています。
制限事項
Dynamic Accelerator Slicer Operator を使用する場合、次の制限が適用されます。
- 潜在的な非互換性を特定し、システムがさまざまな GPU ドライバーおよびオペレーティングシステムでシームレスに動作することを確認する必要があります。
- Operator は、H100 や A100 など、特定の MIG 互換 NVIDIA GPU およびドライバーでのみ動作します。
- Operator はノードの GPU のサブセットのみを使用することはできません。
- NVIDIA デバイスプラグインを Dynamic Accelerator Slicer Operator と組み合わせて使用して、クラスターの GPU リソースを管理することはできません。
DAS Operator は、MIG 対応 GPU で動作するように設計されています。GPU 全体ではなく、MIG スライスを割り当てます。DAS Operator をインストールすると、GPU 全体を割り当てる nvidia.com/gpu: "1"
などの NVIDIA デバイスプラグインを介した標準リソース要求の使用が防止されます。
6.1. Dynamic Accelerator Slicer Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、OpenShift Container Platform Web コンソールまたは OpenShift CLI を使用して、Dynamic Accelerator Slicer (DAS) Operator をインストールできます。
6.1.1. Web コンソールを使用して Dynamic Accelerator Slicer Operator をインストールする リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、OpenShift Container Platform Web コンソールを使用して Dynamic Accelerator Slicer (DAS) Operator をインストールできます。
前提条件
-
cluster-admin
パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。 必要な前提条件として下記をインストールした。
- cert-manager Operator for Red Hat OpenShift
- Node Feature Discovery (NFD) Operator
- NVIDIA GPU Operator
- NodeFeatureDiscovery CR
手順
MIG サポート用に NVIDIA GPU Operator を設定します。
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators に移動します。
- インストール済み Operator のリストから NVIDIA GPU Operator を選択します。
- ClusterPolicy タブをクリックし、Create ClusterPolicy をクリックします。
YAML エディターで、デフォルトのコンテンツを次のクラスターポリシー設定に置き換えてデフォルトの NVIDIA デバイスプラグインを無効にし、MIG サポートを有効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create をクリックしてクラスターポリシーを適用します。
-
Workloads → Pods に移動し、
nvidia-gpu-operator
namespace を選択して、クラスターポリシーのデプロイメントを監視します。 NVIDIA GPU Operator クラスターポリシーが
Ready
状態になるまで待ちます。次の方法で監視できます。- Operators → Installed Operators → NVIDIA GPU Operator に移動します。
-
ClusterPolicy タブをクリックし、ステータスが
ready
になっていることを確認します。
-
nvidia-gpu-operator
namespace を選択し、Workloads → Pods に移動して、NVIDIA GPU Operator namespace 内のすべての Pod が実行されていることを確認します。 MIG 対応 GPU のノードにラベルを付けて MIG モードを有効にします。
- Compute → Nodes に移動します。
- MIG 対応 GPU を搭載したノードを選択します。
- Actions → Edit Labels をクリックします。
-
nvidia.com/mig.config=all-enabled
ラベルを追加します。 - Save をクリックします。
MIG 対応 GPU を搭載した各ノードに対して繰り返します。
重要MIG ラベルを適用すると、ラベルが付いたノードはリブートし、MIG モードが有効になります。ノードがオンラインに戻るまで待機してから続行します。
-
Labels セクションに
nvidia.com/mig.config=all-enabled
ラベルが表示されていることを確認し、GPU ノードで MIG モードが正常に有効化されていることを確認します。ラベルを見つけるには、Compute → Nodes に移動し、GPU ノードを選択して、Details タブをクリックします。
- OpenShift Container Platform Web コンソールで、Operators → OperatorHub をクリックします。
- DAS Operator を見つけるには、フィルターボックスで Dynamic Accelerator Slicer または DAS を検索します。
- Dynamic Accelerator Slicer を選択し、Install をクリックします。
Install Operator ページで以下を行います。
- インストールモードとして All namespaces on the cluster (default) を選択します。
- Installed Namespace → Operator recommended Namespace: Project das-operator を選択します。
-
新しい namespace を作成する場合は、namespace の名前として
das-operator
を入力します。 - 更新チャネルを選択します。
- 承認ストラテジーとして Automatic または Manual を選択します。
- Install をクリックします。
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators をクリックします。
- リストから DAS Operator を選択します。
- Provided APIs テーブル列で、DASOperator をクリックします。この操作により、Operator details ページの DASOperator タブに移動します。
- Create DASOperator をクリックします。この操作により、Create DASOperator YAML ビューになります。
YAML エディターで次の例を貼り付けます。
DASOperator
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
DASOperator
CR の名前はcluster
でなければなりません。
- Create をクリックします。
検証
DAS Operator が正常にインストールされたことを確認するには、以下を実行します。
- Operators → Installed Operators ページに移動します。
-
Dynamic Accelerator Slicer が、
das-Operator
namespace にリストされ、Status が Succeeded になっていることを確認します。
DASOperator
CR が正常にインストールされたことを確認するには、以下を実行します。
-
DASOperator
CR を作成すると、Web コンソールに DASOperator list view が表示されます。すべてのコンポーネントが実行中になると、CR の Status フィールドは Available に変わります。 オプション: OpenShift CLI で次のコマンドを実行すると、
DASOperator
CR が正常にインストールされたことを確認できます。oc get dasoperator -n das-operator
$ oc get dasoperator -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS AGE cluster Available 3m
NAME STATUS AGE cluster Available 3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
インストール時に、Operator は Failed ステータスを表示する可能性があります。その後インストールが成功し、Succeeded メッセージが表示された場合は、Failed メッセージを無視できます。
Pod をチェックしてインストールを確認することもできます。
-
Workloads → Pods ページに移動し、
das-operator
namespace を選択します。 すべての DAS Operator コンポーネント Pod が実行中であることを確認します。
-
das-operator
Pod (メイン Operator コントローラー) -
das-operator-webhook
Pod (Webhook サーバー) -
das-scheduler
Pod (スケジューラープラグイン) -
das-daemonset
Pod (MIG 互換 GPU を搭載したノードのみ)
-
das-daemonset
Pod は、MIG 互換 GPU ハードウェアを持つノードにのみ表示されます。daemonset Pod が表示されない場合は、クラスターにサポート対象の GPU ハードウェアを持つノードがあり、NVIDIA GPU Operator が適切に設定されていることを確認してください。
トラブルシューティング
Operator がインストールされていないようであれば、次の手順を実行します。
- Operators → Installed Operators ページに移動し、Operator Subscriptions および Install Plans タブで Status にエラーがあるかどうかを検査します。
-
Workloads → Pods ページに移動し、
das-operator
namespace 内の Pod のログを確認します。
6.1.2. CLI を使用して Dynamic Accelerator Slicer Operator をインストールする リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、OpenShift CLI を使用して Dynamic Accelerator Slicer (DAS) Operator をインストールできます。
前提条件
-
cluster-admin
パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。 必要な前提条件として下記をインストールした。
- cert-manager Operator for Red Hat OpenShift
- Node Feature Discovery (NFD) Operator
- NVIDIA GPU Operator
- NodeFeatureDiscovery CR
手順
MIG サポート用に NVIDIA GPU Operator を設定します。
次のクラスターポリシーを適用して、デフォルトの NVIDIA デバイスプラグインを無効にし、MIG サポートを有効にします。次の内容で、
gpu-cluster-policy.yaml
という名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してクラスターポリシーを適用します。
oc apply -f gpu-cluster-policy.yaml
$ oc apply -f gpu-cluster-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、NVIDIA GPU Operator クラスターポリシーの状態が
Ready
になることを確認します。oc get clusterpolicies.nvidia.com gpu-cluster-policy -w
$ oc get clusterpolicies.nvidia.com gpu-cluster-policy -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow STATUS
列にready
と表示されるまで待ちます。出力例
NAME STATUS AGE gpu-cluster-policy ready 2025-08-14T08:56:45Z
NAME STATUS AGE gpu-cluster-policy ready 2025-08-14T08:56:45Z
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、NVIDIA GPU Operator namespace 内のすべての Pod が実行されていることを確認します。
oc get pods -n nvidia-gpu-operator
$ oc get pods -n nvidia-gpu-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべての Pod のステータスが
Running
またはRunning
と表示されるはずです。次のコマンドを実行し、MIG 対応 GPU を搭載したノードにラベルを付けて MIG モードを有効にします。
oc label node $NODE_NAME nvidia.com/mig.config=all-enabled --overwrite
$ oc label node $NODE_NAME nvidia.com/mig.config=all-enabled --overwrite
Copy to Clipboard Copied! Toggle word wrap Toggle overflow $NODE_NAME
は、MIG 対応 GPU を持つ各ノードの名前に置き換えます。重要MIG ラベルを適用した後、ラベルの付いたノードがリブートされ、MIG モードが有効になります。ノードがオンラインに戻るまで待機してから続行します。
次のコマンドを実行して、ノードで MIG モードが正常に有効化されていることを確認します。
oc get nodes -l nvidia.com/mig.config=all-enabled
$ oc get nodes -l nvidia.com/mig.config=all-enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
DAS Operator の namespace を作成します。
das-operator
namespace を定義する次のNamespace
カスタムリソース (CR) を作成し、YAML をdas-namespace.yaml
ファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して namespace を作成します。
oc create -f das-namespace.yaml
$ oc create -f das-namespace.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のオブジェクトを作成して、直前の手順で作成した namespace に DAS Operator をインストールします。
以下の
OperatorGroup
CR を作成し、YAML をdas-operatorgroup.yaml
ファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
OperatorGroup
CR を作成します。oc create -f das-operatorgroup.yaml
$ oc create -f das-operatorgroup.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
Subscription
CR を作成し、YAML をdas-sub.yaml
ファイルに保存します。Subscription の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して Subscription オブジェクトを作成します。
oc create -f das-sub.yaml
$ oc create -f das-sub.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow das-operator
プロジェクトに変更します。oc project das-operator
$ oc project das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の
DASOperator
CR を作成し、YAML をdas-dasoperator.yaml
ファイルに保存します。DASOperator
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
DASOperator
CR の名前はcluster
でなければなりません。
次のコマンドを実行して、
dasoperator
CR を作成します。oc create -f das-dasoperator.yaml
oc create -f das-dasoperator.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、Operator のデプロイメントが成功したことを確認します。
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントが成功すると、すべての Pod のステータスが
Running
になります。デプロイメントには以下が含まれます。- das-operator
- メイン Operator コントローラー Pod
- das-operator-webhook
- Pod 要求を変更するための Webhook サーバー Pod
- das-scheduler
- MIG スライスを割り当てるためのスケジューラープラグイン Pod
- das-daemonset
MIG 互換 GPU を搭載したノード上でのみ稼働する daemonset Pod
注記das-daemonset
Pod は、MIG 互換 GPU ハードウェアを持つノードにのみ表示されます。daemonset Pod が表示されない場合は、クラスターにサポート対象の GPU ハードウェアを持つノードがあり、NVIDIA GPU Operator が適切に設定されていることを確認してください。
6.2. Dynamic Accelerator Slicer Operator のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
Dynamic Accelerator Slicer (DAS) Operator をインストールした方法に応じて、次のいずれかの手順を使用して Operator をアンインストールします。
6.2.1. Web コンソールを使用して Dynamic Accelerator Slicer Operator をアンインストールする リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、Dynamic Accelerator Slicer (DAS) Operator をアンインストールできます。
前提条件
-
cluster-admin
パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。 - DAS Operator がクラスターにインストールされている。
手順
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators に移動します。
- インストール済み Operator のリストで、Dynamic Accelerator Slicer を見つけます。
-
DAS Operator の Options メニュー
をクリックし、Uninstall Operator を選択します。
- 確認ダイアログで、Uninstall をクリックして削除を確認します。
- Home → Projects に移動します。
- DAS Operator プロジェクトを見つけるには、検索ボックスで das-operator を検索します。
-
das-operator プロジェクトの横にある Options メニュー
をクリックし、Delete Project を選択します。
-
確認ダイアログで、ダイアログボックスに
das-operator
と入力し、Delete をクリックして削除を確認します。
検証
- Operators → Installed Operators ページに移動します。
- Dynamic Accelerator Slicer (DAS) Operator がリストに表示されなくなったことを確認します。
オプション: 次のコマンドを実行して、
das-operator
namespace とそのリソースが削除されたことを確認します。oc get namespace das-operator
$ oc get namespace das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドで、namespace が見つからないことを示すエラーが返されるはずです。
DAS Operator をアンインストールすると、すべての GPU スライスの割り当てが削除され、GPU スライスに依存する実行中のワークロードが失敗する可能性があります。アンインストールを続行する前に、重要なワークロードが GPU スライスを使用していないことを確認してください。
6.2.2. CLI を使用して Dynamic Accelerator Slicer Operator をアンインストールする リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI を使用して、Dynamic Accelerator Slicer (DAS) Operator をアンインストールできます。
前提条件
-
cluster-admin
パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。 - DAS Operator がクラスターにインストールされている。
手順
次のコマンドを実行して、インストール済み Operator のリストを表示し、DAS Operator のサブスクリプションを見つけます。
oc get subscriptions -n das-operator
$ oc get subscriptions -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME PACKAGE SOURCE CHANNEL das-operator das-operator redhat-operators stable
NAME PACKAGE SOURCE CHANNEL das-operator das-operator redhat-operators stable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、サブスクリプションを削除します。
oc delete subscription das-operator -n das-operator
$ oc delete subscription das-operator -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターサービスバージョン (CSV) をリスト表示して削除します。
oc get csv -n das-operator
$ oc get csv -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete csv <csv-name> -n das-operator
$ oc delete csv <csv-name> -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して Operator グループを削除します。
oc delete operatorgroup das-operator -n das-operator
$ oc delete operatorgroup das-operator -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、残っている
AllocationClaim
リソースを削除します。oc delete allocationclaims --all -n das-operator
$ oc delete allocationclaims --all -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、DAS Operator の namespace を削除します。
oc delete namespace das-operator
$ oc delete namespace das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、DAS Operator リソースが削除されたことを確認します。
oc get namespace das-operator
$ oc get namespace das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドで、namespace が見つからないことを示すエラーが返されるはずです。
次のコマンドを実行して、
AllocationClaim
カスタムリソース定義が残っていないことを確認します。oc get crd | grep allocationclaim
$ oc get crd | grep allocationclaim
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドでは、カスタムリソース定義が見つからないことを示すエラーが返されるはずです。
DAS Operator をアンインストールすると、すべての GPU スライスの割り当てが削除され、GPU スライスに依存する実行中のワークロードが失敗する可能性があります。アンインストールを続行する前に、重要なワークロードが GPU スライスを使用していないことを確認してください。
6.3. Dynamic Accelerator Slicer Operator を使用して GPU ワークロードをデプロイする リンクのコピーリンクがクリップボードにコピーされました!
Dynamic Accelerator Slicer (DAS) Operator によって管理される GPU スライスを要求するワークロードをデプロイできます。Operator は GPU アクセラレーターを動的に分割し、利用可能な GPU スライスにワークロードをスケジュールします。
前提条件
- クラスター内に使用可能な MIG 対応 GPU ハードウェアがある。
-
NVIDIA GPU Operator がインストールされており、
ClusterPolicy
が Ready 状態を示している。 - DAS Operator がインストール済みである。
手順
次のコマンドを実行して、namespace を作成します。
oc new-project cuda-workloads
oc new-project cuda-workloads
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NVIDIA MIG リソースを使用して GPU リソースを要求するデプロイメントを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、デプロイメント設定を適用します。
oc apply -f cuda-vectoradd-deployment.yaml
$ oc apply -f cuda-vectoradd-deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、デプロイメントが作成され、Pod がスケジュールされていることを確認します。
oc get deployment cuda-vectoradd
$ oc get deployment cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY UP-TO-DATE AVAILABLE AGE cuda-vectoradd 2/2 2 2 2m
NAME READY UP-TO-DATE AVAILABLE AGE cuda-vectoradd 2/2 2 2 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Pod のステータスを確認します。
oc get pods -l app=cuda-vectoradd
$ oc get pods -l app=cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE cuda-vectoradd-6b8c7d4f9b-abc12 1/1 Running 0 2m cuda-vectoradd-6b8c7d4f9b-def34 1/1 Running 0 2m
NAME READY STATUS RESTARTS AGE cuda-vectoradd-6b8c7d4f9b-abc12 1/1 Running 0 2m cuda-vectoradd-6b8c7d4f9b-def34 1/1 Running 0 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、デプロイメント Pod に対して
AllocationClaim
リソースが作成されたことを確認します。oc get allocationclaims -n das-operator
$ oc get allocationclaims -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE 13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 2m ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 2m
NAME AGE 13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 2m ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して Pod のリソース割り当ての 1 つをチェックし、GPU スライスが適切に割り当てられていることを確認します。
oc describe pod -l app=cuda-vectoradd
$ oc describe pod -l app=cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してログをチェックし、CUDA サンプルアプリケーションが正常に実行されたことを確認します。
oc logs -l app=cuda-vectoradd
$ oc logs -l app=cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
[Vector addition of 50000 elements] Copy input data from the host memory to the CUDA device CUDA kernel launch with 196 blocks of 256 threads Copy output data from the CUDA device to the host memory Test PASSED
[Vector addition of 50000 elements] Copy input data from the host memory to the CUDA device CUDA kernel launch with 196 blocks of 256 threads Copy output data from the CUDA device to the host memory Test PASSED
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して環境変数をチェックし、GPU デバイスがコンテナーに適切に公開されていることを確認します。
oc exec deployment/cuda-vectoradd -- env | grep -E "(NVIDIA_VISIBLE_DEVICES|CUDA_VISIBLE_DEVICES)"
$ oc exec deployment/cuda-vectoradd -- env | grep -E "(NVIDIA_VISIBLE_DEVICES|CUDA_VISIBLE_DEVICES)"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NVIDIA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652 CUDA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652
NVIDIA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652 CUDA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらの環境変数は、GPU MIG スライスが適切に割り当てられ、コンテナー内の CUDA ランタイムから認識できることを示します。
6.4. Dynamic Accelerator Slicer Operator のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Dynamic Accelerator Slicer (DAS) Operator で問題が発生した場合は、次のトラブルシューティング手順を使用して問題を診断し、解決してください。
前提条件
- DAS Operator がインストール済みである。
- cluster-admin ロールを持つユーザーとして OpenShift Container Platform クラスターにアクセスできる。
6.4.1. DAS Operator コンポーネントのデバッグ リンクのコピーリンクがクリップボードにコピーされました!
手順
次のコマンドを実行して、すべての DAS Operator コンポーネントのステータスを確認します。
oc get pods -n das-operator
$ oc get pods -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、DAS Operator コントローラーのログを検査します。
oc logs -n das-operator deployment/das-operator
$ oc logs -n das-operator deployment/das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Webhook サーバーのログを確認します。
oc logs -n das-operator deployment/das-operator-webhook
$ oc logs -n das-operator deployment/das-operator-webhook
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、スケジューラープラグインのログを確認します。
oc logs -n das-operator deployment/das-scheduler
$ oc logs -n das-operator deployment/das-scheduler
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、デバイスプラグイン daemonset のログを確認します。
oc logs -n das-operator daemonset/das-daemonset
$ oc logs -n das-operator daemonset/das-daemonset
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.4.2. AllocationClaim の監視 リンクのコピーリンクがクリップボードにコピーされました!
手順
次のコマンドを実行して、アクティブな
AllocationClaim
リソースを検査します。oc get allocationclaims -n das-operator
$ oc get allocationclaims -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE 13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 5m ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 5m
NAME AGE 13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 5m ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、特定の
AllocationClaim
に関する詳細情報を表示します。oc get allocationclaims -n das-operator -o yaml
$ oc get allocationclaims -n das-operator -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力サンプル (切り捨て済み)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、さまざまな状態のクレームを確認します。
oc get allocationclaims -n das-operator -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.state}{"\n"}{end}'
$ oc get allocationclaims -n das-operator -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.state}{"\n"}{end}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 inUse ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 inUse
13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 inUse ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 inUse
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
AllocationClaim
リソースに関連するイベントを表示します。oc get events -n das-operator --field-selector involvedObject.kind=AllocationClaim
$ oc get events -n das-operator --field-selector involvedObject.kind=AllocationClaim
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
NodeAccelerator
リソースをチェックし、GPU ハードウェアの検出を確認します。oc get nodeaccelerator -n das-operator
$ oc get nodeaccelerator -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE harpatil000034jma-qh5fm-worker-f-57md9 96m harpatil000034jma-qh5fm-worker-f-fl4wg 96m
NAME AGE harpatil000034jma-qh5fm-worker-f-57md9 96m harpatil000034jma-qh5fm-worker-f-fl4wg 96m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NodeAccelerator
リソースは、DAS Operator によって検出された GPU 対応ノードを表します。
関連情報
AllocationClaim
カスタムリソースは、次の情報を追跡します。
- GPU UUID
- GPU デバイスの一意の識別子。
- スライス位置
- GPU 上の MIG スライスの位置。
- Pod 参照
- GPU スライスを要求した Pod。
- 状態
-
クレームの現在の状態 (
staged
、created
、またはreleased
)。
クレームは staged
状態で開始され、すべての要求が満たされると created
に遷移します。Pod が削除されると、関連付けられているクレームは自動的にクリーンアップされます。
6.4.3. GPU デバイスの可用性の確認 リンクのコピーリンクがクリップボードにコピーされました!
手順
GPU ハードウェアが搭載されたノードで、次のコマンドを実行して CDI デバイスが作成されたことを確認します。
oc debug node/<node-name>
$ oc debug node/<node-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chroot /host ls -l /var/run/cdi/
sh-4.4# chroot /host sh-4.4# ls -l /var/run/cdi/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、NVIDIA GPU Operator のステータスを確認します。
oc get clusterpolicies.nvidia.com -o jsonpath='{.items[0].status.state}'
$ oc get clusterpolicies.nvidia.com -o jsonpath='{.items[0].status.state}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には
ready
が表示されるはずです。
6.4.4. ログの詳細レベルを引き上げる リンクのコピーリンクがクリップボードにコピーされました!
手順
より詳細なデバッグ情報を取得するには、以下を実行します。
次のコマンドを実行し、
DASOperator
リソースを編集してログの詳細レベルを引き上げます。oc edit dasoperator -n das-operator
$ oc edit dasoperator -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow operatorLogLevel
フィールドをDebug
またはTrace
に設定します。spec: operatorLogLevel: Debug
spec: operatorLogLevel: Debug
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存し、再起動した Pod の詳細レベルが上がっていることを確認します。
6.4.5. よくある問題と解決策 リンクのコピーリンクがクリップボードにコピーされました!
kubernetes/kubernetes#128043 により、アドミッションが失敗すると Pod が UnexpectedAdmissionError
状態になる可能性があります。デプロイメントなどの上位レベルのコントローラーによって管理される Pod は自動的に再作成されます。ただし、ネイキッド Pod は、oc delete pod
を使用して手動でクリーンアップする必要があります。アップストリームの問題が解決されるまでは、コントローラーの使用が推奨されます。
前提条件を満たしていない
DAS Operator が起動しない、または正常に機能しない場合は、すべての前提条件がインストールされていることを確認してください。
- cert-manager
- Node Feature Discovery (NFD) Operator
- NVIDIA GPU Operator
Legal Notice
リンクのコピーリンクがクリップボードにコピーされました!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.