NPU是什麼?手機和電腦裡的AI專用電路原理

約 11 分鐘 · 更新:2026年10月23日

NPU(神經網路處理單元)是專門用來處理AI計算大部分的「相乘再相加」,以很少的電力大量完成這種計算的電路。它內建在手機和電腦的核心晶片裡,讓修圖、聽寫語音等AI功能在裝置內執行。不過,它不是什麼都能變快的電路,速度也不只由效能數字「TOPS」決定。

這篇文章可以了解

  • NPU負責的計算,以及它和CPU、GPU的分工差異
  • 用很少的電力執行AI的技巧(把數字變短、減少搬運量)
  • 手機、電腦、資料中心裡的AI用電路
  • 「TOPS」數字的意思,以及為什麼不能直接拿來比較

先備知識:如果知道AI的計算是把數字「相乘再相加」的重複,會比較容易閱讀。這在「AI為什麼要用GPU?」中說明。

生活中的例子

在電腦賣場或規格表上,越來越常看到「AI PC」「搭載NPU」這類字眼。Microsoft在2024年5月,發表了名為「Copilot+ PC」的電腦類別。條件之一,是要有每秒能做40兆次以上運算的NPU。iPhone的規格表上,也列著「16核心Neural Engine」這樣的項目。

把照片裡不小心入鏡的人消掉、把錄音轉成文字、在視訊會議中把背景模糊。這些功能的背後,常常是NPU在工作。這篇文章會依序來看NPU是做什麼的電路,以及為什麼要特地做出專用的電路。

NPU的工作是大量的「相乘再相加」

現在的AI,多半是由稱為神經網路的計算步驟構成的。內容是把輸入的數字乘上固定的數(權重)再相加,並且重複非常多次。

1次乘法,加上把結果累加起來的1次加法,這個組合稱為乘積累加運算。也取英文字首寫成MAC。AI需要幾次乘積累加的算法,在「矩陣乘法要算幾次?」中介紹。

NPU是排了大量乘積累加電路、AI專用的計算零件。名稱是英文Neural Processing Unit的縮寫,意思是「處理神經網路的單元」。它多半不是獨立的晶片,而是和CPU、GPU一起,做在同一顆晶片裡。這種把機器主要電路整合成1顆的晶片,稱為SoC(系統單晶片)(「手機裡有哪些半導體?」)。

各家公司的叫法不同。Apple稱為Neural Engine,Qualcomm稱為Hexagon NPU。這篇文章把手機和電腦裡AI專用的電路,統稱為NPU。

為什麼不用CPU或GPU,而要專用的電路?

CPU和GPU都能做AI的計算。問題在於電力。手機和筆電靠電池運作,沒有風扇的手機,散熱能力也有限。所以,同樣的電力能做多少計算(每單位電力的效能)就很重要。

CPU什麼都能處理,但相對地,除了計算本身,也花了很多電力在其他地方。因為把指令一個一個取出、解讀,再決定下一步要做什麼的電路,一直在運作(「CPU是什麼?」)。NPU省去了這類機制的大部分,事先決定好計算的流程。AI的模型(把權重和計算步驟整合在一起的東西),要先轉換成給那個NPU用的步驟,再執行。

技巧1:把數字變短

在AI的計算中,就算稍微降低數字的精細度,答案也常常幾乎不變。所以,不用32位元(排成32個的0和1)的小數,而改用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在計算電路的旁邊放了小型記憶體,把搬來一次的數字重複使用很多次。

NPU把從外部記憶體整批搬來的數字,放在旁邊的小記憶體裡重複使用 外部記憶體(DRAM) 距離遠、搬運耗電大 整批搬運 NPU 旁邊的小記憶體 大量的乘積累加電路 搬一次,用很多次
把從外部記憶體搬來的權重等數字,放在計算電路旁邊的記憶體裡,一直計算到用完為止。和遠處記憶體之間的來回減少,所以電力比較省。圖中省略的部分:實際電路的數量和排列方式、處理乘積累加以外工作的電路、和CPU之間的交接。

在AI的計算中,同一份權重可以用在影像的很多位置,或很多人份的輸入上。把放在旁邊記憶體裡的數字用完再換下一批,和遠處記憶體的來回就會減少。從記憶體搬運的速度在AI中有多重要,在「HBM是什麼?」中也有說明。

