NVIDIA Tensor Core GPUを搭載したHPCベア・メタル・サーバー・クラスタのデプロイ
人工知能(AI)、機械学習(ML)またはディープ・ラーニング(DL)モデル(言語モデリングのBERT-Largeなど)をデプロイすると、多くの場合、AIワークロードのGPUアクセラレーションのメリットが得られます。
Oracle Cloud Infrastructure(OCI)を使用すると、ベア・メタル・サーバー・クラスタに直接アクセスできます。ベア・メタルGPUクラスタは、AI、MLまたはDLをデプロイするための業界最高の価格性能を提供します。500以上のGPUクラスタをホストし、オンデマンドで簡単にスケーリングできます。
アーキテクチャ
このアーキテクチャは、一般的なシステム内の様々なコンポーネントとそのコアにあるHPCベア・メタルGPUクラスタとの関係を示しています。BERT-Large、GPT2/3、Jasper、MaskRCNN、GNMTなど、多くのAI、MLまたはDLアプリケーションに適用できます。
BERTは、自然言語処理(NLP)タスクで人気のある事前トレーニング済ディープ・ラーニング・モデルです。特定のアプリケーションまたはドメインに対して微調整できます。より大きなバリアントBERT-largeには、340Mのパラメータが含まれています。トレーニング時間と推論時間は、数百もの同一のGPUにまたがる大規模な分散クラスタなしでは非常に大きいものです。GPUクラスタには、高I/Oスループットと低レイテンシのクラスタ・ファイル・システムが必要です。リアルタイムのAI推論アプリケーションにとって、どの程度、どの程度速く、どの程度安価にデータを処理できるかが特に重要です。
Oracle Cloud Infrastructure(OCI)は、2μs未満のレイテンシでコンバージド・イーサネット(RoCE)上で動作するRemote Direct Memory Access(RDMA)に基づくOracleの低レイテンシ・クラスタ・ネットワーキングを利用します。RDMAを使用すると、ノード間の低レイテンシ接続と、CPUを使用せずにGPUメモリーへのアクセスが可能になります。OCI HPCを使用すると、64のベアメタル・ノード(それぞれ8つのNVIDIA A100 GPUを搭載)を512のGPUにクラスタアップできます。
OCIは、ローカルNVMe SSD、ネットワーク、パラレル・ファイル・システムなど、HPCワークロードに対して複数の高パフォーマンスで低レイテンシのストレージ・ソリューションを提供します。OCIベア・メタル・サーバーには、NVMe SSDローカル・ストレージが付属しています。一時ファイル用のスクラッチNFSまたはスクラッチ並列ファイルシステム(BeeOND、Weka)を作成するために使用できます。ブロック・ボリュームのマルチアタッチ機能を使用すると、単一のボリュームを使用してトレーニング・データセット全体を格納し、それを複数のGPUインスタンスにアタッチできます。または、Intel Ice Lake BMまたはVMとバランスのとれたパフォーマンス層ブロック・ストレージを使用して、NFSベース(NFS-HA、FSS)またはパラレル・ファイル・システム(Weka.io、Spectrum Scale、BeeGFS、BeeOND)を使用して、最高のスループットと最低コストのファイル・サーバーを構築できます。トレーニング結果は、長期ストレージのためにOracle Cloud Infrastructure Object Storageに保存されます。
次の図は、このリファレンス・アーキテクチャを示しています。
![architecture-hpc-bm-gpu.pngの説明が続きます architecture-hpc-bm-gpu.pngの説明が続きます](img/architecture-hpc-bm-gpu.png)
図のアーキテクチャ-hpc-bm-gpu.pngの説明
このアーキテクチャには次のコンポーネントがあります。
- リージョン
Oracle Cloud Infrastructureリージョンとは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカル化された地理的領域です。リージョンは他のリージョンから独立しており、長距離の場合は(複数の国または大陸にわたって)それらを分離できます。
- クラウド・ガード
Oracle Cloud Guardを使用して、Oracle Cloud Infrastructure内のリソースのセキュリティをモニターおよびメンテナンスできます。クラウド・ガードはディテクタ・レシピを使用します。このレシピを定義すると、セキュリティの弱点についてリソースを調べたり、特定のリスクのあるアクティビティについてオペレータとユーザーをモニターしたりできます。構成の誤りまたは安全でないアクティビティが検出された場合、クラウド・ガードは、ユーザーが定義できるレスポンダ・レシピに基づいて、修正アクションを推奨し、それらのアクションの実行を支援します。
- 可用性ドメイン
可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されているため、フォルト・トレランスが提供されます。可用性ドメインどうしは、電力や冷却、内部可用性ドメイン・ネットワークなどのインフラを共有しません。そのため、1つの可用性ドメインでの障害がリージョン内の他の可用性ドメインに影響を及ぼすことはありません。
- フォルト・ドメイン
フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各アベイラビリティ・ドメインに3つのフォルト・ドメインがあり、電源とハードウェアが独立しています。複数のフォルト・ドメインにリソースを分散すると、アプリケーションは、フォルト・ドメイン内の物理サーバー障害、システム・メンテナンスおよび電源障害を許容できます。
- コンパートメント
コンパートメントは、Oracle Cloud Infrastructureテナンシ内のクロスリージョン論理パーティションです。コンパートメントを使用して、Oracle Cloudでリソースを編成、リソースへのアクセスを制御および使用割当てを設定します。特定のコンパートメント内のリソースへのアクセスを制御するには、誰がリソースにアクセスできるか、どのアクションを実行できるかを指定するポリシーを定義します。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定する、ソフトウェアで定義されたカスタマイズ可能なネットワークです。従来のデータ・センター・ネットワークと同様に、VCNによってネットワーク環境を制御できます。VCNには重複しない複数のCIDRブロックを含めることができ、VCNの作成後にそれらを変更できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。
- サイト間VPN
サイト間VPNは、オンプレミス・ネットワークとOracle Cloud InfrastructureのVCNとの間にIPSec VPN接続を提供します。IPSecプロトコル・スイートは、パケットがソースから宛先に転送される前にIPトラフィックを暗号化し、到着時にトラフィックを復号化します。
- FastConnect
Oracle Cloud Infrastructure FastConnectでは、データ・センターとOracle Cloud Infrastructureとの間に、専用のプライベート接続を簡単に作成できます。FastConnectは、インターネット・ベースの接続と比較して、高帯域幅のオプションと、より信頼性の高いネットワーキング・エクスペリエンスを提供します。
- 動的ルーティング・ゲートウェイ(DRG)
DRGは、同じリージョン内のVCN間、VCNとリージョン外のネットワーク(別のOracle Cloud Infrastructureリージョン内のVCN、オンプレミス・ネットワーク、別のクラウド・プロバイダのネットワークなど)間のプライベート・ネットワーク・トラフィックのパスを提供する仮想ルーターです。
- ネットワーク・アドレス変換(NAT)ゲートウェイ
NATゲートウェイを使用すると、VCN内のプライベート・リソースは、受信インターネット接続にそれらのリソースを公開することなく、インターネット上のホストにアクセスできます。
- インターネット・ゲートウェイ
インターネット・ゲートウェイによって、VCN内のパブリック・サブネットとパブリック・インターネット間のトラフィックが許可されます。
- サービス・ゲートウェイ
サービス・ゲートウェイは、VCNからOracle Cloud Infrastructure Object Storageなどの他のサービスへのアクセスを提供します。The traffic from the VCN to the Oracle service travels over the Oracle network fabric and does not traverse the internet.
- セキュリティ・リスト
サブネットごとに、サブネットの内外で許可される必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。
- ルート表
仮想ルート表には、サブネットからVCN外の宛先(通常はゲートウェイ経由)にトラフィックをルーティングするルールが含まれます。
- 要塞ホスト
要塞ホストは、クラウド外部からトポロジへのセキュアで制御されたエントリ・ポイントとして機能するコンピュート・インスタンスです。要塞ホストは通常、非武装ゾーン(DMZ)にプロビジョニングされます。機密リソースは、クラウドの外部から直接アクセスできないプライベート・ネットワークに配置することで保護できます。トポロジには、定期的に監視および監査できる単一の既知のエントリ・ポイントがあります。そのため、トポロジへのアクセスを損なうことなく、より機密性の高いコンポーネントの公開を回避できます。
- 要塞ノード(ヘッド・ノード)
要塞ノード(ヘッド・ノード)は、Webベースのポータルを使用してヘッド・ノードに接続し、HPCジョブをスケジュールします。The job request comes through Oracle Cloud Infrastructure FastConnect or IPSec VPN to the head node.また、ヘッドノードは顧客データセットをファイルストレージに送信し、データに対して何らかの前処理を実行できます。ヘッドノードは、ジョブ完了時にHPCノードクラスタをプロビジョニングし、HPCクラスタを削除できます。
ヘッド・ノードにはBERTモデルが含まれ、スケジューラが実行され、クラスタにアクセスするための要塞ホストとして機能します。メッセージ・パス・インタフェース(MPI)を持ち、REST APIを介してベア・メタル・ノードを自動スケーリングします。HPCクラスタは、オンデマンドでベア・メタル・ノードをプロビジョニングします。モデルのトレーニングと推論では、ベア・メタル・ノードにアタッチされた4 x 6.4TB NVMe SSDローカル・ストレージを使用します。オラクルのソリューションを使用してインフラストラクチャを起動している場合、アーキテクチャはヘッド・ノードをデプロイし、
nfs-share
はデフォルトで/mnt
のNVMe SSDストレージにインストールされます。 - HPCクラスタ・ノード
ヘッドノードは、RDMA対応クラスタであるこれらの計算ノードをプロビジョニングおよび終了します。ファイル・ストレージに格納されているデータを処理し、結果をファイル・ストレージに戻します。
- NFSサーバー
ヘッドノードは、いずれかのHPCノードをNFSサーバーとして昇格します。
- インスタンス・プール
インスタンス・プールは、同じインスタンス構成から作成され、グループとして管理されるリージョン内のインスタンスのグループです。
インスタンス・プールを使用すると、グループと同じリージョン内に複数のコンピュート・インスタンスを作成および管理できます。また、Oracle Cloud Infrastructure Load BalancingサービスやOracle Cloud Infrastructure Identity and Access Managementサービスなどの他のサービスとの統合も可能です。
- ベア・メタルDB System
ベア・メタル(BM) DBシステムは、Oracle Linux 7を実行する単一ベア・メタル・サーバーであり、ローカルにアタッチされたNVMeストレージを使用します。ハードウェア加速アナリティクスやその他の計算にベア・メタルGPUシェイプを使用します。
ベア・メタルDBシステムの起動時に、シェイプと、そのDBシステムのすべてのデータベースに適用する1つのOracle Databaseエディションを選択します。各DBシステムには複数のデータベース・ホームを含めることができ、それらのバージョンは異なっていてもかまいません。各データベース・ホームには、そのデータベース・ホームと同じバージョンのデータベースを1つのみ含めることができます。
シェイプによって、DBシステムに割り当てるリソースが決まります。2面または3面のミラー化やデータファイルに割り当てられる領域などのオプションは、システムで使用可能なストレージの量に影響します。
- オブジェクト・ストレージ
オブジェクト・ストレージでは、データベースのバックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データにすばやくアクセスできます。インターネットから直接またはクラウド・プラットフォーム内から、安全かつセキュアにデータを格納し、取得できます。パフォーマンスやサービスの信頼性を低下させることなく、ストレージを拡張できます。迅速、即時、頻繁にアクセスする必要のあるホット・ストレージには、標準ストレージを使用します。長時間保持し、ほとんどまたはめったにアクセスしないコールド・ストレージには、アーカイブ・ストレージを使用します。
レコメンデーション
- VCN
VCNを作成するときには、必要なCIDRブロックの数を決定し、VCN内のサブネットにアタッチすることを計画しているリソースの数に基づいて各ブロックのサイズを決定します。標準のプライベートIPアドレス空間内にあるCIDRブロックを使用します。
プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。
VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。
サブネットを設計するときには、トラフィック・フローおよびセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能する同じサブネットにアタッチします。
リージョナル・サブネットを使用します。
- セキュリティ
Oracle Cloud Guardを使用して、Oracle Cloud Infrastructure内のリソースのセキュリティを事前にモニターおよびメンテナンスします。クラウド・ガードは、ユーザーが定義できるディテクタ・レシピを使用して、セキュリティの弱点についてリソースを調べ、リスクのあるアクティビティについてオペレータおよびユーザーをモニターします。構成の誤りまたは安全でないアクティビティが検出された場合、クラウド・ガードは、ユーザーが定義できるレスポンダ・レシピに基づいて、修正アクションを推奨し、それらのアクションの実行を支援します。
最大限のセキュリティを必要とするリソースの場合、Oracleではセキュリティ・ゾーンを使用することをお薦めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースは、パブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成および更新すると、Oracle Cloud Infrastructureでは、セキュリティ・ゾーン・レシピのポリシーに対して操作が検証され、ポリシーに違反する操作が拒否されます。
- クラウド・ガード
Oracleが提供するデフォルトのレシピをクローニングしてカスタマイズし、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピでは、警告を生成するセキュリティ違反のタイプと、それらに対して実行を許可するアクションを指定できます。たとえば、可視性がパブリックに設定されているオブジェクト・ストレージ・バケットを検出できます。
クラウド・ガードをテナンシ・レベルで適用して、最も広い範囲をカバーし、複数の構成を維持する管理負担を軽減します。
管理対象リスト機能を使用して、特定の構成をディテクタに適用することもできます。
- セキュリティ・ゾーン
最大限のセキュリティを必要とするリソースの場合、Oracleではセキュリティ・ゾーンを使用することをお薦めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースは、パブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成および更新すると、Oracle Cloud Infrastructureでは、セキュリティ・ゾーン・レシピのポリシーに対して操作が検証され、ポリシーに違反する操作が拒否されます。
- ネットワーク・セキュリティ・グループ(NSG)
NSGを使用して、特定のVNICに適用されるイングレスおよびエグレス・ルールのセットを定義できます。NSGでは、VCNのサブネット・アーキテクチャをアプリケーションのセキュリティ要件から分離できるため、セキュリティ・リストではなくNSGを使用することをお薦めします。
- HPCノード
HPCベア・メタル・シェイプをデプロイして、完全なパフォーマンスを実現します。
40 GBメモリー、2 x 32コアAMD(2.9 GHz、2048 GB DDR4、8 x 200 Gbpsネットワーク、4 x 6.4 TBローカルNVMe SSDストレージ、ノード当たり最大1PBブロック)の8 A100 TensorコアGPUでBM.HPC4.8シェイプを使用します。
最大64個のベア・メタル・ノードをクラスタ化して、512個のGPUと4096個のCPUを提供します。
考慮事項
このリファレンス・アーキテクチャをデプロイする場合は、次の点を考慮してください。
- パフォーマンス
ワークロードのサイズに応じて、BERTを実行するコア数を決定します。この決定により、シミュレーションがタイムリーに完了します。
最高のパフォーマンスを得るには、適切な帯域幅の適切なコンピュート・シェイプを選択します。
- 可用性
デプロイメント要件およびリージョンに基づいて、高可用性オプションの使用を検討してください。オプションには、リージョンおよびフォルト・ドメインでの複数の可用性ドメインの使用が含まれます。
- モニタリングとアラート
必要に応じてシェイプをスケール・アップまたはスケール・ダウンできるように、ノードのCPUおよびメモリー使用量の監視およびアラートを設定します。
- コスト
ベア・メタルGPUインスタンスは、高コストで必要なCPU性能を提供します。要件を評価して、適切なコンピュート・シェイプを選択します。
実行中のジョブがない場合は、クラスタを削除できます。
- モニタリングとアラート
- クラスタ・ファイル・システム
複数のシナリオがあります。
- HPCシェイプに付属するローカルNVMe SSDストレージ。
- マルチアタッチ・ブロック・ボリュームは、最大2,680MB/秒のIOスループットまたは700k IOPSを実現します。
- パフォーマンス要件に応じて、独自のパラレル・ファイル・システムをNVMe SSDストレージまたはブロック・ストレージのいずれかにインストールすることもできます。OCIは、スクラッチおよび永続NFSベース(NFS-HA、FSS)またはパラレル・ファイル・システム(weka.io、スペクトル・スケール、BeeGFS、BeeOND、Lustre、Gluster、Quobyte)ソリューションを提供しています。詳細を参照してください。HPCストレージ・チームに連絡して、ニーズに最適なソリューションを設計してください。
詳細の参照
高性能コンピューティングとNVIDIAがサポートする学習アプリケーションの詳細をご覧ください。
- Oracle Cloud Infrastructureに高パフォーマンス・コンピューティング(HPC)を導入
- Punch Torino: Oracle Cloudでのハイパフォーマンス・コンピューティング(HPC)クラスタ・デプロイメント
- 高性能コンピューティング(HPC)による仮想デスクトップ・インフラストラクチャ(VDI)の導入
- High Performance Computing: Oracle Cloud Infrastructure上のOpenFOAM
- High Performance Computing: Oracle Cloud Infrastructure上のLS-DYNA
- High Performance Computing: Oracle Cloud Infrastructure上のAnsys Fluent
- GlusterFSを使用して、スケーラブルな分散ファイル・システムをデプロイします。
- Lustreを使用したスケーラブルな分散ファイル・システムのデプロイ
- IBM Spectrum Scaleを使用した高パフォーマンスのストレージ・クラスタのデプロイ
- BeeGFSパラレル・ファイル・システムのデプロイ
NVIDIAでサポートされている学習アプリケーションについては、次の追加リソースを確認してください。