NPU 【Neural Processing Unit】
概要
NPU(Neural Processing Unit)とは、マイクロプロセッサの種類の一つで、人工知能システムの一種である人工ニューラルネットワークの利用に適した演算機能を内蔵したもの。整数の数値計算を効率よく実行することができる。単体のICチップの他に、CPUなどに内蔵されて提供されるものがある。ニューラルネットワークとは
人工ニューラルネットワークは、動物の脳の内部に見られる神経細胞の網目状の繋がりであるニューラルネットワーク(NN:Neural Network)の仕組みを模倣したコンピュータシステムで、人工知能の有力な実装方式の一つとして広まっている。
人工ニューラルネットワークを応用した機械学習システムでは、人間が教材から言語や知識を学ぶように、元になる大量のデータをシステムに投入してパターンを「学習」し、対象分野についてのデータモデルを作成する。使用時にはこのモデルに対して学習データと同種のデータを入力すると、学習結果に従って何らかの出力を返す。
NPUとは
NPUは主に学習済みのモデルを用いて実際の課題に対して推論などを行う際に必要となる整数計算を効率よく実行するためのプロセッサで、パソコンやスマートフォンなど人々が直に操作する端末に組み込んで使用されることが想定される。単に処理が高速なだけでなく価格やエネルギー効率、チップの実装面積、発熱量なども重視される。
単体のプロセッサとして実装されることもあるが、パソコンやスマートフォンなどの端末では複数のチップを統合した「SoC」(System-on-a-Chip)が主流であるため、NPUもGPUなどと共にCPUに機能ブロックの形で内蔵されることが多い。米マイクロソフト(Microsoft)社では今後のWindowsパソコンの基準となる「Copilot+ PC」の要件として40TOPS以上のNPU内蔵を求めており、多くのCPU製品に内蔵されるようになることが予想されている。
GPUとの違い
データ学習(モデル作成)時には大量の実数演算が必要になるため、3DCGの生成などに用いられるGPU(Graphics Processing Unit)を搭載した大規模サーバなどを用いて計算を進めるが、モデルの使用時には整数演算が主となることが多いため、NPUには大量の整数演算を並列に実行する回路が内蔵されている。
GPUの性能の指標としては1秒あたりの実数(浮動小数点数)の計算回数を示す「FLOPS」(FLoating-point Operations Per Second)および接頭辞を追加した「GFLOPS」(10億FLOPS)「TFLOPS」(1兆FLOPS)などがよく用いられるが、NPUではこれに類似する指標として1秒あたりの整数の計算回数を示す「OPS」(Operations Per Second)が用いられることが多い。実用上は計算回数を1兆回単位で表す「TOPS」(Tera-OPS)が用いられる。