KUMICO

COLUMN

富士ソフトのエバンジェリストが語る。~組み込み開発の発展におけるFPGAの広がり~

組み込み開発の仕事に携わり15年強。私は入社当時から約7年間お客様の製品開発に携わる業務、いわゆる受託開発に従事していた。

初めの開発で利用したハードウェアはメーカー独自のDSPを用いたものであり、右も左もわからない学生上がりの、さらには経営学部の文系上がりの私がいきなりC言語と16bitアセンブラを書けと言われ諸先輩方に毎日のように怒られながら必死で食らいつき、深夜・休日問わず開発と自己啓発に明け暮れプライベートはないようなものだった。当時は激務ながらも自己の成長は自他ともに感じるものがあり、2年間こなすとある程度先輩から任されるようになった。組み込み開発に従事する自分の根底がここにあると今でも思っている。3年目、この経験を経た成長を認めていただいたおかげか、とあるメーカーへの常駐を私1名で、そして現地でのパートナー様1名の体制で立ち上げることを言い渡された。ここではアナログデバイセズ社のDSP搭載マイコンを用いたネットワーク機器開発を行い、最終的には20名のプロジェクトへ拡大となり、自社へ持ち帰れるほどの大きなプロジェクトとなった。
その後受託開発を離れ、組み込みに纏わる自社製品、ソリューションの開発に携わるようになり、そこで出会ったのがFPGAである。当時の自社製品としての先駆けが、アルテラ社(現インテル社)のCyclone® IIを搭載し、SD、USB、Ethernet、Serialなどの周辺ペリフェラルを評価できるFPGA評価ボードである。この開発をきっかけにFPGA関連の自社プロダクトの開発が盛んになり、アルテラ社のソフトCPUコアNios® IIプロセッサー上で動作するTOPPERS/ASPカーネルやLinuxをポーティング、またUHS-I対応SDホストコントローラIPコア、Androidの快適動作をアクセラレートするグラフィックIPコアを開発するなど、製品開発に関連する技術、マーケティング、営業の一折の業務を経験してきた。今になってよくもまぁここまで未経験の分野をできるようになったものだと感心する。
前置きが長くなってしまったがそろそろ本題に入りたいと思う。このような経験をしてきた私は、昨今の組み込み開発は少しずつ変化してきたなと感じている。本来組み込み開発とは少ない資源の中で以下にシステムを実現するかを追求する、まるでアフリカ象を冷蔵庫に詰め込むような世界である。その世界から今や飛び立ち、よりハイスペックなプロセッサーやハードウェア、システムの構成への探求が高まりつつある傾向を感じざるを得ないい。そこへ求められる一つの解がFPGAであると感じている。振り返れば、そのターニングポイントは2011年ではないかと考える。

 2011年、FPGAの大手メーカーであるアルテラ社、ザイリンクス社(*1) はCPUコアであるARM® Cortex™-A9 MPCore™ のハードIPを内部に搭載した、FPGAをリリースした。これまでCPUとFPGAを別々のチップで設計してきたものが1チップになって登場したのである。ARM® Cortex™-A9 MPCore™ プロセッサーは800MHz動作、またデュアルコアでの動作が可能となり、これまでの組み込み開発で主力として使用されてきた300~400MHzクラス、はたまた100~200MHzクラスのCPU、プロセッサーを利用しているユーザが、ゆくゆくは高度なシステムを求めるであろうと採用されたものだと聞いている。また当時ARMコアが急速に台頭し組み込み開発で利用されるCPU、プロセッサーもARMコア以外の選択肢が余りないという状況になりつつあったことも一因かもしれない。実際にはOSやミドルウェアとしてのプラットフォームへオープンソースのLinuxを利用したい、言わばソフトウェアのライセンス費を抑えたい、開発の納期を縮めたいというニーズも多くなってきていたためであろう。
 “ゆくゆくは高度なシステムを求める”、CPUコア内臓のFPGAが登場する理由となったこの市場観はなにに基づくものなのだろうか。私は「ビッグデータ」というバズワードが起因だったのではないかと考える。諸説あるが「ビッグデータ」というワードは2010年ごろから、WEB、新聞、雑誌などのメディアに登場し、あれよあれよと広がった。“ビッグデータを制する者が生き残る”などとも言われるほどにであった。「ビッグデータ」とは何なのか、これには明確な答えはないようなのだが、私はインターネットの爆発的な普及とスマートフォンが牽引したIT技術の進歩により、ありとあらゆる人、そしてモノがデータを流し、それを利用すること— これをビッグデータというのではないかと思う。そう、この世界は今我々が必死でもがき描く、Internet Of Things(IoT)という世界である。

 今IoTの世界で課題となっていることは何か。それはデータセンター、サーバー、クラウドサイドでのアクセラレーション(負荷軽減、高速化)である。すべての人・モノのデータ通信がMachine to Machine(M2M)の概念で、エッジデバイスでの完結ができればそれに越したことはないが、すべてがエッジコンピューティングで出来るわけではない。基本的にはエッジデバイスは消費電力に非常にシビアであり、データセンター、サーバー、クラウドサイド側で利用されるような高性能なハードウェアは利用できない。ましてエッジコンピューティングは昨年あたりから主立って叫ばれ始めたものであり、実現に対して具体的で最適なプランがあるかというとまだそうではないと私自身は理解している。つまりデータセンター、サーバー、クラウドサイドでの適切な処理と組み合わせることがIoTでは必要不可欠な要素ではないだろうか。
