從架構、工藝到能效表現,全面瞭解LLM硬件加速,這篇綜述就夠了
機器之心報道
編輯:陳陳、杜偉
對人類語言進行大規模建模是一個複雜的過程,研究人員花了幾十年的時間纔開發出來。這項技術最早可追溯於 1950 年,當時克勞德・香農將信息理論應用於人類語言。從那時起,翻譯和語音識別等任務取得了長足的進步。
在這個過程中,人工智能 (AI) 和機器學習 (ML) 是技術進步的關鍵。ML 作爲 AI 的一個子集,其允許計算機從數據中進行學習。一般來說,ML 模型要麼是有監督的,要麼是無監督的。
在接下來要介紹的這篇論文中《 Hardware Acceleration of LLMs: A comprehensive survey and comparison 》,來自西阿提卡大學的研究者重點介紹了有監督模型。
論文地址:https://arxiv.org/pdf/2409.03384
根據論文介紹,深度學習模型分爲生成式和判別式。生成式人工智能是深度學習的一個子集,它使用神經網絡來處理標記和未標記的數據。大型語言模型 (LLM) 有助於理解字符、單詞和文本。
2017 年,Transformer 徹底改變了語言建模。Transformer 是一種神經網絡,它使用注意力機制處理長期文本依賴關係。谷歌於 2017 年創建了第一個用於文本翻譯的 Transformer 模型。Transformer 此後不斷髮展,改進了注意力機制和架構。發展到今天,OpenAI 發佈的 ChatGPT 是一個著名的 LLM,它可以預測文本並能回答問題、總結文本等。
本文對使用硬件加速器來加速 Transformer 網絡所做的一些研究工作進行了全面的調查。該調查介紹了已提出的框架,然後對每個框架的技術、處理平臺(FPGA、ASIC、內存、GPU)、加速、能源效率、性能(GOP)等進行了定性和定量比較。
FPGA 加速器
在這一部分中,作者以 A-T 編號的方式列舉了有關 FPGA 的研究,可謂調查的非常詳細。每項研究都用簡短的幾句話概括,閱讀起來簡單又清晰。舉例來說:
FTRANS 。2020 年,Li 等人提出了一種硬件加速框架 FTRANS,旨在加速基於 Transformer 的大規模語言表示。FTRANS 顯著提高了速度和能效,超越了 CPU 和 GPU 實現,在一系列比較後顯示 FTRANS 比其他方案快 81 倍,能效高 9 倍,特別是與使用 VCU118 (16nm) 的 GPU 處理器 RTX5000 相比。該加速器的性能速率爲 170 GOP,能效率爲 6.8 GOP/W。
多頭注意力。2020 年,Lu 等人提出了一種基於 FPGA 的架構,用於加速 Transformer 網絡中計算最密集的部分。在他們的工作中,他們爲兩個關鍵組件提出了一種新型硬件加速器,即多頭注意力 (MHA) ResBlock 和位置前饋網絡 (FFN) ResBlock,它們是 Transformer 中最複雜的兩個層。所提出的框架是在 Xilinx FPGA 上實現的。根據性能評估,與 V100 GPU 相比,所提出的設計實現了 14.6 倍的加速。
FPGA NPE。2021 年,Khan 等人提出了一種用於語言模型的 FPGA 加速器,稱爲 NPE。NPE 的能源效率比 CPU(i7-8700k)高約 4 倍,比 GPU(RTX 5000)高約 6 倍。
除此以外,文中還介紹了 ViA 、 FPGA DFX 、 FPGA OPU 等研究,這裡就不再詳細介紹了。
基於 CPU 和 GPU 的加速器
TurboTransformer。2021 年,Jiarui Fang 和 Yang Yu 推出了 TurboTransformers 加速器,這是一種在 GPU 上專爲 Transformer 模型打造的技術。TurboTransformers 在可變長度輸入的延遲和性能方面優於 PyTorch 和 ONNXRuntime,速度提高了 2.8 倍。
Jaewan Choi。2022 年,研究員 Jaewan Choi 發表了題爲「Accelerating Transformer Networks through Rewiring of Softmax Layers」的研究,文中提出了一種加速 Transformer 網絡中 Softmax 層的方法。該研究引入了一種重新佈線技術來加速 Transformer 網絡中的 Softmax 層,隨着 Transformer 模型處理更長的序列以提高準確率,這項技術變得越來越重要。所提出的技術將 Softmax 層劃分爲多個子層,更改數據訪問模式,然後將分解的 Softmax 子層與後續和前面的過程合併。該方法分別將 BERT、GPT-Neo、BigBird 和 Longformer 在當前 GPU 上的推理速度加快了 1.25 倍、1.12 倍、1.57 倍和 1.65 倍,顯著減少了片外內存流量。
SoftMax。2022 年,Choi 等人提出了一種通過重組 Softmax 層加速 Transformer 網絡的新框架。Softmax 層將注意力矩陣的元素歸一化爲 0 到 1 之間的值。此操作沿注意力矩陣的行向量進行。根據分析,縮放點積注意力 (SDA) 塊中的 softmax 層分別使用了 BERT、GPT-Neo、BigBird 和 Longformer 總執行時間的 36%、18%、40% 和 42%。Softmax 重組通過顯著減少片外內存流量,在 A100 GPU 上對 BERT、GPT-Neo、BigBird 和 Longformer 進行推理時實現了高達 1.25 倍、1.12 倍、1.57 倍和 1.65 倍的加速。
此外,論文還介紹了 LightSeq2 、 LLMA 、 vLLMs 等研究。
ASIC 加速器
A3。2020 年,Hma 等人提出了一項關於 Transformer 網絡加速的早期研究,稱爲 A3 。不過,研究人員所提出的方案尚未在 FPGA 上實現。基於性能評估,與 Intel Gold 6128 CPU 實現相比,所提出的方案可實現高達 7 倍的加速,與 CPU 實現相比,能效可提高 11 倍。
ELSA。2021 年,Ham 等人提出了一種用於加速 Transformer 網絡的硬件 - 軟件協同設計方法,稱爲 Elsa 。ELSA 大大減少了自注意力操作中的計算浪費。
SpAtten。2021 年,Want 等人提出了一種用於大型語言模型加速的框架 Spatten。SpAtten 採用新穎的 NLP 加速方案,以減少計算和內存訪問。SpAtten 分別比 GPU(TITAN Xp)和 Xeon CPU 實現了 162 倍和 347 倍的加速。在能源效率方面,與 GPU 和 CPU 相比,SpAtten 實現了 1193 倍和 4059 倍的節能。
在這部分,作者還列舉了加速 transformer 網絡的新方法 Sanger、用於提高自然語言處理中 transformer 模型效率的 AccelTran 等多項研究。
內存硬件加速器
ATT。2020 年,Guo 等人提出了一種基於注意力的加速器加速方法,稱爲 ATT,該方法基於電阻性 RAM。根據性能評估,ATT 與 NVIDIA GTX 1080 Ti GPU 相比,可以實現 202 倍的加速。
ReTransformer。2020 年,Yang 等人提出了一種用於加速 Transformer 的內存框架,稱爲 ReTransformer。ReTransformer 是一種基於 ReRAM 的內存架構,用於加速 Transformer,它不僅使用基於 ReRAM 的內存架構加速 Transformer 的縮放點積注意力,而且還通過使用提出的矩陣分解技術避免寫入中間結果來消除一些數據依賴性。性能評估表明,與 GPU 相比,ReTransformer 可以實現高達 23.21 倍的加速,而相應的整體功率降低了 1086 倍。
iMCAT。2021 年,Laguna 等人提出了一種用於加速長句 Transformer 網絡的新型內存架構,稱爲 iMCAT。該框架結合使用 XBar 和 CAM 來加速 Transformer 網絡。性能評估表明,對於長度爲 4098 的序列,這種方法實現了 200 倍的加速和 41 倍的性能改進。
除此以外,該章節還介紹了 iMCAT 、 TransPIM 、 iMTransformer 等研究。
定量比較
下表 I 列出了目前所有的硬件加速器以及各自的主要特性,包括加速器名稱、加速器類型(FPGA/ASIC/In-memory)、性能和能效。
在某些情況下,當提出的架構與 CPU、GPU 進行比較時,以往的工作也會提及加速這一指標。不過,由於每種架構的基線比較不同,因而本文只展示了它們的絕對性能和能效,而沒有涉及加速。
性能定量比較
下圖 1 展示了不同工藝技術下,每種加速器的性能;圖 2 展示了更加清楚的對數尺度性能。
我們可以看到,採用 14nm 工藝的 AccelTran(服務器)實現最高性能,達到了 372000 GOPs,而 ReTransformer 模型的性能最低。此外,ViA、Me-ViT 和 Ftrans 等採用相同工藝技術的模型並沒有實現相似的性能。
不過,對於沒有采用相同工藝技術的加速器,則很難進行公平比較。畢竟,工藝技術會對硬件加速器性能產生顯著的影響。
能效 vs 工藝技術
下圖 3 展示了大多數硬件加速器的能效(GOPs/W)水平,圖 4 展示了對數尺度層面的能效。由於很多架構沒有測量能效,因而本文只列出了提供了能效的加速器。當然,很多加速器採用了不同的工藝技術,因此很難進行公平比較。
結果顯示,以內存爲主(In-Memory 加速器)的模型具有更好的能效表現。原因在於數據傳輸減少了,並且這種特定的架構允許數據在內存中直接處理,而不需要從內存傳輸到 CPU。
16nm 工藝下的加速比較
下表 II 展示了 16nm 工藝下,不同硬件加速器的外推性能。
下圖 5 展示了當在相同的 16nm 工藝技術下外推性能時,不同硬件加速器的絕對性能,其中 AccelTran 的性能水平最高。
實驗外推
本文針對 FPGA 架構進行了實驗外推,並測試了 20nm、28nm、40nm、 55nm、65nm 和 180nm 工藝下技術不同的矩陣乘法代碼,以驗證 16nm 工藝的理論轉換效果。研究者表示,FPGA 技術上的矩陣乘法結果有助於外推不同硬件加速器在相同工藝技術上的結果。
下表 III 展示了不同 FPGA 設備、工藝技術以及矩陣乘法 IP 核的結果。
下圖 6 展示了每種 FPGA 設備和矩陣乘法工藝技術的最大時鐘頻率。由於 FPGA 的性能依賴於最大時鐘頻率,因此外推性能使得不同工藝技術下架構之間能夠實現公平比較。
更多實驗細節請參閱原論文。