ASICでAIを高速化するGoogle、FPGAを使うMicrosoft 違いは何か?Mostly Harmless

GoogleとMicrosoftが、相次いでAI処理用の新たなプロセッサを発表。その違いから見えてくる、両者の戦略とは?

» 2018年05月30日 08時00分 公開
[大越章司ITmedia]

この記事は大越章司氏のブログ「Mostly Harmless」より転載、編集しています。


 GW明けの週は、「Google I/O 2018」と「Microsoft Build 2018」がともに開催され、一気にいろいろなニュースが飛び込んできました。その中で、2社ともAI処理用のプロセッサに関する発表をしています。

 Microsoftの発表はこちら。

 Googleの発表はこちらです。

 Googleは、ここのところ毎年、機械学習用プロセッサを発表していますが、2018年も前年比8倍の高速性を持つチップを発表しました。

 Googleのチップは、「ASIC」を採用。一方Microsoftは、「FPGA」ベースです。両者ともAIの処理をチップ化して高速化しようという考えは同じですが、使っている技術が違います。これは両者の戦略の違いが出たものと考えられます。面白いですね。

ASICとFPGAの違い

Photo

 ASICもFPGAも、ゲートアレイを使うことで、開発期間を短縮できます。

 ただ、ASICは、設計完了後は普通のチップ同様、マスクを作ってシリコンに回路を焼き付けます。このマスク作をるのに、数千万円から数億円かかるといわれています(こちらのサイトでは、最大10億円近いとのこと)。それに、チップを作ってしまうと、後から変更はできません。

 これに対し、FPGAは、マスクを作る必要はありませんし、設計さえ済めばすぐに使え、さらにいつでも回路を書き換えることができます。開発にかかるコストと時間においては、FPGAが圧倒的に有利です。それにAIはまだ発展途上の分野であり、いつ画期的なアルゴリズムが発見されるか分かりません。それを考えると、いつでも書き換え可能なFPGAの方が安心できます

最大の違いは製造コスト

 両者の最大の違いは製造コストにあります。ASICは作るまでにお金がかかりますが、製造に入ると1個数十円〜数百円レベルで製造できるとのこと。一方のFPGAは、どうしても数千円はかかるようです。

 開発コストを考えると、数万個以上使う予定があるなら、そして回路を書き換える必要はないと考えるなら、ASICのほうが費用対効果が高いということでしょう。

 Microsoftは“ソフト屋さん”なので、プログラマブルが好きなのだろうという見方もできるかもしれませんが、最近はプロセス面でもFPGAの方が進んでいるようですから、コスト以外の点では、FPGAを選ぶ方がよいように思えます。

 ただ、FPGAは、コスト以外にも設計自由度が低かったり、ゲートの利用効率がよくなかったりといったデメリットもあるようです。

あらゆる手段で計算能力を確保したいGoogle

 GoogleがASICを選んだのは、すぐにでも莫大な計算能力がほしいからでしょう。すでにGoogleのデータセンターでは、機械学習用に大量のGPUを使っていますが、NVIDIAの最新のGPU(TESLA V100)は1台で100万円以上しており、ゲーム用のGPUとは異次元の価格設定になっています。

Photo

 Googleへの実際の提供価格は分かりませんが、そうなるとASICを作ってでもコストを下げたいところでしょう。おそらく数十〜数百万個(あるいはもっと)の単位でデータセンターに配備して、“機械学習をさせまくりたい”のではないでしょうか。そのくらいの規模で使うつもりなら、単価はかなり安くなります。

 それに、Googleとしては、NVIDIAに頼り切りというのもよくないと考えているはずです。2017年末、NVIDIAは、突然不可解なEULAの改定を行って物議を醸しましたし、独占状態が続くと、いろいろとよくないことを考え出すのは世の常で、それはGoogleの考えには反するでしょう。

 こう考えると、単価が高くてもFPGAを使うMicrosoftの方が、“お金持ち”に見えるかもしれませんが、おそらくGoogleは、新しいアルゴリズムがよいと思えば、迷うことなくそれまでのTPUを捨て、新しいチップを開発するのではないかと思います。そちらの方がよほど“お金持ち”かもしれませんね。

Googleはクラウド用途、Microsoftはエッジ用途

 重要なことを書き忘れていました。MicrosoftのFPGAチップは、「学習済みのモデルを高速に実行することに特化」しているということで、推論専用です。「TPU1」は推論用でしたが、「TPU2」以降は、学習にも使えるようになっています。

 AIに学習させるのは、推論よりも高い演算負荷がかかります。Googleは「クラウドでの機械学習を強力にする」ことを目的としており、Microsoftは「エッジでの処理を強化する」ことが目的と考えられ、活用のターゲットが(いまのところ)大きく違う、ということのようです。

著者プロフィール:大越章司

外資系ソフトウェア/ハードウェアベンダーでマーケティングを経験。現在はIT企業向けのマーケティングコンサルタント。詳しいプロフィールはこちら


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