Neural Processing Unit (NPU)
ニューラル処理ユニット(NPU)は、ニューラルネットワークの演算向けに設計されたプロセッサーで、スマートフォン、PC、カメラ上で量子化モデルを効率的に実行します。
ニューラルプロセッシングユニット(NPU)は、ニューラルネットワークの実行向けに設計されたプロセッサーです。オンチップメモリからデータを受け取る、大規模な積和演算ユニットの配列を中心に構成されています。ほとんどのNPUは、CPUやGPUの隣にあるシステムオンチップ内のブロックとして実装され、カメラ、音声、ビジョン機能の推論を、CPUやGPUよりはるかに少ない電力で実行します。2017年には、HuaweiのKirin 970と、Neural Engineの性能が毎秒6,000億回の演算と評価されたAppleのA11 Bionicによって、NPUがスマートフォンに搭載されました。その後、QualcommのHexagon NPU、2023年12月以降のIntel Core UltraノートPCプロセッサーに搭載されたNPU、AMDのRyzen AIチップも登場しました。MicrosoftのCopilot+ PCには、毎秒40兆回を超える演算(TOPS)を実行できるNPUが必要です。この名称はデータセンターチップにも使われます。HuaweiはAscendデータセンターアクセラレーターをNPUと呼び、大規模モデルの学習に使用しています。
NPUとCPU・GPUの違い#
ディープラーニングの推論では、予測可能なデータに対する行列乗算や畳み込みが大部分を占めます。そのためNPUは、汎用コードに必要なCPUの制御ロジックやキャッシュ、グラフィックス向けにGPUが備える柔軟性の大半を省きます。そのシリコン面積を特定用途向けの演算アレイに割り当て、データ移動は計算よりも多くのエネルギーを消費するため、重みやアクティベーションをローカルメモリに保持します。NPUは主にINT8やFP16の低精度で演算するため、NPUで実行する前にモデルの量子化が必要になることが多く、NPUの処理性能はINT8 TOPSで示されます。たとえば、GoogleのCoral Edge TPUは、1ワットあたり2 TOPS、合計4 TOPSを実行します。
- CPU: あらゆるコードを実行し、NPUが対応していない操作を処理します。大規模な行列演算では3種類の中で最も低速です。
- GPU: プログラム可能な並列プロセッサーで、高い処理性能で浮動小数点演算によるモデルの学習と実行ができますが、消費電力はNPUより大きくなります。
- TPU: Googleの行列演算アクセラレーター製品群です。クラウドTPUはデータセンターでモデルを学習・提供し、Edge TPUは名称以外の点ではNPUです。
- ニューロモーフィックチップ: スパイキングニューラルネットワークのスパイクを処理し、イベント駆動型センサーに適しています。NPUの高密度な行列演算とは異なる計算モデルです。
NPUでモデルを実行する#
NPUはPyTorchやONNXのグラフではなく、コンパイル済みプログラムを実行します。ベンダーのコンパイラーは、事前に、またはランタイムによる読み込み時にネットワークを変換します。多くの場合、キャリブレーション画像を使ってINT8に量子化し、入力形状を固定して、各レイヤーをハードウェアに割り当てます。NPUが対応していないレイヤーはCPUまたはGPUに戻され、そのたびにプロセッサー間でテンソルがコピーされます。
フォールバックが発生するたびに転送が増え、一方のプロセッサーがもう一方を待つため、エッジデバイス向けアーキテクチャでは、畳み込み、ReLU系アクティベーション、プーリングなどの標準オペレーターが優先されます。ONNX Runtime、AppleのCore ML、GoogleのLiteRT、IntelのOpenVINOなどのランタイムが、こうした処理の分割を担い、NPUがあればNPUを選択します。
NPUの用途#
スマートフォンは、コンピュテーショナルフォトグラフィー、オンデバイス音声認識、顔認識、リアルタイム翻訳にNPUを使います。画像や音声をデバイス内に保つことで、データプライバシーを守ります。AI PCでは、Windows Studio EffectsがNPU上でビデオ通話の背景ぼかし、視線補正、自動フレーミングを実行し、CPUとGPUを他の処理に使える状態に保ちます。エッジAIでは、Rockchip、Hailo、DEEPXのNPUが、ネットワークに接続せずにセキュリティカメラ、ドローン、ロボット内で物体検出を実行します。
Ultralytics YOLO26は、エクスポートモードを使ってNPUに必要なコンパイル済み形式にエクスポートできます。対象形式には、Intel NPU向けのOpenVINO、Apple Neural Engine向けのCore ML、Qualcomm Hexagon NPU向けのQNN、Rockchip向けのRKNN、Huawei Ascend向けの.om形式が含まれます。また、device="npu:0"またはdevice="npu:0,1"を指定することで、Ascend NPUでの学習や複数NPUでの学習も実行できます。