和GPU的差異

GPU也是排了大量計算電路的零件。不過GPU依程式不同,可以處理畫圖、訓練AI、科學技術計算等廣泛的工作。因為靈活,用的電力也大,資料中心用的GPU,有些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系列。依Qualcomm的規格,它的NPU是45 TOPS。之後,也加入了使用AMD和Intel晶片的產品。

資料中心

Google在2016年5月,公開了自家為AI打造的晶片「TPU」(張量處理單元)。當時Google說明,已經在資料中心使用1年以上。TPU也是專門做矩陣乘積累加的晶片,但它是資料中心用的大型零件,從第2代(2017年)起也用於訓練。這類零件常被稱為「AI加速器」(讓AI計算變快的專用零件)。NPU這個名稱,主要用在手機和電腦裡的電路。原理在「AI為什麼要用GPU?」中介紹。

TOPS是什麼?數字的看法

NPU的效能,常用「1秒能做幾兆次運算」來表示。這個單位稱為TOPS(每秒兆次運算)。T是代表「兆」的tera,OPS是「每秒運算次數」的英文縮寫。40 TOPS就是1秒40兆次。

這個數字通常是理論上的最大值。計算方式是把乘積累加電路的數量,乘上2(乘法和加法算成2次),再乘上電路1秒運作的次數。這是所有電路都不休息地工作時的值,實際的AI幾乎不可能達到。

而且,就算是同一顆晶片,數字也會因計算條件而改變。主要的條件如下。

  • 數字的格式:數字越短,一次能算的越多,所以用4位元來算,數字可能比8位元大。用16位元的小數來算,則會變小。
  • 跳過0的技巧:有些數值會省略權重中0的部分的計算,再把省略的部分也算成「計算過了」。0很多的狀態稱為「稀疏」,所以也寫成稀疏時的數值。
  • 搬運的速度:TOPS不包含從記憶體搬運數字的速度。搬運得慢,電路就只能等數字送來。
  • 軟體的支援:NPU不支援的計算,會交給CPU等零件。

因此,不能只用TOPS比較不同廠商或不同世代的NPU。比較時,最可靠的是看實際執行想用的App或模型所測得的結果(基準測試)。

NPU常用在哪些工作

在手機上,NPU常用於照片的處理,例如辨識拍到的物體和人、減少暗處照片的雜訊、把背景模糊。也有把說的話轉成文字、翻譯外語這類聲音和語言的處理。在電腦上,則有在視訊會議中把相機背景模糊等功能。Windows的「Windows Studio Effects」,就是給搭載NPU的電腦用的功能。

最近,也出現了在裝置內執行小型文字生成AI(「生成式AI怎麼運作?」)的例子。Apple在2024年說明,會在裝置內執行約30億個參數的模型。參數是指權重等在訓練中決定的數字。不過,哪些功能在NPU上執行,依產品和App而不同。

NPU的限制

軟體不支援,就不會被使用

NPU的構造,依廠商和機種而不同。所以,需要一種軟體,載入訓練好的模型,轉換成能在該硬體上執行的形式再執行。這種軟體稱為推論執行環境。如果App或作業系統沒有設計成使用NPU,NPU就不會工作。

軟體把App的AI功能,分配給NPU、GPU、CPU或雲端 App的AI功能 負責分配的軟體 作業系統、函式庫 裝置內 NPU GPU CPU 透過網路傳送 雲端的伺服器 在哪裡執行,由軟體決定
App的AI功能,會透過作業系統或函式庫(共用零件的軟體),在NPU、GPU、CPU其中之一執行。大型的處理,也可能傳到網路另一端的伺服器。圖中省略的部分:把1個功能分給多個零件執行的情況、記憶體。

大型模型放不進去

NPU旁邊的記憶體很小,所以模型的權重通常放在裝置的記憶體裡。手機的記憶體,例如iPhone 16 Pro(2024年)是8 GB(根據拆解調查)。這要和作業系統及其他App共用(「記憶體和儲存空間有什麼不同?」)。在資料中心執行的大型模型,直接是放不進去的。給裝置用的,要選參數較少的模型,再把數字變短,讓模型變小。

常見的誤解

