挑戰輝達,需要另闢蹊徑

Groq是近期AI晶片界的一個明星。原因是其號稱比輝達的GPU更快。3月2日,據報道,Groq收購了一家人工智慧解決方案公司Defi nitive Intelligence。這是 Groq 在2022 年收購高效能運算和人工智慧基礎設施解決方案公司Maxeler Technologies 後的第二次收購。Groq來勢很兇。

自從ChatGPT爆火以來,輝達憑藉GPU在市場上獨自求敗,雖然也出現了不少挑戰者,但都沒有像Groq這般引人注意。
成立於2016 年的Groq,其創始人是被稱為「TPU之父」的前谷歌員工喬納森·羅斯,團隊中成員不乏有谷歌、亞馬遜、蘋果的前員工。這群人透過簡單的設計開發了一款LPU(語言處理單元)推理引擎。就是這個LPU晶片讓Groq在AI市場上異軍突起,引得大家刷屏。據悉,LPU可在現今大火的LLM(大語言模型)中展現出非常快速的推理速度,比GPU有顯著提升。不要小看AI推理的市場,2023年第四季,輝達有4成收入來源於此。因此,眾多輝達的挑戰者是從推理切入的。


那麼,它是如何做到速度快的呢?為何能夠叫板輝達?在晶片架構和技術路徑上有哪些可圈可點之處?。。。。對於這款引發廣大關注的晶片,許多人也希望能夠了解背後究竟有哪些玄妙?近日,半導體產業觀察有幸採訪到了北京大學積體電路學院,長聘副教授孫廣宇,孫教授為我們提供了一些專業見解,至於網路上對Groq價格的各種推測,其比性能等估算更複雜,本文在此將不作過多探討,而是著重於技術層面的解析,以期為讀者帶來一些啟發。


最快的推理速度?

我們處於一個快節奏的世界中,人們習慣於快速獲取資訊和滿足需求。研究表明,當網站頁面延遲300 - 500毫秒(ms)時,使用者黏性會下降20%左右。這在AI的時代下更為明顯。速度是大多數人工智慧應用程式的首要任務。類似ChatGPT這樣的大語言模型(LLM)和其他生成式人工智慧應用具有改變市場和解決重大挑戰的潛力,但前提是它們足夠快,還要有質量,也就是結果要準確。


要想快,就要計算和處理數據的能力強大。根據Groq的白皮書【Inference Speed Is the Key To Unleashing AI's Potential】【1】指出,在衡量人工智慧工作負載的速度時,需要考慮兩個指標:

  • 輸出Tokens吞吐量(tokens/s):即每秒返回的平均輸出令牌數,此指標對於需要高吞吐量的應用(如摘要和翻譯)尤其重要,且便於跨不同模型和提供者進行比較。
  • 首個Token返回時間(TTFT):LLM返回首個令牌所需的時間,對於需要低延遲的串流應用(如聊天機器人)尤其重要。

2)影響模型品質的兩個最大因素是模型大小(參數數量)和序列長度(輸入查詢的最大大小)。模型大小可以被認為是搜尋空間:空間越大,效果越好。例如,70B參數模型通常會比7B參數模型產生更好的答案。序列長度類似於上下文。更大的序列長度意味著更多的資訊——更多的上下文——可以輸入到模型中,從而導致更相關和相關的反應。

在Anyscale的LLMPerf排行榜上(這是一個針對大型語言模型(LLM)推理提供者的效能、可靠性和效率評估的基準測試),Groq LPU在其首次公開基準測試中就取得了巨大成功。使用Groq LPU推理引擎運行的Meta AI的Llama2 70B,在輸出tokens吞吐量上,實現了平均185 tokens/s的結果,比其他基於雲端的推理提供者快了3到18倍。對於首個Token返回時間(TTFT),Groq達到了0.22秒。所有Llama 2的計算都在FP16上完成。


輸出tokens吞吐量(tokens/s)


首個tokens的返回時間


這是如何實現的呢?

挖掘深度學習應用處理過程中的“確定性”

現今業界不少人的共識認為,輝達的成功不僅歸功於其GPU硬件,還在於其CUDA軟體生態系統。CUDA也被業界稱為是其「護城河」。那麼,其他AI晶片玩家該如何與輝達競爭?

孫教授表示,誠然,CUDA為GPU開發者提供了一個高效的程式框架,方便程式設計人員快速實現各種算子。不過,僅靠程式框架並不能實現高效能的算子處理。因此,輝達有大量的軟體開發團隊和算子優化團隊,透過仔細優化底層程式碼並提供對應的運算庫,提升深度學習等應用運算效率。由於CUDA有較好的生態,這個分開源社群也有相當的貢獻。

