NPUとは? スマホやPCのAI専用回路のしくみ
NPU(ニューラル・プロセッシング・ユニット)は、AIの計算の大部分を占める「掛けて足す」を、少ない電力で大量にこなすための専用の回路です。スマホやパソコンの中心のチップに入っていて、写真の加工や音声の聞き取りなどのAIを、端末の中で動かします。ただし何でも速くする回路ではなく、性能の数字「TOPS」だけで速さは決まりません。
この記事でわかること
- NPUが受け持つ計算と、CPU・GPUとの役割の違い
- 少ない電力でAIを動かすための工夫(数を短くする、運ぶ量を減らす)
- スマホ・パソコン・データセンターのAI用の回路
- 「TOPS」の数字の意味と、そのまま比べられない理由
前提知識: AIの計算が、数を「掛けて足す」ことのくり返しだと知っていると読みやすくなります。「なぜAIにGPUが使われるの?」で説明しています。
身近なところでは
パソコンの売り場や仕様表で、「AI PC」「NPU搭載」という言葉を見かけるようになりました。Microsoftは2024年5月、「Copilot+ PC」というパソコンの区分を発表しました。その条件の1つが、1秒に40兆回以上の演算ができるNPUを持つことです。iPhoneの仕様表にも、「16コアNeural Engine」のような項目が並びます。
写真に写り込んだ人を消す、録音を文字に起こす、ビデオ会議で背景をぼかす。こうした機能の裏で働くことが多いのが、NPUです。この記事では、NPUが何をする回路なのか、なぜわざわざ専用の回路を作るのかを順に見ていきます。
NPUの仕事は「掛けて足す」をたくさん
今のAIの多くは、ニューラルネットワークという計算の手順でできています。中身は、入力された数に決まった数(重み)を掛けて足すことの、膨大なくり返しです。
掛け算1回と、その結果を足し込む足し算1回の組を、積和演算と呼びます。英語の頭文字でMAC(マック)とも書きます。AIに何回の積和が要るかの数え方は、「行列の積は何回の計算?」で扱っています。
NPUは、この積和の回路をたくさん並べた、AI専用の計算の部品です。名前は「ニューラルネットワークを処理する部品」という意味の英語の頭文字です。単独のチップではなく、CPUやGPUと一緒にSoCの中に作り込まれることが多くあります。SoCは、機器の主な回路を1つにまとめたチップです(「スマホの中にはどんな半導体が入っている?」)。
呼び名は会社によって違います。AppleはNeural Engine、QualcommはHexagon NPUと呼んでいます。この記事では、スマホやパソコンの中のAI専用の回路をまとめてNPUと呼びます。
なぜCPUやGPUではなく、専用の回路なの?
CPUでもGPUでも、AIの計算はできます。問題は電力です。スマホやノートパソコンは電池で動き、ファンのないスマホは熱を逃がす力も限られます。そこで、同じ電力でどれだけ計算できるか(電力あたりの性能)が大事になります。
CPUは何でもこなせるかわりに、計算そのもの以外にも多くの電力を使います。命令を1つずつ取り出して解読し、次に何をするかを決める回路が、いつも動いているからです(「CPUとは?」)。NPUはこうした仕組みの多くを省き、計算の流れを前もって決めておきます。AIのモデル(重みと計算の手順をひとまとめにしたもの)を、そのNPU向けの手順に変換してから動かすのです。
工夫1: 数を短くする
AIの計算は、数の細かさを少し落としても、答えがほとんど変わらないことが多くあります。そこで、32ビット(0と1を32個並べたもの)の小数のかわりに、8ビットの整数を使います。この形式をINT8と呼び、-128から127までの256通りの整数を表せます。
もとの小数を、256段階のうち近い値に置き換えるわけです。この置き換えを、AIでは「量子化」と呼びます。掛け算の回路は、扱う桁が少ないほど小さく、使う電力も少なくなります。2014年に発表された見積もりでは、8ビットの整数の掛け算の電力は、32ビットの小数の掛け算の約18分の1でした。
製品によっては、16ビットの小数(FP16)や、さらに短い4ビットの整数も使います。数の形式の違いは「FP32・FP16・BF16・INT8の違い」で表にまとめています。
工夫2: 運ぶ量を減らす
実は、計算そのものより多くの電力を使うのが、数を運ぶことです。同じころの見積もりでは、チップの外のメモリ(DRAM)から数を1個読むのに、掛け算1回の100倍以上の電力がかかります。そこでNPUは、計算回路のすぐそばに小さなメモリを持ち、一度運んだ数を何度も使い回します。
AIの計算では、同じ重みを、画像のたくさんの場所や何人分もの入力に使えます。そばのメモリに置いた数を使い切るまで計算すれば、遠いメモリとの往復が減ります。メモリから運ぶ速さがAIでどれほど大事かは、「HBMとは?」でも説明しています。
GPUとの違い
GPUも、たくさんの計算回路を並べた部品です。ただしGPUは、絵を描く、AIを学習させる、科学技術の計算をするなど、プログラムしだいで幅広い仕事をこなします。柔軟なぶん、使う電力も大きく、データセンター用には1個で数百ワットを使うものもあります。
スマホやパソコンのNPUは、主に推論に仕事を絞っています。推論とは、学習で決まった重みを使い、新しい入力に答えを出す計算です。重みを決める「学習」は、ふつうデータセンターのGPUなどで行います。違いは「CPU・GPU・NPUの違い」と「AIの学習と推論の違い」で表にしています。
端末の中で動かす利点
AIの計算は、ネットの向こうのデータセンターで行うこともできます(「クラウドとは?」)。それでも端末の中で動かすのには、理由があります。Googleの開発者向けの資料は、主な利点として次の点を挙げています。
- 写真や声などのデータを、端末の外に送らずに済む
- ネットにつながっていなくても使える
- 通信の行き来を待つ時間がない
- サービスを提供する側の計算の費用が減る
このように、データセンターではなく手元の機器でAIを動かすことを、「エッジAI」や「オンデバイスAI」と呼びます。エッジ(端)は、ネットワークの端にある機器という意味です。電池で長く動かすには、電力あたりの性能が高いNPUが向いています。
NPUはどこに入っている?
スマホ
2017年には、AI専用の回路を入れたスマホのSoCが相次いで発表されました。Huaweiは9月にKirin 970を発表し、専用のNPUを持つと説明しました。同じ月にAppleが発表したA11 Bionicには、同社で初めてのNeural Engineが入りました。今では、AppleのAシリーズ、QualcommのSnapdragonなど、多くのスマホのSoCがAI用の回路を持っています。Googleも2021年のPixel 6から、自社のSoC「Tensor」を使っています。
パソコン
AppleはMac用のM1(2020年)から、SoCにNeural Engineを入れています。Windowsのパソコンでは、先に触れたCopilot+ PCがNPUを広めるきっかけになりました。2024年に出た最初のCopilot+ PCは、QualcommのSnapdragon Xシリーズを使いました。そのNPUは、Qualcommの仕様で45 TOPSです。その後、AMDやIntelのチップを使った製品も加わりました。
データセンター
Googleは2016年5月、AI用に自社で作ったチップ「TPU」を公表しました。そのとき、すでに1年以上データセンターで使っていると説明しています。TPUも行列の積和に特化したチップですが、データセンター用の大型の部品で、第2世代(2017年)からは学習にも使われています。こうした部品は「AIアクセラレータ」(AIの計算を速める専用の部品)と呼ばれることが多くあります。NPUという名前は、主にスマホやパソコンの中の回路に使われます。しくみは「なぜAIにGPUが使われるの?」で紹介しています。
TOPSとは? 数字の読み方
NPUの性能は、TOPS(トップス)という単位で表されることが多くあります。1秒に何兆回の演算ができるかを表す数です。Tは「兆」を表すテラ、OPSは「1秒あたりの演算」の英語の頭文字です。40 TOPSなら、1秒に40兆回です。
この数は、ふつう理論上の最大値です。積和の回路の数に、2(掛け算と足し算で2回と数える)と、1秒に回路が動く回数を掛けて求めます。すべての回路が休まず働いた場合の値で、実際のAIでそこまで出ることはまずありません。
そのうえ、同じチップでも、数え方の条件で数字が変わります。主な条件は次のとおりです。
- 数の形式: 短い数ほど一度に多く計算できるので、4ビットで数えると、8ビットより大きな数字になることがあります。16ビットの小数で数えれば、小さくなります。
- 0を飛ばす工夫: 重みのうち0の部分の計算を省き、省いた分も「計算した」と数える値があります。0が多いことを「疎(スパース)」と呼ぶので、疎の場合の値とも書かれます。
- 運ぶ速さ: TOPSには、メモリから数を運ぶ速さが入っていません。運ぶのが遅ければ、回路は数を待つだけです。
- ソフトの対応: NPUが対応していない計算は、CPUなどに回されます。
そのため、メーカーや世代の違うNPUを、TOPSだけで比べることはできません。比べるときは、使いたいアプリやモデルを実際に動かして測った結果(ベンチマーク)を見るのが確実です。
NPUがよく使われる仕事
スマホでは、写っている物や人を見分ける、暗い場所の写真のざらつきを減らす、背景をぼかす、といった写真の処理によく使われます。話した言葉を文字にする、外国語を訳す、といった声や言葉の処理もあります。パソコンでは、ビデオ会議のカメラの背景をぼかす機能などです。Windowsの「Windows Studioエフェクト」は、NPUを持つパソコン向けの機能です。
最近は、文章を作るAI(「生成AIはどう動く?」)の小さな版を、端末の中で動かす例も出てきました。Appleは2024年、約30億個のパラメータ(重みなど学習で決まる数)を持つモデルを、端末の中で動かすと説明しています。ただし、どの機能がNPUで動くかは、製品やアプリによって違います。
NPUの限界
ソフトが対応していないと使われない
NPUの作りは、メーカーや機種ごとに違います。そのため、学習済みのモデルを読み込み、そのハードウェアで動く形に変換して実行するソフトが要ります。このソフトを推論ランタイムと呼びます。アプリやOSがNPUを使うように作られていなければ、NPUは働きません。
大きなモデルは入らない
NPUのそばのメモリは小さいので、モデルの重みはふつう端末のメモリに置きます。スマホのメモリは、例えばiPhone 16 Pro(2024年)で8GBです(分解調査による)。これをOSやほかのアプリと分け合います(「メモリとストレージの違いは?」)。データセンターで動く大きなモデルは、そのままでは入りません。端末用には、パラメータの少ないモデルを選び、数を短くして小さくします。
よくある誤解
誤解: NPUがあれば、パソコンやスマホが何でも速くなる
実際は、NPUが受け持つのは、AIの推論のうちNPU向けに作られた部分だけです。表計算、ゲームの絵、ウェブページの表示などは、これまでどおりCPUやGPUの仕事です。アプリがNPUを使うように作られていなければ、NPUは使われません。「AI PC」という呼び名から、全体が速くなるように感じやすいのが誤解のもとです。
誤解: TOPSの数字が大きいほど、AIが速い
実際は、TOPSは条件のそろわない理論上の最大値で、数の形式や0を飛ばす工夫によって変わります。また、文章を作るAIでは、メモリから数を運ぶ速さが先に上限になることがよくあります(次の「数字で見る」)。仕様表で比べやすい数字なので、それだけで判断されがちです。
誤解: スマホのAIの機能は、いつもNPUで動いている
実際は、CPU・GPU・NPUのどれで動かすかは、アプリやOSのソフトが選びます。例えばAppleのAI用のソフト(Core ML)では、開発者が使う部品を指定できます。指定しなければ、Core MLが使える部品の中から選びます。大きな処理は、ネットの向こうのサーバーで行うこともあります。Appleは2024年、端末の中のモデルとサーバーのモデルを使い分けると説明しました。
数字で見る
| 項目 | 数字 | 補足 |
|---|---|---|
| A11 BionicのNeural Engine(2017年) | 1秒に最大6,000億回 | Appleの発表 |
| 初代TPU(2016年に公表) | 最大92 TOPS | 8ビットの整数。データセンター用(2017年の論文) |
| Snapdragon X EliteのNPU | 45 TOPS | 8ビットの整数。Qualcommの仕様(2024年) |
| Copilot+ PCの条件(2024年) | NPUが40 TOPS以上 | メモリ16GB以上、ストレージ256GB以上も条件 |
| 掛け算1回の電力 | 8ビットの整数 約0.2pJ、32ビットの小数 約3.7pJ | pJ(ピコジュール)は1兆分の1ジュール |
| 外のメモリ(DRAM)から32ビットの数を1個読む電力 | 約640pJ | 32ビットの小数の掛け算の約170倍 |
上の4行は、数え方の条件がそろっていないので、互いに比べる数字ではありません。電力の2行は、Horowitzが2014年に示した、45nmという古い世代の見積もりです(Hanら・Szeらの論文の表による)。製造の世代が進めば値そのものは変わります。それでも、Szeらの2017年の解説は、数を運ぶ電力が計算より大きいことを、AI用チップの設計の出発点にしています。
運ぶ速さの影響を、ざっと見積もってみます。重みが30億個の文章のAIを、重み1個を4ビットにして動かすとします。8ビットが1バイトなので、1個0.5バイトです。重みは全部で約1.5GBです。文章を作るAIは、1語(正確にはトークン)を作るたびに、ほぼすべての重みを読み出します。
メモリから1秒に135GB運べるチップ(Snapdragon X Eliteの仕様)でも、1回読むのに約0.011秒かかります。1秒に約90語が上限です。一方、計算は重み1個につき掛け算と足し算の2回で、1語あたり約60億回です。45 TOPSなら約0.00013秒と、読み出しの約80分の1で済みます。この場合、TOPSを2倍にしても、速さはほとんど変わりません。ここでは話を簡単にするため、ほかのデータの読み書きや、数の形式の違いは省きました。
もっと詳しく学ぶ
- 違いを表で見る: CPU・GPU・NPUの違い、AIの学習と推論の違い、DDR・LPDDR・GDDR・HBMの違い
- 数字で試す: メモリ帯域幅の計算(メモリから1秒に運べる量を計算できます)
- 次の一歩の用語: 学習後量子化(学習を終えたモデルの数を短くする方法)、構造化スパース(0を決まった形に並べて計算を省く)、シストリックアレイ(積和の回路の並べ方の一つ)
- 計算の量を数える: 「行列の積は何回の計算?」
- 関連する記事: 「なぜAIにGPUが使われるの?」、「HBMとは?」