聊AI芯片之前,先想明白一個問題:為什么CPU跑AI這么慢?
本質上,神經網絡計算就是海量的矩陣乘法和卷積運算。這些運算的特點是計算密度高、并行性強,但控制邏輯簡單。
CPU設計目標是通用計算,強大的控制單元和緩存層次用來處理復雜的分支和隨機內存訪問,但拿來跑矩陣乘法就像用跑車拉貨,不是不能干,就是效率太低。
硬件加速的核心思路其實很簡單:把晶體管用在刀刃上。
既然神經網絡大部分時間都在算矩陣乘,那就把芯片面積盡可能多地堆計算單元,同時設計專門的數據通路和內存層次,減少數據搬運的開銷。
過去十年,AI硬件已經演化成一個非常龐雜的生態,不同架構在設計空間里做出了不同的權衡。
沒有絕對的最優解,只有針對特定場景最合適的選擇。

這張圖展示了從模型定義到硬件執行的完整流水線。
每一個環節的設計選擇都會最終影響性能表現。接下來我們逐一拆解主流的硬件架構。
如果說AI訓練和推理有什么"通用貨幣",那一定是GPU。
GPU為什么能成為AI時代的主力軍?三個核心原因:
第一,SIMT執行模型天生適合并行計算。
單指令多線程的設計,讓GPU可以同時調度成千上萬個線程來處理矩陣中不同位置的計算。這種大規模并行性剛好匹配神經網絡的計算特點。
第二,深多線程隱藏延遲。
GPU不是靠提高單核頻率來提升性能,而是靠大量線程切換來掩蓋內存訪問延遲。當一個線程在等數據的時候,立刻切換到另一個有數據的線程繼續計算,這樣硬件利用率就上去了。
第三,成熟的軟件生態。
CUDA生態加上cuBLAS、cuDNN等高度優化的算子庫,這才是GPU真正的護城河。
很多時候性能瓶頸不在硬件本身,而在算子調優、圖編譯、內核融合這些軟件層面的工作。
當然,GPU也不是萬能的。不同模型在GPU上的瓶頸完全不一樣:
CNN(卷積神經網絡)計算重用率高,主要瓶頸在計算帶寬;
RNN和序列模型并行度有限,受限于循環依賴;
而Transformer和大語言模型最頭疼的是內存帶寬和容量,特別是KV緩存的管理。
推理和訓練是兩個完全不同的問題。
推理追求高吞吐、低延遲、低成本,所以量化是標配。
把浮點運算降到INT8甚至更低,帶寬和吞吐能直接翻好幾倍。
但量化收益不是白來的:校準方法、精度目標、算子是否真的支持低精度而不回落到低效的轉換路徑,這些都會影響最終的端到端收益。
稀疏化和壓縮能進一步減少內存流量,但非結構化稀疏如果沒有專門的算子支持和調度策略,反而會因為內存訪問不連續和負載不均衡而降低利用率。
訓練更看重吞吐、數值穩定性和可擴展性。混合精度訓練現在已經是標準做法:
用FP16/BF16做計算,FP32做累加,配合loss scaling之類的技巧來保證收斂性。
大模型訓練最大的敵人是內存。
激活值、梯度、優化器狀態加起來很容易就超出單卡顯存,所以才有了各種分布式并行策略:數據并行、張量并行、流水線并行、專家并行。
這些策略本質上都是在通信量、同步開銷、流水線氣泡和內存節省之間做權衡。
大規模訓練最后往往瓶頸在通信和同步。
怎么讓通信和計算重疊起來、互聯帶寬夠不夠、編譯器能不能把內存綁定的操作融合掉,這些才是決定訓練速度的關鍵。
如果說GPU是"十項全能選手",那TPU和NPU就是"單項冠軍"。
領域專用加速器的思路很直接:既然大部分時間都在跑稠密線性代數,那就把數據通路和數據流專門針對這個場景優化。
最經典的就是TPU的脈動陣列架構——數據在計算單元之間像波浪一樣流動,每個單元算完直接把結果傳給鄰居,這樣就不用反復讀寫內存。

和GPU比,張量處理器對操作數形狀和內存訪問模式做了更強的假設。
這個限制換來了更高的利用率和更好的能效,但代價是靈活性下降。
張量處理器特別適合靜態形狀的稠密算子。編譯器可以提前做好分塊規劃、算子融合、布局優化,最大化權重和激活值的重用。
CNN推理在這上面跑得特別好。
但Transformer推理就不一樣了。
注意力和KV緩存帶來了大量流式的內存需求,不一定匹配加速器偏好的稠密重用模式。
哪怕矩陣乘法引擎很快,端到端延遲可能還是被數據搬運和softmax這類算子占了大頭。
所以編譯器和運行時技術變得特別重要:怎么管理緩存增長、處理內存碎片、給注意力塊做內核融合,這些都是拉開差距的地方。
TPU已經證明了在數據中心規模做訓練的可行性。大的脈動陣列、高帶寬內存、專門為集合通信設計的可擴展互聯,這些都是硬實力。
但分布式訓練永遠是系統工程問題。
數據并行壓力在all-reduce帶寬,張量/流水線并行帶來更頻繁的同步和激活傳輸,混合專家模型還要加上路由和負載均衡問題。
最終能效比的實現,一定是模型(算子組合和形狀)、編譯器(融合、分片、調度)、硬件(片上內存和互聯)三者協同設計的結果。
單獨優化哪一個都沒用。
ASIC推理加速器追求的是單位面積和單位功耗下的極致吞吐。
既然是專用芯片,那就可以把數據流動模式直接固化到硬件里。
最經典的就是數據流專業化的思路:
權重不動(weight-stationary)、輸出不動(output-stationary)、或者行不動(row-stationary),不同的映射策略對應不同的數據重用模式。
再加上大容量的片上SRAM來減少DRAM訪問,支持低精度、剪枝和壓縮,這就是ASIC加速的三板斧。

和GPU比,ASIC可以把控制和緩沖模式硬連線來減少開銷,但代價就是算子和數據布局一演變,靈活性就跟不上了。所以ASIC設計往往瞄準穩定的內核(卷積/矩陣乘),同時在控制和調度上保留有限的可編程性。
CNN推理結構化的計算和高重用性,簡直是為ASIC量身定做的。
Eyeriss提出的空間架構和數據流分類,核心就是通過精心的映射和本地重用來減少數據移動,最終目標是降低能耗——畢竟移動數據比計算本身更費電。
DianNao家族則更進一步,在微架構層面專門針對神經算子做了優化,包括常用的激活函數、高效的權重存儲和重用機制。
稀疏感知ASIC如果能利用結構化稀疏,或者架構能避免不規則索引的開銷,收益會非常大。
但非結構化稀疏帶來的負載不均衡、不規則內存訪問、重用率下降,這些問題必須通過稀疏數據結構、調度策略,通常還需要專門的硬件支持才能解決。
訓練用ASIC比推理難多了。
算法迭代太快、算子組合一直在變、數值格式和優化器需要靈活性。
訓練還需要反向算子、優化器更新、更大的內存來存激活和優化器狀態,對數值精度和穩定性也更敏感,這些都限制了最激進的量化策略。
但這不代表ASIC不能做訓練。只要選好原語集(矩陣乘、集合通信、足夠有表達力的編譯器/運行時),特定領域的訓練系統依然能在能效比上做到很強。
關鍵還是硬件能力和編譯器抽象的協同設計,確保新模型都能表達成支持原語的組合,同時內存系統和互聯真的能支撐大規模訓練的通信模式。
FPGA的獨特價值在于可重構性。
你可以根據工作負載量身定制數據通路、內存訪問、I/O接口。這讓它特別適合邊緣推理、低延遲流水線、還有快速的架構實驗。
FPGA加速器通常用深度流水線的流式架構、自定義精度、專門的內存布局,還能和傳感器、網絡緊耦合來降低端到端延遲。
和GPU不一樣,FPGA可以針對固定模型(或者模型家族)專門優化數據通路,利用工作負載的確定性,只要內存帶寬夠、算子覆蓋全,能效比就能做得很好。

云端FPGA部署也越來越多。可重構邏輯作為共享推理服務的時候,吞吐和尾延遲不僅取決于計算流水線,還和主機設備接口、批處理策略、模型切換的重配置開銷有關。
工具鏈在這里的影響特別大。
HLS、OpenCL、基于編譯器的映射,這些抽象層的生產力和性能可移植性,直接決定了設計能不能快速跟上新的模型算子和稀疏模式。
FPGA做CNN和二值神經網絡推理歷史很長了,量化、折疊、流水線并行這些技術都很成熟。設計通常通過固定層參數、構建流式流水線、重用片上緩沖、最小化片外流量,來用靈活性換效率。
但如果模型變頻繁,或者包含加速器不支持的算子,收益就會大打折扣——主機回退和數據編組的開銷可能把加速收益都吃掉。
最近也有不少工作用FPGA加速Transformer推理,給注意力、softmax、前饋層做定制計算引擎,配合結構化稀疏模式。
注意力重的工作負載壓力在內存帶寬,需要高效的QKV投影緩沖策略和中間激活,也受益于內核融合來減少中間寫入。
和GPU比,FPGA延遲確定性更好,能效比也強,但性能高度依賴外部內存帶寬、算子覆蓋度、還有工具鏈質量(HLS調度、內存分區、DSP利用率)。
全訓練用FPGA比較少見。
片上內存有限、峰值吞吐比不過高端GPU、還要支撐快速演變的訓練流水線,這些都是現實的障礙。
訓練需要存中間激活和梯度,還要支持大量算子的反向傳播,還要做優化器更新,這些都很吃FPGA資源和內存帶寬。混合精度能幫上忙,但數值穩定性和在可重構邏輯里實現訓練內核的復雜度,依然是不小的門檻。
現在比較務實的做法是混合方案:只卸載特定內核(比如矩陣乘),或者針對特定模型和固定訓練流程做專門優化,特別是當端到端流水線能從緊耦合I/O中受益,或者能耗約束是主要矛盾的時候。
另一種思路是FPGA只做推理和硬件在環的工作負載,訓練留給GPU/TPU,這樣FPGA設計就能專注在確定性低延遲執行上。
大模型火了之后,專門針對推理服務場景的加速器也出來了。這類系統強調可預測執行、低延遲token生成、實時約束下的高吞吐,架構和軟件圍繞注意力為中心的工作負載和內存管理來協同設計。

這個場景和經典的批處理推理完全不一樣:嚴格的延遲目標、波動的并發、多樣的prompt長度、多租戶服務的復雜調度策略。
結果就是,加速器設計不能只看峰值GEMM吞吐,內存容量、內存帶寬、動態批處理和KV緩存分配的開銷都得一起考慮。
從架構角度看,大模型服務主要是反復執行相對較小的矩陣乘(每個token)和帶寬密集的KV緩存內存訪問。
這就鼓勵了減少調度開銷、偏好可預測流水線、給每個計算單元配足夠內存帶寬的設計。
軟件在這里依然是核心:管理KV緩存分頁、內核融合、調度的運行時系統,往往和硬件數據通路一樣重要。
推理服務經常瓶頸在內存容量和帶寬,特別是長上下文和高并發場景下KV緩存的增長。LPU風格的設計目標是減少調度開銷、提升可預測性,但依然要處理批處理(吞吐)和延遲之間的根本權衡,還有計算配置和內存系統設計之間的平衡。
系統級因素比如分詞開銷、主機設備傳輸、內核啟動粒度,對尾延遲的影響可能很大。
這就激勵了端到端的流水線設計,而不是孤立的內核優化。
另一個越來越重要的因素是模型異構性:混合專家、檢索增強生成、工具調用,這些都引入了條件執行和每個token可變的計算量,降低了可預測性,也讓調度變復雜了。
服務加速器因此要么約束模型接口(來保持確定性),要么在控制和內存管理上提供足夠的靈活性,在不崩潰利用率的前提下處理動態行為。
大部分LPU風格的系統主要目標還是推理而不是訓練。
但它們對確定性執行、低開銷調度、高效注意力內核的強調,也能啟發訓練系統的設計——特別是當訓練越來越多地融入長上下文序列和混合專家路由的時候。
特別是那些減少注意力內存流量或者提升緩存局部性的技術,推理和訓練都能受益,盡管訓練對精度和反向傳播支持還有額外的要求。
更廣泛地說,大模型服務讓我們看到:內存是和FLOPs同等重要的一等資源。訓練系統其實已經通過激活存儲和優化器狀態面臨類似的壓力,所以推理內存管理里發展出來的技術(分頁、碎片控制、布局感知調度),如果和標準的內存減少技術結合,也可能轉化為訓練效率的提升。
看完這五大架構,你應該能感覺到:AI芯片沒有大殺器,可以大殺四方。
GPU勝在通用性和生態,是現在的主力軍,但軟件棧的復雜度越來越高;
TPU/NPU在特定負載下能效比更好,但需要編譯器和模型的深度配合;
ASIC把效率做到極致,代價是靈活性和迭代速度;
FPGA適合低延遲和邊緣場景,但工具鏈門檻不低;
LPU瞄準大模型服務這個新興場景,把內存和延遲放到了和計算同等重要的位置。
未來的趨勢其實很清晰:
第一,內存是新的瓶頸。
不管訓練還是推理,FLOPs越來越不是問題,怎么喂飽計算單元、怎么管理越來越大的狀態,才是真正的挑戰。內存容量、帶寬、訪問模式,這些會越來越決定最終性能。
第二,軟硬協同設計是必由之路。
單獨優化硬件或者單獨優化軟件,天花板都已經很明顯了。未來的性能提升一定來自模型、編譯器、硬件三者的協同設計。你中有我,我中有你。
第三,場景化和專業化會繼續深化。
通用GPU不會消失,但針對特定場景的專用加速器會越來越多。訓練有訓練的優化方向,推理有推理的設計考量,甚至大模型服務都會發展出自己獨特的架構路線。
最后想說的是,不要迷信FLOPs指標。很多芯片宣傳峰值算力多么驚人,但實際跑起來利用率可能連10%都到不了。真實世界的性能是一個系統問題,不是靠堆計算單元就能解決的。
看AI芯片,別光看算得有多快,還要看數據喂得有多快,調度得有多聰明。這才是真正拉開差距的地方。
參考:Hardware Acceleration for Neural Networks A Comprehensive Survey