ビッグデータを扱うサーバーの多くは、データセンターにある設置されているものであろう。例えば空調完備のクリーンルームにあるラックが多数刺さる大型のラックマウントサーバー、そこには高周波のプロセッサーやGPUが利用されており、消費電力、発熱量はお察しの通りである。データ量の爆発に伴い、そのサーバーの処理性能や通信速度、また大容量のストレージが必要となるだろう、今よりも大掛かりな構成がいくつも必要になるだろう、設備投資も増加する一方である。大なり小なりオンプレミスもクラウドも同様である。
具体的に言うと、CPUの動作クロック数が3GHzクラスのデバイスを使い処理しているものが,FPGAを利用すると100~200MHzの動作クロック(*2)で処理できるため消費電力、そして発熱量も低減することが可能となる。またCPUではソフトウェア処理になるため基本的にはシーケンシャル処理となる。AMP、SMPといったマルチコアプロセッサを利用した難しいソフトウェア設計を行うことでそれを補完することはできるかもしれないが、メモリなどの周辺デバイスへのアクセスなどを考えると、FPGAのハードウェアレベルでの並列計算処理性能の効率にはなかなか届かないだろう。

2017年、インテル社が167億ドルでアルテラ社の買収を実施したことはまだ記憶にも新しい。インテル社のプロセッサーとFPGAを組み合わせることでIoT時代に即したデータセンター向けのソリューションが提供できると確信したからであろう。インテル社からはその後データセンター向けのFPGAアクセラレーション・カードとして、インテル® プログラマブル・アクセラレーション・カード(Intel Programmable Acceleration Card)、通称PACがリリースされた。PACはDELL EMC社をはじめとするOEMパートナーからサーバーに実装された状態で提供され、ソフトウェアの開発者もFPGAのハードウェア開発者もスムーズにアクセラレーション開発を行うことができる環境も用意される。
一方ザイリンクス社もAmazon EC2 F1 インスタンスを提供している。開発者はFPGA Developer AMIを利用することで、AWSクラウドサーバーに搭載されているFPGAアクセラレータ・カードの開発ができ、クラウドでのアクセラレーションの開発にすぐに取りかかることができるのだ。またFPGAアクセラレータ・カード自体の提供もしており、データセンターのワークロード向けにALEVO™ を提供している。もちろんこちらも開発環境は提供される。
双方の開発環境は従来の電子回路設計の技術を保有したFPGAの開発者、いわばハードウェアエンジニア向けではなくソフトウェア開発者もアクセラレーションの開発ができるように準備されていることで開発リスクを低減しながら、いますぐにアクセラレーションの開発をスタートすることができるのだ。

また3rdパーティーであるFPGAボードベンダーからもFPGAアクセラレーションカードが着々とリリースされている。米国BittWare社、米国Nallatech社はインテル社製FPGA搭載カード、ザイリンクス社製FPGA搭載カードの双方を提供し、台湾TUL社はザイリンクス社製FPGA搭載カードを提供するなど市場に対する期待は大きい。
同様にIPコアベンダーも様々なFPGAアクセラレーションカードに実装するコアテクノロジーをリリースしつつある。スワーム64(Swarm64)のデータベース分析、レビックス(Levyx)の財務リスク分析など今後もデータセンター、サーバー、クラウドサイド向けのアクセラレーションが出てくるだろう。
これらターゲットのアプリケーションは、ゲノム、ファイナンス、ビデオプロセッシング、またそれらのAI(人工知能)・ディープラーニング(機械学習)との活用などがある。
一例だが、ファイナンスの世界ではリアルタイムでの高頻度取引(High-frequency trading, HFT)で、CPU処理が追いつかず課題となっている。マイクロソフト社では自社の検索エンジンBingをFPGA上で稼働させ、そのAIも活用しインテリジェントなサーチ結果を提供している。Baidu社では自社のパブリッククラウドへFPGAでのアクセラレーションを取り込みディープラーニングやセキュリティ分野向けにサービス展開をしている。

CPUだけでは性能が追い付かない世の中がもう来ている、そして目前にせまる次世代の組み込み開発では十分に対応できない状況がある。これは紛れもない事実である。今回は私が長年携わってきた経験とFPGAに感じる(期待する)ポテンシャルを根源に、一つの解としてFPGAを挙げた。もちろんGPUでの課題を解決する方法もあるが、FPGAの書き換え可能かつIPコアが選べるという最大限のメリットは実現することはできない。例えば、ISAがオープンソースになっているRISC-Vベースのコアであれば、ベンダーやデバイスの制約を受けることなく、CPUコアさえも自由に選べる時代になっている。日々変化していく世の中においてソフトウェアレベルだけでなく、ハードウェアレベルでの変更ができるポテンシャルを保有しておくことは最大のメリットではないだろうか。その開発に取り掛かる環境はもうReady状態にある。

*1 50音順で記載
*2 利用するFPGAデバイス、設計により動作周波数をどこまで出せるのかは異なる

関連製品・サービス
BittWareのFPGA開発ボード
TUL CorporationののFPGA開発ボード
HiTechGlobalのFPGA開発ボード
DELL EMCのPowerEdgeサーバー

個別相談も承っております。下記よりお申し込みください。

個別相談会申し込み

関連記事

OTHER COLUMN

MORE  

まこちゃんブログ

NEWS

MORE  

PARTNER

  • Intel
  • Xilinx

お探しの組み込み製品はキーワードで検索!