Intelliprop社CEO Hiren Patel氏インタビュー

ビデオトランスクリプト

マーカス・ウェドルBittWare

IntelliProp社のNVMeブリッジプラットフォームと呼ばれるフレームワークを中心に、ストレージを高速化するFPGAに焦点を当てたビデオにようこそ。

今日はIntelliPropのCEOであるHiren Patelが一緒です。ご出席ありがとうございます!

インテリプロップCEO ヒレン・パテル

ありがとうございます、マーカス-嬉しいです。

マーカス

まずはシンプルなビルディング・ブロックから始めましょう。SSDストレージは非常に高速なストレージですが、これをホストのPCIeバスに接続するのではなく、その真ん中にFPGAを配置することになります。最初の疑問は、なぜそんなことをするのか、ということです。

ヒレン

SSDの前にFPGAを配置することで、データを直接SSDに保存し、後でPCIeを通じてホストから読み出すことができるデータ収集システムを構築することができます。
しかし、ここでもプリロード可能なデータ収集があります。また、ブリッジを使用することで、現在開拓されている新しい市場(成長中)である計算ストレージを攻撃することもできます。
ある種のアクセラレータ機能をFPGAに直接オフロードすることができ、FPGAはSSDからデータを取得して処理し、それをプッシュバックしたり、ホストにプッシュバックしたりすることが可能です。これが今、最も大きな2つの理由です。

マーカス

データ収集やデータキャプチャにおいて、FPGAを使用することの特徴は何でしょうか?なぜなら...データ収集の方法は他にもありますから...FPGAを使い、さらにこのブリッジフレームワークを使うことの特徴は何でしょうか?

ヒレン

またまた、いい質問ですね。FPGAでは、FPGAを真っ白なキャンバスのように考えることができますね。FPGAにはたくさんのインターコネクトがあります。他の種類のデータ収集や温度センサーなどを設置するための接続ポイントがたくさんあり、そのデータをSSDに取り込むことができるのです。それが主な基準のひとつです。

もうひとつの基準は、FPGAに強力なプロセッシングを組み込んでいることです。SSDに入る前のデータに対して、あらゆる処理を行うことができるのです。

特にブリッジは、なぜブリッジを使うのでしょうか?ブリッジは主にデータの通過を許可するもので、書き込みを許可したり、読み込みを許可したりします。しかし、特定のコマンドを傍受することも可能です。ホストからFPGAに直接コマンドを発行し、FPGAがSSDからさらにデータを取得したり、検索やアクセラレーション のような必要な処理を行い、データをプッシュバックすることができるのです。このように、FPGAにはさまざまな使い道があるのです。

FPGAはカスタマイズが可能なため、1つのFPGAを複数の製品に組み込むことができます。FPGAをブランク製品としてSSDの前に置き、異なるアルゴリズムや異なるアクセラレーション を攻撃することができるのです。

あるアルゴリズムは圧縮で、もう一つは解凍で、暗号化かもしれません。また、検索のようなことも可能です。これらはすべて、特定のニーズに的を絞ったアクセラレーター機能であり、一長一短ではありません。

マーカス

Hiren氏は、フレームワークのブリッジコンポーネントで、ホストCPUがSSD(SSDはFPGAに直接接続されているが、ホストPCIeバスには接続されていない)を見ることができるというコンセプトを紹介されましたね。これにはメリットがあると思いますが、これを実現するために、ユーザーは特別なAPIを実行したり、ソフトウェアを変更する必要があるのでしょうか?

ヒレン

いいえ、箱から出して使うわけではありません。ブリッジ・プラットフォームをシェルに組み込んだだけで、ホストPCとSSDの間に私たちを差し込むことができます。いいえ、何も変更する必要はありません。
さて、アクセラレーション 機能やデータキャプチャに着手する場合、追加のドライバが必要になることがあります。CLIがあり、ベンダー固有のコマンドをブリッジに直接送信することができ、ブリッジはこれをインターセプトして、必要なデータを処理することができます。

マーカス

では、具体的なBittWare のハードウェアとパフォーマンスについて説明します。BittWare IA-840FのようにSSDをFPGAに直接取り付けることができるFPGAカードは、市場にはそれほど多くないということは重要なことだと思います。また、このカードにはIntelの最新シリコンであるAgilex FPGAが搭載されています。では、こうしたものがもたらすメリットや指標には、どのようなものがあるのでしょうか。

ヒレン

ええ、もちろんです。これらの新しいFPGAは、PCIeの高速化、高速化に向かっているのは明らかです。現在、Agilex のボードはGen4まで到達し、Gen5も間もなく登場すると思われます。このようなボードは、それ自体が驚異的な成果だと思います。

さらに、ブリッジを使用すれば、Gen4 x16をPCに接続し、裏側には複数のSSDを集約することができます。Gen4 x4で4台のSSDを使用するだけで、その一部を飽和させることができます。

また、Gen3 x4レーンに8台のドライブを搭載して飽和させることもできます。
。つまり、後ろに4台、後ろに8台と、たくさんのドライブを搭載することができます。しかし、基本的にはすべてのトラフィックがFPGAを経由するため、計算ストレージやデータ収集が可能になります。

マーカス

帯域幅の数値はどのようなものですか?例えば、FPGAに4台のドライブを接続し、FPGAが8台のドライブを搭載したPCIeスイッチに接続する場合、Gen4 PCIeレベルではどのようなパフォーマンスが期待できるのでしょうか。

ヒレン

