ミラクル・リナックスは12月1日、FPGAを使った文字列分割処理の高速化についての研究開発成果を公開した。
FPGA(Field Programmable Gate Array)は、ユーザーが目的に応じてプログラム可能な集積回路(LSI)。大量のデータ処理が必要になるIoTの機器やゲートウェイでの活用、Hadoopでの文字列解析などに大きな効果を生み出すとされている。
しかし、FPGAを用いた設計には広範な知見が必要な上、アプリケーションなどの既存資産を動作させるためのアーキテクチャ変更が必要になる。そのため、一般的なユーザーにとってはFPGA活用には障壁があるとされている。
ミラクル・リナックスは今回、IoTゲートウェイやデータセンターに設置されたサーバでのFPGA活用による文字列分割処理の高速化に着目した。そこで、LinuxのコアライブラリをFPGAでオフロードさせ、アプリケーションから透過的にFPGAを利用し、効率的に処理を行う研究を進めた。
その結果、FPGAを使って文字列分割の処理をオフロードさせたケースで、CPU(Core i7-4790 3.6GHz)での処理に対し最大10倍の速度を実現できた。転送処理のオーバーヘッドでデータ量が数キロバイトまでは処理時間がほぼ一定でCPUよりも処理時間がかかっていたが、データ量が増え1Mバイト以上になるとCPUでの処理に比べ約10倍の処理速度となった。
FPGAを活用した文字列分割処理高速化のベンチマーク(ミラクル・リナックス提供)
これらの結果から同社は、今回の手法がHadoopでの文字列解析など大量のデータを処理する場合に有効性があると説明。CPU負荷が低減できるため、処理自体の高速化と同時にシステム全体としての高速化が可能になると結論付けている。
また、LinuxのコアライブラリをFPGAで、それ以外の処理をCPUで実行させるという仕組みを構築し、OS内でアクセラレータを利用すれば、インターフェースに従来の環境の互換性を保持でき、既存のアプリケーションをそのまま利用できるとしている。
今後、今回検証した文字列分割処理に加えて、文字から数値への変換、大文字と小文字化、部分検索などの文字処理機能をFPGAで実行できるようにし、これらの機能を組み合わせて処理することを検討していく。文字列処理以外の暗号化や圧縮と展開などの処理にも活用を広げていく予定。