|
DPU/IPUは堅牢なプログラマブル・インフラストラクチャを構築しており、その急成長市場は新たなオープンソース・プロジェクトであるOPI(Open Programmable Infrastructure)の設立を促しました。OPIは「Unlocking Your Programmable Future(プログラマブルな未来を解き放つ)」を提唱し、DPU/IPUなどのプログラマブル・ハードウェアを基盤とするソフトウェア開発フレームワークのための、コミュニティ主導のオープン・エコシステムの育成を目指しています。2022年3月には、初のOPI Event業界カンファレンスがオンラインで開催され、OPIのサブプロジェクトであるIPDK(Infrastructure Programmer Development Kit)がカンファレンスのハイライトの一つとなりました。 IPDKは、CPU、IPU、DPU、またはスイッチから構築されたインフラストラクチャを管理する、オープンソースでベンダーに依存しないドライバーとAPIフレームワークです。DPU/IPUは今後10年間で重要なプログラマブルハードウェアプラットフォームになると予想されていますが、IPDKはDPU/IPUの汎用ソフトウェアプラットフォームになり得るでしょうか? DPU/IPU ソフトウェア エコシステムDPU/IPUの人気が高まり続ける中、市場参入のプレーヤーはますます増えています。NVIDIA、Intel、AMDといった海外メーカーに加え、Alibaba、Tencent、Ruijie、Inspur、ChipSource、Nebula Connectといった国内メーカーも継続的な取り組みを行っています。 しかし、現在のDPU/IPUソフトウェアエコシステムは非常に複雑で、多数のフレームワーク、多様なインターフェース、そして高い開発難易度を伴います。エンドユーザーとベンダーにとって、ビジネスアプリケーション開発とインフラストラクチャ管理をサポートするには、統一されたオープンAPIが必要です。 IPDKIPDKは、このニーズに対応するために開発されました。IPDKは、基盤となるハードウェアの違いによる影響をユーザーに与えず、関連するインターフェースタイプを定義するあらゆるデバイスをサポートし、上位層アプリケーションに一貫したアクセスインターフェースを提供します。IPDKは、インフラストラクチャ管理のすべての機能を抽象化・カプセル化し、「インターフェースサンドイッチ」を形成します(下図参照)。この「サンドイッチ」は、下部でSDKドライバやコンパイラバックエンドなどとインターフェースし、上部でRPCインターフェースセットを定義することで、さまざまなアプリケーションシナリオをサポートします。 IPDKはLinux上で動作し、SPDK、DPDK、P4などの成熟したオープンソースツールを使用することで、ネットワーク仮想化、ストレージ仮想化、ワークロードプロビジョニング、信頼のルート、オフロード機能をプラットフォーム内に実装します。IPDKは、パフォーマンスの向上、リソースの最適化、インフラストラクチャのセキュリティ確保のための汎用プラットフォームを提供します。さらに、IPDKはハードウェア圧縮および暗号化機能、そして基盤となるストレージアクセラレーションを抽象化できます。 IPDK標準インターフェースIPDKには、インフラストラクチャ・アプリケーション・インターフェース(IPI)とターゲット抽象化インターフェース(TAI)という2つの主要なオープンインターフェースが含まれています。この概念は、SDNにおけるノースバウンド・インターフェースとサウスバウンド・インターフェースに似ています。 インフラストラクチャアプリケーションインターフェース インフラストラクチャ アプリケーション インターフェイスは、次の 2 つの設計原則に基づいています。
インフラストラクチャ アプリケーション インターフェイスは、DPU/IPU コンテナーのノースバウンド インターフェイスと見なすこともできます。これは、IPDK でサポートされている次のようなさまざまな RPC インターフェイスを表します。
次の図は、インフラストラクチャ アプリケーション インターフェースの実装例を示しています。 ターゲットデバイス抽象化インターフェース ターゲット デバイス抽象化インターフェイス (TAI) は、インフラストラクチャ ハードウェア デバイス用に定義された抽象モデルであり、インフラストラクチャ アプリケーションはこれを使用してデバイス リソースを管理およびスケジュールできます。 ターゲット抽象インターフェースは、次の 3 つの設計原則に基づいています。
ターゲット デバイスの抽象インターフェイスは、次の部分で構成されます。
IPDKアプリケーションシナリオIPDK の主な適用シナリオは次のとおりです。 IaaS: 仮想マシン、コンテナ、ベアメタル全体で仮想ネットワーク、ストレージ、暗号化テクノロジを有効にします。 IaaS シナリオにおけるネットワーク仮想化 IaaS シナリオにおけるストレージ仮想化 IaaS シナリオにおけるホスト仮想化 PaaS: コンテナ ネットワーク、プロキシ サービスなどを有効にします。 PaaS シナリオにおける CSI と CNI PaaS シナリオで IPU 上で実行される Calico PaaS シナリオにおける IPU 上の Envoy インライン アクセラレーション: ファイアウォール、IDS、ネットワーク テレメトリ、5G/ワイヤレス インフラストラクチャ、AI/ML などを有効にします。 IPDKとDOCA前のテキストからわかるように、IPDK は DOCA と非常によく似ています。 DOCA(データセンター・インフラストラクチャ・オン・ア・チップ・アーキテクチャ)は、NVIDIAがBlueField DPU専用に開発した、高度にプログラミング可能なSDK開発プラットフォームツールです。開発者にシンプルな開発インターフェースを提供し、プログラマーはAPI、ライブラリ、サンプルコードを使用してアプリケーションを開発・高速化できるため、DPUのアプリケーション開発エコシステムが強化されます。NVIDIAの専門家は、データセンターサーバー分野においてDOCAとCUDAを比較しています。 DOCAと比較すると、IPDKはDPU/IPUなどのハードウェアを抽象化・カプセル化するパブリック開発キットであるという点で独特です。一貫した抽象化により、Intel IPU、Intel Xeonサーバー、他社製DPUなど、あらゆるハードウェアで実行できます。例えば、MarvellはOcteon DPU上でIPDKが動作するデモを実施しています。しかし、IPDKエコシステムはまだ初期段階にあるのに対し、DOCAは既に市場で一定のユーザーベースを確立しています。 見通し業界の専門家は、将来的に IPDK プロジェクトを成功裏に開発するためには、以下の点を考慮する必要があると考えています。
IPDKプロジェクトは非常に野心的なビジョンを掲げていますが、最終的にOpenStackやKubernetesのようなスターオープンソースプロジェクト、あるいはDPU/IPU向けの汎用ソフトウェアプラットフォームとなるには、多くの関係者の参加と共同の努力が必要です。IPDKプロジェクトが早期に成熟することを期待しています。 |