AI為什麼要用GPU?同時處理大量乘法的原理

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

AI的計算大部分是把大量數字「相乘再相加」的重複,而且可以分成很多份同時進行。GPU是排了數千個以上簡單計算電路的零件,擅長一口氣處理這種形式的工作。另一個AI使用GPU的重要原因,是它擁有能快速搬運計算所需大量數字的記憶體。

這篇文章可以了解

  • AI實際在做的計算(「相乘再相加」的重複=矩陣的計算)
  • CPU和GPU構造的差異,以及GPU適合AI的原因
  • 和計算速度一樣重要的「搬運數字的速度」,以及稱為HBM的記憶體
  • 把數字變短來增加計算量的技巧,以及TPU、NPU等其他AI晶片

先備知識:如果知道CPU是「把程式指令一個一個執行的零件」,會比較容易閱讀。這在「CPU是什麼?」中說明。

生活中的例子

在聊天介面提問,AI就會用文字回答。在手機的相簿App搜尋「狗」,就能找到拍到狗的照片。這些功能的背後,都進行著龐大的計算。

新聞裡常提到,為了做出AI,要用上數千個、數萬個GPU。例如Meta用約1萬6千個GPU,訓練了文字AI「Llama 3」中最大的模型(2024年的論文)。但GPU原本是為了遊戲等畫出畫面的零件。為什麼畫圖的零件,會被用在AI上呢?

AI計算的內容是「相乘再相加」

現在的AI,多半是由稱為「神經網路」的計算步驟構成的。名稱來自大腦的神經細胞,但內容是數字的計算。把輸入的數字,各自乘上固定的數,再加總起來。這個「相乘再相加」,要疊好幾層重複進行。

我們用一個小例子來看看。假設要從考試分數(國文80、數學60、英文70),算出「理組分數」和「文組分數」。理組分數是把國文乘0.2、數學乘0.5、英文乘0.3後相加。文組分數則是各乘0.4、0.2、0.4後相加。

把考試分數乘上表中的數再相加,得到2個分數 國文 數學 英文 輸入 80 60 70 要相乘的數字表 理組 0.2 0.5 0.3 文組 0.4 0.2 0.4 理組 80×0.2+60×0.5+70×0.3 =67 文組 80×0.4+60×0.2+70×0.4 =72 6次乘法和4次加法,得到2個答案
把輸入的數字乘上表中的數再相加,就得到答案。理組那一列和文組那一列,不必等對方的結果,可以分開計算。圖中省略的部分:實際的AI中,表的長寬都有數千以上,以及相乘相加之後的小處理。

像這樣把要相乘的數字排成長寬的表,稱為「矩陣」。而圖中這種計算,稱為「矩陣乘法」。就算不用算式,只要想成「表的每一列,都和輸入相乘再相加」就夠了。

在AI裡,輸入是把文字或影像轉成數字的東西。要相乘的數稱為「權重」,代表要把哪個輸入看得多重。實際的AI,會把長寬超過數千的表疊上數十層來使用。Google在2017年的說明中表示,執行AI的計算裡最重的部分,通常是矩陣乘法。另外,這裡為了簡化,省略了相乘相加之後的小處理。

訓練與推論:計算量相差好幾個數量級

要讓AI能夠使用,首先要進行「訓練」。這是一邊給它看大量例子,一邊一點一點修正權重,讓答案接近正確答案的工作。權重不是由人決定的,而是在訓練中決定的。

訓練完成後,就用決定好的權重,對新的輸入給出答案。這稱為推論。聊天AI寫回覆,手機找出照片裡的狗,都是推論。

計算量非常龐大。2020年發表的文字AI「GPT-3」,有1,750億個權重。這類AI每產生1個詞(精確來說是稱為token的單位),幾乎所有權重都要各用1次。每個權重要做乘法和加法各1次,所以每個詞合計需要約3,500億次計算(粗略的參考值)。

訓練時,每個詞要做這個的約3倍,也就是約1兆次計算。因為除了算出答案,還要計算權重該怎麼修正。這個「約3倍」,是Kaplan等人的研究(2020年)等使用的參考值。GPT-3的訓練,用了約3,000億個token份量的文章。這不是人用計算機追得上的量,需要計算很快的機器。

CPU和GPU:少數靈巧的核心,與大量簡單的計算電路

就像在「CPU是什麼?」中看到的,CPU是把程式指令一個一個取出來執行的零件。執行指令的一整套電路,稱為「核心」。電腦和手機CPU的核心,通常是幾個到20多個。每個核心都有很多技巧,用來快速處理岔路很多的複雜工作。

