CPU,GPU,TPU,VPU,NPU

Screenshot of en.wikipedia.org

大学に入って教養課程で情報処理の教科書とかを買ったときに、「CPU」というのは出てくるのですが、GPU(Graphics Processing Unit)というのは出てきましたか?少なくとも20世紀には出てきませんでした。3Dゲームとか無かったですからね。でも21世紀にはGPUも大事になってきましたし、2012年のディープラーニング革命の後は、ニューラルネットワーク専用のコプロセッサ(補助プロセッサ)であるNPU(Neural network Processing Unit)が物凄い勢いで開発されて各社から発売されるようになりました。

ここで各プロセッサの意義を復習いたします。NPUの派生プロセッサもご紹介いたします。

CPU・・・Central Processing Unit、中央処理装置。AND,OR,NOTの論理演算を行うデジタル回路。チューリングマシンのデジタル実装。2進数データ(バイナリコード)のプログラムを読み込んで解読し、データ処理して、結果をメモリに書き込みすることをひたすら繰り返します。

GPU・・・Graphics Processing Unit、2次元画像処理、3次元画像処理を効率的に行うため多数の並列演算ユニットを備えた画像処理プロセッサ。並列演算機能を流用して、仮想通貨ブロックチェーンのproof of workの演算処理に使われたり、ニューラルネットワークのAIデータ処理に使われています。

NPU・・・Neural network Processing Unt、生物の脳神経細胞を数学モデル化したニューラルネットワークの機械学習と、学習結果を用いた推論処理(画像認識、音声認識、意味認識)などを行うための行列計算に特化した並列処理プロセッサ。機械学習および推論のサブルーチンを実行する場合に高速処理するための専用ハードウェア。並列演算器はGPUの計算ユニットを流用することもできるので、極端に言えば NPUとGPUは同じものと言えます。

TPU・・・Tensor Processing Unit,google が開発したNPU。テンソルは行列表現できる多次元配列(データの集まり)です。

VPU・・・Vision Processing Unit, インテルが2016年に買収したMovidius 社のAIアクセラレーターNPU。Myriad2 MA2450など。

KPU・・・Knowledge Processing Unit, 仮想通貨採掘Canaan 社が開発した並列計算機NPU、同社のKendryte K210 に使われています。K210はRISC-VのCPUとKPU並列計算機がワンチップに収められたAIチップです。仮想通貨をマイニングするときの効率を追求するために並列計算機を自社開発したら、それがニューラルネットワークの計算にも使えるので発売したということでしょうか。

BPU・・・Brain Processing Unit, 中国のベンチャー企業Horizon Robotics社のNPU。

IPU・・・Intelligent Processor Unit, 英国のAIスタートアップ Graphcore社のNPU。GC200はTSMC 7nmプロセスで設計され、594億個のトランジスタを搭載し、1472個の浮動小数点演算ユニットを並列で持っています。

DPU・・・Deeplearning Processing Unit, 富士通のAIプロセッサDLUに搭載された整数演算NPU。Deep learning integer という16ビット整数演算で浮動小数点タイプに劣らない精度を出しています。

いずれのNPUも、ニューラルネットワークの機械学習と推論を高速で処理できるように、並列計算に特化した構成になっています。これはノイマン型とはちょっと違うコンピューターの構成になります。バベッジとかチューリングとかノイマンとか、現在のコンピューターを発明した人々がこのNPUの構成を知ったら何と言うでしょうか。「そうか、21世紀には新しいコンピューターが発明されたのか!」と言うんじゃないかと思います。NPUはチューリングマシンであることは間違いないのですが、従来の意味でプログラムは存在せず、しいて言えば学習済みニューラルネットワークが存在するということになります。

※参考記事

ニューラルネットワーク、ディープラーニング

※参考書籍

CQ出版社、インターフェース2020年10月号

 

コメントする

メールアドレスが公開されることはありません。