ミラクル・リナックスは、FPGAを使った文字列分割処理の高速化についての研究開発成果を公開した。FPGAを用いて大量の文字列分割をオフロードで処理させたところ、CPU利用時に比べ最大10倍の高速化で実行できた。
ミラクル・リナックスは2016年12月1日、FPGAを使った文字列分割処理の高速化について、研究開発成果を公開した。
FPGA(Field Programmable Gate Array)は、ユーザーが目的に応じてプログラムできる集積回路だ。今回の研究では、テキスト処理の基本機能である文字列分割について、FPGA内部での並列的な分割アルゴリズムと、ホストコンピュータ/FPGA間で効率的にデータ転送をするフレームワークを開発。大量テキストログのバッチ処理を想定したベンチマークを行った。
このベンチマークでは、Linux OSのコアライブラリをFPGAでオフロードさせ、効率的な処理ができるようにした。C言語のstrtok関数に相当する機能をFPGAで実行し、文字列分割を処理させた結果、CPU(Intel Core i7-4790 3.6GHz)での処理に比べて最大10倍の速度で実行できた。データ量が数kBまでは、転送処理のオーバーヘッドのため速度が上がらないが、1MB以上になると高速化の効果が表れるという。
これらの結果から、Hadoopでの文字列解析など大量データを処理するには、今回開発した方式が有効であることが分かった。CPU負荷も低減でき、システム全体としての高速化も可能になる。
Linux OSのコアライブラリをFPGA、それ以外の処理をCPUで実行させることで、インタフェースは従来の環境との互換性を保つことができ、既存のアプリケーションが利用できる。
IoT(モノのインターネット)の実用化が進み、大量のデータ処理が課題となるなかで、同社はFPGAを活用した文字列分割処理の高速化に着目。しかし、FPGAの活用には、デジタル回路やシステムバスなどに関する知識が必要であったり、アーキテクチャの変更が発生するなど、一般ユーザーには使いにくいという問題があった。そのため今回、GNU C Libraryのような基本的なライブラリからFPGAを透過的に使用するOSを提供し、課題の解決を試みた。
今後は、文字から数値への変換、大文字・小文字化、部分検索といった文字処理機能をFPGAでも対応できるようにし、これらの機能を組み合わせた処理や暗号化・圧縮・展開などの処理にも活用を広げていく予定だとしている。
Copyright © ITmedia, Inc. All Rights Reserved.