IoT NEWS

IoTのデータ利活用を加速する、インテルのFPGAアクセラレーション・ソリューション ―インテル 山崎大輔氏インタビュー

近年、IoTやAIの分野において、「FPGA」という言葉を聞くことが増えてきた。「FPGA(Field-Programmable Gate Array)」とは、顧客の元に渡った後でも、ハードウェアの回路設計を自在に書きかえられる集積回路のことだ。

回路設計を書きかえられると、どのようなメリットがあるのだろうか。たとえば、「検索エンジン」を動かす場合。日中は多くのユーザーが利用するためコンピュータはフル稼働になるが、人々が寝静まった夜中には、コンピュータはその能力を持て余すことになる。そうした場合、全く異なる用途にそのリソースを振り分けることができれば効率的だ。しかし、通常のマイコンではハードウェアの回路設計を書きかえられないので、それが難しい。

また、FPGAは演算のスピードがマイコンよりずっと速い。マイコンの場合、単一の命令を出すと、それぞれの小さな機能に分散して処理を行う。そのため、クロック数(サイクル)が多くなり、演算に長い時間がかかる。

たとえば、「2×3+5という計算をせよ」という命令を出した場合、「2を入力」→「3を入力」→「2と3を加算」というふうに、サイクルに分けて逐次的に演算を行う。しかしFPGAは専用回路なので、1サイクルで「2×3+5」の計算をいっきょに実行することができる。だから速い。

こうした優れた特徴をもつFPGAは今、IoTやビッグデータ解析に欠かせない技術として注目を集めている。それは、リアルタイムで刻々と集まってくる膨大なデータを処理していくために、高速に計算ができるコンピューティングパワーが必要だからだ。IoT時代の「アクセラレーター」として、FPGAは期待されている。

インテルは2015年、FPGAメーカーのアルテラを買収し、FPGA事業を拡大してきた。これまで、ハードウェアの回路を設計・変更するための専門的な知識が顧客に求められることが、FPGAの欠点の一つだった。そこで、インテルは「インテル® FPGA プログラマブル・アクセラレーション・カード(PAC)」を製品化した。購入した「インテル® FPGA PAC」をサーバーに差し込み、「データ分析」や「人工知能」など用途別のソリューションをダウンロードするだけで、コンピュータの高速演算が可能な体制を構築してきたのだ。

本稿では、インテル® FPGA PACの特徴や各ソリューションの詳細について、インテル株式会社 プログラマブル・ソリューションズ営業本部 データセンター&コミュニケーション 統括部 事業開発マネージャーの山崎大輔氏に話を伺った(聞き手:IoTNEWS代表 小泉耕二)。

データの有効活用には、コンピュータのさらなる演算スピードが必要

IoTNEWS 小泉耕二(以下、小泉): 御社でFPGA事業に力を入れてきた背景について教えてください。

インテル 山崎大輔氏(以下、山崎): インテルは2015年に、FPGAメーカーのアルテラを買収しました。その後、組織体制を整え、ソリューションを充実させてきました。それから4年が経った今、「だいぶカタチになってきたな」と手応えを感じているところです。

きっかけは、IoTやビッグデータ解析への期待でした。今、世界では大量にデータが増えています。現在、世界にあるデータの半分以上が、この2年以内につくられたデータであると言われています。

しかし、データの活用はまだまだ進んでいるとは言えません。ある最新の調査によると、世界に存在する大量のデータのうち、2%しか有効に使えていないのです。その理由の一つに、「コンピュータの演算スピードが追いついていない」ということがあります。

そこで、注目されているのが、「アクセラレーター」と呼ばれる、高速演算を特徴とする専用デバイスです。ディープラーニングで力を発揮するGPUも、アクセラレーターの一種です。私たちも、FPGAのアクセラレーターを、「インテル® FPGA プログラマブル・アクセラレーション・カード(PAC)」として提供しています。この2年間で、3つの製品を発表しました(下の写真)。どれも、サーバーにさしこむだけで使えるタイプです(製品ページはこちら)。

