エンタープライズやIoT領域でのFPGA活用に関する研究開発成果(3/3)
ミラクル・リナックスは、エンタープライズやIoT領域でのFPGA活用について研究開発を行い、その成果を公開しています。文字列分割における高速処理の仕組みを開発し、CPU利用時に比べ最大10倍の高速化を実現しました。
解説
評価環境
FPGAボード
- アルファデータ ADM-PCIE-7V3
- Xilinx Virtex-7 XC7XV690T
- PCI Express Gen3 x8 (8GT/s)
ホストマシン
- CPU: Intel Core i7-4790 3.6GHz
- RAM: 8GBx4
- OS: CentOS 6.8 (x86_64)
評価結果
研究ドキュメントでは、2つの評価結果を紹介しています。9つのサイズの違う英語ドキュメントを利用して、処理速度の比較を3つのケースで行いました。
- FPGAとVolvoxを利用した処理
- FPGAとOpenCLを利用した処理
- CPUのみを利用した処理
上記の処理速度を比較した結果、以下の結果が明らかになりました。
- データサイズ (1MB以上) が大きくなるとFPGAを活用した手法が、CPUに比較して、約10倍高速である
この他にも、Cライブラリ(glibc) の関数のstrtok() と、これに相当する機能 strtok_v()の性能を調べています。
性能結果を分析すると、全体的な結果は、strtok()をCPUで処理した実性能と、FPGAとVolvoxを使用した場合のstrtok_v() の性能がほぼ合致していることが確認できました。これによって、ミラクル・リナックスが考える透過的にCライブラリ(glibc) のようなOSの機能を利用するというコンセプトが実現可能であることを確認できました。
今後の予定について
ミラクル・リナックスでは、今回、自社製フレームワークVolvox とFPGAを活用することで、文字列処理をCPUによる処理に比較して約10倍高速できること、また透過的にOSの機能を利用するというコンセプトが実現可能であることを確認できました。
今回検証した文字列処理は、分割のみでしたが、今後は、文字から数値への変換、大文字・小文字化、部分検索など、多くのプログラム言語やライブラリがサポートする文字処理機能のFPGAでの実現および、それら機能を組み合わせた処理を行うことを検討しています。さらに文字列処理以外にも、暗号化や圧縮・展開などの処理にも活用を広げていきたいと思います。
今後、ミラクル・リナックスでは、FPGAを活用して、一般のソフトウェア開発者や運用担当者が簡単に利用できるオペレーティングシステムの開発を目指します。
フィードバックのお願い
こちらの研究開発に対して以下のフォームへ、ぜひコメントをお寄せください。
(ご連絡先・お名前は任意記入です)
研究開発についてのお問い合わせ
本研究開発についてのご相談やご質問は、「お問い合わせフォーム」よりお気軽にお問い合わせください。