ミラクル・リナックスは2016年12月1日、FPGA(プログラミング可能な集積回路)を使った文字列分割処理の高速化について、研究開発の成果をホワイトペーパーとして公開した(ミラクル・リナックスへのリンク)。組み込み利用で実績のあるFPGAを、エンタープライズ分野のアプリに適用し、高速化や省電力化を図る。「FPGA内部で32分割し並列処理するなどの工夫により、CPU利用時に比べて最大10倍の高速化に成功した」(ミラクル・リナックス 技術本部 開発部 シニアエキスパートの大和一洋氏)。

写真1●ミラクル・リナックス マーケティング本部長の青山雄一氏(左)、技術本部 開発部 シニアエキスパートの大和一洋氏
写真1●ミラクル・リナックス マーケティング本部長の青山雄一氏(左)、技術本部 開発部 シニアエキスパートの大和一洋氏
[画像のクリックで拡大表示]

 ユーザーが回路を書き換えられるFPGAは、ASIC(特定用途向け集積回路)に比べて開発期間を短くしたり、少ないロットでの生産を可能にしたりできる。ただし設計には、デジタル回路やシステムバスなどへの知見が必要だ。「OSにFPGAへのアクセス機能を持たせることで、既存アプリが変更なしで利用可能になる」。ミラクル・リナックス マーケティング本部長の青山雄一氏は、OSベンダーがFPGA活用に取り組む強みをこう説明する。

 ベンチマークでは、大量のテキストログのバッチ処理を想定し、C言語のstrtok関数に相当する機能をFPGAで実行し、文字列処理の負荷をCPUからオフロードした。そのために、FPGA内部で並列処理を実現する分散アルゴリズムと、サーバーとFPGA間のデータ転送フレームワークを開発。CPUだけで処理した場合と処理時間を比較した。

写真2●ベンチマークの結果
写真2●ベンチマークの結果
(出所:ミラクル・リナックス)
[画像のクリックで拡大表示]

 データ量が数kバイト程度では、FPGAはCPUに比べて処理時間が長い。「CPUとFPGA間で行うデータ転送の遅延により、データ量に関係なく、ほぼ一定の処理時間になっている」(大和氏)。データ量を増やしていくと、CPUに比べて約10倍の処理速度を示した。

 「FPGAの活用で、WebサーバーやIoT(インターネット・オブ・シングズ)デバイスのログを検索したり、フィルタリングしたりする処理が高速化できる。今後はさらに用途を広げたい」と青山氏は話す。文字列分割処理に加えて今後、文字から数値への変換、大文字・小文字化など文字列処理機能の充実を図る。将来は、暗号化の圧縮・展開などにも適用したい考えだ。

■変更履歴
当初、「CPUとGPU間」としていましたが、正しくは「CPUとFPGA間」です。お詫びして訂正いたします。本文は修正済みです。 [2016/12/2 14:00]