IoTのデータ利活用を加速する、インテルのFPGAアクセラレーション・ソリューション ―インテル 山崎大輔氏インタビュー
左下:「インテル® FPGA PAC」(標準版、インテル® Arria 10 GX FPGA搭載)、上:「インテル® FPGA PAC D5005」(次世代版、標準版の2~10倍の性能)、右下:「インテル® FPGA PAC N3000」(ネットワーク向け)

小泉: FPGAはハードウェアを書きかえられるので、さまざまな用途にリソースを転用できるわけですね。

山崎: はい。たとえば、弊社のパートナー企業に、「WASAI Technology」という台湾のFPGAソリューションベンダーがあります。同社は、ビッグデータ解析用(「Apache Hadoop」、「Apache Spark」)とゲノム解析用のソリューションをそれぞれ提供しています。

ハードウェアはどちらも同じですが、回路設計がそれぞれの用途に応じて書きかえられているのです。FPGAの特徴を活かしたわかりやすい事例といえます。

次ページ:FPGAのよさを活かした、「インテル FPGA PACソリューション」

FPGAのよさを活かした、「インテル FPGA PACソリューション」

山崎: マイクロソフトでも、インテルのFPGAを長年使っていただいています。同社ではサーバーにFPGAのカードをさしこみ、時間帯でアプリケーションを使い分けています。

たとえば日中では、検索エンジン「Bing」のアクセラレーターとして使います。しかし夜になると検索する人が減り、ワークロードが下がりますから、その分は夜のうちに処理したい別のデータの解析などにリソースを振り分けるのです。

小泉: 「インテル® FPGA PAC」を使ったソリューションには、どういう種類のものがあるのでしょうか。

インテル® FPGAを活用したアクセラレーション・ソリューション一覧(ホームページより)

山崎: ソリューションの開発は、パートナー企業と一緒に進めています。いくつか事例をご紹介します。

一つは、「データ分析」です。データベースの種類ごとにソリューションを提供しています。たとえば、Swarm64が提供している「PostgreSQL」というデータベースのソリューションでは、最大で55倍の分析パフォーマンスが出せます(上の図)。

このソリューションを使うと、データの入力から結果の出力までの平均的なパフォーマンスにおいては、その処理にかかる時間を約5分の1に短縮できます。これはつまり、データセンターのサイズが5分の1ですむ、ということになります。

小泉: それは相当大きな違いですね。他はどうでしょうか。

山崎: 次は、「メディア処理」です。最近では、スマートフォンやカメラで撮った写真をSNSに投稿することが、あたりまえになってきていますね。実は、そこで投稿する際には、かなり高度な画像処理がされています。

ユーザーはカメラやスマートフォンで写真を撮り、好きなサイズで画像をアップロードします。それを今度は、複数の人が異なるデバイスで閲覧します。その際、システム側はそれぞれの人が見るデバイスに合ったサイズに画像を加工して送信する必要があります。その画像処理が実は非常に重く、速やかに画像を公開するには、アクセラレーターの力が必要です。たとえば、CTAccelが開発したソリューションを使うと、従来の3~4倍の速度で処理できます。

小泉: 人工知能(AI)についてはどうでしょう。

山崎: 人工知能については、インテルが自社でソリューションを提供しています。使い方は簡単です。インテルとして、「OpenVINOTM ツールキット」というオープンな画像認識(ディープラーニング)のソフトウエア開発ツールを提供しています。Webページから無料でダウンロードできます。そこで、使用するハードウェアとしてFPGAを選び、サーバーにPACをさしこむだけで、画像認識のアプリケーションを利用できます。

次ページ:FPGAの得意、不得意は?

FPGAの得意、不得意は?

小泉: データの高速処理であれば、FPGAはどんな場合でも対応できるのでしょうか。FPGAにも得手なこと、不得意なことがあるのでしょうか。

山崎: 得意、不得意はあります。ですから、使い分けが大事になります。よく比較の対象になるのがGPUです。一つわかりやすい例があります。最近、筑波大学がつくった、FPGAとGPUを両方搭載したスーパーコンピュータ「Cygnus」(※)です。

FPGAとGPUを搭載したスーパーコンピュータ「Cygnus」(筑波大学)について

