はじめに
前回(Vol1)はディープラーニングの全体像として、技術基盤の4つの階層と2012年のビッグバンに始まるディープラーニング技術の歩みを解説しました。今回は、最下層のハードウェアのAIチップとエッジコンピューティングについて説明します。
ムーアの法則の終焉
ムーアの法則とは、Intel創業者の一人であるゴードン・ムーア氏が1965年に発表した「半導体の集積率は18ヶ月で2倍になる」という経験則です。もう50年以上前の見解なのですが、これまで概ねその規則性に沿って半導体の集積密度が進化してきた脅威の法則です。
しかし、さすがに最近はCPUの集積率アップも鈍化傾向が見られて、ムーアの法則にも限界が来たと言われています。一方で、何度も終焉と言われながら生き延びてきた法則でもあり、「ムーアの法則は健在」と主張する声もまだあります。私は終焉ノリなのですが、5年後に振り返って「おみそれしました」と脱帽している自分を期待してもいます。
いずれにしてもビッグデータや仮想通貨、ブロックチェーン、人工知能など、最近の技術トレンドは大規模な処理能力を必要としており、もはやCPUの集積率アップに依存しては追い付かない状況です。そこで登場したのが、図1のようなCPUを補助する演算処理チップです。
図1:AIチップ(GPU,FPGA,ASIC)
(1)GPU(Graphics Processing Unit)
もともとGPUは、コンピュータグラフィックに必要な演算を行うためのビデオチップでした。CPUに比べてコア数が膨大で、CPUのコア数は数個程度なのに対してGPUはコア数が数十から数千のものまであります。
CPU(Central Processing Unit)が汎用的な処理を行えるのに対して、GPUはCPUの命令を受けて大量コアによりシンプルな行列演算をいっきに並列演算処理するのに向いている専用チップです(表1)。画像処理でスタートしたビデオチップですが、その後も動画編集やCAD、3Dゲームへと適用範囲が広まり、そうした市場が拡大する中でGPUの最大手として成長してきた企業がNVIDIAです。
[RELATED_POSTS]2012年にGoogleが1000台のコンピュータ(2000個のCPU)で猫の画像を認識しましたが、これだけのコンピュータを用意できるのはGoogleのような大企業だけです。ディープラーニングの将来性に目を付けたNVIDIAは、翌年、このような深層学習の演算処理にGPUを使う実験を行って、12個のGPUが2000個のCPUに匹敵するという大きな成果を得ました。そして、今ではディープラーニングの高速演算処理には当然のごとくGPUが使われるようになっているのです。
|
CPU |
GPU |
汎用処理 |
汎用的な処理向き (if~else~が得意) |
シンプルな処理向き (for~loopが得意) |
並列処理 |
1個当たり数コア |
1個当たり数十~数千コア |
利用形態 |
単独で利用できる |
CPUと一緒に利用 |
主な用途 |
コンピュータの中央演算処理装置 |
画像・動画処理、3D、CAD、AI |
表1:CPUとGPUの違い
(2)FPGA(Field-Programmable Gate Array)
FPGAは、世の中にある汎用IC(集積回路)では自分たちの目的とする処理が行えない場合に、目的に合わせてICの内部ロジックを作りこめるカスタムICです。特徴は、Field-Programmableという名前が付いているように、製造後に購入者がロジックを作り替えできる点です。GPUではNVIDIAに遅れを取ったIntelが2015年にFPGA大手のAltera(アルテラ社)を2兆円で買収したニュースで、初めてFPGAを知った人も多いのではないでしょうか。
FPGAの特徴は、ASICと違って内容を変更できるのが大きな特徴です(表2)。また、GPUに比べて処理能力は劣るものの消費電力が小さいことも注目されている理由です。この特徴は大量のサーバーが密集するクラウドやデータセンターに適しており、Amazon AWSやMicrosoft、IBMなど各社のクラウドに次々と採用されています。2020年までにクラウドサーバーの1/3はFPGAになるという予想も出ています。
(3)ASIC(Application specific integrated circuit)
ASIC(エーシック)は”特定用途向け集積回路”と略されていおり、特定用途向けに設計されたカスタムチップです。FPGAが初期投資がない汎用品なのに対し、ASICは専用品なので初期投資がかかります。
FPGAは内部ロジック(配線情報)をFLASH ROMに記憶しているので何度でもロジックの書き換えができますが、ASICはROMなのでロジックの作り換えはできません。しかし、専用ロジックを作りこんだカスタムチップなので量産して単価を下げることができます。
2017年にGoogleが発表したオリジナルプロセッサTPU(Tenorflow Processing Unit)も実はASICです。高性能ですが、AlphaGoやGoogle画像検索など自社利用のためのチップなので、他社向けに販売をしていません。
|
FPGA |
ASIC |
再プログラム |
ロジック変更可能 |
ロジックの再設定不可 |
開発コスト |
汎用品なので初期コスト小 (製造後バグ修正可能) |
開発コスト、期間が必要 (仕様変更、設計ミスがリスク) |
コスト |
ASICより高い |
大量生産により低コスト |
消費電力 |
GPUより低い |
FPGAより低くできる |
ロット |
小ロット、短サイクル向き |
大量ロット、変更がないモデル向き |
表2:FPGAとASICの違い
エッジコンピューティング
現在、GoogleやMicrosoft、AmazonなどのAIプラットフォームが提供するAIサービスの多くはクラウドで提供されています。クラウドは大量データを蓄積・管理することができ、スケーラブルでセキュリティも堅牢なので、機械学習を行うのに最適な環境だと言えます。
一方で、IoTの普及にともないIoT端末から自動的に集められるデータが肥大化し、これら膨大なデータをクラウドで処理するのは、次のような不都合があることが認識されてきました。
・通信量が膨大になり、通信料やクラウド利用料が大幅に増える
・インターネット経由で処理されるため、処理速度が遅くなる
・セキュリティなどの理由でクラウドにデータを上げたくない
・インターネットの接続が不安定になると処理がストップする
この問題を解決するため、現場に近いところにエッジサーバーを設置して、ローカルで処理できることはローカルで高速処理する構成にしたのがエッジコンピューティングです。通常、エッジサーバーはクラウドと組み合わせて使われることが多いのですが、その場合の役割分担には2ケースあります。
1つは機械学習自体はクラウドで行い、学習済モデルをエッジサーバーに入れて処理させる形態です。そして、もう1つは機械学習自体もエッジサーバーで行い、クラウドは分析などに利用するという形態です(図2)。
図2:エッジコンピューティング
フォグコンピューティング エッジコンピューティングと似た言葉に、フォグコンピューティングというものがあります。これは、ネットワーク機器大手のCiscoが提唱したもので、クラウド(雲)よりも現場(地表)に近いところという意味でフォグ(霧)という言葉を使っています。意味は同義です。しいて言えば、エッジがハード寄り、フォグがネットワーク寄りのイメージがある感じでしょうか。 |
まとめ
Vol.2では、大規模な処理能力を必要とするAIを支えるチップとエッジコンピューターについて説明しました。最近の機械学習ライブラリはすべてGPUに対応しています。現時点ではGPUはNVIDIAの独壇場で高価ですが、競争が激しくなるにつれてより低価格かつ高性能になると思われます。そして、そのGPUを積んだサーバーがクラウドだけでなくエッジに普及していきつつあるのが今の状況です。
梅田弘之 株式会社システムインテグレータ :Twitter @umedano
- カテゴリ: