機器學習工程與系統

圖形處理器與張量處理器(GPU 和 TPU)

/ GEE-pee-yoo and TEE-pee-yoo /

GPU(圖形處理器)和 TPU(張量處理器)是為機器學習扛起繁重算術的專用晶片。筆電裡那顆普通處理器叫 CPU,它像一位才華橫溢卻獨自下廚的大廚——什麼菜都會做,但一次只能照看一口鍋。GPU 則更像一間龐大的廚房,裡面有成千上萬名流水線廚工,每人並行地負責一個簡單步驟。神經網路說到底大多是同一個簡單運算——把成片成片的數字相乘再相加——重複上百萬次,而這恰恰是 GPU 生來就擅長、能一口氣分攤給所有廚工去做的活。

GPU 最初是為繪製電子遊戲畫面而設計的,那同樣是一股並行的數字洪流;研究者在 2009 到 2012 年前後發現,同一套硬體訓練神經網路快得驚人。TPU 則是谷歌為這一件事從零打造的晶片:它砍掉了圖形相關的機件,塞進更高效的電路,專門做神經網路核心那種密集的矩陣乘法。別的公司也各自做著自家的加速器;GPU 和 TPU 只是其中最為人熟知的兩個名字。

為什麼這很重要:現代 AI 的繁榮,既是一個數學故事,也同樣是一個硬體故事。那些在 CPU 上要花幾個月訓練的模型,在成片的加速器叢集上幾天就能練完。但它帶著硬性的限制——這些晶片昂貵、耗電、常常供不應求,還受制於自身高速記憶體的容量。一個塞不進晶片記憶體的模型,不靠額外的招數就根本跑不起來。把這類硬體挑好、餵好本身就是一門手藝,而且它往往才是真正的瓶頸,而非演算法有多巧妙。

把兩張 1000×1000 的數字網格相乘,需要十億次「乘加」步驟。只有寥寥幾個核心的 CPU 一小批一小批地啃;而擁有數千核心的 GPU 一次就甩出幾千個——同樣的活,用零頭時間就做完了。

同樣的算術,卻多出無數條車道——這就是並行晶片在神經網路上稱霸的原因。

更快的晶片並不自動等於更快的模型。如果晶片只是乾等著資料從記憶體或硬碟送來,那你就「卡在記憶體上」了,再強的處理器也買不來任何提速。現實中的效能,是一場原始算力與「餵得有多快」之間的拉鋸。

又稱
graphics processing unittensor processing unitAI accelerator图形处理器张量处理器加速器