ディープラーニングアクセラレータが切り開く半導体市場の未来
(facebook.com)ここで見落としてはならない点が一つある。GUGPUは依然としてゲーム性能の強化にも最適化されているということだ。そもそもGPUが行列処理に特化した性能を持つことを考えれば、これは当然の話である。90年代前半以前のゲームでは、実のところ3D画像という概念はほとんどなく、あったとしても特定方向への2D projectionをひたすら見せるようなものだった。事実上、2D onlyと見なして差し支えない。行列に関する線形代数演算では、2次元行列は比較的容易な計算に属する。だが問題は3次元行列演算である。私たちが生きる世界は3次元であり、見て、聞いて、感じるあらゆる物理現象は3次元空間+1次元時間の中で起きている。毎秒ごとに3次元空間でのイベントは刻々と変化するが、私たちの目はその情報を強制的に2次元へマッピングして認識しなければならない。人間の脳が視覚情報の処理に非常に多くのリソースを使っているのは、まさにこのためだ。これは計算についてもまったく同じである。3次元のある物体の画像を、私たちが認識する2次元空間、すなわちモニター上に表示する作業を考えてみよう。たとえば、3次元ポリゴンで構成された人形を特定の角度から見た画像を、2次元モニター上に表示しなければならない。このためには行列変換(matrix transformation)演算が必要になる。回転変換、stretching、消失点処理といった演算を行わなければならない。さらに欲を出せばray tracingも必要になる。つまり、光と影の効果も同時に扱わなければならず、この計算はなおさら多くの演算を必要とする。幾何光学演算が、すべてのポリゴンの各質点ごとに行われなければならないからだ。しかも、こうした途方もない計算を毎秒1回どころか、少なくとも30回から60回程度行わなければ、人間の目はこの現象がリアルタイムに自然に起きていると認識しない。まさにコンピュータ工学者にとっては悪夢のような課題だったはずだ。90年代前半にCPUでこうした作業をしていたとすれば、おそらく1分に1場面程度をようやく表示できる程度だっただろう。気の短いゲーマーにとっては耐え難いラグになる。だがGPUは、このような反復演算を行列ベースで並列処理できるため、もはやCPUがこうした作業の負担を一人で背負う必要はない。各種の行列変換演算やray tracingの幾何光学演算の大半はGPUが担い、CPUではそれらの後続演算だけを担当すればよい。つまり、ゲーマーの立場から見れば、この演算が「加速」されたように感じられるわけだ。これにより、アクセラレータという名前が付くようになった。<br /> <br /> このように行列ベースで表現できるデータであれば、それがゲーム用の高解像度3次元画像であれ、医療用の3D voxel dataであれ、ディープラーニング学習用のmulti-feature tensor dataであれ、GUGPUの全盛期は確実にpeakに到達していると言っても過言ではないだろう。とはいえ問題は、GUGPUの長所が同時に短所でもあるという点だ。並列処理の速度を改善する方法は、コアの数をさらに増やすか、コア間の情報I/O速度をさらに速くすることである。そのために、メモリを各コアと統合することもできるし、bandwidthをさらに増やすこともできる。だが、変わらない代償が一つある。それだけ消費電力が増えるということだ。コア自体が消費する電力に加え、コアで消費された電力が熱へ変換される過程で、それを冷却するための電力消費も増える。また、発熱と冷却の繰り返しはチップの寿命にも影響する。GPUもシリコンベースの半導体チップである以上、結局のところ集中的な電力使用と演算は、コアを構成する材料や素子の寿命を縮める。機械的failure、thermal failure、electrical failureが起こり得るからだ。実際、ブロックチェーン採掘用としてほとんど工場のように運営されるマイニング場で使われたGUGPUの寿命が6カ月も持たないという話は、決して根拠のないものではないし、一般のネットカフェで使われるhigh performance GPUも、寿命は通常2年、長く見積もっても3~4年にすぎない。もちろん、その寿命が問題にならないほど次世代GPUが登場するため寿命の問題は見えにくくなっているが、寿命そのものはCPUより短くなるという欠点は受け入れざるを得ない。<br /> <br /> それでもAI時代はまさに成長し、これから花開こうとしている段階にあり、GPUのようなアクセラレータを使わずにその膨大な演算をこなす方法はない。だがGPUだけに依存しようとすると、学習のためにGPUが消費する電力量はますます天井知らずの勢いで増えていく。これに対する代案は当然必要であり、2010年代後半から2020年代にかけて登場したソリューションの一つがFPGAとNPUだ。2019年、インテルと並ぶCPUメーカーの二強だったAMDは、世界第1位のFPGA企業であるザイリンクスを電撃的に買収した。業界では「来るべきものが来た」という見方が広がったが、それもそのはずで、競合のインテルはすでにFPGA市場2位のアルテラを2015年に167億ドルで買収していたからだ。伝統あるCPU製造大手が、CPUとは性格の異なるFGPAを競って買収した理由は何だろうか。FPGAは文字どおり、ユーザーがその都度目的に合わせてreprogrammingできる演算チップである。ユーザーが再プログラミングできるということは、チップが動作するための最小限の機能だけを残し、それ以外のユニットの配列や設計はユーザーが変えられるという意味だ。そうであれば当然、CPUやDRAMのように標準化されたプロセスで量産される半導体チップに比べ、コストは高くならざるを得ない。degree of freedomを大きく取っておく必要があるからだ。ディープラーニング時代以前、こうした理由からFPGAベースのチップは、特殊な目的(原発用、宇宙探査機用など特定用途)で主に活用されるにとどまり、汎用的に使われることはほとんどなかった。<br /> <br /> ところが、ディープラーニング時代が本格化すると、GPUが一方的に支配するかに見えた市場は次第に多様化し始めた。この潮流は、GPUにとって決して好ましいことばかりではなかった。たとえば、ディープラーニングが単に畳み込み計算を繰り返す演算の集合にすぎなかったなら問題にはならなかっただろう。しかし、ディープラーニングを適用したい分野が広がるにつれ、ディープラーニングエンジンが学習しなければならないデータの規模や特徴も、さらに多様に変化した。単に画像で数字を認識したり、犬と猫を区別したりする程度では応用範囲が限られるため、自然言語を処理する、1,000を超えるfeatureを持つ複雑な化学プロセスデータから異常を検出する、IoTセンサーのネットワークを設計する、CFDではカバーできない多孔質媒体内部の複雑な流体の流れを推論して模擬する、リアルタイムで自動運転エンジンを構築する、といった具合に、用途とスペックが多様化した市場が開かれ始めたのである。ディープラーニングを産業に応用しようとする側にとっては、このような市場の多様化は歓迎すべきことだが、汎用GPUでこれをカバーしようとしていた側にとっては悩みの種となる。各応用先では、分類が重要なのか、推論が重要なのか、予測が重要なのか、検出が重要なのかで重み付けがまったく異なるのに、画一的なニューラルネットアルゴリズムに最適化された演算構造を引き続き維持することが難しくなったからだ。ディープラーニングが登場した初期には、利用可能なハードウェアがほぼGUGPUしかなかったため、ディープラーニングアルゴリズム開発者は与えられたGUGPUのスペックを前提にアルゴリズムを構築するしかなかった。ところが、ディープラーニングが扱うデータの種類と量が幾何級数的に増えるにつれ、今ではむしろディープラーニングアルゴリズムがGPUのアーキテクチャ設計に影響を与える場面が増えている。GPUの個々のコアの精度(浮動小数点の桁数)をFP16に固定することや、精度の変動を許容する(多倍精度の)コアを設計することが、まさにその例に当たる。とはいえ、このようなディープラーニング主導のGPU設計にも限界は明らかだ。GPUも一度製造してしまえば、その構造を変えることはほとんど不可能で、reprogrammingの余地がないからである。斧でひげを剃ることも不可能ではないが、手になじんだカミソリが恋しくなるのは当然だ。<br /> <br />
対照的に、FPGAのほうがこうした目的により適している可能性が、市場で次第に受け入れられつつある。前述の通り、FPGAはロジック設計を完全には終えていない段階で顧客に納品される。その代わり、その上で顧客が自らの目的に合わせてプログラミングできる一種のSDKが提供される。つまり、顧客は自分の用途に合わせて、たとえば流体力学シミュレーション専用のディープラーニングチップを作ることもできるということだ。仮に初期段階で設計ミスがあって正常に動作しなかったとしても、reprogrammingが可能なため、いくらでも修正でき、したがって初期テスト過程でのコスト損失を減らせる。GPUで実現されていたハードウェア段階での並列処理性能には及ばないかもしれないが、FPGAも並列処理が可能であり、これもまたFPGAの特性に起因する。FPGAではソフトウェアレベルで並列処理を実装でき、単一コアで複数の命令語を受け取り、複数の出力を生み出すアルゴリズム設計が可能だ。この方式をMultiple instruction multiple data (MIMD)という。一方、GPUの個別コアでは、反復作業による並列処理に最適な条件を満たすため、もともとデータフローがsingle instruction multiple data (SIMD)で構成されている。命令セットが十分に整備され、データ規格がよく整理されていれば、GPUはハードウェアレベルではほとんど神業に近い並列処理が可能だが、データ規格が変わったり、与えられた命令セットではカバーしにくい演算が現れたりすると、どうしてももたつかざるを得ない。それに対してFPGAは、ハードウェアレベルでの並列処理は難しいものの、flexibleであることが最大の長所だ。データ規格(width)が異なっても、あらかじめdefineされた命令セットに縛られる必要がなく、multiple instruction setを活用できるからだ。このようにflexibleであるという特徴は、多様化したデータセットと末端applicationが注目を集めている現在のディープラーニング時代において、FPGAの市場性が高まることを意味する。<br /> <br /> それに加えて、そもそも数千個のコアを同時に回す必要がないFPGAは(もちろん性能はやや落ちるとしても)、GPUと比べると消費電力が非常に低い(添付表1参照)。さらにFPGAは、市場のディープラーニングアルゴリズムが改善されるのに応じて、電力消費の方式も修正可能であるため、いつでもエネルギー効率を最適化できる。不要なスイッチを切り、必要なスイッチだけを入れればよい方式だからだ。こうした理由から、ディープラーニング時代が本格化する前に、GPUではさほど成果を上げられなかったIntelとAMDが、業界1位と2位のFPGA企業を慌てて巨額で買収したと解釈できる。もちろん、従来のGPUの強者だったNVIDIAも手をこまねいていたわけではない。FPGAにどれほど長所があっても、依然としてGPUに比べてディープラーニングにおいて弱い致命的な欠点がある。それはGPUよりtraining速度が遅いことだ。これは避けがたい弱点である。そもそも利用可能なコアをハードウェアレベルで無制限に増やしてbuilt-inした構造ではないからだ。IntelとAMDはFPGAを通じて、GPUが支配していたAI向けアクセラレータ市場のシェアを奪おうという構想を立てた。IntelはAgilexとPAC (programmable acceleration card)を発売し、AMD(ザイリンクス)もアクセラレータカードAlveoを発売して勝負に出た。特にザイリンクスは、HMB (high-bandwidth memory)をFPGAに結合した製品であるVersalのような製品へと舵を切ったが、これは10ナノ以下級の半導体超微細パターニング技術が成熟段階に入ったことで実現可能になった技術でもあった(Versalの場合は7ナノプロセスで製造)。IntelがAlteraを買収して以降、IntelのFPGAベースアクセラレータ売上は大きな成長を見せていない一方、ザイリンクスの売上は継続的に大きく伸びており、これはザイリンクス方式のFPGA + HBM構造がディープラーニングアクセラレータ性能の差を少しずつ埋めつつあることを示している。ザイリンクスはこれに加え、ディープニューラルネットに最適化されたxDNNプロセッサへと開発を拡大しながら、flexibleなディープラーニングアクセラレータ市場を狙っている。<br /> <br /> 実際、ディープラーニング学習過程では行列演算と同じくらい重要なのが、大容量データの学習結果をintegrationする過程であり、そのためにはデータが長く並んでいるときの待ち時間を短縮する工程が必要になる。つまり、データの遅延性を減らすことが、エネルギー消費の面でも学習速度の面でも、ますます重要になっている。NVIDIAがFPGA陣営に対して切ったカードも、まさにこのデータ遅延性を減らす技術であるInfiniBandだ。このためNVIDIAは、IntelとAMDの買収競争に勝利し、2019年にネットワークインターフェースカード(NIC)とInfiniBand分野の世界的大手であるMellanoxを69億ドルで買収し、自社のNPU最適化技術を確保することができた。NVIDIAがGPUに加えて、ディープラーニング、ひいてはAIアクセラレータ市場全体を狙っている技術は、汎用ディープラーニングアクセラレータであるXavier SoCであり、これは特にAIアクセラレータ需要が爆発的に増えている自動運転車市場の主力製品として位置づけられている。NVIDIAのCUDAもディープラーニングに特化したcuDNNを提供しているが、データセットや規模にかかわらず、ほとんどすべてのディープニューラルネットが必要とするユニットをあらかじめ実装しているため、今後のNPU (Neural processing unit)への市場橋頭堡も確保している状態だと見ることができる。特にNPUは、特定のデータセットに対してあらかじめハードウェアレベルでDNNを実装しておいたチップ(文字通り、ディープラーニングネットワークを構成する各層をシリコンチップベースのロジックユニットに1:1で対応させて実装したチップである。つまり、ニューロンをハードウェアレベルでそのまま実装したものと見ればよい。)であるため、その特性上、モバイルAPに集積しやすいことを考えれば、今後も大きく成長するAP市場での支配力も維持する可能性が高い。NPUは「推論」をGPUで行うのではなく、末端機器(たとえばスマートフォン)で行える水準まで機能を固定したチップだと見ることができる。かなり分厚い本のような大きさになったGPUをスマートフォンに入れることはできないので、可能な限り学習済みの既存構造をbuilt-inした形でNPUを作るのである。モデル学習そのものはGPUサーバーが担い、学習済みモデルを基に入力データから特徴を推論する機能だけをNPUが分担するなら、もはや大量の電力を消費する必要もなく、大型化する必要もないため、スマートフォンや車載半導体チップなどに合わせて集積できる。これは、FPGAが追求してきたflexibilityを迂回する戦略とも見なせる。NVIDIAはまさにこのNPU市場をターゲットに、Xavier以後の技術であるJetsonシリーズを発表し、価格もさらに引き下げた。<br /> <br /> NPU市場の競争相手はおそらくGoogleになるだろうが、Googleは自社設計チップであるTPU (tensor processing unit)シリーズCoralを発表し、価格をNVIDIAのJetsonの5分の1以下に設定してコスト競争を仕掛けている。もちろん性能と価格は比例しており、Coralの性能はXavierやJetsonの5分の1から3分の1水準とされている。ただし、Googleが今後発売するTPUは、市場でのフィードバックを基に、もう少し幅広い分野で活用されると見込まれており、これはGoogleが構想しているGPUクラウドサーバーを通じた学習モデル更新速度での競争力に基づくものだと推定できる。SamsungやQualcommのような伝統的なモバイルAP企業も、超微細パターニングの限界によりAPチップ自体の性能を改善できる余地が次第になくなっているため、NPUを押し込む戦略を取っている。Qualcommは自社のSnapdragonシリーズ845以降からNPUを搭載し始め、Samsungは自社のExynosシリーズ9以降からNPUを搭載し始めた。NPUを統合または並行導入しようとする企業は、当然モバイルチップでのデータを確保しながらその適用範囲を徐々に広げていくはずであり、次の市場はおそらく車載半導体(自動運転車チップや車載電子半導体チップ)、IoT信号処理用チップ、軍用複合レーダーチップなどへと、ますます範囲が広がっていくだろう。<br /> <br />
しかし皮肉なことに、FPGAとNPU/TPU/cuDNN市場の競争は、ハードウェアではなくソフトウェア、特にディープラーニングアルゴリズムの変化の趨勢がどうなるかにかかっている。現在もディープラーニングアルゴリズム分野では、日々新しい方法論、新しい理論、新しいモデルが次々に登場しており、毎年4大人工知能学会に論文をアクセプトしてもらうことはますます難しくなっている。しかし他分野の技術がそうであるように、ディープラーニングも徐々に成熟期に入り、アルゴリズム革新の速度が鈍り始めれば、FPGA固有のflexibilityという利点も次第に薄れていくだろう。より速く、より効率的なアルゴリズムが出てくればそれに合わせてreprogrammingできるという強みも、もしアルゴリズムの置き換え周期が徐々に遅くなるなら、さほど利点ではなくなるからだ。たとえば、画像認識程度の機能については、もはや改善の余地がほとんどないといえるほど(人間の認識率はすでにとうに上回っており、たいていのアルゴリズムはすでに画像認識率95%を超えている)、アルゴリズムは飽和状態に到達したと見ることができる。むしろ汎用DNNを継続的に改良し、ハードウェアと最新アルゴリズムの間のギャップを縮めていく方式のほうが、将来的には有利になる可能性がある。<br /> ディープラーニングアクセラレータ市場は今後も成長を続け、おそらく2030年以降も需要は増加傾向にあるだろうが、市場を支配する方式が何になるかはもう少し見守る必要がある。ディープラーニングアルゴリズムの成熟期がいつ訪れるのかは誰にも予測できないが、いずれ成熟期は来るのであり、その時点でどの技術がより最適化された状況にあるかを見通すのは難しい。FPGAにもなお十分に革新の余地はある。今年6月にNatureで公開されたGoogleの強化学習ベースのチップ設計研究* (https://www.nature.com/articles/s41586-021-03544-w) は、そのような革新の可能性を示す好例だ。限られたチップダイ面積の上に数百万〜数千万個のユニットを配置し、各ユニット間のデータ入力と出力について、遅延時間を最小化しながらエネルギー使用量を減らす設計は、半導体チップ設計でもっとも難しい部分の一つだった。ファブレス企業はこれまでのノウハウを活用してこのような最適化を進めてきたが、Googleが公開した結果は、その蓄積されたノウハウを霞ませるほどの改善を実現しており、かなり衝撃的だった。これは、複雑なマンションの間取りにあらゆる家具や家電を配置しつつ、身体の動きを最小化し、さらに力も最小限で済む最適な動線を設計するのに似ている。Googleは、囲碁の状態空間(~10^360)よりはるかに大きい空間であるユニット配置の状態空間(~10^2500)に対して、AlphaGoの手法をさらに発展的に継承した方式で最適化設計を実現したのだ。このような設計手法は当然FPGAの最適化にもそのまま適用できる。与えられたinstruction setのdegree of freedomを考慮して所与の性能を最適化することは、同じ文脈で達成可能な作業だからである。<br /> <br /> NVIDIAやGoogle、Intel、AMD、Qualcommなどが用いている既存の方式とは、まったく軌道を異にする技術が登場する可能性はあるだろうか。もちろん、その可能性はある。ニューラルネットという名のとおり、今や人間の大脳神経網を単に模倣するのではなく、いっそcopy & pasteする方式で半導体チップと連携させる技術も考えられる。最近Samsungとハーバード大学の韓国系科学者たちが公開したperspectiveがまさにその例だ* (**https://www.nature.com/articles/s41928-021-00646-1...)。この論文で展望された代替技術は、まさにニューロモーフィック半導体(neuromorphic chip)である。すでによく知られた概念であるニューロモーフィックチップが改めて注目を集めた理由は、人間の脳神経網でやり取りされる電気信号をナノ電極と接続してそのまま複写(copy)し、それを下部に接続されたメモリに複写(paste)する概念が、実在する技術レベルで可能であることを示したからだ。これは、脳というソフトな組織をすべて取り除いたうえで、それ以外の機能をそのまま半導体チップへ移せることを意味する。ニューロモーフィックチップを実装するためのメモリ半導体技術は、すでにSRAM、RRAM、MRAM、memristorなどで実現されているか、あるいは実際に活用されているため、数千兆個のニューロンで発生する信号をいかにリアルタイムで、遅延を最小化したままメモリへ移すかが肝になるだけであり、copy & paste方式の接続は、もはや技術的に不可能な段階ではないように見える。 <br /> <br /> 今後もディープラーニングアクセラレータが牽引する半導体市場は、多様に、そしてより強力に成長していくだろう。ディープラーニングベースのデータ処理が、どれだけさらに多様化した市場を切り開けるのか、またどれだけさらに大規模な非構造化データを処理できるのかによって、市場規模、そして支配的技術が決まることになる。ここで注目すべきなのは、現在のキープレイヤー技術の進化とともに、それをまったく別の方向から置き換え得る新概念技術である。ニューロモーフィック以外にも、photonicsベースのneural networkが可能であり、これは遅延時間そのものが光速レベルにまで縮まることを意味するため、より強力なNPUの登場を予告しうる。スピントロニクスの場合は並列処理性能をさらに引き上げられるだろうし、Googleが公開したTFQのような量子コンピュータ専用ディープラーニングアルゴリズムは、これまでの方式とはまったく異なる様相で「推論」を再定義する可能性もある。今後の半導体市場も、結局はディープラーニングが主導するAIアクセラレータと、それに見合うアルゴリズム革新から主要なモメンタムが生み出されるだろう。そして多様なアーキテクチャを持ち込むさらに多くのファブレス企業が雨後の筍のように登場するなかで、彼らの玉石を見極め、技術の実装限界を決定できるプロセス技術の確保が、最終的には今後創出される市場の支配力を左右すると予想される。<br /> <br />
- 成均館大学校のクォン・ソクジュン教授のFacebook投稿で、これまでのCPU/GPUの発展状況を面白く解説してくれているので、紹介してみる。</p>
1件のコメント