関連インテルが新しいCPUのCore Ultraを発表しました。AI処理に向けたNPUを搭載するらしいのですが、これが一体何なのか、これまでとどう違うのかイメージが湧きません。
NPU (Neural Processing Unit) はニューラルネットワーク向けの演算に特化した浮動小数点演算ユニットです。
CPU から FPU、FPU から GPU へと発展してきた経緯はご存知ですか?
NPU は GPU をさらに発展させたものです。
Z80 など昔の CPU (Central Processing Unit) は整数演算しかできませんでした。CPU には整数演算用のレジスタと整数演算器 ALU (Arithmetic and Logic Unit) しか備わっていなかったため、小数演算をするにはソフトウェアを組んでいたのです。
小数演算を都度都度ソフトウェアで組むのはめんどくさいですし、多段ステップを踏む手順となるため、処理速度も遅くなります。そこで小数演算を 1 命令で専用ハードウェアが実行するようにしたものが FPU (Floating Point Unit) です。
Intel 80286 という CPU に対して 80287 という FPU がある、というように CPU に対して FPU が (別売りで) ペアになっていました。
やがて FPU は CPU に組み込まれるようになります (1990 年ごろリリースの i486 DX など)。いまの CPU は内蔵の FPU で浮動小数点演算ができます。
時代が下ると、この FPU を活用して高度なグラフィックスを表現するようになります。
3D グラフィックスの表現ではたくさんの演算が必要です。ある物体を眺める視点を変える時には、その物体を回転させる演算が走ります。回転させるにはその物体の各点の座標に三角関数を適用するため、大量の浮動小数点演算が必要になります。
内部に数個の演算器しか含んでいない FPU にこれを計算させるのはツライ … FPU がボトルネックになってしまいます。
そこで出てきたのが、浮動小数点演算器を多数備える GPU (Graphics Processing Unit) です。
ここでも、従来 FPU の少ない演算器を用いてソフトウェアで行っていた大量の浮動小数点演算を GPU という専用ハードウェアによって (並列) 実行するようにしたという転換があります。
この GPU も、NVIDIA GeForce RTX4090 などの高性能なものは外付け eGPU になりますが、簡易なものは CPU 内蔵 iGPU として CPU 内部に組み込まれています。
ref