IA-420f PCIeアクセラレータ、インテルAgilex FPGA搭載
Introducing the IA-420F: A Powerful Low-Profile FPGA Card Powered by Intel Agilex Tap Into the Power of Agilex The new Intel Agilex FPGAs are more
ストレージを加速するFPGAに焦点を当てたビデオへようこそ。IntelliProp社のNVMeブリッジプラットフォームと呼ばれるフレームワークに焦点を当てています。
今日はIntelliPropのCEO、Hiren Patelをお招きしています。よろしくお願いします。
ありがとう、マーカス。
まずは簡単な構成要素から始めましょう。SSDストレージは非常に高速なストレージですが、これをホストPCIeバスに接続するのではなく、その真ん中にFPGAを配置することになります。最初の疑問は、なぜそんなことをするのか、ということです。
理由はいくつかありますが、SSDの前にFPGAを配置することで、データを直接SSDに保存し、後でホストからPCIe経由で読み出すことができるデータキャプチャ(データ収集システム)を構築することができます。
また、プリロード可能なデータ収集もあります。また、ブリッジを使用することで、現在開拓が進んでいる新しい市場、つまり計算機用ストレージを攻略することも可能です。
特定のアクセラレータ機能をFPGAに直接オフロードし、FPGAがSSDからデータを取得して処理、プッシュバック、あるいはホストにプッシュバックすることができるのです。これが、現在の最大の2つの理由でしょう。
データ収集やデータキャプチャーにおいて、FPGAを使うことのユニークさは何でしょうか?なぜなら...データキャプチャーの方法は他にもありますから...FPGAを使い、さらにこのブリッジフレームワークを使うことのユニークさは何でしょうか?
またまた、いい質問ですね。FPGAの場合、FPGAは真っ白なキャンバスのようなものだと考えてください。FPGAにはたくさんの相互接続があります。他の種類のデータ収集や温度センサーなどを設置するための接続ポイントがたくさんあり、そのデータをSSDに取り込むことができます。これが主な基準の一つです。
もうひとつの基準は、FPGAに強力なプロセッサーを内蔵していることです。現在ではARMコアを搭載し、複数のプロセッサーを置くことができます。SSDに取り込む前に、データに対してあらゆる処理を行うことができるのです。
特にブリッジは、なぜブリッジを使うのでしょうか?ブリッジは主にデータの通過を許可するもので、書き込みや読み込みを許可することができます。しかし、ある種のコマンドを傍受することもできます。ホストがFPGAに直接コマンドを発行し、FPGAがSSDからさらにデータを取得し、検索など必要な処理を行い、アクセラレーション 、そのデータをプッシュバックすることができるのです。このように、FPGAにはさまざまな使い道があるのです。
もうひとつは、FPGAはカスタマイズが可能なため、1つのFPGAを複数の製品に組み込むことができる点です。FPGAをブランク製品としてSSDの前に置いて、異なるアルゴリズムや異なるアクセラレーション を攻撃することができます。
あるアルゴリズムは圧縮、あるアルゴリズムは伸長、あるアルゴリズムは暗号化です。また、検索のようなこともできます。これらはすべて、特定のニーズに的を絞ったアクセラレータ機能であり、一長一短のものではありません。
Hiren フレームワークのブリッジ・コンポーネントで、ホスト CPU がホスト PCIe バスではなく、FPGA に直接接続されている SSD を見ることができるというコンセプトを導入されましたね。これにはメリットがありますが、ユーザーは特別なAPIを実行したり、ソフトウェアを変更したりする必要があるのでしょうか。
いいえ、箱から出して使うわけではありません。ブリッジ・プラットフォームをシェルに組み込んだだけで、ホストPCとSSDの間に私たちを差し込むことができるのです。いいえ、何も変更する必要はありません。ホストは、あたかもSSDを直接接続したかのように、実際に列挙します。
さて、アクセラレーション 機能やデータキャプチャに取り掛かる際には、追加のドライバが必要になる場合がありますし、ベンダーの仕様ですべてを行うこともできます。CLI があり、ベンダー固有のコマンドをブリッジに直接送信することができ、ブリッジはこれをインターセプトして、必要なデータを処理することができます。
では、具体的なBittWare のハードウェアと性能について説明します。BittWare IA-840F のように、SSD を FPGA に直接接続できる FPGA カードは、市場にはそれほど多くないということに留意する必要があります。また、このカードにはIntelの最新シリコンであるAgilex FPGAが搭載されています。では、こうしたものがもたらすメリットや指標にはどのようなものがあるのでしょうか。
ええ、もちろんです。新しいFPGAは、PCIeの高速化、高速化を進めています。現在、Agilex のボードは、第4世代まで到達し、第5世代も間もなく登場すると思われます。このようなボードは、それ自体、非常に大きな成果だと思います。
さらに、ブリッジを使用すれば、PCに向かってGen4 x16を配置し、裏側には複数のSSDを集約することができます。4台のSSDをGen4 x4で使用するだけで、その一部を飽和させることができます。
また、Gen3 x4レーンに8台のドライブを搭載して、飽和状態にすることも可能です。
ですから、4台のドライブを後ろに置いたり、8台のドライブを後ろに置いたり、いろいろなことが可能です。しかし、基本的にはすべてのトラフィックがFPGAを通過するため、計算ストレージやデータ収集のいずれかを行うことができます。
帯域幅の数値はどのようなものですか?例えば、4台のドライブをFPGAに接続したり、FPGAを8台のドライブを搭載したPCIeスイッチに接続したりする場合、Gen4 PCIeレベルではどのようなパフォーマンスが期待できるでしょうか。
Gen4レベルでは、1台のドライブで6,000メガバイト/秒に近い速度が出せるのではないでしょうか。第3世代では、ブリッジが1秒間に3,000メガバイトから3,500メガバイトの速度で動作することをすでにお見せすることができます。Gen4では、その2倍を期待しています。
そして、FPGAを導入する際によく出てくるもう一つの疑問は、ブリッジIPと一緒に自社のIPをどれだけFPGAに入れられるか?言い換えれば、他のIPのためにどれだけのスペースを残すことができますか?それについて、簡単に説明してください。
ええ、素晴らしい音です。このボードには、AGF027という部品があります。その部品には、おそらく約90万個のALE/ALMがあると思います。私たちはブリッジに約10万個を使用しています。これは1台のドライブを接続する場合です。複数のドライブを接続する場合は、約4,000個のALMを追加して拡張することになります。
そうそう、悪くはないんだけどね。それでも10%程度です。ということは、お客様はまだ、アクセラレーション の機能を追加するための十分なロジックを利用できるのです。
Hirenさんは、1台のドライブまたは複数のドライブをカードに直接接続できるとおっしゃっていました。では、もっと多くのドライブを接続したい場合、カードは物理的に例えば8台のドライブを接続することができますが、それはどのようにして行うのでしょうか?
カード1枚でも複数のドライブを接続できるかもしれませんし、これをバックプレーンに拡張してPCIeスイッチを搭載し、さらにドライブを接続することも可能です。つまり、8台のドライブをPCIeスイッチに接続し、PCIeスイッチをBittWare カードに接続することができるのです。これが1つの可能なソリューションであり、可能なトポロジーだと思います。
FPGAをインライン・アクセラレータとして使用する場合です。これは、コンピュテーショナル・ストレージ(アクセラレーション )の大きな構想の一部で、CPUオフロードのために非常に一般的になってきています。インライン・アクセラレータを使った計算機ストレージの使用例について教えてください。
はい、もちろんです。現在、多くのお客様がデータ・アット・レストの暗号化を行っています。当社のFPGAはSSDや複数のSSDの前に設置され、お客様はサンドボックス領域、あるいはお客様のアクセラレーション 領域をデータアットレスト暗号化として使用します。また、検索エンジン、検索オフロード、圧縮、eBPFも成長分野です。
このように、お客さまはさまざまなことができます。例えば、圧縮や解凍を例にとると、当社のブリッジでできることの1つは、サーバーやホストが圧縮したデータをブリッジを通してSSDにそのまま送ることができることです。
しかし、データを取得する際に、FPGAに解凍用ハードウェア・エンジンを組み込んでおくことができます。この解凍エンジンは、サーバー・ホストにデータを送信する前にデータを解凍することができます。
また、Intelliprop社がeBPFのリファレンス・デザインに取り組んでいるのは知っていますが、eBPFの仮想マシンという用途もあります。
先ほども触れられましたが、もっと詳しくお聞きしたいのは、ホストが検索コマンドを発行し、検索自体をFPGAと直接接続されたSSDにオフロードするというユースケースです。検索は圧縮のオフロードよりも少し複雑なので、どのようにオフロードするのでしょうか?
いい質問ですね。11月にセントルイスで開催された「SuperCompute '21」で、インライン・ブリッジによる検索エンジンのオフロードを紹介しました。つまり、CPUがSSDに大量のデータをプリロードするのです。サーバーは、ベンダー固有のコマンドをブリッジの中央に送信します。RTLコードは、ベンダー固有のコマンドを見て、LBAの範囲またはアドレス空間を取得し、特定のパターン検索を実行します。パターンと検索するLBAの範囲を受け取ると、ドライブセクション全体を読み込んで、特定の32ビットパターンを探し、そのインスタンスをすべて見つけて、それがどのLBAで発生したか、それをパッケージにしてサーバホストに完了を送り返しました。
通常、アクセラレータがなければ、サーバーはすべてのデータをシステム・メモリに読み込んで検索を行い、データを捨てていたことでしょう。しかし、そのようなデータの移動がなければ、サーバーは我々にコマンドを発行するだけで、「これが見つかったすべての場所です」というレスポンスを返送するだけでよかったのです。FPGAは、それをはるかに高速に実行することができ、それを示すグラフも用意されていました。
では、そのデモの一部をお見せしましょう。上の線は、CPUの負荷が約90%で、直接検索を行っていることを示しています。
そうそう、このビデオのデモはIntelStratix 10 DXで行われています。
この特定のフレームワークIPをブリッジで使用する必要がある場合、どのように認識するのでしょうか?特定のブリッジ・コンポーネントが必要なとき、誰がどのように認識するのでしょうか?
ええ、いい質問ですね。繰り返しになりますが、これはパススルー型のブリッジです。私たちが行ったのは、NVMeの複雑さをすべて排除し、お客様がロジックを組み込めるAXIストリーム・インターフェイスを作成したことです。つまり、お客様は、アクセラレーション の機能についてはエキスパートですが、NVMe についてはエキスパートではないため、このフレームワークが真価を発揮するのです。データ、コマンド、その他すべての情報を、AXIストリームを介して制御およびデータ情報として中間部分に提示し、お客様がそのロジックで何をしたいかを決定できるようにします。
そして反対側には、同じくAXIストリームによる制御およびデータプレーンがあり、データをSSDに転送し続けます。
このように双方向で動作するため、使い勝手の良さが際立っています。お客様(彼らの専門知識はアクセラレーション 機能にあります)は、それをサンドボックスに入れることができ、私たちは
。また、BittWare ボード上でBittWareの助けを借りれば、さらに時間を短縮することができます。なぜなら、サンドボックス・ブリッジを実際に差し込めるシリコン(NVMe Bridgeプラットフォーム)を手に入れたからです。そして、そのプラットフォーム上で引き続きアクセラレーション 機能を構築できるようになりました。
IntelliPropを使うか、NVMe Bridge IPを自作するか、どちらを選ぶかですが、IntelliPropがこれを作るのに、実際にどれくらいの時間がかかったのか、そして、これを使ったアプリケーションを作るのは、どのくらい簡単なのか。
そうですね、いい感じです。このフレームワークでは、NVMe と対話する必要があるという事実を、ある種、外挿した、あるいは隠したと言えます。NVMeのことを何も知らなくても大丈夫です。必要なのは、どのアドレスと制御情報を取得するかだけです。
このブリッジの開発には、私たちインテリプロップは1年半ほどかかりましたが、そのおかげで、私たちが望む性能を実現することができました。最終的には、お客様の時間を節約することができました。
たとえば、「SuperCompute '21」のデモを例にとると、1ヵ月ほどで完成させることができました。ブリッジがなかったら、もっと時間がかかっていたでしょう。ブリッジがあれば、制御情報とデータ情報を把握することができます。アクセラレーション 検索機能とデータを送り返す機能を実現するだけで、1ヶ月かかりました。
繰り返しになりますが、これはフレームワークであり、すべて事前に構築され、流されたものなのです。あなたはただ、アクセラレーション に集中すればいいのです。
なるほど、素晴らしい。Hirenさん、今日はいろいろとお話しいただき、ありがとうございました。
ありがとうございます。
これがNVMeブリッジ・プラットフォームで、IntelliProp社のフレームワークで、BittWare FPGAカードで利用可能です。特に、本日はIA-840Fと直接接続されたSSDについて説明します。詳細については、BittWare のウェブサイトをご覧ください。
Introducing the IA-420F: A Powerful Low-Profile FPGA Card Powered by Intel Agilex Tap Into the Power of Agilex The new Intel Agilex FPGAs are more
BittWare Partner IP Core RDMA Low-Latency RoCE v2 at 100Gbps The GROVF RDMA IP core and host drivers provide RDMA over Converged Ethernet (RoCE v2)
BittWare On-Demand Webinar Enterprise-class FPGA Servers: The TeraBox Approach FPGA-based cards are maturing into critical devices for data centers and edge computing. However, there’s a
White Paper Building BittWare’s Packet Parser, HLS vs. P4 Implementations Overview One of the features of both BittWare’s SmartNIC Shell and BittWare’s Loopback Example is