然而,CUDA框架和GPU硬體架構的緊密耦合同時也帶來了挑戰,例如在GPU之間的資料互動通常需要透過全域記憶體(Global Memory),這可能導致大量的記憶體訪問,從而影響效能。若需要減少這類訪存,需要利用Kernel的Fusion等技術。實際上,輝達在H100裡增加SM-SM的片上傳輸路徑來實現SM間資料的複用、減少訪存數量,但是這通常需要程式設計師手工完成,同樣增加了效能優化的難度。另外,GPU的整個軟體堆疊最早並不是專為深度學習設計的,它在提供通用性的同時,也引入了不小的開銷,這在學術界也有不少相關的研究。

因此,這就給AI晶片的新挑戰者如Groq,這提供了機會。例如Groq就是挖掘深度學習應用處理過程中的「確定性」來減少硬體開銷、處理延遲等。這也是Groq晶片的特色之處。

孫教授告訴筆者,實現這麼一款晶片的挑戰是多方面的。其中關鍵之一是如何實現軟硬體方面協同設計與最佳化,極大的挖掘「確定性」實現系統層面的Strong Scaling 。為了達到這個目標,Groq設計了基於「確定性調度」的資料流架構,硬體上為了消除「不確定性」 在計算、存取和互聯架構上都進行了定制,並且把一些硬體上不好處理的問題透過特定的介面暴露給軟體解決。軟體上需要利用硬體的特性,結合上層應用做最佳化,還需要考慮易用性、相容性和可擴充性等,這些需求都對配套工具鍊和系統層面提出許多新的挑戰。如果完全依賴人工調優的工作是很大的,需要在編譯器等工具層面實現更多的創新,這也是新興的AI晶片公司(包括Tenstorrent、Graphcore、Cerebras等)面臨的共同問題。


HBM是唯一解?純SRAM來挑戰

LPU 推理引擎主要攻克LLM的兩個瓶頸-計算量記憶體頻寬。Groq LPU能夠與輝達叫板,其純SRAM的方案起到了很大的作用。

簡化的LPU架構


有別於輝達GPU所使用的HBM方案,Groq捨棄了傳統的複雜儲存器層級,將資料全部放置在片上SRAM中,利用SRAM的高頻寬(單晶片80TB/s),可以顯著提升LLM推理中頻寬受限的(Memory Bound)部分,例如Decode Stage計算和KV cache的存取。SRAM本身是計算晶片必須的儲存單元,GPU 和CPU等利用SRAM來搭建片上的高速緩存,在運算過程中盡可能減少較慢的DRAM存取。但由於單一晶片的SRAM容量有限,所以涉及到數百個晶片協同處理,這也涉及晶片​​間的互連設計,以及系統層面的演算法部署等。

Groq提到,由於沒有外部記憶體頻寬瓶頸,LPU推理引擎提供了比圖形處理器更好的數量級效能。

這種純SRAM的架構在最近幾年一直被學術界和工業界所討論,例如華盛頓大學在文章【Chiplet Cloud: Building AI Supercomputers for Serving Large Generative Language Models】 【2】中提到,與DDR4和HBM2e相比,SRAM在頻寬和讀取能耗上具有數量級的優勢,從而獲得更好的TCO/Token設計,如下圖所示。市面上,包括Groq以及其他公司如Tenstorrent、Graphcore、Cerebras和國內的平頭哥半導體(含光800)、後摩智能(H30)等,都在嘗試透過增加片上SRAM的容量和片上互連的能力來提升數據互動的效率,從而在AI處理晶片領域尋求與輝達不同的競爭優勢。

與DDR4和HBM2e相比,SRAM在頻寬和讀取能耗上具有數量級的優勢,從而獲得更好的TCO/Token設計(來源:【2】)


純SRAM架構的優勢在哪裡?孫教授指出主要涵蓋兩方面:第一個面向是SRAM本身有著高頻寬和低延遲優勢,可以顯著提升系統在處理訪存受限算子的能力。另一方面,由於SRAM的讀寫相比DRAM具有確定性,純SRAM的架構為軟體提供了確定性調度的基礎。編譯器可以細粒度地排布計算和存取操作,最大化系統的效能。對GPU來說,由於HBM存取延遲會有波動,Cache層級的存在也提升了訪存延遲的不確定性,增加了編譯器做細微最佳化的難度。

眾所周知,輝達GPU所使用的HBM方案面臨成本高、散熱、產能不足的難題。那麼,這種純SRAM架構又有哪些挑戰呢?

孫教授分析到:「純SRAM架構的挑戰也很明顯,主要來自於容量的限制。Groq等晶片基本上都是在CNN時代進行的立項和設計,對於這個階段的模型,單晶片百兆SRAM來作為儲存是夠用的。但是在大模型時代,由於模型大小通常可以達到上百GB,而且KV-Cache(一種關鍵數據結構)的存儲也非常佔用內存,單芯片SRAM的容量在大模型場景下顯得捉襟見肘。”

