SmartNIC、IPU、DPUの過大評価の解消:クラウド大手がサーバーCPUの負荷を軽減する理由と方法

Table of Contents

SmartNIC、IPU、DPUの過大評価の解消:クラウド大手がサーバーCPUの負荷を軽減する理由と方法

システム アプローチIntel によるインフラストラクチャ プロセッシング ユニット (IPU) に関する最近の発表により、コンピューティング システムで機能がどのように分割されるかというトピックを再検討する必要が生じました。

以前の記事「偶然の SmartNIC」で述べたように、汎用 CPU からより特化した NIC にどの程度オフロードするかを決定しようとする試みには少なくとも 30 年の歴史があり、より高度に特化されたオフロード エンジンとより汎用的なオフロード エンジンの間でも同様に長い争いがありました。

IPUは、汎用オフロードエンジンの長いシリーズにおける最新作に過ぎません。現在では、Intelだけでなく、NVIDIAやPensandoといった他社からも、非常に多様な選択肢が提供されています。PensandoはDPU(データ処理ユニット)という用語を使用していますが、これらのデバイスはいずれも同じ種類の問題に対処するという点で共通認識があるようです。

ここではいくつか興味深いことが起こっています。まず、汎用x86(またはArm)サーバーはもはやクラウドのインフラ機能を実行するのに最適な場所ではないというコンセンサスが形成されつつあることです。ここで言う「インフラ機能」とは、マルチテナントクラウドを実行するために必要な、実際にはゲストワークロードではないもの、つまりハイパーバイザー、ネットワーク仮想化、ストレージサービスなどを指します。

サーバーはかつてゲストワークロードとインフラサービスの両方の拠点でしたが、これらの機能はゲストのサイクルを奪うだけの「オーバーヘッド」と見なされるようになってきています。よく引用される論文の一つにFacebookのAccelerometer調査があります。この調査では、Facebookのデータセンターにおけるオーバーヘッドが最大80%に達すると測定されていますが、これはクラウドプロバイダー全体に当てはまるとは限りません。より妥当な例として、Googleが2015年に発表した[PDF]が挙げられます。

Amazon Web Servicesも、収益を生み出すワークロードをオーバーヘッドが圧迫するという同様の問題を認識していたと推測され、2015年にAnnapurna Labsを買収した際にインフラサービス専用のハードウェアを導入し、Nitroアーキテクチャの基礎を築きました。その結果、ほぼすべてのインフラサービスがサーバーから切り離され、ゲストワークロードの実行にのみ利用できるようになりました。

汎用CPUコンプレックスから何らかのオフロードエンジンへ機能を移行することを決定したら、適切なレベルの柔軟性をどのように維持するかが問題となります。これらのオフロード機能は静的ではないため、固定機能のハードウェアに組み込むのは近視眼的な動きです。

そのため、近年、NICはTCPセグメンテーションなどの固定機能のオフロードから、より柔軟なアーキテクチャを持つSmartNICへと移行しています。そこで目指すのは、汎用CPUよりもオフロードサービスに最適化されながらも、オフロードサービスの革新と進化をサポートできるほどプログラマブルなオフロードシステムを構築することです。

目標は、汎用CPUよりもオフロードサービスに最適化されながらも、オフロードサービスの革新と進化をサポートするのに十分なプログラム性を備えたオフロードシステムを構築することです。

IntelのIPUファミリーには、FPGAベースとASICベースの両方を含む、柔軟性を実現するための様々なアプローチを採用した複数の製品が含まれています。Mount Evans ASICは、Arm CPUコアとP4プログラマブルなプログラマブル・ネットワーク・ハードウェア(Barefoot Networksチーム製)の両方を搭載している点で特に興味深い製品です。

これは Systems Approach にとって非常に重要なテーマです。P4 ツールチェーンは、当社の SDN 書籍で取り上げた多くのテクノロジーの中心となっているからです。

P4プログラマブルスイッチをIPU/DPUに組み込むことは、オフロードされる可能性のあるネットワーク機能に仮想スイッチの機能も含まれるため、非常に理にかなっています。Nicira社、そして後にVMware社のNSXチームで学んだことの一つは、vSwitchをオフロードエンジンに移行する場合、そのエンジンは完全にプログラマブルである必要があるということです。

NICがvSwitch全体を実装するには汎用性が不十分な場合、vSwitch機能の一部しかオフロードエンジンに移行できません。たとえ機能の90%をオフロードエンジンに移行できたとしても、CPUで処理し続けなければならない残りの10%がボトルネックとなる可能性が高くなります。

そのため、プロトコル非依存スイッチングアーキテクチャ(PISA)に基づくP4プログラマブルオフロードエンジンは、vSwitch全体のオフロードに必要なレベルの柔軟性とプログラマビリティを提供します。これを他のプログラマブルハードウェア(Armコアなど)と組み合わせることで、ハイパーバイザー、ストレージ仮想化などを含むインフラストラクチャ機能全体をIPUにオフロードできることがわかります。

物理サーバーとスイッチに重ねたネットワーク仮想化システム

ネットワーク仮想化システムの仮想スイッチはオフロードの候補である

最新世代の DPU/IPU を見る一つの方法は、よりプログラム可能なスイッチを作成するための SDN 運動の取り組みによって、新しい分野でのイノベーションが可能になったということです。

SDNは当初、スイッチングハードウェアとそれを制御するソフトウェアを分離することで、コントロールプレーンのイノベーションを促進すると期待されていました。ネットワーク仮想化は、SDNの初期のアプリケーションの一つであり、コントロールプレーンとデータプレーンの分離と、非常に柔軟なソフトウェアスイッチによって、ネットワークを完全にソフトウェア(ハードウェアベースのアンダーレイ上)で構築できるようになりました。

PISAとP4は、より柔軟なスイッチングハードウェアと、ハードウェアとソフトウェアのインターフェースを定義する新しい方法(OpenFlowの初期の取り組みを改良したもの)をもたらしました。これらのすべての要素(コントロールプレーンの革新、ネットワーク仮想化、そして柔軟でプログラマブルなスイッチハードウェア)が、現在、IPUとDPUの開発に統合されています。

IPU/DPUの開発は、プロセッサが高度な柔軟性を持ちながらも特定のタスクに特化しているというトレンドの継続と捉えることもできます。GPUとTPUは非常に柔軟性が高く、暗号マイニングから機械学習、グラフィックス処理まであらゆる用途に使用されていますが、CPUと比較するとかなり特化されています。(GPUは、PISAやP4が登場する以前の時代には、パケット処理にも使用されていました。)

DPUとIPUは、現代のクラウドデータセンターで実行する必要がある特定のタスク群に最適化され、高度にプログラマブルなデバイスの新しいカテゴリーとして確固たる地位を築いています。特化が進むにつれて効率性も向上する一方で、将来のイノベーションを支えるのに十分な柔軟性も維持されています。®

Discover More