誤解:有了NPU,電腦或手機做什麼都會變快

實際上,NPU負責的,只有AI推論中為NPU設計的部分。試算表、遊戲的畫面、網頁的顯示等,還是和以前一樣由CPU和GPU處理。如果App沒有設計成使用NPU,NPU就不會被用到。「AI PC」這個名稱,容易讓人覺得整台電腦都會變快,這就是誤解的來源。

誤解:TOPS的數字越大,AI就越快

實際上,TOPS是條件不一致的理論最大值,會隨數字的格式和跳過0的技巧而改變。另外,在文字生成AI中,從記憶體搬運數字的速度,常常會先成為上限(見下一節「從數字來看」)。因為它是規格表上容易比較的數字,所以常被拿來當作唯一的判斷依據。

誤解:手機的AI功能,都是在NPU上執行

實際上,要用CPU、GPU、NPU哪一個來執行,是由App或作業系統的軟體選擇的。例如在Apple的AI用軟體(Core ML)中,開發者可以指定要用的零件。如果沒有指定,Core ML會從能用的零件中選擇。大型的處理,也可能在網路另一端的伺服器進行。Apple在2024年說明,會分別使用裝置內的模型和伺服器的模型。

從數字來看

項目數字補充
A11 Bionic的Neural Engine(2017年)每秒最多6,000億次Apple的發表
第一代TPU(2016年公開)最高92 TOPS8位元整數。資料中心用(2017年的論文)
Snapdragon X Elite的NPU45 TOPS8位元整數。Qualcomm的規格(2024年)
Copilot+ PC的條件(2024年)NPU達40 TOPS以上記憶體16 GB以上、儲存空間256 GB以上也是條件
1次乘法的電力8位元整數約0.2 pJ,32位元小數約3.7 pJpJ(皮焦耳)是1兆分之1焦耳
從外部記憶體(DRAM)讀取1個32位元數字的電力約640 pJ約是32位元小數乘法的170倍

上面4列的計算條件並不一致,所以不是可以互相比較的數字。電力的2列,是Horowitz在2014年提出、針對45 nm這個舊世代的估計(依據Han等人、Sze等人論文中的表)。製程世代進步,數值本身也會改變。即使如此,Sze等人2017年的解說,仍把「搬運數字的電力比計算大」當作AI晶片設計的出發點。

我們粗略估算一下搬運速度的影響。假設要執行有30億個權重的文字AI,並把每個權重縮成4位元。8位元是1位元組,所以每個是0.5位元組。權重全部約1.5 GB。文字生成AI每產生1個詞(精確來說是token),幾乎都要把所有權重讀出來一次。

即使是每秒能從記憶體搬運135 GB的晶片(Snapdragon X Elite的規格),讀1次也要約0.011秒。所以1秒最多約90個詞。另一方面,計算是每個權重做乘法和加法共2次,每個詞約60億次。用45 TOPS計算約0.00013秒,只要讀取時間的約80分之1。在這種情況下,就算把TOPS加倍,速度也幾乎不變。這裡為了簡化,省略了其他資料的讀寫,以及數字格式的差異。

進一步學習

接著閱讀

系列「電腦的原理」的文章

  1. 電腦怎麼用0和1計算?二進位與加法電路
  2. CPU是什麼?它在電腦和手機裡做些什麼
  3. AI為什麼要用GPU?同時處理大量乘法的原理
  4. 作業系統(OS)是什麼?它在電腦和手機裡做些什麼
  5. CPU快取記憶體是什麼?讓CPU不必苦等記憶體的原理
  6. NPU是什麼?手機和電腦裡的AI專用電路原理
  7. FPGA是什麼?做好之後還能改寫電路的晶片原理
  8. ASIC是什麼?特定應用積體電路與CPU、FPGA的差異
  9. 編譯器是什麼?程式變成機器碼的過程
  10. 邏輯閘是什麼?用AND、OR、NOT計算的原理
  11. RISC-V是什麼?人人都能使用的開放指令集
  12. 演算法是什麼?靠步驟的巧思讓計算變快的原理
  13. 資料庫是什麼?表格、SQL與索引的運作原理
  14. Git是什麼?版本控制的原理與GitHub的差異

這個領域的題目: AI硬體與軟體堆疊

參考資料

入門解說一覽