他以Groq的方案為例來說,為了滿足70B模型的推理需求,它整合了576個獨立的晶片,而整合如此多的晶片,對晶片間、節點間互聯的頻寬和延遲要求也非常的高。576晶片的叢集只有100GB的SRAM容量。模型需要透過細粒度的管線並行(PP)和張量並行(TP)的方式進行切分,來確保每個晶片分到的模型分塊在200MB以內。細粒度切分的代價是晶片間通訊的資料量和開銷顯著上升,雖然Groq在互聯方面也進行了客製化優化來降低延遲,但是透過簡單估算可以發現,目前晶片間資料傳輸同樣可能成為效能瓶頸。」

另一方面,由於容量的限制,其留給推理時的活化值的儲存空間十分受限。特別是目前LLM推理需要保存KV-Cache,這是隨著輸入輸出長度線性成長的資料。通常對於70B模型,即使用了特殊技術進行KV-Cache壓縮(GQA),32K的上下文長度需要為每個請求保留10GB左右的KV-Cache,這意味著在32K場景下同時處理的請求數最大僅為3。對於Groq來說,由於依賴管線並行(TP),需要至少管線級數這麼多的請求來確保系統有較高利用率,較低的並發數會顯著降低系統的資源利用率。所以,如果未來長上下文(Long-Context)的應用場景,在100K甚至更長的上下文下,純SRAM架構能支援的同時數量會非常受限。換一個角度來看,對於邊緣場景,如果採用更激進的MQA、更低的量化比特,可能會讓SRAM架構更適用。

如果Groq 這類晶片確實能夠找到合適的應用場景,應該會讓演算法從業人員更積極地挖掘模型壓縮、KV-Cache壓縮等演算法,來緩解純SRAM架構的容量瓶頸。一些對推理延遲有強烈需求的演算法和應用,如AutoGPT, 各種Agent演算法等,整個演算法流程需要鍊式處理推理請求的,會更有可能做到即時處理,滿足人與真實世界互動的需求。

因此,在孫教授看來,採用純SRAM還是HBM與未來模型發展應用的場景非常相關。對於資料中心這類採用較大的batch數、較長的sequence length、追求吞吐的場景,HBM這類大容量儲存應該更為合適。對於機器人、自動駕駛等邊緣側,batch通常為1,sequence length有限,追求延時的場景,尤其考慮到模型有機會繼續壓縮,純SRAM的場景應該有更大的機會。另外,還可以同時期待一些新的儲存媒體的發展,能否將片上儲存容量從百MB突破到GB的規模。


因應「儲存牆」挑戰:晶片架構創新勢在必行

實際上,除了前述的純SRAM解決方案外,為了應對當前馮諾依曼架構面臨的「儲存牆」問題,業界正在探索多種新型架構,包括存算一體和近存運算等。這些探索涵蓋了基於傳統的SRAM、DRAM以及新興的非揮發性儲存技術,如RRAM、STTRAM等,都有廣泛的研究正在進行中。在處理大型模型的場景中,也有相關的創新嘗試,例如三星、海力士等企業正積極研發的DRAM近存運算架構,可以很好的在頻寬和容量之間提供權衡,對於訪存密集KV cache和小batch的Decode處理部分也提供了不錯的機會。(對這部分有興趣,可以參考「Unleashing the Potential of PIM: Accelerating Large Batched Inference of Transformer-Based Generative Models」【3】這篇文章關於KV cache的處理,孫教授團隊比較關注的研究方向。)

另外,從更廣義的角度分析,無論採用哪種儲存媒體、無論採用存算或近存架構,其本質目的和Groq出發點是類似的,都是挖掘儲存架構的內部高頻寬來緩解訪存瓶頸。如果同時考慮大容量的需求,都需要將儲存分塊,然後在儲存陣列附近(近存)或陣列內(存內)配備一定的算力單元。當這種分塊的數量達到一定數量,甚至會突破單一晶片的邊界,就需要考慮晶片間的互連等問題。對於這類運算和儲存從集中式走向分散式的架構,孫教授團隊在研究時也習慣稱為空間型運算(Spatial Computing)架構。簡言之,每個運算或儲存單元的位置都對它所承擔的任務有影響。一方面,在晶片層面,這種分散式運算架構和GPU提供抽像是不同的;另一方面,當規模擴大到多晶片/多卡這個級別,面臨的問題又是類似的。

總之,大模型確實為傳統的晶片架構帶來了極大的挑戰,迫使晶片從業者發揮主觀能動性,透過「另闢蹊徑」的方式來尋求突破。值得關注的是,國內也已經有一批架構創新型的晶片企業,陸續推出了存算一體或近存運算的產品,例如、知存科技、後摩智慧、靈汐科技等。

考慮到晶片的研發週期通常長達數年,孫教授認為在嘗試新技術的時候需要對未來的應用(如LLM技術)的發展趨勢有一個合理的預判。分析好應用的發展趨勢,透過軟硬體的設計預留一定的彈性和通用性,更能夠確保技術長期適用性。(半導體產業觀察)