另一方面,GPU排了數千個簡單的計算電路。每一個都不像CPU的核心那麼靈巧。但相對地,它能對不同的資料,同時進行相同的計算。晶片的面積,大多不是用在處理岔路的技巧上,而是用在計算電路本身。

CPU有少數大型核心,GPU有大量小型計算電路 CPU 少數靈巧的核心 核心 核心 核心 核心 GPU 大量簡單的計算電路 對不同的資料,同時做相同的計算
CPU有少數靈巧的核心,GPU則排了大量簡單的計算電路。圖中省略的部分:實際的數量(GPU的計算電路有數千個以上)、大小的比例、快取等記憶空間、記憶體。比例並不精確。

矩陣乘法正好適合這種構造。在剛才的例子中,理組分數和文組分數不必等對方的結果,可以分開計算。大的表也一樣,每一個答案都能交給不同的計算電路。數千個答案可以同時計算,所以GPU能比CPU快得多完成。CPU和GPU的差異,整理在「CPU與GPU的差異」的表格中。

GPU原本是畫圖的零件

畫面上的圖,是由小點聚集而成的。這些點稱為「像素」。Full HD的畫面,有1920×1080,約207萬個像素。很多遊戲每秒會重新計算約60次所有像素的顏色。每個像素都用相同的步驟決定顏色,所以排出大量計算電路同時進行,效率最好。

NVIDIA在1999年,把名為GeForce 256的產品命名為「GPU」並推出。之後,GPU的計算電路逐漸改造成也能用在畫圖以外的計算。2006年,NVIDIA發表了用GPU做一般計算的機制CUDA。

對AI來說,轉捩點是2012年。多倫多大學的團隊,用2張市售的遊戲用GPU,訓練了辨識影像的AI「AlexNet」。這個AI在影像辨識的比賽中,以大幅領先第2名的差距獲勝。列出5個候選答案、其中沒有正確答案的比例約15%,第2名則約26%。以此為契機,GPU在AI研究中被廣泛使用。為了畫圖而設計的「由大量電路同時做相同計算」的構造,正好也適合AI的矩陣計算。

另一道牆:搬運數字的速度

計算電路再快,如果計算要用的數字送不到,電路也只能等待。放置數字的地方是記憶體,從那裡每秒能搬運的資料量,稱為「記憶體頻寬」。在AI中,這個頻寬和計算速度一樣重要。

我們用文字AI來思考看看。就像剛才看到的,每產生1個詞,幾乎所有權重都要從記憶體讀出來。假設把GPT-3的1,750億個權重,每個用16位元(排成16個的0和1)來表示。8位元算1位元組,所以每個是2位元組,全部約350GB(gigabyte)。每個詞都要搬運這麼多數字,所以常常是搬運比計算更跟不上。

因此AI用的GPU,會使用稱為HBM的特別記憶體。HBM是把好幾片記憶體晶片疊起來,放在GPU的旁邊。它排出非常多條資料的通道,一次搬運大量數字。在2022年訂定規格的HBM3中,每一疊有1,024條通道。

NVIDIA在2022年發表的GPU「H100」,每秒能搬運約3.35TB。TB(terabyte)是1,000GB。為了比較,我們來計算電腦用的DDR5-4800記憶體並用2條的情況。從規格的數字(每秒4,800次,每次8位元組),1條是每秒38.4GB,2條是76.8GB。H100能搬運這個的40倍以上。

CPU交付工作,GPU從旁邊的HBM搬運數字來計算 CPU 安排、下指令 交付工作 GPU的封裝 計算 電路 搬運 搬運 HBM HBM 數字送不到,計算電路就只能等
CPU做好安排,把工作交給GPU,GPU再從旁邊的HBM搬運權重等數字來計算。HBM是把記憶體晶片疊起來的東西。圖中省略的部分:CPU那一側的記憶體、GPU之間的通訊、晶片裡的小型記憶空間。HBM的數量和配置依產品而不同。

即使如此,還是追不上計算的速度。H100在16位元數字的矩陣上,每秒能做約1,000兆次計算(乘法和加法分開計算的值)。和能搬運的量相比,差距大到每送來1位元組,就能做約300次計算。Gholami等人的研究(2024年),調查了過去20年的變化。伺服器用零件的計算速度(最高值),每2年約變成3倍。另一方面,記憶體頻寬每2年約變成1.6倍。搬運數字的速度追不上計算的這個問題,稱為記憶體牆。

所以在執行AI時,會盡量重複使用搬運過一次的數字。例如聊天AI的服務,會把很多人的問題集中起來處理。因為讀出一次的權重,可以用在好幾個人的計算上。

把數字變短,做更多計算

