エンタープライズ・IoT領域でのFPGA活用に関する研究開発成果(1/3)
FPGAを活用した文字列分割処理の高速化に関する研究開発成果
マイクロソフト社CEOサティア・ナデラ氏が、Microsoft Ignite Conference2016の基調講演で、AzureのすべてのコンピュータノードでFPGAをサポートすると発表しました。また、インテル社が、2020 年までに1/3 のクラウドを構成するサーバーにはFPGAが搭載されると述べるなど、現在、FPGAを利用した高速化や採用拡大が注目を浴びています。
本格的なIoT時代到来を迎えつつある現在、爆発的に増加するデータに対する課題を解決するために、ミラクル・リナックスが持つデバイスドライバの開発を始めハードウェア領域の知識からオペレーティングシステムまで開発/サポートできる技術力を中核にして、FPGAを活用し、文字列の並列処理および自社製のフレームワーク(Volvox)を開発することでIoTゲートウェイやデータセンターのサーバーにおける文字列分割処理に対して約10倍の高速化を実現したことをドキュメントとして公開しました。
- IoT機器に適したFPGAを用いた文字列分割の高速化(日本語版)
- Accelerating string tokenization with FPGAs for IoT data handling equipment(英語版)
解説
本研究の背景
IoT(Internet of Things)機器の数は、2020年までに約208億台に達し(ガートナー社「Gartner Says 6.4 Billion Connected ”Things“ Will Be in Use in 2016, Up 30 Percent From 2015」)、あらゆるモノがインターネットにつながっていく未来が近づいています。
また、情報通信白書(平成27年版) では、今後爆発的にデータ量が増加していくことが述べられています。
『IoT時代には、人間を含めた現実社会に存在するあらゆるモノの形状や状態、動作がセンサーにより自動的にデジタルデータ化され、ネットワークに流入するようになる。センサーを通じて取得される情報は、網羅性と多様性を高めつつあるとともに、取得頻度のリアルタイム化も進みつつある。その結果、ネットワークを流通するデータ量は、人がマニュアルでデータを入力していた時代とは比べ物にならないほど増大すると予想されている。』
クラウドやデータセンターでは、これらをデータを活用するために、IoT機器やIoTゲートウェイからの大量のデータを処理する必要があります。それ以外にも、テキスト処理を大量に実施する機会が多くあります。例えば、Hadoopによる収集データの分散バッチ処理、自然言語の構文解析、AI (Artificial Intelligence) との対話、多量のサーバーのログ解析などです。
また、IoTゲートウェイといわれるエッジサーバでデータを機器から収集し、集約、フォーマット変換、不要なデータの破棄などの前処理も行ってから、効率的にデータをクラウドやデータセンターに送信することで、高速にテキスト処理をIoTゲートウェイで行うことも検討が進んでいます。
このような背景から、今後、文字列を効率的に扱うことはより重要になると考えています。
課題解決の方針
そこで、ミラクル・リナックスが考えるソリューションが、FPGA(Field Programmable Gate Array)を活用することです。FPGAを利用することで、ユーザーが目的に応じて回路を構成でき、高い性能と電力効率を得られることを期待されています。
しかし、一般的なソフトウェアエンジニアや運用管理者がFPGAを使いこなすことは難しいとされています。その理由には、FPGAを用いた設計には、デジタル回路の知識、システムバスやOSなどのコンピュータに関する広範な知見が必要であり、アプリケーションプログラムが、構築されたFPGA内の回路を使用するように新規開発または修正を行う必要もあるからです。
そのため、ミラクル・リナックスは、GNU C Libraryのような基本的なライブラリからFPGAを透過的に使用するOSを提供することで、これらの課題を解決することを計画しています。
FPGAを透過的に使用するOSを提供するメリット
アプリケーションの修正が不要であるため、FPGAの知識がなくても、簡単にメリットを得ることができます。
FPGAを搭載したXeonやARM SoCが今後幅広く提供される方向のため、FPGAを透過的に使用できる両CPUで動作するOSを提供した場合、IntelプラットホームでもARMプラットホームでも実現可能です。
今回、まず第一歩として、テキスト処理の高速化に取り組みました。