ですから、Gen 4のレベルでは、1台のドライブで6,000メガバイト/秒に近づくのではないかと考えています。Gen3では、すでに3,000メガバイト/秒から3,500メガバイト/秒を超える速度で動作するブリッジを展示することができます。Gen 4では、その2倍になると期待しています。

マーカス

そして、FPGAを導入する際によく出てくるのが、Bridge IPと一緒に自社のIPをどれだけFPGAに入れられるか?言い換えれば、どれだけのスペースを他の人のために残すことができるのでしょうか?それについて簡単に説明してください。

ヒレン

ええ、素晴らしい音です。このボードには、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に圧縮解除のハードウェア・エンジンを組み込むことができます。この解凍エンジンは、データを解凍してからサーバー・ホストに送り返すことができますので、このような使用例もあります。

その他のユースケースとしては、eBPFや、Intellipropがそのリファレンスデザインに取り組んでいることも知っています。

マーカス

先ほども触れられましたが、もっと詳しくお聞きしたいのは、ホストが検索コマンドを発行し、検索そのものをFPGAとSSDにオフロードする、というユースケースです。検索をオフロードするのは、圧縮をオフロードするよりも少し複雑なので、どのような仕組みになっているのでしょうか?

ヒレン

ええ、いい質問ですね。11月にセントルイスで開催されたSuperCompute '21で、インラインブリッジを使った検索エンジンのオフロードを展示しました。CPUがSSDに大量のデータをプリロードしました。サーバーがベンダー固有のコマンドをブリッジの中央に送信し、RTLコードがベンダー固有のコマンドを見て、LBAの範囲またはアドレス空間を取得し、特定のパターン検索を実行します(サーバーからパターンも受信します)。パターンと検索するLBAの範囲を受け取ると、私たちは実際にドライブセクション全体を読み、特定の32ビットパターンを探し、そのすべてのインスタンス(どのLBAで発生したか)を見つけ、それをパッケージ化してサーバーホストに返送しました。
通常、アクセラレータがなければ、サーバーはすべてのデータをシステムメモリに読み込み、検索し、データを捨てていたでしょう。しかし、FPGAを使えば、そのようなデータの移動がなくとも、私たちにコマンドを発行するだけで、"これが見つかった場所です "という応答が返ってきます。FPGAは、それをはるかに高速に実行することができました。これを示すグラフもあります。

では、そのデモの一部をご覧ください。
Stratix 上の線は、直接検索している間のCPU負荷が約90%であることを示しています。しかし、その間にあるFPGAオフロード版は、もちろん何倍も高速でCPUをオフロードしています。

この特定のフレームワークIPをブリッジで使用する必要があるとき、誰かがどのように認識できるのでしょうか?
ええ、いい質問ですね。繰り返しになりますが、これはパススルー型のブリッジです。NVMeの複雑さをすべて排除し、AXIストリーム・インターフェイスを作成し、お客様がロジックを組み込めるようにしました。そのため、お客様はアクセラレーション 。その機能は得意ですが、NVMeの専門家ではないため、このフレームワークの真価が問われるところです。データ、コマンド、その他すべての情報を、AXIストリームを介した制御およびデータ情報として中央に提示し、そのロジックで何をしたいかをお客様に決めていただきます。
そして反対側には、同じく制御およびデータプレーンがあり、再びAXIストリームがSSDにデータを移動し続けます。
この両方向で機能するので、使いやすさはまさに当社の強みですね。
お客さまの専門知識はアクセラレーション 。それをサンドボックスに入れれば、すぐに使えるようになります。そして、BittWareがBittWare のボードでサポートすることで、さらに時間を短縮することができるのです。なぜなら、サンドボックス・ブリッジをNVMe Bridgeプラットフォームに接続できるシリコンを手に入れ、さらにそのプラットフォーム上でアクセラレーション 。

マーカス

では、最後に質問ですが、NVMe Bridge IPを自分で作ろうと考えている方と、IntelliPropを使おうと考えている方とで、IntelliPropがこれを作るのにどれくらい時間がかかったか、また、これを使ったアプリケーションを作るのはどれくらい簡単か、教えてください。

ヒレン

そうですね、いい感じです。このフレームワークは、NVMeと対話しなければならないという事実を、ある種、外挿したり隠したりしたものだと言えるかもしれません。NVMeのことを何も知らなくてもいいのです。ただ、どのようなアドレスと制御情報を得ることができるかを知っていればいいのです。

このブリッジの開発には、インテリプロップ社として1年半ほどを費やし、私たちが望む性能を実現することができました。最終的には、お客さまの時間を節約することができました。

例えば、「SuperCompute '21」のデモを例にとると、1カ月ほどで完成させることができました。ブリッジがなければ、もっと時間がかかっていたでしょう。ブリッジがあれば、制御情報、データ情報がわかるので、アクセラレーション の検索機能とデータを送り返す機能を実現するだけで、1ヵ月かかりました。

つまり、フレームワークであり、すべて事前に構築され、流されているのです。あなたはただ、アクセラレーション に集中すればいいのです。

マーカス

なるほど、素晴らしい。ヒレンさん、今日はいろいろとお話しいただき、ありがとうございました。

ヒレン

ありがとうございます。

マーカス

これがNVMeブリッジ・プラットフォームで、IntelliProp社のフレームワークで、BittWare のFPGAカードで利用可能です。具体的には、IA-840FとダイレクトアタッチSSDの組み合わせを紹介します。詳しくは、BittWare のウェブサイトをご覧ください。また、ご覧いただきありがとうございました。