BittWare パートナーIP

クエリプロセッシングユニット(QPU)

FPGA を搭載したアクセラレータを構築し、PCIe Gen4 の速度で保存データやストリーミングデータのクエリ、分析、再フォーマットを実行します!

IA-420f PCIeカード
Eideticomロゴ

Eideticom社のQuery Processing Unit (QPU)は、データベースユーザーやネットワークパケットなどのデータストリーミングを行うユーザーで、クエリ、分析、フォーマット変換を低レイテンシーでハードウェアで実行する必要がある人を対象としています。タスクは、あらゆる帯域幅のニーズに合わせて並列化でき、さらに圧縮などの他のNoLoad®機能と混在させることもできます。

NoLoad®フレームワークで構築

Eideticom社のNoLoad Computational Storageフレームワークの一部として、QPUは圧縮、伸長消去符号化、重複排除などEideticom社の他のComputational Storage IPとパイプライン接続することが可能です。

ソフトウェア駆動型設計

ハードウェアエンジニアがQPUのパラメータを指定する負担を軽減するため、ユーザーはオンチッププロセッサを使って機能を定義します。これにより、ハイレベルなツールの使いやすさと、メインホストCPUからのオフロードを両立しています。

QPUは、フォーマット変換(テキストからバイナリへの変換)や標準規格に準拠したデータベース機能を備えています。ユーザーはソフトウェアで機能の組み合わせを設計するため、ハードウェアベースのツールは必要ありません。QPUは、さまざまなデータベースツールが標準ベースの計算機ストレージをサポートするようになるにつれて、ネイティブアクセラレーション をサポートする予定です。

クエリ

ソフトウェアで定義された検索およびフィルタパラメータを使用してデータクエリを実行します。

アナライズ

ネットワークパケットヘッダーなどのストリーミングデータやSSDストレージ上のデータに対して、フィルタリング、パターンマッチ、アナリティクスを行います。

リフォーマー

テキスト/バイナリデータの再フォーマットやその他のフォーマット変換を効率的に行うことができます。

デモ映像

Eideticom社のエンジニアリング担当副社長Sean Gibbが、5GBのCSVファイルでクエリ処理ユニットのデモを行いました。

QPUデモ出力サムネイル
 

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オフロードが可能です。

無負荷CSPブロック図

ユースケース

フィンテックのためのキャプチャー+アナリティクスエンジン

高性能なソフトウェア定義型パケットキャプチャ&アナリティクスエンジンの構築

この実例では、Query Processing Unitをパケット処理マシンとして使用し、さらにCompression Engine(別のNoLoad® IPコア)を加えています。パケットは圧縮され、ピアツーピア転送を使用してSSDアレイに書き込まれ、QPUはヘッダー(ネットワークタプル)データと期間ごとのパケット数などの分析結果も引き出します。分析結果はCSVデータとしてホストに送信されます。

パフォーマンス・アドバンテージ

マルチスレッドのIntel Xeon CPUと比較すると、データベースのQuery Processing Unitは以下のようなパフォーマンスとなります。

平均値パケットサイズ中央演算処理装置1×クエリーエンジン(QE)2×QE4×QE
256B0.2 GB/秒1.8GB/秒3.6GB/秒7.2GB/秒
1024B0.7 GB/秒2.0 GB/秒4.0GB/秒8.0GB/秒
4096B1.9GB/秒2.0 GB/秒4.0GB/秒8.0GB/秒
9216B2.7GB/秒2.0 GB/秒4.0GB/秒8.0GB/秒
クエリー・エンジンのパケット・キャプチャーの使用例
ホストからのパケットはPCIe経由でBittWare IA-220-U2またはIA-420Fに移動し、NoLoad®フレームワークとIPを使用してFPGA処理を行います。

ユースケース

データベースクエリアクセラレーション

データベースクエリーの高速化など

データベースアクセラレーション の構成では、Query Processing Unit は、CPU オフロードからデータ型フォーマットの変換まで、さまざまな機能を実行することができます。

クエリーエンジンとデータベースの使用例
NoLoad™ Software Stackは、アクセラレータとストレージとの間でDBデータをやり取りする

対応FPGAカード

Query Processing Unitは、IntelAgilex FPGAを搭載したBittWare'sカードを対象としています。

価格や詳細についてご興味のある方は、こちらをご覧ください。

当社のテクニカルセールスチームは、在庫状況や構成情報を提供したり、技術的な質問に答えたりする準備ができています。