エンタープライズやIoT領域でのFPGA活用に関する研究開発成果を公開
~ 文字列分割における高速処理の仕組みを開発し、CPU 利用時に比べ最大 10 倍の高速化を実現 ~
2016 年 12 月 1 日
ミラクル・リナックス株式会社
ミラクル・リナックス株式会社(本社:東京都新宿区新宿、代表取締役社長:伊東 達雄 以下、ミラクル・リナックス)は、オープンソースソフトウェアに関連したさまざまな技術の研究開発を行っており、その一環として本日、FPGA*1 を使った文字列分割処理の高速化についての研究開発成果を公開しました。
本研究開発では、テキスト処理における基本機能のひとつである文字列分割を高速に行うために、FPGA 内部での並列的な分割アルゴリズム、および、効率的にホストコンピュータと FPGA 間でデータ転送を行うフレームワークを開発しました。この 2 つの機能を利用して大量テキストログのバッチ処理を想定したベンチマークを行った結果、CPU 利用時に比べ、最大 10 倍の高速化に成功しました。
【本研究開発の背景】
IoT(Internet of Things)の実用化が急速に進みつつある現在、データ量が増大し、IoT 機器や IoT ゲートウェイからの大量データを処理することが課題になっています。ミラクル・リナックスは、デバイスドライバの開発を始めハードウェア領域の知識からオペレーティングシステムまで開発・サポートできる技術力を中核にして、IoT ゲートウェイやデータセンターのサーバにおいて FPGA を活用した文字列分割処理の高速化に着目しました。
また、FPGA はエンタープライズ分野でも幅広く活用されてゆくことが見込まれています。FPGA 開発大手のアルテラ社がインテル社傘下となり、インテル社は、アルテラ社の FPGA 製品と Intel® Xeon® プロセッサを組み合わせた統合製品を提供する計画であると発表しています。しかし、FPGA を用いた設計には、デジタル回路の知識、システムバスや OS などの広範な知見が必要な上、アプリケーションなどの既存の資産を FPGA で動作させるにはアーキテクチャの変更などの大幅な修正が必要となり、一般的なユーザーにとっては FPGA 活用の障壁があります。
ミラクル・リナックスは、GNU C Library のような基本的なライブラリから FPGA を透過的に使用する OS を提供することで、これらの課題を解決できると構想しました。
【ベンチマーク概要】
Linux OS のコアライブラリを FPGA でオフロード *2 させることで、アプリケーションから透過的に FPGA を利用でき、ユーザーは効率的に処理を行うことができます。ミラクル・リナックスでは、大量のテキストログのバッチ処理を想定して、C 言語の strtok 関数 *3 に相当する機能を FPGA で実行し、ベンチマークを行いました。
FPGA を使って文字列分割の処理をオフロードさせた結果、CPU(Intel Core i7-4790 3.6GHz)での処理に対し最大 10 倍の速度を実現できました。転送処理のオーバーヘッドによりデータ量が数 kB までは処理時間がほぼ一定で CPU よりも処理時間がかかっていますが、データ量が増え 1MB 以上になると CPU での処理に比べ約 10 倍の処理速度となりました。
これらのことから、Hadoop での文字列解析など大量のデータを処理する場合は今回開発した方式での処理が有効であることがわかりました。さらに、CPU 負荷が低減できるため、処理自体の高速化と同時にシステム全体としての高速化が可能になります。
Linux OS のコアライブラリを FPGA で、それ以外の処理を CPU で実行させ、OS 内でアクセラレーターを利用することでインターフェイスは従来の環境と互換性を保つことができ、既存のアプリケーションをそのまま利用できます。
【今後の予定】
ミラクル・リナックスは、今回検証した文字列分割処理に加えて、文字から数値への変換、大文字・小文字化、部分検索など、多くのプログラム言語やライブラリがサポートする文字処理機能の FPGA での実現および、これらの機能を組み合わせた処理を行うことを検討しています。さらに文字列処理以外にも、暗号化や圧縮・展開などの処理にも活用を広げていく予定です。
今後、ミラクル・リナックスは、IoT デバイスの増加による大量データ処理のニーズやインテルプロセッサへの FPGA の統合に向けて、FPGA を活用してあらゆる Linux アプリケーションを改変なしで高速化し、またエンタープライズ分野でも FPGA 活用を推進してゆきます。
*1 FPGA(Field Programmable Gate Array)とは:ユーザーが目的に応じてプログラム可能な集積回路(LSI)。高い性能と電力効率を得られることが期待される。
*2 オフロードとは:特定のデータ処理を行うハードウェアをコンピュータに装着し、CPU の負荷を軽減することで、システム全体の処理性能を向上させること。今回の場合は、処理の一部を CPU の代わりに FPGA が肩代わりすること。
*3 strtok とは:文字列を区切り文字で区切ってトークンに分解するための C 言語の関数。
■ミラクル・リナックス株式会社について
ミラクル・リナックスは、「日本品質」の技術およびサポートにより、オンプレミス、クラウド、組込みのあらゆる領域で活用できるエンタープライズ Linux OS を提供しています。通信事業や公共、金融事業など幅広いエンタープライズ領域での採用実績に加えて、Linux のカーネル技術をさまざまな分野に応用し、カーナビゲーション、自動販売機、医療用端末、映像配信機器など用途別専用機器や、デジタルサイネージ用プレイヤーにも組込み Linux OS の実績を伸ばしています。
さらに、オープンソースベースの企業向け統合監視ツールやバックアップソフトウェアを開発しているほか、統合運用ソフトウェアを開発し、オープンソースとしてコミュニティに公開するなど、オープンソースの活性化に向けた取組みも積極的に行っています。
* MIRACLE LINUX の名称およびロゴは、ミラクル・リナックス株式会社の登録商標です。
* Linux は、Linus Torvalds 氏の日本およびその他の国における登録商標または商標です。
* その他、記載されている会社名、製品名は、各社の登録商標または商標です。