你有沒有想過,為啥現在AI芯片越做越大,但單次推理延遲就是降不下來?
你去問做AI部署的哥們,十個有九個會跟你吐槽:GPU這塊,大模型推理就是看batch吃滿了能跑多少吞吐量,但你要真給用戶做實時交互,那延遲真是飄忽不定,完全看臉。
今天咱聊一片當年在架構圈扔了炸彈的論文——Groq在2020年ISCA發表的張量流處理器TSP,這片子直接把傳統CPU/GPU那套緩存仲裁全砍了,用一套「功能分片+流式編程」的思路,硬生生把ResNet50單batch推理做到了每秒20400張圖,比同期GPU快了4倍。
這也可以看做Groq第一代的LPU,也是Groq一以貫之的架構。
更狠的是,人家人稱「地表最確定AI芯片」,運行時間編譯器就算得明明白白,一點驚喜都不給你留。
最終,憑借這個架構,Groq被英偉達200億美金收購,
那么價值200億美金的架構是怎樣的?
今天咱拆開說。
1. 為什么傳統架構做不好單batch推理?
要講明白TSP牛在哪,得先挖挖坑:現在常用的CPU/GPU,問題出在哪?
傳統的多核架構,不管是CPU還是GPU,基本上都是圖1(a)那樣:每個核都是完整的——取指、譯碼、執行、緩存啥都有,然后用一個二維網格把這些核連起來。
![]()
傳統二維網格vs功能分片架構
這種設計有什么問題?
每個核都要自己做動態調度,遇到突發訪問就得爭總線搶緩存,延遲根本說不準。
你想啊,現在AI推理,特別是線上服務,基本上都是用戶來一個請求處理一個,batch size就是1,你那些動態調度、緩存預取、分支預測啥的,其實都是在幫倒忙——看起來是優化性能,實際上帶來了不確定性,還浪費了大量芯片面積做控制邏輯。
既然深度學習已經有天然的張量并行性,那我們為什么不把硬件按照功能切開,讓數據像流水線上的零件一樣直接流過去?
2. 功能分片:把一個核拆碎了按功能重新站隊
TSP最反常識的設計,就是它的功能分片(Functional Slicing)。
咱們正常人做芯片,是把「指令控制、內存、整數運算、浮點運算、網絡」都打包放到一個核里,多個核拼起來就是一塊芯片。
Groq反過來了:
所有做指令控制的放一塊,叫ICU切片
所有做內存的放一塊,叫MEM切片
所有做向量計算的放一塊,叫VXM切片
所有做矩陣計算的放一塊,叫MXM切片
所有做網絡交換的放一塊,叫SXM切片
同一功能的tile垂直疊成切片,然后水平方向數據流過所有切片。
![]()
這樣玩好處在哪?
① 公共邏輯抽出來,省面積!
所有同一功能的tile跑一樣的指令,那指令譯碼分發只需要做一次就行了,不用每個核都放一套譯碼邏輯。論文說,整個控制單元ICU占的面積不到3%,太省了。
② 流水線天然垂直展開
指令從北邊流下來,數據從東邊流到西邊,指令和數據在交叉點相遇就計算,完美解耦:
指令流在Y方向走,數據流在X方向走,互不干擾。
每個功能切片自己做自己的20級向量流水線,分工明確,沒人搶資源。
③ 內存和計算徹底解耦
原來數據要從內存讀到寄存器,再給計算單元用,繞一圈。現在內存切片直接把數據送到計算切片門口,計算完直接送回下一個內存切片,沒有寄存器堆那套中間環節了。
3. 流編程模型:生產者消費者,像流水線一樣干活
講完了硬件架構,咱說說軟件怎么玩——TSP用了非常簡單粗暴的生產者-消費者流式編程模型。
我給你打個比方:
傳統的RISC架構做個向量加法Z=X+Y,得先把X和Y從內存load到寄存器,加完了再store回去,繞一大圈。
![]()
傳統RISC vs TSP流式執行對比
TSP呢?
內存切片就是生產者,計算切片就是消費者,X讀出來直接流去加法單元,加完了直接流去寫內存,根本不需要寄存器這層中間商賺差價。
這就跟汽車生產線一模一樣:
傳送帶(流)一直在動
每個工位(功能切片)只干自己那點活
零件(數據)流過來就加工,加工完直接走
看到這你可能會問:那流具體怎么流?
我給你捋幾個關鍵設計:
320個并行車道,天生就是給張量準備的
TSP總共支持320個并行車道,20個tile每個tile出16個lane,加起來正好320。這個lane就是硬件層面給你做好的并行,程序員直接用,不用自己去拆分任務。
64個邏輯流,東西雙向流動
每個lane支持64個邏輯流,32個向東流,32個向西流,編譯器精確控制每個流走哪條路,完全沒有動態路由沖突。
全芯片共享220MB SRAM,夠放模型參數
整個芯片有220MB的全局共享SRAM,能給所有計算單元提供每個lane 32字節的流帶寬,把四個320×320矩陣所有權重裝填好,不到40個周期就完事。速度非常可觀。
4. 為什么要干掉緩存和仲裁?確定性比什么都重要
這篇論文最狠的一句話,我給你摘出來:
我們干掉了所有反應性硬件,比如仲裁器和緩存。
看到這句的時候,我第一次讀真的驚了——現在哪個芯片不帶緩存?你瘋了?
但人家邏輯非常清晰:
緩存就是用來應對不確定性的——你不知道接下來要訪問什么數據,所以放一塊緩存碰碰運氣。緩存命中率高了跑得快,低了直接死給你看,延遲根本沒法保證。
如果你能通過編譯器靜態把所有調度都安排得明明白白,那緩存還有個屁用?直接砍掉省面積省功耗不好嗎?
TSP就是這個思路:
沒有動態仲裁,所有路由都是編譯器算好的確定性路由,走哪條路時間都算死了
沒有緩存,所有數據都放在SRAM里,地址靜態分配,訪問時間固定
沒有亂序執行,指令順序編譯器拍板,硬件老實按順序跑就行
這么做帶來了什么好處?
整個芯片運行的時候,每一段程序要花多少時間,編譯器在編譯的時候就能精確算出來,跑的時候一定是這個時間,一點不差。
這對云服務來說太香了——你給用戶做SLA,說我這延遲一定不超過50ms,那你就得做到。要是換成帶緩存的GPU,萬一緩存miss了,直接給你蹦到幾百ms,你這SLA就破了。
5. 干出了什么成績?數據說話
說一千道一萬,成績拿出來溜溜。論文給的數據非常勁爆:
ResNet50 單batch IPS:20400張/秒—— 同期GPU/TPU大概5000張,快了4倍
單張圖片延遲:不到49μs—— 這意味著什么?一百張圖片加起來延遲才不到5毫秒
計算密度:超過1 TeraOp/s/mm2—— 14nm工藝,900MHz,芯片面積25×29mm
功耗效率:在限定功耗內實現更高吞吐 —— 因為沒有動態邏輯,省了不少功耗
這個數據放在20年那真是降維打擊——單batch推理,TSP直接就是4倍的提升,這在AI芯片圈很少見。
要知道,這還是人家第一代芯片,后來Groq做大模型推理,那個低延遲名聲就是從這篇論文打下來的基礎。
![]()
Groq TSP 芯片die photo 6. 這個架構思路給我們什么啟發?
聊完技術細節,咱拔高一層說——TSP這思路,為啥現在看仍然很牛?
① 專業架構就得干專業的事
通用CPU/GPU要照顧各種各樣的工作負載,所以不得不做很多動態邏輯,面積功耗都浪費了。但是AI推理這個場景,特性非常明確:
計算都是大張量運算,并行度天然足夠
模型參數編譯的時候就知道了,不需要動態加載
云端部署對延遲確定性要求極高
那我針對這個場景,把所有不確定的東西都干掉,不就能榨干每一寸芯片的性能嗎?
這就是領域專用架構的魅力——不是說我堆更多核更大緩存,而是我把不必要的東西都砍掉,把面積功耗都用在刀刃上。
② 確定性性能是一種奢侈品,但非常值錢
現在大家一提到AI芯片就比TOPS比帶寬,但很少有人提確定性。實際上,對于真正在線部署來說,可預測的延遲比峰值吞吐量值錢一萬倍。
你做個ChatGPT,用戶問你個問題,你一會兒100ms出結果,一會兒500ms出結果,用戶體驗肯定差。但要是你能保證每次都在200ms以內,體驗立馬上去了。
TSP把緩存砍了,就是把「不確定性」從根上掐了,這思路太絕了。
③ 軟件分擔更多,硬件更簡單
TSP把所有調度都扔給編譯器做,硬件只需要傻跑就行了。這其實是現在很多新架構的趨勢:
硬件簡化,軟件變復雜
靜態調度代替動態仲裁
編譯器替你把一切安排好
這樣硬件設計簡單了,可靠性上去了,性能也上去了,一舉多得。
7. 總結:AI芯片這條路,其實還遠沒走到頭
很多人說,現在AI芯片不就是堆堆堆嗎?堆核堆緩存堆帶寬,拼工藝拼成本,創新空間不大了。
但Groq這篇論文告訴我們:只要你敢跳出傳統CPU/GPU的框框,換個思路玩,就能搞出比傳統架構更優的性價比。
注意:不是普適性,普適性CPU和GPU更普世,而是更有針對性,在LPU針對大模型推理方面性能比CPU和GPU更有優勢,這也是為什么英偉達花200億美金買Groq的原因。。
從上面就可以看到,Groq把緩存砍了,功能分片,流式執行,這么簡單幾個思路改變,直接干出了4倍的性能提升。
這就是架構創新的魅力。
文章來源于歪睿老哥,作者歪睿老哥
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.