FPGA 使え、って社長に言われた。さぁ、どうする? (1)

 Y 君は大学を卒業し、1 回の転職を経て、とある通信系中堅企業の開発事業部で日々エンジニアとして働いている。そんな Y 君を襲った出来事を通して FPGA について見ていきましょう。

FPGA 事業部の立ち上げ。でも、ちょっと待てよ。

 誰に感化されたのか、社長の年頭挨拶は冒頭より「次の時代は FPGA」、そして終わりには「新規事業部をこの春より立ち上げる」だった。同僚と自分の机に戻る道すがら社長に呼ばれた Y 君。社長室で受けた内示は、4月より FPGA 事業部の課長、とのこと。Y 君は、大学の卒業研究で FPGA を扱ったことがあるけど、逆にいうとそれだけの経験しかない。加えて、卒業してから 10 年以上も経過している。

 「よし、グーグル先生にでも聞いて FPGA の予習でもするか。」

 FPGA、製品、サービス、システム、・・・とページを閲覧していくと、Y 君の想像以上に FPGA の応用利用は広かった。また、FPGA は色々な分野で有用そうであることもわかってきた。

  • データセンタで使われている (ACRi20Q1.03)、
  • ロボットでも期待されている (ACRi20Q1.02ACRi20Q2.05)、
  • スーパーコンピューティング分野にも登場した (ACRiQ1.05)、
  • カスタム設計もできる。計測装置の設計事例もある (ACRIQ1.10)、
  • ディープラーニングや人工知能分野での応用も期待できる (ACRiQ2.03)、
  • 暗号計算なんかにも利用されているのか (ACRiQ3.07)、
  • それらの開発をサポートするツールまで用意されている (ACRiQ1.09ACRiQ2.04ACRiQ2.09)

 他にも、東京証券取引所で FPGA を利用複数の自動車メーカが FPGA を採用情報生物学における FPGA の応用利用FPGA ドローンの登場やそのベンチャー企業の登場、FPGA の火星進出 (ACRiQ2.03 (5 ) など調べきれないほどの情報が溢れていた。

 加えて、学生時代に耳にした FPGA 企業が全てなくなっていたことに気が付いてもっと驚いた。半導体業界の再編と AI ブームに絡み、FPGA 企業の高値買収合戦が続いているからのようだ。2015年に FPGA 大手の Altera 社を買収、そして、2020年10月、FPGA 最大手かつパイオニアだった Xilinx 社が AMD 社に買収されていた。たった10年かそこらで FPGA を取り巻く世界が大きく変わっている。これはもう浦島太郎だ。

 Y 君は FPGA の検索を続けていた。ただ、段々と、ある疑問が頭をもたげてきた。

 「結局、FPGA って何に使えばいいのだろう。」

 CPU のみ、もしくは CPU と GPU を使ったシステムの方が明らかに多い。FPGA が後発だからか?いや、GPU の方が FPGA より後発だろう。では、どうして話題ほどに FPGA 利用が広がってないのだろう。低消費電力で高性能かつ自由度が高いなら、例えば、スマホに FPGA を使ってもいいじゃないか。なになに、iPhone7/7 Plus などで使用実績はあるようだけど、これは何か違うよな。

 「わかったようで何もわかってないことがわかった。あー、どうしよう。」

 悩んだ Y 君は、大学在学時代の指導教員に電子メールを送り、FPGA について教えてもらうことにした。

FPGA を使って成功する新製品のアイデアをください。

Y 君:こんにちは。先生、お久しぶりです。

先生:これは、久しぶり。まぁ、そこに座って。元気にしてたかい?就職説明会以来だからかれこれ5年ぶりかな。

Y 君:はい、お陰様で。ありがとうございます。今回は急な相談で申し訳ありません。ただ、自分だけではどうにもならない新たな問題に直面し、できれば先生のお知恵を拝借したく。

先生:どれだけ力になれるかわからないけど、とりあえず聞いてみようか。じゃあ、ホワイトボードのある会議室に移ろう。会議室の場所は覚えているかな?ちょっとメールを片付けてからいくから先に行ってもらっていいかな。

Y 君:はい、大丈夫です。どうぞよろしくお願いいたします。

 (会議室へ移動) 

Y 君:改めて、お時間頂きありがとうございます。すぐ本題で申し訳ないのですが、また、FPGA の研究室を卒業した自分が質問するのも何なんですが、FPGA って本当に企業が扱う製品として使えるチップなのでしょうか?

先生:ずいぶんとぶっちゃけた質問だね。会社で何かあったのかい?

Y 君:実は、FPGA を使った製品に絡む新規事業部に配属されるのですが、FPGA について調べれば調べるほどわからなくなり困っています。FPGA は高性能、低消費電力、自由度が高い、ということは調べればすぐわかるのですが、具体的に何が良いのかが良くわかりません。Web 上で具体的な話となると FPGA 実装の話やソースコード、またシミュレーションのやり方など FPGA を使っていることを前提にした話ばかりです。初心者~中級者向けに FPGA の特徴をわかりやすく整理した情報源はないでしょうか。

先生:なるほど。そういう話なら、「FPGA の構成と原理」という本はかなりの良書だと思うよ。英語版、中国語版も出ていて参考書にもかかわらず何回も増版されたとも聞いている。

Y 君:はい。Amazon で購入し一通り読んではみました。ただ、できれば違った角度から先生よりお伺いしたく。

先生:OK、わかった。では、ちょっと質問いいかな。Y 君の会社って、通信系の中では IT 系に属すると思うけど、FPGA 製品はこれまでに扱ってないよね。

Y 君:はい。だから、新規に FPGA 事業部を立ち上げるんです。FPGA はブームだし、実は周辺国のベンチャーにじわじわとですが気圧されているので、ここらで一旗揚げておこう、と社長の鶴の一声で決まりました。

先生:なるほど。それでは、何か具体的な製品が既にあってその製品に FPGA を採用しよう、とかそういう話かな?

Y 君:いえ、それは全くないです。だから、新規事業部の立ち上げなんです。

先生:うーん。ずいぶんと前衛的な会社だね。個人的にはそういうの好きだけど、勢いだけでは難しいんじゃないかな。

Y 君:それは自分も気になっています。だから、FPGA について復習させて頂くとともに、先生のお知恵をぜひ拝借したく。

先生:うーん。とりあえず、FPGA という呪文というかバズワードから離れて、本業の通信系で取り扱っている製品の問題点を洗い出してみることから始めるのが良いかな。

Y 君:えっ。FPGA の部署なんですよ。新規事業部なんですよ。先生、それだと困ります。

先生:Y 君。在学中にも言ったかもしれないけど、FPGAは単なる道具 (チップ) でしかないよ。システムを作るなら CPU や GPU を使ったって良い。組み込みシステムなら、FPGA よりもマイコンや DSP の方が良いことだってあるだろう。また、費用対効果という観点から、そもそも IT を導入すべきでない場面だって存在する。FPGA を使うのが目的の事業部だから FPGA を使った新製品を作る、というのは本末転倒だよ。

FPGA はチートアイテムではありません。

先生:神が与えた万能チップ、とかあれば良いけど、FPGA は人間が製造した半導体チップでしかないんだ。FPGA を使ったらなんでも解決、という魔法ももちろん存在しない。

Y 君:先生の仰ることはもっともですが・・・。

先生:では、別の角度から話をしよう。FPGA を使わないとできないこと、を見つけるのはすごく大変なんだ。

Y 君:それは、どういう意味ですか。

先生:さっき、FPGA はただの半導体チップ、と言ったけど半導体チップというのは何からできているかな?

Y 君:トランジスタ、でしょうか。

先生:そうだね。そのトランジスタを組み合わせて、メモリができたり、演算回路ができたり、また、インターフェース用の回路ができたりする。それは良いよね?

Y 君:はい。わかります。

先生:では、FPGA で使われているトランジスタの一体何パーセントを利用者が演算そのものに利用できると思う?

Y 君:え、えーっと、効率が良いと言っているから 100% でしょうか。いや、流石にそれはないかな。でも 90% くらいでしょうか。

先生:はずれ。実は、50% も使っていないんだ。FPGA のインターコネクトアーキテクチャによっても異なるけど、FPGA によっては 20% 程度となるケースもあると思う。

Y 君:え、それは変じゃないですか。FPGA は非常に効率が良い、演算性能対消費電力も高い、って研究論文やブログなどでも言っているじゃないですか。

先生:そうだね。ただ、そこには演算回路のアーキテクチャ、パイプライン処理、とか上位の概念も加わっての話だ。ここで話をしているのは、純粋に、物理的なチップとしての比較だ。それでも、ベースラインとしてそれだけの違いがあるということは理解しておいた方がいいだろう。FPGA の上に実装されるアーキテクチャの話をすると長くなるのでこれは今度にし、トランジスタの数だけをまずは考えていこう。

Y 君:つまり、複雑なことは忘れて、トランジスタの数だけを考えて FPGA の特徴を浮き彫りにするということですね。

先生:そうだ。それでは話を続けてもいいかな。

Y 君:はい、わかりました。でも、FPGA と相性の良い演算アーキテクチャの種類や特徴にも興味があるので、またの機会にぜひ教えてください。

先生:わかった。また、時間があったらね。では、話を戻して、FPGA は自由に回路を変更することができる。これはいいよね。

Y 君:はい、もちろんです。FPGA は電気的に回路を変更することが可能ということですよね。でも、それとトランジスタ数との間に何の関係あるのでしょうか。

先生:自由に回路を変えられる、配線の接続を変えられる、ということは変更可能にするためのスイッチやそのための仕組みが必要になる。例えば、配線1本を繋ぎ変えるにしても、スイッチが必要になる。A と B の2つの入力があって出力 C にどちらかを繋ぐ、という場合なら2入力1出力のスイッチが必要だよね。

Y 君:あ、もしかして FPGA はスイッチの塊、ということでしょうか。

先生:その通り。FPGA は演算回路で使われている以上のトランジスタを自由な配線、自由な回路構造を実現するために必要とするんだ。

( 図 1 ) 配線を繋ぎ変えは大変。FPGA には大量のスイッチが詰まっている。写真は、Wikipedia の Telephone Exchange より。

Y 君:だから、先生は 50% も使ってない、と言ったんですね。

先生:その通り。スイッチを減らす方法としては、基本演算回路の機能を大幅に増やす方法 (粗粒度アーキテクチャの採用) や配線そのものに工夫を加える方法がある。前者は、国内だとルネサス (発表当時は NEC) の動的再構成プロセッサ (DRP) とか東京計器 (発表当時は IPFLEX) の DAPDNA などがある。後者は、ナノブリッジ・セミコンダクターの NBFPGA などがある。

Y 君:なるほど。FPGA は、Xilinx (現、AMD) と Altera (現、Intel) だけかと思っていました。

先生:いやいや、他にもたくさんあるよ。最近だと、中国産 FPGA も入手できるようになった。それに、粗粒度や細粒度という計算の粒度やアーキテクチャの違いをブリッジするオーバーレイアーキテクチャという考え方もある。これらも今度もし時間があれば話をしよう。

Y 君:よろしくお願いします。

先生:えーっと、では、本題に戻ろう。FPGA が、演算回路そのものではなく、演算回路を FPGA 上に実現するスイッチのためにトランジスタを使っている、というのは良いよね。では、CPU や GPU はどうだろう。

Y 君:スイッチですか。FPGA ほどは多くはないと思います。

先生:その通り。CPU や GPU の配線は基本的には 1 本の線だ。最初から演算に最適化された形でチップとして実装されている。つまり、CPU や GPU が得意な計算に FPGA では絶対に勝てない。

Y 君:ちょっと待ってください。先生は FPGA 研究者ですよね。勝てない、って言い切っていいんですか。

先生:いい。勝てないものは勝てない。だから、FPGA を使うときは CPU や GPU が苦手なこと、またはできないことを選択して使う必要がある。そういう意味では、主役を演じる花形デバイス、というよりも名脇役 (コプロセッサ) としての方が相応しいチップかもしれない。

Y 君:名脇役ですか・・・。

先生:そう、名脇役。でも、いつしか主役を、と虎視眈々と狙ってもいるんだ。だから、FPGA 研究とはね、キラーアプリケーション探求の旅と言っても過言ではないんだ。

FPGA とキラーアプリケーション (その1)

Y 君:すいません。キラーアプリケーションって何でしょうか。

先生:ごめんごめん。キラーアプリケーション、というのは特定のチップやデバイスでしか解決できない強い魅力のある応用事例のことを言うんだ。だから、FPGA なら、CPU や GPU で逆立ちしても勝てない、という FPGA のためのアプリケーションということだ。

Y 君:FPGA は 1985 年に生まれたということは調べました。もうすぐ40年です。そうだとすると、流石にキラーアプリケーションは見つかったのではないでしょうか。

先生:通信系や医療など一部でそれらしきものは見つかってきているけど難しいね。一番難しいのは FPGA が書き換え可能ということなんだ。

Y 君:どういうことですか。

先生:さっき、トランジスタの話をしたよね。FPGA で非常に良くできた設計ができたなら、スイッチを省いたよりコンパクトなチップを作ればいい。つまり、特定用途向けチップ (ASICs) として作り直せば FPGA の何倍もの性能を出せるんだ。このことから「FPGA にキラーアプリケーションはない」と言い切った研究者もいるくらいだ。このあたりも奥が深いけど面白い話はたくさんある。

Y 君:大学時代、授業をきちんと受けておけば良かったな。今、聞くことができないのは残念です。ただ、キラーアプリケーションのない FPGA がどうしてブームになったり色々な用途で利用されるようになったのでしょうか。

製品開発で何よりも重要なのはコストです。

先生:おかねはおっかねーんです。

Y 君:先生、どうしたんですか。大丈夫ですか。

先生:いや、そんなに心配されても。コストが重要なんだよ、という冗談だ。企業は営利団体なので、製品の一部材としてみた FPGA の価格は無視できない。ともすると、性能よりも費用の方が重要な場合もある。

Y 君:確かに、マーケット調査などを通して定価を決定するとき、これ以上の価格設定は難しいから材料費を削る、というのはよくあることです。

先生:そうだろうね。ただ、製品と言っても受注生産や専用機器など1点ないし少数販売するものと大量生産するものとあると思う。この違いをざっくりと示した図をホワイトボードに書いてみよう。

図2 縦軸はチップ利用にかかる諸経費の合計 ( 初期投資額 + [チップ単価] × [チップ数] )。人件費等は含まない。横軸は製造するチップ数を示す。使用するチップ数が 1 億個の場合、1 個 1 円の削減でも 1 億円の利益となる。このため、自動車産業における部品単価に対する思い入れは他の業界と比べて非常に厳しいと思われる。

先生:だいたいこんな感じかな。本来は何回かチップを設計したり、プロジェクトとして要求される人件費なども計上する必要があるけど、ここでの説明では省略して良いだろう。だから、細かな数字には全く意味がないし、ここでも書かない。あくまでも、グラフの大まかな形から特徴を捉えてもらえればと思う。

Y 君:はい、わかりました。

先生:まず、FPGA 2000 は、2000 年頃に FPGA を利用したときの経費合計の推移を、FPGA 2010 と FPGA 2020 もそれぞれ2010年頃と2020年頃の経費合計の推移を示すとしよう。

Y 君:先生、FPGA 2000、FPGA 2010、FPGA 2020 と時代を経るにつれて経費推移の直線が下がっているように見えます。あ、そうか。半導体製造技術が向上して、同性能でみたときに単価が下がった、ということですね。

先生:その通り。2000年頃に 100万円超だった FPGA も、現在はどうかすると数千円で入手できるようになった。次に、ASICs はキラーアプリケーションの話に出てきた特定用途向けのチップのことだ。FPGA の方と同じく ASICs 2000 は2000年ごろの経費合計の推移を、他も同様に2010年、2020年のものを示している。

Y 君:こちらは、グラフの形状は変わらないけど必要経費が全体的に上がっています。そうか、こちらは半導体製造技術の向上により、初期投資額が高額化しているからですね。

先生:こちらも満点だね。昔なら1000万円のところが、1億円、10億円と上がっている。もちろん、古い技術を使って安く作る、という方法もある。これは、製品で要求される性能次第だろうね。

Y 君:先生。先生は、ホワイトボードに赤丸を付けましたがこれは何の意味でしょうか。

先生:これが、今日のクライマックスかな。赤丸は、FPGA と ASICs の採用を分けるクロスポイントだ。赤丸が右にずれているのがわかるかな。

Y 君:はい。2000年、2010年、2020年と段々と右にずれています。

先生:これが FPGA が広がった大きな理由の一つだ。つまり、2000年頃は専用製品やごく少数の受注生産でしか価格メリットがなかったけど、2020年だと数万~数十万のオーダーなら FPGA の方が ASICs よりも良い、という話だ。

FPGA ソムリエとかいれば嬉しい人いそうだよね。

Y 君:先生。演算性能とか消費電力とかは ASICs の方が FPGA より良いんですよね。そうすると、結局どのように考えればよいのでしょうか。

先生:産業界と学術界では認識のズレがある。企業が販売する製品には求められる性能がある。これをクリアすれば誰も文句を言わない。ギリギリでもいいんだ。別の言い方をすると、製品が要求する性能の10倍や100倍の性能を持つチップを使うことはない。わざわざ高い部品を使う必要はないだろう?

Y 君:はい、その通りです。

先生:企業の製品開発という観点から眺めたとき、チップの最高性能を比べる意味は全くない。企業の一事業部として考えるべきことは、導入コストを抑えつつ満足する性能を得られるか、という良いバランスを見つけることだ。使うべきものが FPGA なのか、 CPU なのか、GPU なのか、をね。

Y 君:それが難しいんですが・・・。

先生:でも、これまで演算性能とか消費電力という軸しか見ていなかっただろう。企業で重要なのはそれよりもコストの場合が多い。そして顧客によって支払えるコストは変ってくる。そうだとすると、FPGA ありきの製品開発はそもそも論として矛盾しているだろう。

Y 君:確かに、その点は考えていませんでした。

先生:でも、研究は違う。最高性能を比べるから最低限の性能を示しても意味はない。そして、採算度外視でシステム設計・構築して構わない。だから、演算性能や消費電力対性能は非常に優れたものとなり、またそれが大きく宣伝される。そこに嘘はない。だが、それが本当に使える技術かどうかは別の話だ。

Y 君:なるほど。そのことがわかっていなかったから、インターネットで調べれば調べるほどわからなくなっていたんですね。

先生:そうだ。研究論文で大変良い内容があっても、それを本当に利用できるかはよく吟味する必要があるだろう。ワインを選ぶのにソムリエとかワインエキスパートという資格があるだろう。研究を本当に応用できるかを判断するのは本当に難しい。技術アドバイザとか技術顧問といったような形ではなく、暖簾がかかっていて中に入って質問するとリサーチソムリエがそのバランスを判断してくれる、とか産学共同の枠組みであると面白いと思うけどね。

Y 君:今回は、先生にその役をして頂いた、ということですね。

先生:まぁ、ね。お、まだ時間があるね。それでは、ちょっと休憩してから FPGA に対する誤解と選択方法について話すことにしよう。

(次回へ続く)

筑波大学 山口佳樹

タイトルとURLをコピーしました