在AI的計算中,就算稍微降低數字的精細度,答案也常常幾乎不變。所以,減少表示1個數字所用的0和1的個數(位元數)的技巧,被廣泛使用。位元數越少,能表示的數字就越粗略。

常用的數字格式都有名稱。作為計算基準常用的32位元小數,是FP32。AI常用的是它一半的16位元FP16和BF16,以及8位元整數INT8等。各自的差異整理在「FP32、FP16、BF16、INT8的差異」的表格中。

把數字變短,有3個好處。要搬運的資料變少,所以同樣的記憶體頻寬能搬運更多數字。記憶體能放的權重數量也會增加。而且乘法的電路變小,用同樣的面積和電力,能排出更多計算電路。

現在的GPU,有專門一口氣進行短數字之間矩陣乘法的電路。NVIDIA稱之為張量核心。依H100的規格,32位元的一般計算是每秒約67兆次。用張量核心計算16位元的矩陣,會變成它的約15倍,約1,000兆次。不過,精細度降得太多答案會偏掉,所以能縮短到什麼程度,要依用途確認。

不只GPU:TPU和NPU

也有專門為矩陣乘法打造的AI專用晶片。代表是Google的TPU。Google從2015年開始在自家的資料中心使用TPU,並在2016年公開。第一代TPU把8位元整數相乘再相加的電路,像棋盤格一樣排了256×256=65,536個。它一邊把數字傳給旁邊的電路,一邊進行矩陣乘法。這種方式稱為脈動陣列。

手機和電腦裡,也裝有AI專用的電路。這稱為NPU。例如Apple在2017年,首次在自家的A11 Bionic晶片中放入NPU。這是用於iPhone 8和iPhone X的晶片。根據Apple的發表,它每秒最多能做6,000億次計算,用於用臉解鎖畫面等功能。NPU專注於推論,設計成用很少的電力運作,所以適合用電池運作的機器。

GPU是畫圖、AI、科學技術計算都能處理,用途很廣的零件。TPU和NPU這類專用晶片,在擅長的計算上每單位電力的效能較高,但用途有限。三者的差異整理在「CPU、GPU、NPU的差異」的表格中。

常見的誤解

誤解:GPU是玩遊戲用的零件

實際上,GPU的起點是畫出遊戲等的畫面,但現在也廣泛用於AI和科學技術計算。H100這類資料中心用的GPU,不是為了在畫面上顯示圖,而是用來計算。畫圖的工作和AI的計算,都是「對大量資料做相同計算」的形式。所以同樣的構造,對兩者都有幫助。

誤解:GPU是把CPU變快的東西

實際上,GPU和CPU擅長的工作形式不同。GPU的每一個計算電路,都比CPU的核心簡單。在岔路很多、不等前一個結果就無法進行的工作上,GPU比不上CPU。執行作業系統這類管理整台電腦的軟體,也是CPU的工作。

誤解:AI只靠GPU運作

實際上,CPU和記憶體也不可或缺。資料的準備,以及把工作分配給GPU,都由CPU負責。NVIDIA給GPU用的程式設計指南,也是以CPU端的程式請GPU計算的形式來說明。另外,大型AI放不進1個GPU的記憶體。所以要分開放在好幾台GPU上,再用高速通訊把GPU連接起來。AI的速度不只取決於GPU的計算速度,也取決於記憶體和通訊的速度。

從數字來看

項目數字比較看看
GPT-3(2020年)的權重約1,750億個用16位元表示約350GB
產生1個詞的計算(推論)約3,500億次乘法和加法各約1,750億次
H100(2022年發表)的計算每秒約1,000兆次(16位元)32位元一般計算的約15倍
H100的記憶體頻寬每秒約3.35TB電腦記憶體(DDR5-4800兩條)的40倍以上
H100的記憶體容量80GBGPT-3的權重放不進1台
第一代TPU(2015年起使用)相乘再相加的電路 65,536個用8位元整數計算
A11 Bionic的NPU(2017年)每秒最多6,000億次手機裡的AI專用電路

H100的數字,是H100中稱為SXM形式產品的NVIDIA規格。16位元的值,是使用張量核心、且不使用省略多0表格技巧時的值。規格表上的約2,000兆次,是使用這個技巧時的值。

我們粗略估算一下搬運速度的影響。用和H100相同的每秒3.35TB速度,讀取350GB的權重,約需0.1秒。就算計算瞬間完成,每個詞也要等約0.1秒的讀取。實際上350GB放不進1台(80GB),所以要分開放在5台以上,並行讀取。再把好幾個人的請求集中處理,減少每個人的等待時間。

進一步學習

接著閱讀

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

  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硬體與軟體堆疊

參考資料

入門解說一覽