GPUは、単一の命令を高い並列性で実行できることが強みだ。しかし、実は欠点もある。プログラムの中に分岐命令があると、その命令の条件を満たす部分だけが稼働し、他は停止する。その結果、全体として計算が遅れてしまう。また、他のGPUと接続する場合には通信が発生し、演算以外の負荷が大きくなってしまう。

一方、FPGAは演算回路そのものを書きかえられるため、GPUがもつこれらの欠点を補完できる。また、弊社のFPGAチップは、高速光通信のインターフェースを持っているため、FPGA間での高速通信を効率的に行うことが可能だ。

山崎: また、IoTの用途においては、「大量のデータを短い時間で処理できる」というFPGAの強みが活きてきます。FPGAは、アプリケーションに応じて専用の回路を都度構成できますから、最小のクロック数でデータ処理が可能です。たとえば、「2×3+5」という算術計算で、GPUやCPUのような汎用のマイコンを使うと、7サイクル(クロック)かかります。FPGAは1サイクルで演算が可能です。

小泉: 人工知能の用途では、クラウドで学習させたモデルを、特定のデバイスにデプロイして使用するケースがあります。そのように、学習済みのモジュールをFPGAにデプロイして処理することも可能ですか?

山崎: 可能です。弊社のソリューションの場合、クラウドでつくった学習モデルを、先ほどの「OpenVINOTM ツールキット」でダウンロードすれば、FPGA(インテル® FPGA PAC)がそのモデル用のアクセラレーターとしてコンフィグされて、動きだします。

インテル「OpenVINOTM ツールキット」の公式ページ

小泉: 製造業では、ロボットの自動化が進んでいます。産業ロボットのような微細な動きを制御することにおいても、FPGAが使えそうですね。

山崎: そうなのです。工場のように「遅延」が安全性に直結するような用途において、FPGAはとても期待されています。もともと、組み込みチップとして使われてきてはいるのですが、今後はさらに汎用的に使っていただけると思います。

産業ロボットの制御などで活きるFPGAのメリットは、演算が終わる時間が決まっていることです。専用回路ですから、何クロックで結果が出てくるかあらかじめ決まっています。

通常のプロセッサーだと、演算をそれぞれのノードに分散して処理しますから、別の計算でそのノードが使われているような場合は、完了する時間がわかりません。「大体は10ミリ秒ですが、1000回に1回は100ミリ秒かかるかもしれない」となります。それでは、安全性が求められる用途では使えません。何が起こっても必ず10ミリ秒で出力して、結果を保証できる。これがFPGAのいいところです。

小泉: FPGAが最近あらためて期待されているのは、大量のデータの処理が求められる今の時代、FPGAが武器として使えることに多くの人が気づき出したということが大きいのでしょうか。

山崎: そういうことになります。もともと組み込みの分野の方にとってFPGAはなじみのある技術ですから、驚かないかもしれません。ただ、クラウドの分野の方たちからすると、驚きがあると思います。「新しい世代のアクセラレーターが出てきたな」と感じていただけていると思いますね。

小泉: マイクロソフトのAzureやアマゾンのAWSなど、一般的なクラウドサービスにもFPGAは使われているのでしょうか。

山崎: 使われています。パブリッククラウドの中では、さきほどご紹介したマイクロソフトに加えて、アマゾン、Alibaba CloudがFPGAを利用しています。日本ではパブリッククラウドの利用に加えて、オンプレミスで自社のサーバーに使いたい、という企業さんも多いです。

小泉: 顧客からの問い合わせも増えている状況ですか。

山崎: というよりは、今はもう実装の段階に入っています。FPGAを使ったデモを見たり、説明を聞いたりする段階は終わり、各社さんはPoCの段階へ移行しています。今は水面下でPoCがどんどん進んでいますから、これからFPGAを使った新しい製品やサービスがどんどん世の中に出ていくと思います。

小泉: そうなのですね。昨今はIoT時代と言われながら、ウェブサービスに申し込みなどが殺到してページが開けない、というような事態も起きています。こうした課題も、FPGAが解決してくれそうですね。

山崎: そうなのです。ウェブサイトで遅延があると、「FPGAがあれば…」と思うときがよくあります(笑)。FPGAをさらに世の中に広めることが重要だと考えています。

小泉: これからが楽しみです。この度はありがとうございました。

モバイルバージョンを終了