自由に設計できる集積回路であり,
FPGAのメリットは圧倒的な効率の良さ
- ――ドワンゴでFPGAを使った開発を進めていると伺いました。どのようなプロジェクトなのでしょうか。
小嶋:書き換え可能な集積回路であるFPGAを利用した開発を進めていて,
その用途の一つとして考えているのが動画のエンコードです。現状は汎用のCPUを使っていますが, 汎用CPUでは計算量的に効率が良くないことをFPGAで実現していきたいと思っています。またFPGAはさまざまな用途に使えるので, たとえば現在ホットな機械学習などの分野に応用することも視野に入れています。実際, ドワンゴには機械学習をやっているチームもあるので, そういったところにもFPGAを活用するノウハウを展開し, 複合的にFPGAを使っていけるようにしたいですね。 - ――FPGAを利用することにより,
どういったメリットが生まれるのでしょうか。 小嶋:わかりやすく言えば,
CPUと比較して効率良く処理できることです。たとえばクロック周波数が3GHzのCPUを使って処理している内容を, FPGAのエンコーダであれば100MHzとか200MHzで処理できます。CPUでソフトウェア的に処理すると, まずメモリからデータを取得してエンコードするという流れになりますが, ハードウェアによる信号処理系の回路は右から左に流れていく間に処理が行われる, つまり無駄なデータの行き来がないので非常に効率が良いというわけです。 - ――FPGAを使った開発を検討することになったきっかけを教えてください。
小嶋:コーデックがどんどん複雑になっていて,
汎用CPUとソフトウェアで処理するのは限界に近づきつつあると感じています。またCPUのクロック周波数も大きく上がらない状況になっていて, より効率的に処理することを考えたときにFPGAという選択肢が浮かびました。 - ――映像のエンコードに絞れば,
すでにハードウェアエンコーダは既製品も存在していると思いますが, それを使うという判断にはならなかったのでしょうか。 小嶋:既存のハードウェアエンコーダは,
私たちのサービスの特殊性にマッチしていない部分があります。市販されているチップの多くはテレビ放送用であり, 放送局のニーズに合わせて開発されているため, インターネット上で多数の映像を配信するという我々のサービスが求めるものと異なるんですね。さらに, オリジナルの工夫を盛り込みたいと考えても反映しづらく, 自分たちで作ることにしました。それによってサービスに密接に結び付いたチップを作り込める点がメリットだととらえています。
インフラコストの大幅削減も可能に
- ――現状のプロジェクトはどの程度進んでいるのでしょうか。
小嶋:最初のプロトタイプは8割程度完成しています。ただ,
あくまでもプロトタイプなので, 実際の運用までにはそれなりのハードルがあると思っています。実環境でいつ使い始めるかは何とも言いにくいところですが, もうしばらく時間がかかるというのが正直なところです。 - ――FPGAを利用することで,
具体的にどのようなメリットが生まれるのでしょうか。 宮崎:FPGAによって処理を効率化することができれば,
サーバの台数を削減することが可能になり, それに伴って電力コストも抑えられます。コストを削減できれば, その余剰分をサービス開発やサービスそのものに費やせるので, たとえばユーザーの方々にもっと高画質・ 高ビットレートの映像を配信するといったことが可能になります。 - ――実際にどの程度サーバ台数を減らせそうですか。
小嶋:画質などの要素も絡むので,
どうするのが最適なのか検討しているところです。またFPGAの代表的なメーカーであるアルテラが2015年にインテルに買収されたことで, 業界自体も大きく変わりつつあります。そうした状況も見極めつつ, どのタイミングでサービスに投入するかを判断することになると思います。 宮崎:私たちがやりたいことに対して考えると,
サーバを現状の1/ 2程度まで減らしたいなという思いはあります。ただ, そこまで行かなくても, 私たちのインフラへの投資はかなりの規模なので, たとえば2割削減できるだけでも大きな効果が得られると考えています。 - ――FPGAだからこそ実現できるサービスとしては,
どういったものが考えられるでしょうか。 小嶋:ネタばれになるのでなかなか言えないのですが,
実はFPGAには効率以外にもレイテンシが短いという大きなメリットがあります。その特性を利用したサービスを生み出せる可能性はあります。ネットワークからまずメモリに入ってCPUで処理するよりも, ネットワークから入ってきた瞬間に何かができる。それによって現状では難しいサービスを実現し, 未来の可能性を広げたいですね。