BittWare パートナーIP
クエリプロセッシングユニット(QPU)
FPGA を搭載したアクセラレータを構築し、PCIe Gen4 の速度で保存データやストリーミングデータのクエリ、分析、再フォーマットを実行します!
Eideticom社のQuery Processing Unit (QPU)は、データベースユーザーやネットワークパケットなどのデータストリーミングを行うユーザーで、クエリ、分析、フォーマット変換を低レイテンシーでハードウェアで実行する必要がある人を対象としています。タスクは、あらゆる帯域幅のニーズに合わせて並列化でき、さらに圧縮などの他のNoLoad®機能と混在させることもできます。
NoLoad®フレームワークで構築
Eideticom社のNoLoad Computational Storageフレームワークの一部として、QPUは圧縮、伸長消去符号化、重複排除などEideticom社の他のComputational Storage IPとパイプライン接続することが可能です。
ソフトウェア駆動型設計
ハードウェアエンジニアがQPUのパラメータを指定する負担を軽減するため、ユーザーはオンチッププロセッサを使って機能を定義します。これにより、ハイレベルなツールの使いやすさと、メインホストCPUからのオフロードを両立しています。
QPUは、フォーマット変換(テキストからバイナリへの変換)や標準規格に準拠したデータベース機能を備えています。ユーザーはソフトウェアで機能の組み合わせを設計するため、ハードウェアベースのツールは必要ありません。QPUは、さまざまなデータベースツールが標準ベースの計算機ストレージをサポートするようになるにつれて、ネイティブアクセラレーション をサポートする予定です。
クエリ
アナライズ
リフォーマー
デモ映像
Eideticom社のエンジニアリング担当副社長Sean Gibbが、5GBのCSVファイルでクエリ処理ユニットのデモを行いました。

Eideticom社エンジニアリング担当副社長、Sean Gibbです。このビデオでは、Eideticom社のQuery Processing Unit(QPU)を使用して、カンマ区切りのテキスト形式で保存されたストックティッカーデータのフォーマットとフィルタリングを行うデモをご紹介します。
Eideticom社のQPUの組み込みプロセッサは、CまたはC++を使用してソフトウェアプログラミングが可能で、フィルタリング機能を動的にプログラムすることができます。
組み込みプロセッサに加えて、使いやすく高スループットのハードウェアコプロセッサ(パケットキャプチャ解析、テキストからバイナリフォーマットへの変換、簡単なフィルタリングなどの一般的なタスクを実行する)を組み込みソフトウェアで利用でき、クエリワークロードを高速化することができます。
この例では、text-to-binary formatterを使用してCSVをバイナリデータに変換し、ランタイム設定可能なハードウェアフィルタ(特定の銘柄シンボルや取引量の少ない取引を除外する)を実行し、ソフトウェアフィルタを実行して、その日の終値が始値よりも低い取引をすべて除外します。
GCCコンパイラを使ってソフトウェアをコンパイルし、ソフトウェアスタックを介して組み込みプロセッサにロードできる実行ファイルを作成します。ソフトウェアをロードした後、5GBのCSVデータをクエリーエンジンで実行し、1,000万を超えるマイクロソフトの全銘柄をフィルタリングします。
1つのQuery Engineで2GB/秒のテキスト入力を維持できることがわかります。複数のQuery Engineをタイル状に配置し、Eideticom社のソフトウェアスタックにより、FPGAカードへのPCIeインターフェイスを同じホストソフトウェアで飽和させることが可能です。
これは、Eideticom社のソフトウェアでプログラム可能なハードウェアアクセラレーションQPUができることのほんの一例です。
帯域幅の要件に応じたソフトウェア定義+拡張性
クエリ処理ユニットは、FPGA上で動作するソフトウェアで定義されるため(ソフトまたはハードプロセッサを使用)、低レベルの構成エンジニアリングリソースは必要ありません。
QPUはモジュール式で、ある帯域幅の要件を満たすために1台または複数台のユニットを配置することが可能です。QPUインスタンスは、例えば、2つのユニットにまたがるデータを調整する必要がある場合、8つのQPUで分散ファイル変換を行うなど、協力することができます。
BittWareの IA-220-U2 モジュールまたは IA-420F カードに搭載されたNoLoad® 内の QPU の動作について。
Eideticom社のNoLoad®Computational Storage Frameworkをベースに構築されています。
Query Processing Unitは、NoLoadフレームワークのコンポーネントです。オレンジ色のCompressionなどのコンポーネントは、ユーザーがソフトウェア定義のアプローチで特定のアプリケーションを構築する場所です。
QPUにCompressionなどのコンポーネントを追加することで、例えば、SSDストレージに移動する前にフィルタリングされたデータを圧縮することができます。
表示されているアクセラレータ機能はすべてFPGAハードウェアで実装されており、高帯域幅、低レイテンシ、CPUオフロードが可能です。

ユースケース
フィンテックのためのキャプチャー+アナリティクスエンジン
高性能なソフトウェア定義型パケットキャプチャ&アナリティクスエンジンの構築
この実例では、Query Processing Unitをパケット処理マシンとして使用し、さらにCompression Engine(別のNoLoad® IPコア)を加えています。パケットは圧縮され、ピアツーピア転送を使用してSSDアレイに書き込まれ、QPUはヘッダー(ネットワークタプル)データと期間ごとのパケット数などの分析結果も引き出します。分析結果はCSVデータとしてホストに送信されます。
パフォーマンス・アドバンテージ
マルチスレッドのIntel Xeon CPUと比較すると、データベースのQuery Processing Unitは以下のようなパフォーマンスとなります。
平均値パケットサイズ | 中央演算処理装置 | 1×クエリーエンジン(QE) | 2×QE | 4×QE |
---|---|---|---|---|
256B | 0.2 GB/秒 | 1.8GB/秒 | 3.6GB/秒 | 7.2GB/秒 |
1024B | 0.7 GB/秒 | 2.0 GB/秒 | 4.0GB/秒 | 8.0GB/秒 |
4096B | 1.9GB/秒 | 2.0 GB/秒 | 4.0GB/秒 | 8.0GB/秒 |
9216B | 2.7GB/秒 | 2.0 GB/秒 | 4.0GB/秒 | 8.0GB/秒 |
ユースケース
データベースクエリアクセラレーション
データベースクエリーの高速化など
データベースアクセラレーション の構成では、Query Processing Unit は、CPU オフロードからデータ型フォーマットの変換まで、さまざまな機能を実行することができます。
- CSV/JSON/Parquetのパースとクエリ実行を実装。
- CPUオフロードを70-80%改善し、パフォーマンスを5-10倍向上。
- コンピュート、ストレージ、クラウドにおける展開の柔軟性
- NVMeドライバで低レイテンシー・高スループットのデータ転送を実現
- NoLoad Query Processing Unitは、NoLoadの圧縮・解凍エンジンと組み合わせることができます。
対応FPGAカード
Query Processing Unitは、IntelAgilex FPGAを搭載したBittWare'sカードを対象としています。
価格や詳細についてご興味のある方は、こちらをご覧ください。
当社のテクニカルセールスチームは、在庫状況や構成情報を提供したり、技術的な質問に答えたりする準備ができています。
"*"は必須項目